From a2a5a8c5e203fe9d55f9addba1533a30c6f2ba19 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 10 Jun 2010 18:54:11 +0200 Subject: Doc: Started organizing Symbian platform deployment information. Reviewed-by: Trust Me --- doc/src/deployment/deployment.qdoc | 27 ++++++++-- doc/src/external-resources.qdoc | 10 ++++ doc/src/platforms/symbian-introduction.qdoc | 76 +++++++++++++++++------------ 3 files changed, 78 insertions(+), 35 deletions(-) diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc index 51974af..286c080 100644 --- a/doc/src/deployment/deployment.qdoc +++ b/doc/src/deployment/deployment.qdoc @@ -1472,8 +1472,10 @@ /*! \page deployment-symbian.html \contentspage Deploying Qt Applications + \ingroup qtsymbian + \title Deploying an Application on the Symbian Platform - \title Deploying an Application on the Symbian platform + \section1 Overview Applications are deployed to Symbian devices in signed \c .sis package files. The \c .sis file content is controlled with \c .pkg files. The \c .pkg file contains a set @@ -1483,10 +1485,17 @@ to end-users some changes are needed. This document describes what changes are typically needed and how to implement them. + \section1 Requirements + + Download the latest release of the Smart Installer from + \l{http://get.qt.nokia.com/nokiasmartinstaller/}, and install it on top + of the Qt package. + \section1 Static Linking - Qt for the Symbian platform does currently not support static linking of - Qt libraries. + Qt for the Symbian platform does not currently support static linking of + Qt libraries with application binaries. You will need to build shared + libraries as described below and link your application with them. \section1 Shared Libraries @@ -1532,7 +1541,7 @@ S60 3rd edition FP1, S60 3rd edition FP2 and S60 5th edition devices. Now we are ready to compile the application and create the application - deployment file. Run \c qmake to create Symbian specific makefiles, resources (\.rss) + deployment file. Run \c qmake to create Symbian specific makefiles, resources (\c .rss) and deployment packaging files (\c .pkg). And do build to create the application binaries and resources. @@ -1562,4 +1571,14 @@ For more information about creating a \c .sis file and installing it to device see also \l {The Symbian platform - Introduction to Qt#Installing your own applications}{here}. + \section1 Further Reading + + This document aims to cover the common case for developers who want to + deploy Qt applications on devices using the Smart Installer. It does not + aim to cover every possible way of installing applications, Qt and other + dependencies on a device. + + A wider selection of deployment methods is described in the + \l{Deploying a Qt Application article} on the Symbian Foundation + Developer Wiki. */ diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc index 249c10a1..6f22f00 100644 --- a/doc/src/external-resources.qdoc +++ b/doc/src/external-resources.qdoc @@ -427,3 +427,13 @@ \externalpage http://opensource.org/licenses/bsd-license.php \title New and Modified BSD Licenses */ + +/*! + \externalpage http://developer.symbian.org/wiki/index.php/Platform_Security_%28Fundamentals_of_Symbian_C%2B%2B%29#Self-Signed_Applications + \title Symbian Platform Security +*/ + +/*! + \externalpage http://developer.symbian.org/wiki/index.php/Deploying_a_Qt_Application + \title Deploying a Qt Application article +*/ diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc index 6ffc568..9563a8e 100644 --- a/doc/src/platforms/symbian-introduction.qdoc +++ b/doc/src/platforms/symbian-introduction.qdoc @@ -83,12 +83,12 @@ \tableofcontents - \section1 Required tools + \section1 Required Tools See \l{Qt for the Symbian platform Requirements} to see what tools are required to use Qt for the Symbian platform. - \section1 Installing Qt and running demos + \section1 Installing Qt and Running Demos Follow the instructions found in \l{Installing Qt on the Symbian platform from a Binary Package} to learn how to install Qt using a binary package and how to build and run Qt demos. @@ -96,7 +96,7 @@ Follow the instructions found in \l{Installing Qt on the Symbian platform} to learn how to install Qt using using source package and how to build and run the Qt demos. - \section1 Building your own applications + \section1 Building Your Own Applications If you are new to Qt development, have a look at \l{How to Learn Qt}. In general, the difference between developing a @@ -109,12 +109,19 @@ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 0 For more information on how to use qmake have a look at the \l - {qmake Tutorial}. + {qmake Tutorial}. In particular, see the + \l{qmake Platform Notes#Symbian platform}{qmake Platform Notes} for + details of Symbian-specific build settings. Now you can build the Qt for the Symbian platform application with - standard build tools. By default, running \c make will produce binaries for - the emulator. However, the Symbian platform comes with several alternative - build targets, as shown in the table below: + standard build tools. + + \section2 Alternative Build Targets + + By default, running \c make will produce binaries for the emulator. + However, the Symbian platform comes with several alternative + build targets that can be used to create binaries for target hardware + and deploy them on devices, as shown in the table below: \table \row \o \c debug-winscw \o Build debug binaries for the emulator (default). @@ -144,19 +151,30 @@ To work on your project in Carbide, simply import the \c .pro file by right clicking on the project explorer and executing "Import...". - \section2 Smart Installer + \section1 Running Applications from the Command Line - The Smart Installer makes sure that deployed applications have all the Qt dependencies - they need to run on a device. + The application can be launched on the emulator using \c{make run} command. - Download the latest release of the Smart Installer from \l{http://get.qt.nokia.com/nokiasmartinstaller/}, - and install it on top of the Qt package. + The application can be launched on a device using \c{make runonphone} command. + When this command is invoked, a \c .sis file is first created as if \c{make sis} + command was invoked (see above for details). + \bold{Note:} Running the application on a device using this command requires + \c TRK application to be running on the device. - \section1 Installing your own applications + Additional environment variables that can be utilized with these commands are: + \table + \row \o \c QT_RUN_OPTIONS \o Any command line parameters you wish to pass + to your application. + \row \o \c QT_RUN_ON_PHONE_OPTIONS \o Options for runonphone application. + Execute \c runonphone from command line for + more information about available options. + \c{make runonphone} only. + \endtable + + \section1 Installing Your Own Applications To install your own applications on hardware, you need a signed \c .sis file. - (Refer to the \l{http://developer.symbian.org/wiki/index.php/Platform_Security_%28Fundamentals_of_Symbian_C%2B%2B%29#Self-Signed_Applications} - {Platform Security Article} for more informations about self-signing.) + (Refer to the \l{Symbian Platform Security} article for more informations about self-signing.) The signed \c .sis file can be created with \c make \c sis target. \c sis target is only supported for executables or projects with \c DEPLOYMENT statements. By default the \c sis target will create signed \c .sis file for last build @@ -214,23 +232,19 @@ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 5 - \section1 Running applications from command line + \section1 Deployment and the Smart Installer - The application can be launched on the emulator using \c{make run} command. + Although some Symbian devices may already have a version of Qt installed + on them, there needs to be a way to ensure that an appropriate version + of Qt is available for your application to use. Rather than deploy the + required Qt libraries with your application, the preferred way to + package Qt applications for deployment is to download and use the Smart + Installer. - The application can be launched on a device using \c{make runonphone} command. - When this command is invoked, a \c .sis file is first created as if \c{make sis} - command was invoked (see above for details). - \bold{Note:} Running the application on a device using this command requires - \c TRK application to be running on the device. + The Smart Installer makes sure that deployed applications have all the + Qt dependencies they need to run on a device, performing the necessary + updates when the user installs the application. - Additional environment variables that can be utilized with these commands are: - \table - \row \o \c QT_RUN_OPTIONS \o Any command line parameters you wish to pass - to your application. - \row \o \c QT_RUN_ON_PHONE_OPTIONS \o Options for runonphone application. - Execute \c runonphone from command line for - more information about available options. - \c{make runonphone} only. - \endtable + More information about deployment can be found in the + \l{Deploying an Application on the Symbian Platform} document. */ -- cgit v0.12 From 4aab0b33e7c34677b530553bb0a5493aca6547a5 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 28 Jun 2010 18:42:41 +0200 Subject: Doc: Synchronize HTML templates for each language. Reviewed-by: Trust Me --- tools/qdoc3/test/qt-html-templates.qdocconf | 2 +- tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf | 14 +- tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf | 191 +++++++++++++++++++--- 3 files changed, 170 insertions(+), 37 deletions(-) diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index 1fb000b..8708f1b 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -160,7 +160,7 @@ HTML.footer = " \n" \ "
\n" \ "
X
\n" \ "
\n" \ - "

\n" \ + "

\n" \ "

\n" \ "
\n" \ "
\n" \ diff --git a/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf b/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf index 027548e..e2abd2a 100644 --- a/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf +++ b/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf @@ -160,19 +160,9 @@ HTML.footer = " \n" \ "
\n" \ "
X
\n" \ "
\n" \ - "

\n" \ + "

\n" \ "

\n" \ "
\n" \ "
\n" \ "
\n" \ - "
\n" \ - "\n" + " \n" diff --git a/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf b/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf index 5fb68cf..e00bef9 100644 --- a/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf +++ b/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf @@ -1,25 +1,168 @@ -HTML.stylesheets = classic.css -HTML.postheader = "\n" \ - "\n" \ - "\n" \ - "" \ - "" \ - "
" \ - "" \ - "  " \ - "" \ - "主页 ·" \ - " " \ - "所有类 ·" \ - " " \ - "所有函数 ·" \ - " " \ - "简介" \ - "
" +HTML.stylesheets = style/style.css \ + style/OfflineStyle.css \ + style/style_ie7.css \ + style/style_ie8.css \ + style/style_ie6.css -HTML.footer = "


\n" \ - "\n" \ - "\n" \ - "\n" \ - "\n" \ - "
版权所有 © 2010 诺基亚公司和/或其子公司商标
Qt \\version
" +HTML.postheader = "
\n" \ + "
\n" \ + "
\n" \ + " Home
\n" \ + " Qt Reference Documentation\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " Search index:
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " API Lookup

\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " Qt Topics

\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " Examples

\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
    \n" \ + "
  • Home
  • \n" \ + " \n" + +HTML.postpostheader = "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" + +HTML.footer = " \n" \ + "
\n" \ + " [+] Documentation Feedback
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " © 2008-2010 Nokia Corporation and/or its\n" \ + " subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \ + " in Finland and/or other countries worldwide.

\n" \ + "

\n" \ + " All other trademarks are property of their respective owners. Privacy Policy

\n" \ + "
\n" \ + "
\n" \ + "
X
\n" \ + "
\n" \ + "

\n" \ + "

\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" -- cgit v0.12 From 08478207ee9a6563ae63ebcef833925db6426bd8 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 30 Jun 2010 19:03:53 +0200 Subject: Doc: Made the Gestures Programming document more visible. Reviewed-by: Trust Me --- src/gui/kernel/qevent.cpp | 5 +++++ src/gui/kernel/qgesture.cpp | 28 +++++++++++++++++++++++----- src/gui/kernel/qgesturerecognizer.cpp | 3 +++ 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 92eed33..0c0eabb 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -4281,6 +4281,11 @@ QTouchEvent::TouchPoint &QTouchEvent::TouchPoint::operator=(const QTouchEvent::T QGestureEvent::accept() for each of them, or an event filter consumes the event. + \section1 Further Reading + + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + \sa QGesture, QGestureRecognizer, QWidget::grabGesture(), QGraphicsObject::grabGesture() */ diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index f5688f4..8264422 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -58,6 +58,9 @@ QT_BEGIN_NAMESPACE the QGestureRecognizer object that is registered with the application; see QGestureRecognizer::registerRecognizer(). + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + \section1 Gesture Properties The class has a list of properties that can be queried by the user to get @@ -218,7 +221,10 @@ QGesture::GestureCancelPolicy QGesture::gestureCancelPolicy() const \image pangesture.png - \sa {Gestures Programming}, QPinchGesture, QSwipeGesture + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + + \sa QPinchGesture, QSwipeGesture */ /*! @@ -313,6 +319,9 @@ void QPanGesture::setAcceleration(qreal value) them closer together or further apart to change the scale factor, zoom, or level of detail of the user interface. + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + \image pinchgesture.png Instead of repeatedly applying the same pinching gesture, the user may @@ -321,7 +330,7 @@ void QPanGesture::setAcceleration(qreal value) will continue to be delivered to the target object, containing an instance of QPinchGesture in the Qt::GestureUpdated state. - \sa {Gestures Programming}, QPanGesture, QSwipeGesture + \sa QPanGesture, QSwipeGesture */ /*! @@ -571,7 +580,10 @@ void QPinchGesture::setRotationAngle(qreal value) \image swipegesture.png - \sa {Gestures Programming}, QPanGesture, QPinchGesture + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + + \sa QPanGesture, QPinchGesture */ /*! @@ -666,7 +678,10 @@ void QSwipeGesture::setSwipeAngle(qreal value) \brief The QTapGesture class describes a tap gesture made by the user. \ingroup gestures - \sa {Gestures Programming}, QPanGesture, QPinchGesture + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + + \sa QPanGesture, QPinchGesture */ /*! @@ -699,7 +714,10 @@ void QTapGesture::setPosition(const QPointF &value) gesture made by the user. \ingroup gestures - \sa {Gestures Programming}, QPanGesture, QPinchGesture + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + + \sa QPanGesture, QPinchGesture */ /*! diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp index 3e23bbf..e0e7784 100644 --- a/src/gui/kernel/qgesturerecognizer.cpp +++ b/src/gui/kernel/qgesturerecognizer.cpp @@ -62,6 +62,9 @@ QT_BEGIN_NAMESPACE need to use this class directly. Instances will be created behind the scenes by the framework. + For an overview of gesture handling in Qt and information on using gestures + in your applications, see the \l{Gestures Programming} document. + \section1 Recognizing Gestures The process of recognizing gestures involves filtering input events sent to specific -- cgit v0.12 From bbc7aa139308ff304f2e4c2611ed57d855d00d80 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 16 Jul 2010 14:04:08 +0200 Subject: Doc: Fixed name clash. Reviewed-by: Trust Me --- doc/src/examples/qml-examples.qdoc | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc index ce53677..db6e657 100644 --- a/doc/src/examples/qml-examples.qdoc +++ b/doc/src/examples/qml-examples.qdoc @@ -165,7 +165,6 @@ \image qml-layoutitem-example.png */ /*! - \title QGraphicsGridLayout \example declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout This example shows how to use QGraphicsGridLayout to lay out QML items. This is -- cgit v0.12 From 4ed51b7160471ae3a7db1fbb12a8f265ff7c3239 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 16 Jul 2010 14:06:50 +0200 Subject: Doc: Merged in some of Thomas Zander's suggestions. Reviewed-by: Trust Me --- doc/src/frameworks-technologies/gestures.qdoc | 49 +++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/doc/src/frameworks-technologies/gestures.qdoc b/doc/src/frameworks-technologies/gestures.qdoc index 927df22..f7c8312 100644 --- a/doc/src/frameworks-technologies/gestures.qdoc +++ b/doc/src/frameworks-technologies/gestures.qdoc @@ -60,7 +60,8 @@ \section1 Using Standard Gestures with Widgets Gestures can be enabled for instances of QWidget and QGraphicsObject subclasses. - An object that accepts gesture input is referred to as a \e{target object}. + An object that accepts gesture input is referred to throughout the documentation + as a \e{target object}. To enable a gesture for a target object, call its QWidget::grabGesture() or QGraphicsObject::grabGesture() function with an argument describing the @@ -69,13 +70,57 @@ \snippet examples/gestures/imagegestures/imagewidget.cpp enable gestures - In the above code, the gesture is set up in the constructor of the target object + In the above code, the gestures are set up in the constructor of the target object itself. + \section1 Handling Events + When the user performs a gesture, QGestureEvent events will be delivered to the target object, and these can be handled by reimplementing the QWidget::event() handler function for widgets or QGraphicsItem::sceneEvent() for graphics objects. + As one target object can subscribe to more than one gesture type, the QGestureEvent + can contain more than one QGesture, indicating several possible gestures are active + at the same time. It is then up to the widget to determine how to handle those + multiple gestures and choose if some should be canceled in favor of others. + + Each QGesture contained within a QGestureEvent object can be accepted() or ignored() + individually, or all together. Additionally, you can query the individual QGesture + data objects (the state) using several getters. + + \section2 Standard Procedure for Event Handling + + A QGesture is by default accepted when it arrives at your widget. However, it is good + practice to always explicitly accept or reject a gesture. The general rule is that, if + you accept a gesture, you are using it. If you are ignoring it you are not interested + in it. Ignoring a gesture may mean it gets offered to another target object, or it will + get canceled. + + Each QGesture has several states it goes through; there is a well defined way to change + the state, typically the user input is the cause of state changes (by starting and + stopping interaction, for instance) but the widget can also cause state changes. + + The first time a particular QGesture is delivered to a widget or graphics item, it will + be in the Qt::GestureStarted state. The way you handle the gesture at this point + influences whether you can interact with it later. + + \list + \o Accepting the gesture means the widget acts on the gesture and there will follow + gestures with the Qt::GestureUpdatedstate. + \o Ignoring the gesture will mean the gesture will never be offered to you again. + It will be offered to a parent widget or item as well. + \o Calling setGestureCancelPolicy() on the gesture when it is in its starting state, + and is also accepted can cause other gestures to be canceled. + \endlist + + Using QGesture::CancelAllInContext to cancel a gesture will cause all gestures, in any + state, to be canceled unless they are explicitly accepted. This means that active + gestures on children will get canceled. It also means that gestures delivered in the + same QGestureEvent will get canceled if the widget ignores them. This can be a useful + way to filter out all gestures except the one you are interested in. + + \section2 Example Event Handling + For convenience, the \l{Image Gestures Example} reimplements the general \l{QWidget::}{event()} handler function and delegates gesture events to a specialized gestureEvent() function: -- cgit v0.12 From d59380458cce6fc52b6de91d8380b31d46c3f83f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 16 Jul 2010 14:09:11 +0200 Subject: Doc: Fixed QML documentation errors. Reviewed-by: Trust Me --- src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp | 2 +- src/declarative/graphicsitems/qdeclarativepathview.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp index 0342c9f..9dcba60 100644 --- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp @@ -612,7 +612,7 @@ QAction* QDeclarativeWebView::stopAction() const #endif // QT_NO_ACTION /*! - \qmlproperty real WebView::title + \qmlproperty string WebView::title This property holds the title of the web page currently viewed By default, this property contains an empty string. diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index f4ebd13..1224c73 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -403,7 +403,7 @@ QDeclarativePathView::~QDeclarativePathView() The model provides a set of data that is used to create the items for the view. For large or dynamic datasets the model is usually provided by a C++ model object. - Models can also be created directly in XML, using the ListModel element. + Models can also be created directly in QML, using the ListModel element. \sa {qmlmodels}{Data Models} */ @@ -627,8 +627,8 @@ void QDeclarativePathViewPrivate::setOffset(qreal o) so as to stay with the current item. The below example demonstrates how to make a simple highlight. Note the use - of the PathView.onPath property to ensure that the highlight is hidden - when flicked off of the path. + of the \l{PathView::onPath}{PathView.onPath} attached property to ensure that + the highlight is hidden when flicked away from the path. \code Component { -- cgit v0.12 From e2fb9c4df301678719cb0cff78838b35435c3b38 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 16 Jul 2010 14:09:59 +0200 Subject: Doc: Fixed typo. Reviewed-by: Trust Me --- src/xmlpatterns/api/qabstractxmlnodemodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp index 7f2ad9f..0f9760d 100644 --- a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp +++ b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp @@ -1355,7 +1355,7 @@ bool QXmlItem::isNull() const QAbstractXmlNodeModel for its existence, the only way you can create an instance of QXmlNodeModelIndex is by asking the node model to create one for you with QAbstractXmlNodeModel::createIndex(). Since - that function is protected, it is usually a good ide to write a + that function is protected, it is usually a good idea to write a public function that creates a QXmlNodeModelIndex from arguments that are appropriate for your particular node model. -- cgit v0.12 From 245a68a0aad0473fcf56cd75e78b951480d39e2b Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 16 Jul 2010 19:25:31 +0200 Subject: Doc: Added more license information. Task-number: QT-3585 Reviewed-by: Trust Me --- doc/src/legal/licenses.qdoc | 46 +++++++++-- doc/src/snippets/legal/CatharonLicense.txt | 123 +++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+), 8 deletions(-) create mode 100644 doc/src/snippets/legal/CatharonLicense.txt diff --git a/doc/src/legal/licenses.qdoc b/doc/src/legal/licenses.qdoc index a04a256..12aca6b 100644 --- a/doc/src/legal/licenses.qdoc +++ b/doc/src/legal/licenses.qdoc @@ -262,14 +262,14 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\br -     * Redistributions of source code must retain the above copyright -       notice, this list of conditions and the following disclaimer.\br -     * Redistributions in binary form must reproduce the above copyright -       notice, this list of conditions and the following disclaimer in the -       documentation and/or other materials provided with the distribution.\br -     * Neither the name of Research In Motion Limited nor the -       names of its contributors may be used to endorse or promote products -       derived from this software without specific prior written permission. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer.\br + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution.\br + * Neither the name of Research In Motion Limited nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY Research In Motion Limited ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -476,6 +476,24 @@ \hr + Copyright 2001, 2002 Catharon Productions Inc. + + This file is part of the Catharon Typography Project and shall only + be used, modified, and distributed under the terms of the Catharon + Open Source License that should come with this file under the name + `CatharonLicense.txt'. By continuing to use, modify, or distribute + this file you indicate that you have read the license and + understand and accept it fully. + + Note that this license is compatible with the FreeType license. + + \list + \o Included in the build system of the FreeType library + \o See \l{CatharonLicense.txt} for more information + \endlist + + \hr + Copyright (C) 2006 Apple Computer, Inc. All rights reserved.\br Copyright (C) 2007 Eric Seidel \br Copyright (C) 2008 Kelvin W Sherlock (ksherlock@gmail.com)\br @@ -987,3 +1005,15 @@ and have given a quick thought about whether Roman might perhaps be interested to read what you did with his stuff. Horizontal rules don't apply.} */ + +/*! + \page catharon-license.html + \title CatharonLicense.txt + \ingroup licensing + \brief The Catharon License used in parts of FreeType. + + See the \l{Other Licenses Used in Qt} document for information on the + context in which this license is applied to code in the FreeType library. + + \quotefile doc/src/snippets/legal/CatharonLicense.txt +*/ diff --git a/doc/src/snippets/legal/CatharonLicense.txt b/doc/src/snippets/legal/CatharonLicense.txt new file mode 100644 index 0000000..789c8c9 --- /dev/null +++ b/doc/src/snippets/legal/CatharonLicense.txt @@ -0,0 +1,123 @@ + The Catharon Open Source LICENSE + ---------------------------- + + 2000-Jul-04 + + Copyright (C) 2000 by Catharon Productions, Inc. + + + +Introduction +============ + + This license applies to source files distributed by Catharon + Productions, Inc. in several archive packages. This license + applies to all files found in such packages which do not fall + under their own explicit license. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we are + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + Catharon Code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering the packages distributed by + Catharon Productions, Inc. and assume no liability related to + their use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `Catharon Package', `package', + and `Catharon Code' refer to the set of files originally + distributed by Catharon Productions, Inc. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using one of the + Catharon Packages'. + + This license applies to all files distributed in the original + Catharon Package(s), including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The Catharon Packages are copyright (C) 2000 by Catharon + Productions, Inc. All rights reserved except as specified below. + +1. No Warranty +-------------- + + THE CATHARON PACKAGES ARE PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OF OR THE INABILITY TO + USE THE CATHARON PACKAGE. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the Catharon Packages (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`license.txt') unaltered; any additions, deletions or changes + to the original files must be clearly indicated in + accompanying documentation. The copyright notices of the + unaltered, original files must be preserved in all copies of + source files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part on the work of + Catharon Productions, Inc. in the distribution documentation. + + These conditions apply to any software derived from or based on + the Catharon Packages, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither Catharon Productions, Inc. and contributors nor you shall + use the name of the other for commercial, advertising, or + promotional purposes without specific prior written permission. + + We suggest, but do not require, that you use the following phrase + to refer to this software in your documentation: 'this software is + based in part on the Catharon Typography Project'. + + As you have not signed this license, you are not required to + accept it. However, as the Catharon Packages are copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the Catharon + Packages, you indicate that you understand and accept all the + terms of this license. + +--- end of license.txt --- -- cgit v0.12 From aafdc4d4c795ee25a0da1087fada999fbe6c47bc Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Tue, 27 Jul 2010 23:38:54 +0100 Subject: Move note on connectToBus() not actually being able to reconnect to connectToBus() documentation, where it belongs. This also fixes some bad English ("make be connected") by means of removing it. --- src/dbus/qdbusconnection.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 4382032..9aa1cc5 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -173,6 +173,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP The connection is then torn down using the disconnectFromBus() function. + Once disconnected, calling connectToBus() will not reestablish a + connection, you must create a new QDBusConnection instance. + As a convenience for the two most common connection types, the sessionBus() and systemBus() functions return open connections to the session server daemon and the system server daemon, @@ -853,10 +856,6 @@ QDBusConnectionInterface *QDBusConnection::interface() const /*! Returns true if this QDBusConnection object is connected. - - If it isn't connected, calling connectToBus() on the same - connection name will not make be connected. You need to call the - QDBusConnection constructor again. */ bool QDBusConnection::isConnected() const { -- cgit v0.12 From d754440bf7ce91a2f4a56a8873b6bfa546719c08 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Tue, 27 Jul 2010 23:40:39 +0100 Subject: Remove useless QString::clear() from QSharedData example snippet. --- doc/src/snippets/sharedemployee/employee.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/snippets/sharedemployee/employee.h b/doc/src/snippets/sharedemployee/employee.h index 18b47e0..2c9ba6f 100644 --- a/doc/src/snippets/sharedemployee/employee.h +++ b/doc/src/snippets/sharedemployee/employee.h @@ -48,7 +48,7 @@ class EmployeeData : public QSharedData { public: - EmployeeData() : id(-1) { name.clear(); } + EmployeeData() : id(-1) { } EmployeeData(const EmployeeData &other) : QSharedData(other), id(other.id), name(other.name) { } ~EmployeeData() { } -- cgit v0.12 From 8f0e2e8a995f16fe737e538ce6f35e91b5a100b5 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Mon, 26 Jul 2010 14:04:52 +0100 Subject: Clear Qt::WA_OutsideWSRange when making window fullscreen Task-number: QTBUG-10269 Reviewed-by: Jason Barron --- src/gui/kernel/qwidget_s60.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 46f3254..d06328c 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -1130,8 +1130,10 @@ void QWidget::setWindowState(Qt::WindowStates newstate) const bool cbaVisibilityHint = windowFlags() & Qt::WindowSoftkeysVisibleHint; if (newstate & Qt::WindowFullScreen && !cbaVisibilityHint) { + setAttribute(Qt::WA_OutsideWSRange, false); window->SetExtentToWholeScreen(); } else if (newstate & Qt::WindowMaximized || ((newstate & Qt::WindowFullScreen) && cbaVisibilityHint)) { + setAttribute(Qt::WA_OutsideWSRange, false); TRect maxExtent = qt_QRect2TRect(qApp->desktop()->availableGeometry(this)); window->SetExtent(maxExtent.iTl, maxExtent.Size()); } else { -- cgit v0.12 From f1257358b4432abf874460f58cba73bce17981ab Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 27 Jul 2010 16:23:52 +0100 Subject: Ensure that window rectangle is updated when CBA visibility changes In S60, there are two pieces of screen furniture, changes in whose visibility or size can affect the size of the Qt application window. These are the status pane, at the top of the screen, and the CBA at the bottom. QSymbianControl listens for changes in status pane visibility and size by implementing MEikStatusPaneObserver. Notifications received via this interface trigger a call to QSymbianControl::handleClientAreaChange() which resizes the control. There is no corresponding interface through which to receive notifications of changes in CBA visibility. This patch introduces a utility function for setting the visibility of both the status pane and CBA, which ensures that the control's rectangle is updated when either one changes. Task-number: QTBUG-5320 Reviewed-by: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 36 +++++++++++++++++++++++++----------- src/gui/kernel/qt_s60_p.h | 3 +++ src/gui/kernel/qwidget_s60.cpp | 15 +++++---------- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index d5ff792..7dbf4b7 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -102,6 +102,25 @@ QS60Data* qGlobalS60Data() return qt_s60Data(); } +#ifdef Q_WS_S60 +void QS60Data::setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, bool buttonGroupVisible) +{ + bool buttonGroupVisibilityChanged = false; + if (CEikButtonGroupContainer *const b = buttonGroupContainer()) { + buttonGroupVisibilityChanged = (b->IsVisible() != buttonGroupVisible); + b->MakeVisible(buttonGroupVisible); + } + bool statusPaneVisibilityChanged = false; + if (CEikStatusPane *const s = statusPane()) { + statusPaneVisibilityChanged = (s->IsVisible() != statusPaneVisible); + s->MakeVisible(statusPaneVisible); + } + if (buttonGroupVisibilityChanged && !statusPaneVisibilityChanged) + // Ensure that control rectangle is updated + static_cast(QApplication::activeWindow()->winId())->handleClientAreaChange(); +} +#endif + bool qt_nograb() // application no-grab option { #if defined(QT_DEBUG) @@ -999,17 +1018,12 @@ void QSymbianControl::FocusChanged(TDrawNow /* aDrawNow */) qwidget->d_func()->setWindowTitle_sys(qwidget->windowTitle()); #ifdef Q_WS_S60 // If widget is fullscreen/minimized, hide status pane and button container otherwise show them. - CEikStatusPane *statusPane = S60->statusPane(); - CEikButtonGroupContainer *buttonGroup = S60->buttonGroupContainer(); - TBool visible = !(qwidget->windowState() & (Qt::WindowFullScreen | Qt::WindowMinimized)); - if (statusPane) - statusPane->MakeVisible(visible); - if (buttonGroup) { - // Visibility - const TBool isFullscreen = qwidget->windowState() & Qt::WindowFullScreen; - const TBool cbaVisibilityHint = qwidget->windowFlags() & Qt::WindowSoftkeysVisibleHint; - buttonGroup->MakeVisible(visible || (isFullscreen && cbaVisibilityHint)); - } + const bool visible = !(qwidget->windowState() & (Qt::WindowFullScreen | Qt::WindowMinimized)); + const bool statusPaneVisibility = visible; + const bool isFullscreen = qwidget->windowState() & Qt::WindowFullScreen; + const bool cbaVisibilityHint = qwidget->windowFlags() & Qt::WindowSoftkeysVisibleHint; + const bool buttonGroupVisibility = (visible || (isFullscreen && cbaVisibilityHint)); + S60->setStatusPaneAndButtonGroupVisibility(statusPaneVisibility, buttonGroupVisibility); #endif } else if (QApplication::activeWindow() == qwidget->window()) { if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) { diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index bec51b8..bf71062 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -148,6 +148,7 @@ public: static inline CAknTitlePane* titlePane(); static inline CAknContextPane* contextPane(); static inline CEikButtonGroupContainer* buttonGroupContainer(); + static void setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, bool buttonGroupVisible); TTrapHandler *s60InstalledTrapHandler; #endif @@ -226,6 +227,8 @@ private: #ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER void translateAdvancedPointerEvent(const TAdvancedPointerEvent *event); #endif + +public: void handleClientAreaChange(); private: diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index d06328c..fe0d083 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -1110,15 +1110,10 @@ void QWidget::setWindowState(Qt::WindowStates newstate) // The window decoration visibility has to be changed before doing actual window state // change since in that order the availableGeometry will return directly the right size and // we will avoid unnecessarty redraws - CEikStatusPane *statusPane = S60->statusPane(); - CEikButtonGroupContainer *buttonGroup = S60->buttonGroupContainer(); - TBool visible = !(newstate & (Qt::WindowFullScreen | Qt::WindowMinimized)); - if (statusPane) - statusPane->MakeVisible(visible); - if (buttonGroup) { - // Visibility - buttonGroup->MakeVisible(visible || (isFullscreen && cbaRequested)); - } + const bool visible = !(newstate & (Qt::WindowFullScreen | Qt::WindowMinimized)); + const bool statusPaneVisibility = visible; + const bool buttonGroupVisibility = (visible || (isFullscreen && cbaRequested)); + S60->setStatusPaneAndButtonGroupVisibility(statusPaneVisibility, buttonGroupVisibility); #endif // Q_WS_S60 // Ensure the initial size is valid, since we store it as normalGeometry below. @@ -1142,7 +1137,7 @@ void QWidget::setWindowState(Qt::WindowStates newstate) // accurate because it did not consider the status pane. This means that when returning // normal mode after showing the status pane, the geometry would overlap so we should // move it if it never had an explicit position. - if (!wasMoved && statusPane && visible) { + if (!wasMoved && S60->statusPane() && visible) { TPoint tl = static_cast(S60->appUi())->ClientRect().iTl; normalGeometry.setTopLeft(QPoint(tl.iX, tl.iY)); } -- cgit v0.12 From 9a059c53caaf19cd2ff722df6e47870a2843ee43 Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Fri, 30 Jul 2010 11:38:37 +0200 Subject: Fix proxy widgets with the OpenVG paint engine. Proxy widgets use the shared painter functionality and this implies that the paint engine's begin function does not get called for each new widget that gets painted. This causes a problem because the system clip gets modified by QPainter, but the paint engine does not realize that this happened and fails to use the new clip. The result is that you can end up painting outside the intended clip area. The fix is to reimplement the virtual systemStateChanged() function in QVGPaintEnginePrivate and make it call updateScissor() to re-evaluate the clipping flags and update the current clip accordingly. A similar fix was done to the OpenGL paint engine way back in 307c2954. Task-number: QTBUG-12486 Reviewed-by: Rhys Weatherley --- src/openvg/qpaintengine_vg.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 7de09ce..e368c32 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -120,6 +120,7 @@ private: class QVGPaintEnginePrivate : public QPaintEngineExPrivate { + Q_DECLARE_PUBLIC(QVGPaintEngine) public: // Extra blending modes from VG_KHR_advanced_blending extension. // Use the QT_VG prefix to avoid conflicts with any definitions @@ -150,7 +151,7 @@ public: QT_VG_BLEND_XOR_KHR = 0x2026 }; - QVGPaintEnginePrivate(); + QVGPaintEnginePrivate(QVGPaintEngine *q_ptr); ~QVGPaintEnginePrivate(); void init(); @@ -171,6 +172,7 @@ public: void setBrushTransform(const QBrush& brush, VGMatrixMode mode); void setupColorRamp(const QGradient *grad, VGPaint paint); void setImageOptions(); + void systemStateChanged(); #if !defined(QVG_SCISSOR_CLIP) void ensureMask(QVGPaintEngine *engine, int width, int height); void modifyMask @@ -299,6 +301,9 @@ public: // Clear all lazily-set modes. void clearModes(); + +private: + QVGPaintEngine *q; }; inline void QVGPaintEnginePrivate::setImageMode(VGImageMode mode) @@ -350,7 +355,7 @@ void QVGPaintEnginePrivate::clearModes() imageQuality = (VGImageQuality)0; } -QVGPaintEnginePrivate::QVGPaintEnginePrivate() +QVGPaintEnginePrivate::QVGPaintEnginePrivate(QVGPaintEngine *q_ptr) : q(q_ptr) { init(); } @@ -1452,7 +1457,7 @@ QVGPainterState::~QVGPainterState() } QVGPaintEngine::QVGPaintEngine() - : QPaintEngineEx(*new QVGPaintEnginePrivate) + : QPaintEngineEx(*new QVGPaintEnginePrivate(this)) { } @@ -2995,6 +3000,11 @@ void QVGPaintEnginePrivate::setImageOptions() } } +void QVGPaintEnginePrivate::systemStateChanged() +{ + q->updateScissor(); +} + static void drawVGImage(QVGPaintEnginePrivate *d, const QRectF& r, VGImage vgImg, const QSize& imageSize, const QRectF& sr) -- cgit v0.12 From 4cf313be8d440e2ef9bdb4a586fbcba20c3ee317 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 28 Jul 2010 14:05:52 +0100 Subject: Added support to Phonon MMF backend for playback of Qt resource files The backend accesses the resource file path via MediaSource::url(). A small patch to Phonon was required to enable this, because by default, Phonon passes a QIODevice, rather than the resource file path, to the backend. The backend uses this path to create a QResource object, through which the memory buffer into which the resource file has been read can be accessed. This buffer is wrapped in a Symbian 8-bit descriptor and passed to the OpenDesL() function of the appropriate MMF client utility API. Task-number: QTBUG-6562 --- src/3rdparty/phonon/mmf/abstractmediaplayer.cpp | 28 ++++++++-- src/3rdparty/phonon/mmf/abstractmediaplayer.h | 6 ++- src/3rdparty/phonon/mmf/abstractplayer.h | 4 +- src/3rdparty/phonon/mmf/abstractvideoplayer.cpp | 6 +++ src/3rdparty/phonon/mmf/abstractvideoplayer.h | 1 + src/3rdparty/phonon/mmf/audioplayer.cpp | 6 +++ src/3rdparty/phonon/mmf/audioplayer.h | 1 + src/3rdparty/phonon/mmf/dummyplayer.cpp | 2 +- src/3rdparty/phonon/mmf/dummyplayer.h | 2 +- src/3rdparty/phonon/mmf/mediaobject.cpp | 71 ++++++++++++++++++++++--- src/3rdparty/phonon/mmf/mediaobject.h | 11 ++-- src/3rdparty/phonon/phonon/mediasource.cpp | 5 ++ 12 files changed, 123 insertions(+), 20 deletions(-) diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp index be2a568..bca0891 100644 --- a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp +++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp @@ -16,6 +16,7 @@ along with this library. If not, see . */ +#include #include #include "abstractmediaplayer.h" @@ -216,9 +217,10 @@ void MMF::AbstractMediaPlayer::doSetTickInterval(qint32 interval) TRACE_EXIT_0(); } -void MMF::AbstractMediaPlayer::open(const MediaSource &source, RFile& file) +void MMF::AbstractMediaPlayer::open() { - TRACE_CONTEXT(AbstractMediaPlayer::setFileSource, EAudioApi); + TRACE_CONTEXT(AbstractMediaPlayer::open, EAudioApi); + const MediaSource source = m_parent->source(); TRACE_ENTRY("state %d source.type %d", privateState(), source.type()); close(); @@ -229,7 +231,9 @@ void MMF::AbstractMediaPlayer::open(const MediaSource &source, RFile& file) switch (source.type()) { case MediaSource::LocalFile: { - symbianErr = openFile(file); + RFile *const file = m_parent->file(); + Q_ASSERT(file); + symbianErr = openFile(*file); if (KErrNone != symbianErr) errorMessage = tr("Error opening file"); break; @@ -237,9 +241,10 @@ void MMF::AbstractMediaPlayer::open(const MediaSource &source, RFile& file) case MediaSource::Url: { const QUrl url(source.url()); - if (url.scheme() == QLatin1String("file")) { - symbianErr = openFile(file); + RFile *const file = m_parent->file(); + Q_ASSERT(file); + symbianErr = openFile(*file); if (KErrNone != symbianErr) errorMessage = tr("Error opening file"); } else { @@ -251,6 +256,19 @@ void MMF::AbstractMediaPlayer::open(const MediaSource &source, RFile& file) break; } + case MediaSource::Stream: { + QResource *const resource = m_parent->resource(); + if (resource && resource->isValid()) { + m_buffer.Set(resource->data(), resource->size()); + symbianErr = openDescriptor(m_buffer); + if (KErrNone != symbianErr) + errorMessage = tr("Error opening resource"); + } else { + errorMessage = tr("Error opening source: resource not valid"); + } + break; + } + // Other source types are handled in MediaObject::createPlayer // Protection against adding new media types and forgetting to update this switch diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.h b/src/3rdparty/phonon/mmf/abstractmediaplayer.h index 7d28caf..e795ecb 100644 --- a/src/3rdparty/phonon/mmf/abstractmediaplayer.h +++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.h @@ -47,7 +47,7 @@ protected: AbstractMediaPlayer(MediaObject *parent, const AbstractPlayer *player); public: - virtual void open(const Phonon::MediaSource&, RFile&); + virtual void open(); // MediaObjectInterface virtual void play(); @@ -70,6 +70,7 @@ protected: virtual int setDeviceVolume(int mmfVolume) = 0; virtual int openFile(RFile& file) = 0; virtual int openUrl(const QString& url) = 0; + virtual int openDescriptor(const TDesC8 &des) = 0; virtual int bufferStatus() const = 0; void updateMetaData(); @@ -123,6 +124,9 @@ private: bool m_prefinishMarkSent; bool m_aboutToFinishSent; + // Used for playback of resource files + TPtrC8 m_buffer; + QMultiMap m_metaData; }; diff --git a/src/3rdparty/phonon/mmf/abstractplayer.h b/src/3rdparty/phonon/mmf/abstractplayer.h index 30d5243..dd98c7c 100644 --- a/src/3rdparty/phonon/mmf/abstractplayer.h +++ b/src/3rdparty/phonon/mmf/abstractplayer.h @@ -26,8 +26,6 @@ along with this library. If not, see . #include "abstractvideooutput.h" -class RFile; - QT_BEGIN_NAMESPACE namespace Phonon @@ -54,7 +52,7 @@ class AbstractPlayer : public QObject public: AbstractPlayer(const AbstractPlayer *player); - virtual void open(const Phonon::MediaSource&, RFile&) = 0; + virtual void open() = 0; virtual void close() = 0; // MediaObjectInterface (implemented) diff --git a/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp b/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp index 9ea4d18..fb20bea 100644 --- a/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp +++ b/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp @@ -144,6 +144,12 @@ int MMF::AbstractVideoPlayer::openUrl(const QString &url) return err; } +int MMF::AbstractVideoPlayer::openDescriptor(const TDesC8 &des) +{ + TRAPD(err, m_player->OpenDesL(des)); + return err; +} + int MMF::AbstractVideoPlayer::bufferStatus() const { int result = 0; diff --git a/src/3rdparty/phonon/mmf/abstractvideoplayer.h b/src/3rdparty/phonon/mmf/abstractvideoplayer.h index d854793..3ff3c75 100644 --- a/src/3rdparty/phonon/mmf/abstractvideoplayer.h +++ b/src/3rdparty/phonon/mmf/abstractvideoplayer.h @@ -66,6 +66,7 @@ public: virtual int setDeviceVolume(int mmfVolume); virtual int openFile(RFile &file); virtual int openUrl(const QString &url); + virtual int openDescriptor(const TDesC8 &des); virtual int bufferStatus() const; virtual void close(); diff --git a/src/3rdparty/phonon/mmf/audioplayer.cpp b/src/3rdparty/phonon/mmf/audioplayer.cpp index f49e898..7c8b9bd 100644 --- a/src/3rdparty/phonon/mmf/audioplayer.cpp +++ b/src/3rdparty/phonon/mmf/audioplayer.cpp @@ -137,6 +137,12 @@ int MMF::AudioPlayer::openUrl(const QString& /*url*/) return 0; } +int MMF::AudioPlayer::openDescriptor(const TDesC8 &des) +{ + TRAPD(err, m_player->OpenDesL(des)); + return err; +} + int MMF::AudioPlayer::bufferStatus() const { int result = 0; diff --git a/src/3rdparty/phonon/mmf/audioplayer.h b/src/3rdparty/phonon/mmf/audioplayer.h index 0eb8bb7..e43cadd 100644 --- a/src/3rdparty/phonon/mmf/audioplayer.h +++ b/src/3rdparty/phonon/mmf/audioplayer.h @@ -67,6 +67,7 @@ typedef CMdaAudioPlayerUtility NativePlayer; virtual int setDeviceVolume(int mmfVolume); virtual int openFile(RFile& file); virtual int openUrl(const QString& url); + virtual int openDescriptor(const TDesC8 &des); virtual int bufferStatus() const; virtual void close(); diff --git a/src/3rdparty/phonon/mmf/dummyplayer.cpp b/src/3rdparty/phonon/mmf/dummyplayer.cpp index d39ef76..ba75b02 100644 --- a/src/3rdparty/phonon/mmf/dummyplayer.cpp +++ b/src/3rdparty/phonon/mmf/dummyplayer.cpp @@ -92,7 +92,7 @@ qint64 MMF::DummyPlayer::totalTime() const return 0; } -void MMF::DummyPlayer::open(const Phonon::MediaSource &, RFile &) +void MMF::DummyPlayer::open() { } diff --git a/src/3rdparty/phonon/mmf/dummyplayer.h b/src/3rdparty/phonon/mmf/dummyplayer.h index 9d45696..5b00411 100644 --- a/src/3rdparty/phonon/mmf/dummyplayer.h +++ b/src/3rdparty/phonon/mmf/dummyplayer.h @@ -57,7 +57,7 @@ public: virtual qint64 totalTime() const; // AbstractPlayer - virtual void open(const Phonon::MediaSource&, RFile&); + virtual void open(); virtual void close(); virtual void doSetTickInterval(qint32 interval); }; diff --git a/src/3rdparty/phonon/mmf/mediaobject.cpp b/src/3rdparty/phonon/mmf/mediaobject.cpp index d264377..e16bdf3 100644 --- a/src/3rdparty/phonon/mmf/mediaobject.cpp +++ b/src/3rdparty/phonon/mmf/mediaobject.cpp @@ -34,6 +34,7 @@ along with this library. If not, see . #include "mediaobject.h" #include +#include #include QT_BEGIN_NAMESPACE @@ -52,6 +53,8 @@ using namespace Phonon::MMF; MMF::MediaObject::MediaObject(QObject *parent) : MMF::MediaNode::MediaNode(parent) , m_recognizerOpened(false) , m_nextSourceSet(false) + , m_file(0) + , m_resource(0) { m_player.reset(new DummyPlayer()); @@ -68,7 +71,12 @@ MMF::MediaObject::~MediaObject() TRACE_CONTEXT(MediaObject::~MediaObject, EAudioApi); TRACE_ENTRY_0(); - m_file.Close(); + delete m_resource; + + if (m_file) + m_file->Close(); + delete m_file; + m_fileServer.Close(); m_recognizer.Close(); @@ -122,12 +130,13 @@ MMF::MediaType MMF::MediaObject::fileMediaType const QHBufC fileNameSymbian(QDir::toNativeSeparators(fileName)); - m_file.Close(); - TInt err = m_file.Open(m_fileServer, *fileNameSymbian, EFileRead | EFileShareReadersOnly); + Q_ASSERT(!m_file); + m_file = new RFile; + TInt err = m_file->Open(m_fileServer, *fileNameSymbian, EFileRead | EFileShareReadersOnly); if (KErrNone == err) { TDataRecognitionResult recognizerResult; - err = m_recognizer.RecognizeData(m_file, recognizerResult); + err = m_recognizer.RecognizeData(*m_file, recognizerResult); if (KErrNone == err) { const TPtrC mimeType = recognizerResult.iDataType.Des(); result = Utils::mimeTypeToMediaType(mimeType); @@ -142,6 +151,23 @@ MMF::MediaType MMF::MediaObject::fileMediaType return result; } +MMF::MediaType MMF::MediaObject::bufferMediaType(const uchar *data, qint64 size) +{ + TRACE_CONTEXT(MediaObject::bufferMediaType, EAudioInternal); + MediaType result = MediaTypeUnknown; + if (openRecognizer()) { + TDataRecognitionResult recognizerResult; + const TPtrC8 des(data, size); + const TInt err = m_recognizer.RecognizeData(des, recognizerResult); + if (KErrNone == err) { + const TPtrC mimeType = recognizerResult.iDataType.Des(); + result = Utils::mimeTypeToMediaType(mimeType); + } else { + TRACE("RApaLsSession::RecognizeData error %d", err); + } + } + return result; +} //----------------------------------------------------------------------------- // MediaObjectInterface @@ -228,9 +254,17 @@ void MMF::MediaObject::setSource(const MediaSource &source) void MMF::MediaObject::switchToSource(const MediaSource &source) { + if (m_file) + m_file->Close(); + delete m_file; + m_file = 0; + + delete m_resource; + m_resource = 0; + createPlayer(source); m_source = source; - m_player->open(m_source, m_file); + m_player->open(); emit currentSourceChanged(m_source); } @@ -272,10 +306,25 @@ void MMF::MediaObject::createPlayer(const MediaSource &source) case MediaSource::Invalid: case MediaSource::Disc: - case MediaSource::Stream: errorMessage = tr("Error opening source: type not supported"); break; + case MediaSource::Stream: + { + const QString fileName = source.url().toLocalFile(); + if (fileName.startsWith(QLatin1String(":/")) || fileName.startsWith(QLatin1String("qrc://"))) { + Q_ASSERT(!m_resource); + m_resource = new QResource(fileName); + if (m_resource->isValid()) + mediaType = bufferMediaType(m_resource->data(), m_resource->size()); + else + errorMessage = tr("Error opening source: resource not valid"); + } else { + errorMessage = tr("Error opening source: type not supported"); + } + } + break; + case MediaSource::Empty: TRACE_0("Empty media source"); break; @@ -374,6 +423,16 @@ void MMF::MediaObject::volumeChanged(qreal volume) m_player->volumeChanged(volume); } +RFile* MMF::MediaObject::file() const +{ + return m_file; +} + +QResource* MMF::MediaObject::resource() const +{ + return m_resource; +} + //----------------------------------------------------------------------------- // MediaNode //----------------------------------------------------------------------------- diff --git a/src/3rdparty/phonon/mmf/mediaobject.h b/src/3rdparty/phonon/mmf/mediaobject.h index f15eb21..5399e27 100644 --- a/src/3rdparty/phonon/mmf/mediaobject.h +++ b/src/3rdparty/phonon/mmf/mediaobject.h @@ -33,6 +33,8 @@ along with this library. If not, see . QT_BEGIN_NAMESPACE +class QResource; + namespace Phonon { namespace MMF @@ -87,6 +89,9 @@ public: void setVideoOutput(AbstractVideoOutput* videoOutput); + RFile* file() const; + QResource* resource() const; + public Q_SLOTS: void volumeChanged(qreal volume); void switchToNextSource(); @@ -117,6 +122,7 @@ private: // Audio / video media type recognition MediaType fileMediaType(const QString& fileName); + MediaType bufferMediaType(const uchar *data, qint64 size); // TODO: urlMediaType function static qint64 toMilliSeconds(const TTimeIntervalMicroSeconds &); @@ -132,9 +138,8 @@ private: MediaSource m_nextSource; bool m_nextSourceSet; - // Storing the file handle here to work around KErrInUse error - // from MMF player utility OpenFileL functions - RFile m_file; + RFile* m_file; + QResource* m_resource; QScopedPointer m_player; diff --git a/src/3rdparty/phonon/phonon/mediasource.cpp b/src/3rdparty/phonon/phonon/mediasource.cpp index be22dc3..925ff32 100644 --- a/src/3rdparty/phonon/phonon/mediasource.cpp +++ b/src/3rdparty/phonon/phonon/mediasource.cpp @@ -58,6 +58,11 @@ MediaSource::MediaSource(const QString &filename) d->type = Stream; d->ioDevice = new QFile(filename); d->setStream(new IODeviceStream(d->ioDevice, d->ioDevice)); +#ifdef Q_OS_SYMBIAN + // On Symbian, we need to access the resource buffer directly, rather than + // via QFile indirection + d->url = QUrl::fromLocalFile(fileInfo.absoluteFilePath()); +#endif #else d->type = Invalid; #endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM -- cgit v0.12 From 2e0a41f304e7505602699c9623a96b6174165150 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 28 Jul 2010 17:12:10 +0100 Subject: Updated tst_mediaobject resource playback test cases * Removed Q_SKIP on Symbian * Divided test into two, to exercise the two possible ways of providing the resource path to Phonon::MediaSource Task-number: QTBUG-6562 --- tests/auto/mediaobject/tst_mediaobject.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/auto/mediaobject/tst_mediaobject.cpp b/tests/auto/mediaobject/tst_mediaobject.cpp index 994057b..99a16db 100644 --- a/tests/auto/mediaobject/tst_mediaobject.cpp +++ b/tests/auto/mediaobject/tst_mediaobject.cpp @@ -124,7 +124,8 @@ class tst_MediaObject : public QObject void init(); void cleanup(); - void testPlayFromResource(); + void testPlayFromResourceDirect(); + void testPlayFromResourceFile(); void testPlayIllegalFile(); void initTestCase(); void checkForDefaults(); @@ -199,11 +200,22 @@ void tst_MediaObject::stateChanged(Phonon::State newstate, Phonon::State oldstat QWARN(QByteArray(QByteArray(QTest::toString(oldstate)) + " to " + QByteArray(QTest::toString(newstate)))); } -void tst_MediaObject::testPlayFromResource() +void tst_MediaObject::testPlayFromResourceDirect() +{ + MediaObject media; + media.setCurrentSource(Phonon::MediaSource(MEDIA_FILEPATH)); + QVERIFY(media.state() != Phonon::ErrorState); + if (media.state() != Phonon::StoppedState) + QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000); + QCOMPARE(media.state(), Phonon::StoppedState); + media.play(); + if (media.state() != Phonon::PlayingState) + QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000); + QCOMPARE(media.state(), Phonon::PlayingState); +} + +void tst_MediaObject::testPlayFromResourceFile() { -#ifdef Q_OS_SYMBIAN - QSKIP("Not implemented yet.", SkipAll); -#else QFile file(MEDIA_FILEPATH); MediaObject media; media.setCurrentSource(&file); @@ -215,7 +227,6 @@ void tst_MediaObject::testPlayFromResource() if (media.state() != Phonon::PlayingState) QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000); QCOMPARE(media.state(), Phonon::PlayingState); -#endif } void tst_MediaObject::testPlayIllegalFile() -- cgit v0.12 From 7b70dd1d7f5f6819b1aa28647826e2137504de54 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 28 Jul 2010 14:05:52 +0100 Subject: Added support to Phonon MMF backend for playback of Qt resource files The backend accesses the resource file path via MediaSource::url(). A small patch to Phonon was required to enable this, because by default, Phonon passes a QIODevice, rather than the resource file path, to the backend. The backend uses this path to create a QResource object, through which the memory buffer into which the resource file has been read can be accessed. This buffer is wrapped in a Symbian 8-bit descriptor and passed to the OpenDesL() function of the appropriate MMF client utility API. Playback only works for certain file formats, as the Symbian MIME type recognizer does not always work. For example, playback of an audio WAV resource file works, while playback of an MP3 resource file does not. Task-number: QTBUG-6562 Reviewed-by: Justin McPherson --- src/3rdparty/phonon/mmf/abstractmediaplayer.cpp | 4 ++-- src/3rdparty/phonon/mmf/mediaobject.cpp | 10 +++++++--- src/3rdparty/phonon/phonon/mediasource.cpp | 4 ---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp index bca0891..3702560 100644 --- a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp +++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp @@ -258,13 +258,13 @@ void MMF::AbstractMediaPlayer::open() case MediaSource::Stream: { QResource *const resource = m_parent->resource(); - if (resource && resource->isValid()) { + if (resource) { m_buffer.Set(resource->data(), resource->size()); symbianErr = openDescriptor(m_buffer); if (KErrNone != symbianErr) errorMessage = tr("Error opening resource"); } else { - errorMessage = tr("Error opening source: resource not valid"); + errorMessage = tr("Error opening source: resource not opened"); } break; } diff --git a/src/3rdparty/phonon/mmf/mediaobject.cpp b/src/3rdparty/phonon/mmf/mediaobject.cpp index e16bdf3..b476535 100644 --- a/src/3rdparty/phonon/mmf/mediaobject.cpp +++ b/src/3rdparty/phonon/mmf/mediaobject.cpp @@ -315,10 +315,14 @@ void MMF::MediaObject::createPlayer(const MediaSource &source) if (fileName.startsWith(QLatin1String(":/")) || fileName.startsWith(QLatin1String("qrc://"))) { Q_ASSERT(!m_resource); m_resource = new QResource(fileName); - if (m_resource->isValid()) - mediaType = bufferMediaType(m_resource->data(), m_resource->size()); - else + if (m_resource->isValid()) { + if (m_resource->isCompressed()) + errorMessage = tr("Error opening source: resource is compressed"); + else + mediaType = bufferMediaType(m_resource->data(), m_resource->size()); + } else { errorMessage = tr("Error opening source: resource not valid"); + } } else { errorMessage = tr("Error opening source: type not supported"); } diff --git a/src/3rdparty/phonon/phonon/mediasource.cpp b/src/3rdparty/phonon/phonon/mediasource.cpp index 925ff32..8bde565 100644 --- a/src/3rdparty/phonon/phonon/mediasource.cpp +++ b/src/3rdparty/phonon/phonon/mediasource.cpp @@ -58,11 +58,7 @@ MediaSource::MediaSource(const QString &filename) d->type = Stream; d->ioDevice = new QFile(filename); d->setStream(new IODeviceStream(d->ioDevice, d->ioDevice)); -#ifdef Q_OS_SYMBIAN - // On Symbian, we need to access the resource buffer directly, rather than - // via QFile indirection d->url = QUrl::fromLocalFile(fileInfo.absoluteFilePath()); -#endif #else d->type = Invalid; #endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM -- cgit v0.12 From 7f4e72f438362da7b862ea682f36ec959070e1cb Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Mon, 2 Aug 2010 10:09:49 +0100 Subject: Enabled tst_mediaobject::testPlayFromResource on Symbian Task-number: QTBUG-6562 Reviewed-by: Justin McPherson --- tests/auto/mediaobject/tst_mediaobject.cpp | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/tests/auto/mediaobject/tst_mediaobject.cpp b/tests/auto/mediaobject/tst_mediaobject.cpp index 99a16db..613a086 100644 --- a/tests/auto/mediaobject/tst_mediaobject.cpp +++ b/tests/auto/mediaobject/tst_mediaobject.cpp @@ -124,8 +124,7 @@ class tst_MediaObject : public QObject void init(); void cleanup(); - void testPlayFromResourceDirect(); - void testPlayFromResourceFile(); + void testPlayFromResource(); void testPlayIllegalFile(); void initTestCase(); void checkForDefaults(); @@ -200,7 +199,7 @@ void tst_MediaObject::stateChanged(Phonon::State newstate, Phonon::State oldstat QWARN(QByteArray(QByteArray(QTest::toString(oldstate)) + " to " + QByteArray(QTest::toString(newstate)))); } -void tst_MediaObject::testPlayFromResourceDirect() +void tst_MediaObject::testPlayFromResource() { MediaObject media; media.setCurrentSource(Phonon::MediaSource(MEDIA_FILEPATH)); @@ -214,21 +213,6 @@ void tst_MediaObject::testPlayFromResourceDirect() QCOMPARE(media.state(), Phonon::PlayingState); } -void tst_MediaObject::testPlayFromResourceFile() -{ - QFile file(MEDIA_FILEPATH); - MediaObject media; - media.setCurrentSource(&file); - QVERIFY(media.state() != Phonon::ErrorState); - if (media.state() != Phonon::StoppedState) - QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000); - QCOMPARE(media.state(), Phonon::StoppedState); - media.play(); - if (media.state() != Phonon::PlayingState) - QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000); - QCOMPARE(media.state(), Phonon::PlayingState); -} - void tst_MediaObject::testPlayIllegalFile() { QString filename = QDir::tempPath() + QString("/test.wav"); -- cgit v0.12 From 1c7c6e2326b2f89bdf564cebe89ff6f95c3f17d7 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Mon, 2 Aug 2010 12:10:14 +0100 Subject: Fixed build break on Symbian versions earlier than S^3 The following overload was added in S^3: TInt RApaLsSession::RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const In order to allow the backend to compile against earlier versions of the platform, this patch calls the RecognizeData overload which taking the same arguments as above, plus a filename (for which KNullDesC is passed). Task-number: QTBUG-6562 Reviewed-by: trustme --- src/3rdparty/phonon/mmf/mediaobject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/phonon/mmf/mediaobject.cpp b/src/3rdparty/phonon/mmf/mediaobject.cpp index b476535..98326b8 100644 --- a/src/3rdparty/phonon/mmf/mediaobject.cpp +++ b/src/3rdparty/phonon/mmf/mediaobject.cpp @@ -158,7 +158,7 @@ MMF::MediaType MMF::MediaObject::bufferMediaType(const uchar *data, qint64 size) if (openRecognizer()) { TDataRecognitionResult recognizerResult; const TPtrC8 des(data, size); - const TInt err = m_recognizer.RecognizeData(des, recognizerResult); + const TInt err = m_recognizer.RecognizeData(KNullDesC, des, recognizerResult); if (KErrNone == err) { const TPtrC mimeType = recognizerResult.iDataType.Des(); result = Utils::mimeTypeToMediaType(mimeType); -- cgit v0.12 From 88917087b64a014a69d12946a162ab6588e733e6 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Tue, 3 Aug 2010 10:52:26 +1000 Subject: setUniformValue(QSize) was setting (w,w) not (w,h) Task-number: QTBUG-12591 Reviewed-by: Daniel Pope --- src/opengl/qglshaderprogram.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp index bbfc2d5..edbb635 100644 --- a/src/opengl/qglshaderprogram.cpp +++ b/src/opengl/qglshaderprogram.cpp @@ -1971,7 +1971,7 @@ void QGLShaderProgram::setUniformValue(int location, const QSize& size) Q_D(QGLShaderProgram); Q_UNUSED(d); if (location != -1) { - GLfloat values[4] = {size.width(), size.width()}; + GLfloat values[4] = {size.width(), size.height()}; glUniform2fv(location, 1, values); } } -- cgit v0.12 From bf5c25c4e7571475255e1d9de307913bee228d10 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Tue, 3 Aug 2010 11:23:37 +1000 Subject: Don't resolve GLSL extensions if no shaders If the GL server is 1.x, but the client is 2.x, then the qt_resolve_glsl_extensions() function was returning true because the functions existed client-side, when it should have returned false because the functionality didn't exist server-side. Task-number: QTBUG-12478 Reviewed-by: Sarah Smith --- src/opengl/qglextensions.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/opengl/qglextensions.cpp b/src/opengl/qglextensions.cpp index c091191..433ccae 100644 --- a/src/opengl/qglextensions.cpp +++ b/src/opengl/qglextensions.cpp @@ -233,6 +233,10 @@ bool qt_resolve_glsl_extensions(QGLContext *ctx) if (glCreateShader) return true; + // Must at least have the FragmentShader extension to continue. + if (!(QGLExtensions::glExtensions() & QGLExtensions::FragmentShader)) + return false; + glCreateShader = (_glCreateShader) ctx->getProcAddress(QLatin1String("glCreateShader")); if (glCreateShader) { glShaderSource = (_glShaderSource) ctx->getProcAddress(QLatin1String("glShaderSource")); -- cgit v0.12 From 3246586d5a98465c38c21f191e9714e821788958 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 3 Aug 2010 10:17:33 +0100 Subject: Fixed test regression on Mac Mac Phonon backend does not support opening a resource file via the MediaSource(const QString &) overload. The MediaSource(QIODevice *) overload must be used. The Symbian backend, on the other hand, requires the former overload to be used. Task-number: QTBUG-6562 Reviewed-by: trustme --- tests/auto/mediaobject/tst_mediaobject.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/auto/mediaobject/tst_mediaobject.cpp b/tests/auto/mediaobject/tst_mediaobject.cpp index 613a086..6367392 100644 --- a/tests/auto/mediaobject/tst_mediaobject.cpp +++ b/tests/auto/mediaobject/tst_mediaobject.cpp @@ -202,7 +202,12 @@ void tst_MediaObject::stateChanged(Phonon::State newstate, Phonon::State oldstat void tst_MediaObject::testPlayFromResource() { MediaObject media; +#ifdef Q_OS_SYMBIAN media.setCurrentSource(Phonon::MediaSource(MEDIA_FILEPATH)); +#else + QFile file(MEDIA_FILEPATH); + media.setCurrentSource(&file); +#endif QVERIFY(media.state() != Phonon::ErrorState); if (media.state() != Phonon::StoppedState) QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000); -- cgit v0.12 From c7b9ee03339774bd1cae7793d91dad7809be987a Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Tue, 3 Aug 2010 19:41:55 +0200 Subject: Add QDir::homePath() for the log file in QTestFileLogger in testlib on Symbian, both hardware and emulator. Task-number: QTBUG-12622 Reviewed-by: Shane Kearns --- src/testlib/qtestfilelogger.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/testlib/qtestfilelogger.cpp b/src/testlib/qtestfilelogger.cpp index a5cdc80..9d1ee6a 100644 --- a/src/testlib/qtestfilelogger.cpp +++ b/src/testlib/qtestfilelogger.cpp @@ -44,6 +44,8 @@ #include "QtTest/private/qtestlog_p.h" #include "QtTest/private/qtestresult_p.h" +#include + #include #include @@ -69,11 +71,19 @@ QTestFileLogger::~QTestFileLogger() void QTestFileLogger::init() { char filename[100]; + int index = 0; +#if defined(Q_OS_SYMBIAN) + QByteArray ba(QDir::toNativeSeparators(QString(QDir::homePath()+QDir::separator())).toUtf8()); + index = ba.length(); + QTest::qt_snprintf(filename, sizeof(filename), "%s%s.log", + ba.constData(), QTestResult::currentTestObjectName()); +#else QTest::qt_snprintf(filename, sizeof(filename), "%s.log", QTestResult::currentTestObjectName()); - - // Keep filenames simple - for (uint i = 0; i < sizeof(filename) && filename[i]; ++i) { +#endif + + // Keep filenames simple + for (uint i = index; i < sizeof(filename) && filename[i]; ++i) { char& c = filename[i]; if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '-' || c == '.')) { -- cgit v0.12 From 262bdce40f7bb38f000eff09ed546a08cfe74fa3 Mon Sep 17 00:00:00 2001 From: Justin McPherson Date: Wed, 4 Aug 2010 11:40:33 +1000 Subject: Phonon; Update CMakeLists.txt --- src/3rdparty/phonon/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/phonon/CMakeLists.txt b/src/3rdparty/phonon/CMakeLists.txt index e2054d3..fd6368c 100644 --- a/src/3rdparty/phonon/CMakeLists.txt +++ b/src/3rdparty/phonon/CMakeLists.txt @@ -94,7 +94,7 @@ if (CMAKE_COMPILER_IS_GNUCXX) set( __KDE_HAVE_GCC_VISIBILITY ${__KDE_HAVE_GCC_VISIBILITY} CACHE BOOL "GCC support for hidden visibility") # get the gcc version - exec_program(${CMAKE_C_COMPILER} ARGS --version OUTPUT_VARIABLE _gcc_version_info) + exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info) string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}") # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here: -- cgit v0.12 From 3378fe13f8d865463c79f34017a1d82e03cdf147 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 4 Aug 2010 16:32:00 +0200 Subject: Doc: Fixed typo in a shortcut string. Reviewed-by: Trust Me Task-number: QTBUG-12355 --- examples/phonon/qmusicplayer/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/phonon/qmusicplayer/mainwindow.cpp b/examples/phonon/qmusicplayer/mainwindow.cpp index 4778138..0e8e780 100644 --- a/examples/phonon/qmusicplayer/mainwindow.cpp +++ b/examples/phonon/qmusicplayer/mainwindow.cpp @@ -248,7 +248,7 @@ void MainWindow::aboutToFinish() void MainWindow::setupActions() { playAction = new QAction(style()->standardIcon(QStyle::SP_MediaPlay), tr("Play"), this); - playAction->setShortcut(tr("Crl+P")); + playAction->setShortcut(tr("Ctrl+P")); playAction->setDisabled(true); pauseAction = new QAction(style()->standardIcon(QStyle::SP_MediaPause), tr("Pause"), this); pauseAction->setShortcut(tr("Ctrl+A")); -- cgit v0.12 From 22e95ba2502f893d741b774c37fc8c7bdc4b05c5 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 4 Aug 2010 17:16:33 +0200 Subject: Improving text coordinate rounding in the OpenVG paint engine Commit b0bbabe728fedb8531fc2837403856bd5ed44e1b fixed text blurriness in the OpenVG paint engine by forcing the coordinates of the text items to integer coordinates (for unrotated, unscaled text). That was not yet enough. In addition to the coordinates, also the d->pathTransform in QVGPaintEngine can have a non-integer translation. This patch makes sure that the text item coordinate combined with the translation result in final integer coordinates. Since it is not possible to set an absolute translation of a QTransform (only relative is possible), first dx() is added to p.x(), then after rounding, it is again substracted. Sam for y, but with opposite prefix, since the y-axis in Qt and in transformation matrices are in opposite directions. The ceil stunt (which I cerated by trial and error) was replaced by floor(x + aliasedCoordinateDelta), which *exactly* what other paint engines do. Task-number: QTBUG-12330 Reviewed-by: Jason Barron --- src/openvg/qpaintengine_vg.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index e368c32..318e2b1 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -76,6 +76,9 @@ QT_BEGIN_NAMESPACE #if !defined(QVG_NO_DRAW_GLYPHS) +// use the same rounding as in qrasterizer.cpp (6 bit fixed point) +static const qreal aliasedCoordinateDelta = 0.5 - 0.015625; + Q_DECL_IMPORT extern int qt_defaultDpiX(); Q_DECL_IMPORT extern int qt_defaultDpiY(); @@ -3439,9 +3442,10 @@ void QVGPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) // Set the transformation to use for drawing the current glyphs. QTransform glyphTransform(d->pathTransform); if (d->transform.type() <= QTransform::TxTranslate) { - // Prevent blurriness of unscaled, unrotated text by using integer coordinates. - // Using ceil(x-0.5) instead of qRound() or int-cast, behave like other paint engines. - glyphTransform.translate(ceil(p.x() - 0.5), ceil(p.y() - 0.5)); + // Prevent blurriness of unscaled, unrotated text by forcing integer coordinates. + glyphTransform.translate( + floor(p.x() + glyphTransform.dx() + aliasedCoordinateDelta) - glyphTransform.dx(), + floor(p.y() - glyphTransform.dy() + aliasedCoordinateDelta) + glyphTransform.dy()); } else { glyphTransform.translate(p.x(), p.y()); } -- cgit v0.12 From 6d290ae51ee928aecb87be57326504aab8d7f177 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Thu, 5 Aug 2010 08:52:33 +0200 Subject: Doc: nesting up orphant pages --- doc/src/overviews.qdoc | 1 + doc/src/widgets-and-layouts/widgets.qdoc | 1 + doc/src/windows-and-dialogs/dialogs.qdoc | 2 ++ 3 files changed, 4 insertions(+) diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc index a1773a3..b72df98 100644 --- a/doc/src/overviews.qdoc +++ b/doc/src/overviews.qdoc @@ -29,6 +29,7 @@ \page overviews.html \title All Overviews and HOWTOs + \ingroup qt-basic-concepts \generatelist overviews */ diff --git a/doc/src/widgets-and-layouts/widgets.qdoc b/doc/src/widgets-and-layouts/widgets.qdoc index 18b8be1..f2475c2 100644 --- a/doc/src/widgets-and-layouts/widgets.qdoc +++ b/doc/src/widgets-and-layouts/widgets.qdoc @@ -29,6 +29,7 @@ \page widgets-and-layouts.html \title Widgets and Layouts \ingroup qt-gui-concepts + \ingroup qt-basic-concepts \brief The primary elements for designing user interfaces in Qt. \section1 Widgets diff --git a/doc/src/windows-and-dialogs/dialogs.qdoc b/doc/src/windows-and-dialogs/dialogs.qdoc index 6316dc9..74df2aa 100644 --- a/doc/src/windows-and-dialogs/dialogs.qdoc +++ b/doc/src/windows-and-dialogs/dialogs.qdoc @@ -27,11 +27,13 @@ /*! \group standard-dialogs + \ingroup qt-basic-concepts \title Standard Dialog Classes */ /*! \group dialog-classes + \ingroup qt-basic-concepts \title Classes for Building Dialogs */ -- cgit v0.12 From d524da81ee257a6bd67d32d0bc870280a7d5b8a4 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 5 Aug 2010 17:43:52 +1000 Subject: Fix link error when building Bearer application with Qt Mobility QtMobility uses the Qt header when compiling applications which link against Mobility's Bearer library. Therefore QNetworkConfiguration::bearerName() cannot be inline and refer to the new QNetworkConfiguration::bearerTypeName() function (which doesn't exist in Mobility) Task-number: QTBUG-12378 Reviewed-by: Rohan McGovern --- src/network/bearer/qnetworkconfiguration.cpp | 7 +++++++ src/network/bearer/qnetworkconfiguration.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/network/bearer/qnetworkconfiguration.cpp b/src/network/bearer/qnetworkconfiguration.cpp index 3190a30..60851ac 100644 --- a/src/network/bearer/qnetworkconfiguration.cpp +++ b/src/network/bearer/qnetworkconfiguration.cpp @@ -406,6 +406,13 @@ QList QNetworkConfiguration::children() const This function is deprecated. It is equivalent to calling bearerTypeName(), however bearerType() should be used in preference. */ +QString QNetworkConfiguration::bearerName() const +{ + // This function cannot be inline as it would break Qt Mobility. + // Qt Mobility uses the Qt header as well and since the Mobility Bearer library + // does not provide bearerTypeName() we cannot use an inline function. + return bearerTypeName(); +} /*! Returns the type of bearer used by this network configuration. diff --git a/src/network/bearer/qnetworkconfiguration.h b/src/network/bearer/qnetworkconfiguration.h index d9d36fd..e4f762a 100644 --- a/src/network/bearer/qnetworkconfiguration.h +++ b/src/network/bearer/qnetworkconfiguration.h @@ -120,7 +120,7 @@ public: Purpose purpose() const; // Required to maintain source compatibility with Qt Mobility. - QT_DEPRECATED inline QString bearerName() const { return bearerTypeName(); } + QT_DEPRECATED QString bearerName() const; BearerType bearerType() const; QString bearerTypeName() const; -- cgit v0.12 From a6937c7d8d2253c0f230254eaa2b9c8042972b30 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Thu, 5 Aug 2010 10:00:24 +0200 Subject: Doc: Adding text to GS page --- doc/src/getting-started/gettingstarted.qdoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/src/getting-started/gettingstarted.qdoc b/doc/src/getting-started/gettingstarted.qdoc index 145982b..e58305a 100644 --- a/doc/src/getting-started/gettingstarted.qdoc +++ b/doc/src/getting-started/gettingstarted.qdoc @@ -30,7 +30,13 @@ \group gettingStarted - Following is a list. + \section1 + Creating applications using Qt and QML is easy enough once you get started. + To get you started we have created two tutorials creating two similar applications, + but using diiferent approaches. One tutorial implements the user interface using + QML, while the other implements the whole application using traditional Qt. + + Please click on the links below to start the ride. \generatelist{related} */ -- cgit v0.12 From 9423ef31eb40e2bd0209621de1d1caf796ec7501 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 5 Aug 2010 11:24:10 +0200 Subject: Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( bbff6182e525fcf58dbc7426a1fbbf8f31588214 ) Changes in WebKit/qt since the last update: ++ b/WebKit/qt/ChangeLog 2010-08-05 David Leong Reviewed by Simon Hausmann. [Qt] Input mode states are not reset after entering a password field https://bugs.webkit.org/show_bug.cgi?id=43530 Input mode hints are not reset if clicking on password elements then clicking on
+ diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp index facee59..14f2362 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp @@ -251,30 +251,37 @@ void tst_QWebView::focusInputTypes() #else QVERIFY(webView->inputMethodHints() == Qt::ImhNone); #endif + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'password' field webView->fireMouseClick(QPoint(20, 60)); QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'tel' field webView->fireMouseClick(QPoint(20, 110)); QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'number' field webView->fireMouseClick(QPoint(20, 160)); QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'email' field webView->fireMouseClick(QPoint(20, 210)); QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'url' field webView->fireMouseClick(QPoint(20, 260)); QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'password' field webView->fireMouseClick(QPoint(20, 60)); QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'text' type webView->fireMouseClick(QPoint(20, 10)); @@ -284,6 +291,18 @@ void tst_QWebView::focusInputTypes() #else QVERIFY(webView->inputMethodHints() == Qt::ImhNone); #endif + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); + + // 'password' field + webView->fireMouseClick(QPoint(20, 60)); + QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); + + qWarning("clicking on text area"); + // 'text area' field + webView->fireMouseClick(QPoint(20, 320)); + QVERIFY(webView->inputMethodHints() == Qt::ImhNone); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); delete webView; -- cgit v0.12 From ab66b692dd2729f8b59410b65940934926e5ee04 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Thu, 5 Aug 2010 11:28:53 +0200 Subject: Doc: Editied version of QML GS --- doc/src/getting-started/gettingstartedqml.qdoc | 46 ++++++++++++-------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index 2bfb71c..93f6f88 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -32,27 +32,30 @@ \ingroup gettingStarted Welcome to the world of QML - the declarative UI language. In this Getting - Started guide, we will create a simple text editor application using QML. - After reading this guide, you should be ready to develop your own applications - using QML and Qt C++. + Started guide, we create a simple text editor application using QML. + After reading this guide, you should be ready to start developing your own + applications using QML and Qt C++. + \example tutorials/gettingStarted/gsQml + \section1 QML to Build User Interfaces - The application we are building is a simple text editor that will load, save, - and perform some text manipulation. This guide will consist of two parts. The - first part will involve designing the application layout and behaviors using - declarative language in QML. For the second part, file loading and saving will - be implemented using Qt C++. Using - \l {The Meta-Object System}{Qt's Meta-Object System}, we can expose C++ functions - as properties that QML elements can use. Utilizing QML and Qt C++, we can - efficiently decouple the interface logic from the application logic. + Here we are building is a simple text editor that con load, save, + and perform some text manipulation. This guide consists of two parts. The + first part involves designing the application layout and behaviors using + declarative language in QML. For the second part, file loading and saving is + implemented using Qt C++. + Using \l {The Meta-Object System}{Qt's Meta-Object System}, we can expose C++ + functions as properties that QML elements can use. By utilizing QML and Qt C++, + we can efficiently decouple the interface logic from the application logic. \image qml-texteditor5_editmenu.png - To run the QML example code, merely provide the included \l{QML Viewer}{qmlviewer} + To run the QML example code, we merely provide the included \l{QML Viewer}{qmlviewer} tool with the QML file as the argument. The C++ portion of this tutorial assumes that the reader possesses basic knowledge of Qt's compilation procedures. + \omit Tutorial chapters: \list 1 \o \l {Defining a Button and a Menu}{Defining a Button and a Menu} @@ -61,6 +64,7 @@ \o \l {Decorating the Text Editor}{Decorating the Text Editor} \o \l {Extending QML using Qt C++}{Extending QML using Qt C++} \endlist + \endomit \section1 Defining a Button and a Menu @@ -104,7 +108,7 @@ is called \c simplebutton. Anchors may bind to other items' anchors, allowing layout assignments simpler. - We shall save this code as \c SimpleButton.qml. Running qmlviewer with the file as the + We save this code as \c SimpleButton.qml. Running qmlviewer with the file as the argument will display the grey rectangle with a text label. \image qml-texteditor1_simplebutton.png @@ -407,13 +411,9 @@ \image qml-texteditor2_menubar.png - */ - - /*! - \page qml-textEditor3.html - \title Building a Text Editor + \section1 Building a Text Editor - \section1 Declaring a TextArea + \section2 Declaring a TextArea Our text editor is not a text editor if it didn't contain an editable text area. QML's \l {TextEdit}{TextEdit} element allows the declaration of a multi-line @@ -497,12 +497,8 @@ \image qml-texteditor3_texteditor.png - */ - - /*! - \page qml-textEditor4 - \title Decorating the Text Editor - \section1 Implementing a Drawer Interface + \section1 Decorating the Text Editor + \section2 Implementing a Drawer Interface Our text editor looks simple and we need to decorate it. Using QML, we can declare transitions and animate our text editor. Our menu bar is occupying one-third of the -- cgit v0.12 From 2faafdeda4c715a91297b56251773b21a0cac86b Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Thu, 5 Aug 2010 11:33:24 +0200 Subject: Doc: Images for QML GS --- doc/src/images/arrow.png | Bin 0 -> 583 bytes doc/src/images/qml-texteditor1_button.png | Bin 0 -> 1670 bytes doc/src/images/qml-texteditor1_editmenu.png | Bin 0 -> 7358 bytes doc/src/images/qml-texteditor1_filemenu.png | Bin 0 -> 7078 bytes doc/src/images/qml-texteditor1_simplebutton.png | Bin 0 -> 1055 bytes doc/src/images/qml-texteditor2_menubar.png | Bin 0 -> 7975 bytes doc/src/images/qml-texteditor3_textarea.png | Bin 0 -> 10417 bytes doc/src/images/qml-texteditor3_texteditor.png | Bin 0 -> 61353 bytes doc/src/images/qml-texteditor4_texteditor.png | Bin 0 -> 75600 bytes doc/src/images/qml-texteditor5_editmenu.png | Bin 0 -> 31834 bytes doc/src/images/qml-texteditor5_filemenu.png | Bin 0 -> 21688 bytes doc/src/images/qml-texteditor5_newfile.png | Bin 0 -> 92794 bytes 12 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/src/images/arrow.png create mode 100644 doc/src/images/qml-texteditor1_button.png create mode 100644 doc/src/images/qml-texteditor1_editmenu.png create mode 100644 doc/src/images/qml-texteditor1_filemenu.png create mode 100644 doc/src/images/qml-texteditor1_simplebutton.png create mode 100644 doc/src/images/qml-texteditor2_menubar.png create mode 100644 doc/src/images/qml-texteditor3_textarea.png create mode 100644 doc/src/images/qml-texteditor3_texteditor.png create mode 100644 doc/src/images/qml-texteditor4_texteditor.png create mode 100644 doc/src/images/qml-texteditor5_editmenu.png create mode 100644 doc/src/images/qml-texteditor5_filemenu.png create mode 100644 doc/src/images/qml-texteditor5_newfile.png diff --git a/doc/src/images/arrow.png b/doc/src/images/arrow.png new file mode 100644 index 0000000..14978c2 Binary files /dev/null and b/doc/src/images/arrow.png differ diff --git a/doc/src/images/qml-texteditor1_button.png b/doc/src/images/qml-texteditor1_button.png new file mode 100644 index 0000000..aab64bc Binary files /dev/null and b/doc/src/images/qml-texteditor1_button.png differ diff --git a/doc/src/images/qml-texteditor1_editmenu.png b/doc/src/images/qml-texteditor1_editmenu.png new file mode 100644 index 0000000..af8028b Binary files /dev/null and b/doc/src/images/qml-texteditor1_editmenu.png differ diff --git a/doc/src/images/qml-texteditor1_filemenu.png b/doc/src/images/qml-texteditor1_filemenu.png new file mode 100644 index 0000000..ccc008c Binary files /dev/null and b/doc/src/images/qml-texteditor1_filemenu.png differ diff --git a/doc/src/images/qml-texteditor1_simplebutton.png b/doc/src/images/qml-texteditor1_simplebutton.png new file mode 100644 index 0000000..21ce509 Binary files /dev/null and b/doc/src/images/qml-texteditor1_simplebutton.png differ diff --git a/doc/src/images/qml-texteditor2_menubar.png b/doc/src/images/qml-texteditor2_menubar.png new file mode 100644 index 0000000..691a833 Binary files /dev/null and b/doc/src/images/qml-texteditor2_menubar.png differ diff --git a/doc/src/images/qml-texteditor3_textarea.png b/doc/src/images/qml-texteditor3_textarea.png new file mode 100644 index 0000000..95abcd6 Binary files /dev/null and b/doc/src/images/qml-texteditor3_textarea.png differ diff --git a/doc/src/images/qml-texteditor3_texteditor.png b/doc/src/images/qml-texteditor3_texteditor.png new file mode 100644 index 0000000..bdf6957 Binary files /dev/null and b/doc/src/images/qml-texteditor3_texteditor.png differ diff --git a/doc/src/images/qml-texteditor4_texteditor.png b/doc/src/images/qml-texteditor4_texteditor.png new file mode 100644 index 0000000..85d216b Binary files /dev/null and b/doc/src/images/qml-texteditor4_texteditor.png differ diff --git a/doc/src/images/qml-texteditor5_editmenu.png b/doc/src/images/qml-texteditor5_editmenu.png new file mode 100644 index 0000000..7365690 Binary files /dev/null and b/doc/src/images/qml-texteditor5_editmenu.png differ diff --git a/doc/src/images/qml-texteditor5_filemenu.png b/doc/src/images/qml-texteditor5_filemenu.png new file mode 100644 index 0000000..7078022 Binary files /dev/null and b/doc/src/images/qml-texteditor5_filemenu.png differ diff --git a/doc/src/images/qml-texteditor5_newfile.png b/doc/src/images/qml-texteditor5_newfile.png new file mode 100644 index 0000000..e493941 Binary files /dev/null and b/doc/src/images/qml-texteditor5_newfile.png differ -- cgit v0.12 From f13ebf52a0d091c6c72c97d2a13311e1e7c4a5cf Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Thu, 5 Aug 2010 11:46:12 +0200 Subject: Doc: Adding GS QML example files --- .../tutorials/gettingStarted/gsQml/TextEditor.qml | 129 ++++++++++++ .../tutorials/gettingStarted/gsQml/core/Button.qml | 110 ++++++++++ .../gettingStarted/gsQml/core/EditMenu.qml | 111 ++++++++++ .../gettingStarted/gsQml/core/FileDialog.qml | 170 +++++++++++++++ .../gettingStarted/gsQml/core/FileMenu.qml | 232 +++++++++++++++++++++ .../gettingStarted/gsQml/core/MenuBar.qml | 148 +++++++++++++ .../gettingStarted/gsQml/core/TextArea.qml | 86 ++++++++ .../tutorials/gettingStarted/gsQml/core/qmldir | 48 +++++ .../gettingStarted/gsQml/filedialog/cppPlugins.pro | 17 ++ .../gsQml/filedialog/dialogPlugin.cpp | 57 +++++ .../gettingStarted/gsQml/filedialog/dialogPlugin.h | 57 +++++ .../gettingStarted/gsQml/filedialog/directory.cpp | 219 +++++++++++++++++++ .../gettingStarted/gsQml/filedialog/directory.h | 108 ++++++++++ .../gettingStarted/gsQml/filedialog/file.cpp | 57 +++++ .../gettingStarted/gsQml/filedialog/file.h | 67 ++++++ .../gettingStarted/gsQml/filedialog/qmldir | 1 + .../gettingStarted/gsQml/images/arrow.png | Bin 0 -> 583 bytes .../gettingStarted/gsQml/images/qt-logo.png | Bin 0 -> 5149 bytes .../gsQml/pics/qml-texteditor5_editmenu.png | Bin 0 -> 65123 bytes .../gsQml/pics/qml-texteditor5_filemenu.png | Bin 0 -> 21367 bytes .../gsQml/pics/qml-texteditor5_newfile.png | Bin 0 -> 76693 bytes 21 files changed, 1617 insertions(+) create mode 100644 examples/tutorials/gettingStarted/gsQml/TextEditor.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/TextArea.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/images/arrow.png create mode 100644 examples/tutorials/gettingStarted/gsQml/images/qt-logo.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png diff --git a/examples/tutorials/gettingStarted/gsQml/TextEditor.qml b/examples/tutorials/gettingStarted/gsQml/TextEditor.qml new file mode 100644 index 0000000..6ffdd6d --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/TextEditor.qml @@ -0,0 +1,129 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 +import "core" + +Rectangle{ + id: screen + width: 1000; height: 1000 + property int partition: height/3 + border.width: 1 + border.color: "#DCDCCC" + state: "DRAWER_CLOSED" + + //Item 1: MenuBar on the top portion of the screen + MenuBar{ + id:menuBar + height: screen.partition; width: screen.width + z:1 + } + //Item 2: The editable text area + TextArea{ + id:textArea + y:drawer.height + color: "#3F3F3F" + fontColor: "#DCDCCC" + height: partition*2; width:parent.width + } + //Item 3: The drawer handle + Rectangle{ + id:drawer + height:15; width: parent.width + border.color : "#6A6D6A" + border.width: 1 + z:1 + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.77; color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#6A6D6A" } + } + Image{ + id: arrowIcon + source: "images/arrow.png" + anchors.horizontalCenter: parent.horizontalCenter + + Behavior{NumberAnimation{property: "rotation";easing.type: Easing.OutExpo }} + } + + MouseArea{ + id: drawerMouseArea + anchors.fill:parent + hoverEnabled: true + onEntered: parent.border.color = Qt.lighter("#6A6D6A") + onExited: parent.border.color = "#6A6D6A" + onClicked:{ + if (screen.state == "DRAWER_CLOSED"){ + screen.state = "DRAWER_OPEN" + } + else if (screen.state == "DRAWER_OPEN"){ + screen.state = "DRAWER_CLOSED" + } + } + } + } + + states:[ + State{ + name: "DRAWER_OPEN" + PropertyChanges { target: menuBar; y: 0} + PropertyChanges { target: textArea; y: partition + drawer.height} + PropertyChanges { target: drawer; y: partition} + PropertyChanges { target: arrowIcon; rotation: 180} + }, + State{ + name: "DRAWER_CLOSED" + PropertyChanges { target: menuBar; y:-height; } + PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height} + PropertyChanges { target: drawer; y: 0} + PropertyChanges { target: arrowIcon; rotation: 0} + } + ] + + transitions: [ + Transition{ + to: "*" + NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo } + NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutExpo } + NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutExpo } + } + ] +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/Button.qml b/examples/tutorials/gettingStarted/gsQml/core/Button.qml new file mode 100644 index 0000000..28ae4ec --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/Button.qml @@ -0,0 +1,110 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +import Qt 4.7 + +Rectangle { + + //identifier of the item + id: button + + //these properties act as constants, useable outside this QML file + property int buttonHeight: 75 + property int buttonWidth: 150 + + //attaches to the Text element's text content + property string label + property color textColor: buttonLabel.color + + //the color highlight when the mouse hovers on the rectangle + property color onHoverColor: "lightsteelblue" + property color borderColor: "transparent" + + //buttonColor is set to the button's main color + property color buttonColor: "lightblue" + + property real labelSize: 14 + //set appearance properties + radius:6 + smooth: true + border.width: 2 + border.color: borderColor + width: buttonWidth; height: buttonHeight + + Text{ + id: buttonLabel + anchors.centerIn: parent + text: label //bind the text to the parent's text + color: "#DCDCCC" + font.pointSize: labelSize + } + + //buttonClick() is callable and a signal handler, onButtonClick is automatically created + signal buttonClick() + + //define the clickable area to be the whole rectangle + MouseArea{ + id: buttonMouseArea + anchors.fill: parent //stretch the area to the parent's dimension + onClicked: buttonClick() + + //if true, then onEntered and onExited called if mouse hovers in the mouse area + //if false, a button must be clicked to detect the mouse hover + hoverEnabled: true + + //display a border if the mouse hovers on the button mouse area + onEntered: parent.border.color = onHoverColor + //remove the border if the mouse exits the button mouse area + onExited: parent.border.color = borderColor + + } + + //change the color of the button when pressed + color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor + //animate the color whenever the color property changes + Behavior on color { ColorAnimation{ duration: 55} } + + //scale the button when pressed + scale: buttonMouseArea.pressed ? 1.1 : 1.00 + //Animate the scale property change + Behavior on scale { NumberAnimation{ duration: 55} } + +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml new file mode 100644 index 0000000..be9f6a1 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +import Qt 4.7 + +Rectangle{ + id: editMenu + height: 480; width:1000 + color: "powderblue" + property color buttonBorderColor: "#7A8182" + property color buttonFillColor: "#61BDCACD" + property string menuName:"Edit" + + gradient: Gradient{ + GradientStop { position: 0.0; color: "#6A7570" } + GradientStop { position: 1.0; color: Qt.darker("#6A7570") } + } + + Rectangle{ + id:actionContainer + color:"transparent" + anchors.centerIn: parent + width: parent.width; height: parent.height / 5 + Row{ + anchors.centerIn: parent + spacing: parent.width/9 + Button{ + id: loadButton + buttonColor: buttonFillColor + label: "Copy" + labelSize:16 + borderColor:buttonBorderColor + height: actionContainer.height + width: actionContainer.width/6 + onButtonClick:textArea.copy() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + + Button{ + id: saveButton + height: actionContainer.height + width: actionContainer.width/6 + buttonColor: buttonFillColor + label: "Paste" + borderColor:buttonBorderColor + labelSize:16 + onButtonClick:textArea.paste() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + Button{ + id: exitButton + label: "Select All" + height: actionContainer.height + width: actionContainer.width/6 + labelSize:16 + buttonColor: buttonFillColor + borderColor:buttonBorderColor + onButtonClick:textArea.selectAll() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + } + } + +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml new file mode 100644 index 0000000..9948a27 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle{ + id:dialog + height: 200 * partition; width: 200 + color: "transparent" + + signal selectChanged() + signal notifyRefresh() + onNotifyRefresh:dirView.model = directory.files + + property string selectedFile + property int selectedIndex: 0 + + Rectangle{ + id: dirBox + radius: 10 + anchors.centerIn:parent + height: parent.height -15; width: parent.width -30 + + Rectangle{ + id:header + height:parent.height*0.1 + width: parent.width + radius:3 + z:1 + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.98;color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#0e1B20" } + } + Text{ + height: header.height + anchors.centerIn: header + text: "files:" + color: "lightblue" + font.weight: Font.Light + font.italic: true + } + } + GridView{ + id:dirView + width:parent.width + height:parent.height*.9 + anchors.top: header.bottom + cellWidth: 100 + cellHeight: 75 +// highlight: Rectangle { width:cellWidth; height: cellHeight; color: "lightsteelblue" ;radius: 13} + model: directory.files + delegate: dirDelegate + clip: true + highlightMoveDuration:40 + } + + Component{ + id:dirDelegate + + Rectangle{ + id:file + color: "transparent" + width: GridView.view.cellWidth; height: GridView.view.cellHeight + + Text{ + id:fileName + width: parent.width + anchors.centerIn:parent + text: name + color: "#BDCACD" + font.weight: GridView.view.currentIndex == index ? Font.DemiBold : Font.Normal + font.pointSize: GridView.view.currentIndex == index ? 12 : 10 + elide: Text.ElideMiddle + horizontalAlignment: Text.AlignHCenter + } + Rectangle{ + id:selection + width:parent.width; height:parent.height + anchors.centerIn: parent + radius: 10 + smooth: true + scale: GridView.view.currentIndex == index ? 1 : 0.5 + opacity: GridView.view.currentIndex == index ? 1 : 0 + Text{ + id:overlay + width: parent.width + anchors.centerIn:parent + text: name + color: "#696167" + font.weight: Font.DemiBold + font.pointSize: 12 + smooth:true + elide: Text.ElideMiddle + horizontalAlignment: Text.AlignHCenter + } + Behavior on opacity{ NumberAnimation{ duration: 45} } + Behavior on scale { NumberAnimation{ duration: 45} } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) } + GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) } + } + border.color:"lightsteelblue" + border.width:1 + } + MouseArea{ + id:fileMouseArea + anchors.fill:parent + hoverEnabled: true + + onClicked:{ + GridView.view.currentIndex = index + selectedFile = directory.files[index].name + selectChanged() + } + onEntered:{ + fileName.color = "lightsteelblue" + fileName.font.weight = Font.DemiBold + } + onExited: { + fileName.font.weight = Font.Normal + fileName.color = "#BDCACD" + } + } + } + } + gradient: Gradient{ + GradientStop { position: 0.0; color: "#A5333333" } + GradientStop { position: 1.0; color: "#03333333" } + } + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml new file mode 100644 index 0000000..20d8fd6 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml @@ -0,0 +1,232 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle{ + id: fileMenu + height: 480; width:1000 + property color buttonBorderColor: "#7F8487" + property color buttonFillColor: "#8FBDCACD" + property string fileContent:directory.fileContent + + //the menuName is accessible from outside this QML file + property string menuName: "File" + + //used to divide the screen into parts. + property real partition: 1/3 + + color: "#6C646A" + gradient: Gradient{ + GradientStop { position: 0.0; color: "#6C646A" } + GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") } + } + + Directory{ + id:directory + filename: textInput.text + onDirectoryChanged:fileDialog.notifyRefresh() + } + + Rectangle{ + id:actionContainer + + //make this rectangle invisible + color:"transparent" + anchors.left: parent.left + + //the height is a good proportion that creates more space at the top of the column of buttons + width: fileMenu.width * partition; height: fileMenu.height + + Column{ + anchors.centerIn: parent + spacing: parent.height/32 + Button{ + id: saveButton + label: "Save" + borderColor: buttonBorderColor + buttonColor: buttonFillColor + width: actionContainer.width/ 1.3 + height:actionContainer.height / 8 + labelSize:24 + onButtonClick:{ + directory.fileContent = textArea.textContent + directory.filename = textInput.text + directory.saveFile() + } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + + } + Button{ + id: loadButton + width: actionContainer.width/ 1.3 + height:actionContainer.height/ 8 + buttonColor: buttonFillColor + borderColor: buttonBorderColor + label: "Load" + labelSize:24 + onButtonClick:{ + directory.filename = textInput.text + directory.loadFile() + textArea.textContent = directory.fileContent + } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + Button{ + id: newButton + width: actionContainer.width/ 1.3 + height:actionContainer.height/ 8 + buttonColor: buttonFillColor + borderColor: buttonBorderColor + label: "New" + labelSize:24 + onButtonClick:{ + textArea.textContent = "" + textInput.text = "" + } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + + } + Rectangle{ + id: space + width: actionContainer.width/ 1.3 + height:actionContainer.height / 16 + color:"transparent" + } + Button{ + id: exitButton + width: actionContainer.width/ 1.3 + height:actionContainer.height/ 8 + label: "Exit" + labelSize:24 + buttonColor: buttonFillColor + borderColor: buttonBorderColor + onButtonClick:Qt.quit() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + } + } + + Rectangle{ + id:dialogContainer + + width: 2*fileMenu.width * partition; height: fileMenu.height + anchors.right:parent.right + color:"transparent" + + Column { + anchors.centerIn: parent + spacing: parent.height /640 + FileDialog{ + id:fileDialog + height: 2*dialogContainer.height * partition; width: dialogContainer.width + onSelectChanged: textInput.text = selectedFile + } + + Rectangle{ + id:lowerPartition + height: dialogContainer.height * partition; width: dialogContainer.width + color: "transparent" + + Rectangle{ + id: nameField + gradient: Gradient{ + GradientStop { position: 0.0; color: "#806F6F6F" } + GradientStop { position: 1.0; color: "#136F6F6F" } + } + + radius: 10 + anchors {centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15} + height: parent.height-15; width: parent.width -20 + border {color:"#4A4A4A"; width:1} + + TextInput{ + id: textInput + z:2 + anchors {bottom: parent.bottom; topMargin: 10; horizontalCenter:parent.horizontalCenter} + width: parent.width - 10 + height: parent.height -10 + font.pointSize: 40 + color:"lightsteelblue" + focus:true + } + Text{ + id: textInstruction + anchors.centerIn:parent + text: "Select file name and press save or load" + font {pointSize: 11; weight:Font.Light; italic: true} + color: "lightblue" + z:2 + opacity: (textInput.text == "") ? 1: 0 + } + Text{ + id:fieldLabel + anchors {top: parent.top; left: parent.left} + text: " file name: " + font {pointSize: 11; weight: Font.Light; italic: true} + color: "lightblue" + z:2 + } + MouseArea{ + anchors.centerIn:parent + width: nameField.width; height: nameField.height + onClicked:{ + textInput.text = "" + textInput.focus = true + textInput.forceFocus() + } + } + } + } + } + } +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml new file mode 100644 index 0000000..c387f5f --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml @@ -0,0 +1,148 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + id: menuBar + width: 1000; height:300 + color:"transparent" + property color fileColor: "plum" + property color editColor: "powderblue" + + property real partition: 1/10 + + Column{ + anchors.fill: parent + //container for the header and the buttons + z: 1 + Rectangle{ + id: labelList + height:menuBar.height*partition + width: menuBar.width + color: "beige" + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.98;color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#0e1B20" } + } + Text{ + height: parent.height + anchors {right: labelRow.left ; verticalCenter: parent.bottom} + text: "menu: " + color: "lightblue" + font {weight: Font.Light; italic: true} + smooth: true + } + + //row displays its children in a vertical row + Row{ + id: labelRow + anchors.centerIn: parent + spacing:40 + Button{ + id: fileButton + height: 20; width: 50 + label: "File" + buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5) + scale: menuListView.currentIndex == 0? 1.25: 1 + labelSize: menuListView.currentIndex == 0? 16:12 + radius: 1 + smooth:true + //on a button click, change the list's currently selected item to FileMenu + onButtonClick: menuListView.currentIndex = 0 + gradient: Gradient{ + GradientStop { position: 0.0; color: fileColor } + GradientStop { position: 1.0; color: "#136F6F6F" } + } + } + Button{ + id: editButton + height: 20; width: 50 + buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9) + scale: menuListView.currentIndex == 1? 1.25: 1 + label: "Edit" + radius: 1 + labelSize: menuListView.currentIndex == 1? 16:12 + smooth:true + //on a button click, change the list's currently selected item to EditMenu + onButtonClick: menuListView.currentIndex = 1 + gradient: Gradient{ + GradientStop { position: 0.0; color: editColor } + GradientStop { position: 1.0; color: "#136F6F6F" } + } + } + } + } + + //list view will display a model according to a delegate + ListView{ + id: menuListView + width:menuBar.width; height: 9*menuBar.height*partition + + //the model contains the data + model: menuListModel + + //control the movement of the menu switching + snapMode: ListView.SnapOneItem + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + flickDeceleration: 5000 + highlightFollowsCurrentItem: true + highlightMoveDuration:240 + highlightRangeMode: ListView.StrictlyEnforceRange + } + } + //a list of visual items already have delegates handling their display + VisualItemModel{ + id: menuListModel + + FileMenu{ + id:fileMenu + width: menuListView.width; height: menuListView.height + color: fileColor + } + EditMenu{ + color: editColor + width: menuListView.width; height: menuListView.height + } + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml b/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml new file mode 100644 index 0000000..3953d9f --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle{ + id:textArea + + function paste(){ textEdit.paste()} + function copy() { textEdit.copy() } + function selectAll() { textEdit.selectAll() } + + width :400; height:400 + + property color fontColor: "white" + property alias textContent: textEdit.text + Flickable{ + id: flickArea + width: parent.width; height: parent.height + anchors.fill:parent + + boundsBehavior: Flickable.StopAtBounds + flickableDirection: Flickable.HorizontalFlick + interactive: true + //Will move the text Edit area to make the area visible when scrolled with keyboard strokes + function ensureVisible(r){ + if (contentX >= r.x) + contentX = r.x; + else if (contentX+width <= r.x+r.width) + contentX = r.x+r.width-width; + if (contentY >= r.y) + contentY = r.y; + else if (contentY+height <= r.y+r.height) + contentY = r.y+r.height-height; + } + + TextEdit{ + id: textEdit + anchors.fill:parent + width:parent.width; height:parent.height + color:fontColor + focus: true + wrapMode: TextEdit.Wrap + font.pointSize:10 + onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle) + selectByMouse: true + } + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/qmldir b/examples/tutorials/gettingStarted/gsQml/core/qmldir new file mode 100644 index 0000000..1beb5ed --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/qmldir @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +Button ./Button.qml +FileDialog ./FileDialog.qml +TextArea ./TextArea.qml +TextEditor ./TextEditor.qml +EditMenu ./EditMenu.qml +MenuBar ./MenuBar.qml + +plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro new file mode 100644 index 0000000..6247747 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro @@ -0,0 +1,17 @@ +TEMPLATE = lib +CONFIG += qt plugin +QT += declarative + +DESTDIR += ../plugins +OBJECTS_DIR = tmp +MOC_DIR = tmp + +TARGET = FileDialog + +HEADERS += directory.h \ + file.h \ + dialogPlugin.h + +SOURCES += directory.cpp \ + file.cpp \ + dialogPlugin.cpp diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp new file mode 100644 index 0000000..c0132c0 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "dialogPlugin.h" +#include "directory.h" +#include "file.h" +#include + +void DialogPlugin::registerTypes(const char *uri){ + + //register the class Directory into QML as a "Directory" element version 1.0 + qmlRegisterType(uri, 1, 0, "Directory"); + qmlRegisterType(uri,1,0,"File"); + + //qRegisterMetaType > ("QDeclarativeListProperty"); + +} + +//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs +Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h new file mode 100644 index 0000000..7f8d3ff --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DIALOGPLUGIN_H +#define DIALOGPLUGIN_H + +#include + +class DialogPlugin : public QDeclarativeExtensionPlugin +{ + Q_OBJECT + + public: + //registerTypes is inherited from QDeclarativeExtensionPlugin + void registerTypes(const char *uri); + +}; + +#endif + diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp new file mode 100644 index 0000000..b3e0256 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "directory.h" +#include + +/* +Directory constructor + +Initialize the saves directory and creates the file list +*/ +Directory::Directory(QObject *parent) : QObject(parent) +{ + + + m_dir.cd( QDir::currentPath()); + + //go to the saved directory. if not found, create save directory + m_saveDir = "saves"; + if (m_dir.cd(m_saveDir) == 0){ + m_dir.mkdir(m_saveDir); + m_dir.cd(m_saveDir); + } + m_filterList << "*.txt"; + + refresh(); +} + +/* +Directory::filesNumber +Return the number of Files +*/ +int Directory:: filesCount() const{ + return m_fileList.size(); +} + +/* +Function called to append data onto list property +*/ +void appendFiles(QDeclarativeListProperty * property, File * file){ + //Do nothing. can't add to a directory using this method +} + +/* +Function called to retrieve file in the list using an index +*/ +File* fileAt(QDeclarativeListProperty * property, int index){ + return static_cast< QList *>(property->data)->at(index); +} + +/* +Returns the number of files in the list +*/ +int filesSize(QDeclarativeListProperty * property){ + return static_cast< QList *>(property->data)->size(); +} + +/* +Function called to empty the list property contents +*/ +void clearFilesPtr(QDeclarativeListProperty *property){ + return static_cast< QList *>(property->data)->clear(); +} + +/* +Returns the list of files as a QDeclarativeListProperty. +*/ +QDeclarativeListProperty Directory::files(){ + + refresh(); +// return QDeclarativeListProperty(this,m_filePtrList); //not recommended in the docs + return QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); +} + +/* +Return te name of the currently selected file +*/ +QString Directory::filename() const{ + return currentFile.name(); +} + +/* +Return the file's content as a string. +*/ +QString Directory::fileContent() const{ + return m_fileContent; +} + +/* +Set the file name of the current file +*/ +void Directory::setFilename(const QString &str){ + if(str != currentFile.name()){ + currentFile.setName(str); + emit filenameChanged(); + } +} + +/* +Set the content of the file as a string +*/ +void Directory::setFileContent(const QString &str){ + if(str != m_fileContent){ + m_fileContent = str; + emit fileContentChanged(); + } +} + +/* +Called from QML to save the file using the filename and file content. +Saving makes sure that the file has a .txt extension. +*/ +void Directory::saveFile(){ + + if(currentFile.name().size() == 0){ + qWarning()<< "Empty filename. no save"; + return; + } + + QString extendedName = currentFile.name(); + if(!currentFile.name().endsWith(".txt")){ + extendedName.append(".txt"); + } + + QFile file( m_dir.filePath(extendedName) ); + if (file.open(QFile::WriteOnly | QFile::Truncate)){ + QTextStream outStream(&file); + outStream << m_fileContent; + } + file.close(); + refresh(); + emit directoryChanged(); +} + +/* +Load the contents of a file. +Only loads files with a .txt extension +*/ +void Directory::loadFile(){ + + m_fileContent.clear(); + QString extendedName = currentFile.name(); + if(!currentFile.name().endsWith(".txt")){ + extendedName.append(".txt"); + } + + QFile file( m_dir.filePath(extendedName) ); + if (file.open(QFile::ReadOnly )){ + QTextStream inStream(&file); + + QString line; + do{ + line = inStream.read(75); + m_fileContent.append(line); + }while (!line .isNull()); + } + file.close(); +} + +/* +Reloads the content of the files list. This is to ensure that the newly +created files are added onto the list. +*/ +void Directory::refresh(){ + m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name); + m_fileList.clear(); + + File * file; + for(int i = 0; i < m_dirFiles.size() ; i ++){ + + file = new File(); + + if(m_dirFiles.at(i).endsWith(".txt")){ + QString name = m_dirFiles.at(i); + file->setName( name.remove(".txt",Qt::CaseSensitive)); + } + else{ + file->setName(m_dirFiles.at(i)); + } + m_fileList.append(file); + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h new file mode 100644 index 0000000..bef1a93 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DIRECTORY_H +#define DIRECTORY_H + +#include "file.h" + +#include +#include +#include +#include +#include + +class Directory : public QObject{ + + Q_OBJECT + + //number of files in the directory + Q_PROPERTY(int filesCount READ filesCount) + + //list property containing file names as QString + Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) + + //file name of the text file to read/write + Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) + + //text content of the file + Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged) + + public: + Directory(QObject *parent = 0); + + //properties' read functions + int filesCount() const; + QString filename() const; + QString fileContent() const; + QDeclarativeListProperty files(); + + //properties' write functions + void setFilename(const QString &str); + void setFileContent(const QString &str); + + //accessible from QML + Q_INVOKABLE void saveFile(); + Q_INVOKABLE void loadFile(); + + signals: + void directoryChanged(); + void filenameChanged(); + void fileContentChanged(); + + private: + QDir m_dir; + QStringList m_dirFiles; + File currentFile; + QString m_saveDir; + QStringList m_filterList; + + //contains the file data in QString format + QString m_fileContent; + + //Registered to QML in a plugin. Accessible from QML as a property of Directory + QList m_fileList; + + //refresh content of the directory + void refresh(); +}; + + +#endif diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp new file mode 100644 index 0000000..39a7469 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "file.h" + +File::File(QObject *parent) : QObject(parent) +{ + m_name = ""; +} + +QString File::name() const{ + return m_name; +} +void File::setName(const QString &str){ + if(str != m_name){ + m_name = str; + emit nameChanged(); + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h new file mode 100644 index 0000000..e4ba429 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef FILE_H +#define FILE_H + + +#include +#include + +class File : public QObject{ + + Q_OBJECT + + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + + public: + File(QObject *parent = 0); + + QString name() const; + void setName(const QString &str); + + signals: + void nameChanged(); + + private: + QString m_name; +}; + +#endif \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir new file mode 100644 index 0000000..c2b27da --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir @@ -0,0 +1 @@ +plugin FileDialog plugins diff --git a/examples/tutorials/gettingStarted/gsQml/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/images/arrow.png new file mode 100644 index 0000000..14978c2 Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/images/arrow.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png b/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png new file mode 100644 index 0000000..14ddf2a Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png new file mode 100644 index 0000000..27feed5 Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png new file mode 100644 index 0000000..4d8f9f2 Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png new file mode 100644 index 0000000..680acfe Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png differ -- cgit v0.12 From d4dceca5dcd9252e09a421b65b318a7178049cd1 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 11:51:23 +0200 Subject: qdoc: Cleaned up the application option specification and use. The flags allowed on the command line are now: -online (default), -base, -assistant (same as -base), and -creator. If you don't specify one of these, you see a warning in the error output telling you that it didn't find an application flag and that it generated online docs by defualt. --- tools/qdoc3/config.h | 4 +- tools/qdoc3/ditaxmlgenerator.cpp | 1 - tools/qdoc3/htmlgenerator.cpp | 127 +++++++++++++++++++-------------------- tools/qdoc3/htmlgenerator.h | 9 ++- tools/qdoc3/main.cpp | 70 +++++++++------------ 5 files changed, 95 insertions(+), 116 deletions(-) diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h index 7665f1a..335a0d6 100644 --- a/tools/qdoc3/config.h +++ b/tools/qdoc3/config.h @@ -143,9 +143,7 @@ class Config #define CONFIG_MACRO "macro" #define CONFIG_NATURALLANGUAGE "naturallanguage" #define CONFIG_OBSOLETELINKS "obsoletelinks" -#define CONFIG_ONLINE "online" -#define CONFIG_OFFLINE "offline" -#define CONFIG_CREATOR "creator" +#define CONFIG_APPLICATION "application" #define CONFIG_OUTPUTDIR "outputdir" #define CONFIG_OUTPUTENCODING "outputencoding" #define CONFIG_OUTPUTLANGUAGE "outputlanguage" diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index 4789c67..816ab9f 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -440,7 +440,6 @@ void DitaXmlGenerator::initializeGenerator(const Config &config) DITAXMLGENERATOR_GENERATEMACREFS); project = config.getString(CONFIG_PROJECT); - offlineDocs = !config.getBool(CONFIG_ONLINE); projectDescription = config.getString(CONFIG_DESCRIPTION); if (projectDescription.isEmpty() && !project.isEmpty()) projectDescription = project + " Reference Documentation"; diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 723f516..b1a8336 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -219,9 +219,7 @@ HtmlGenerator::HtmlGenerator() inTableHeader(false), numTableRows(0), threeColumnEnumValueTable(true), - offlineDocs(false), - onlineDocs(false), - creatorDocs(true), + application(Online), funcLeftParen("\\S(\\()"), myTree(0), slow(false), @@ -290,11 +288,17 @@ void HtmlGenerator::initializeGenerator(const Config &config) project = config.getString(CONFIG_PROJECT); - onlineDocs = config.getBool(CONFIG_ONLINE); - - offlineDocs = config.getBool(CONFIG_OFFLINE); - - creatorDocs = config.getBool(CONFIG_CREATOR); + QString app = config.getString(CONFIG_APPLICATION); + if (app == "online") + application = Online; + else if (app == "creator") + application = Creator; + else if (app == "assistant") + application = Assistant; + else if (app == "base") + application = Assistant; + else + application = Online; projectDescription = config.getString(CONFIG_DESCRIPTION); if (projectDescription.isEmpty() && !project.isEmpty()) @@ -1811,9 +1815,8 @@ void HtmlGenerator::generateHeader(const QString& title, // Setting some additional style sheet related details depending on configuration (e.g. online/offline) - - if(onlineDocs==true) // onlineDocs is for the web - { + switch (application) { + case Online: // Browser spec styles out() << " \n"; - out() << "\n"; - } - else if (offlineDocs == true) - { - out() << "\n"; - } - else if (creatorDocs == true) - { - out() << "\n"; - } - else - { - out() << "\n"; - } + + switch (application) { + case Online: + out() << " \n"; + out() << " \n"; + out() << "\n"; + break; + case Assistant: + out() << "\n"; + break; + case Creator: + out() << "\n"; + break; + default: + out() << "\n"; + } out() << "\n"; } diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index d92c349..ec79896 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -95,6 +95,11 @@ class HtmlGenerator : public PageGenerator LastSinceType }; + enum Application { + Online, + Assistant, + Creator}; + public: HtmlGenerator(); ~HtmlGenerator(); @@ -294,9 +299,7 @@ class HtmlGenerator : public PageGenerator bool inTableHeader; int numTableRows; bool threeColumnEnumValueTable; - bool onlineDocs; - bool offlineDocs; - bool creatorDocs; + Application application; QString link; QStringList sectionNumber; QRegExp funcLeftParen; diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index 47a4b67..38b76a4 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -105,8 +105,7 @@ static bool showInternal = false; static bool obsoleteLinks = false; static QStringList defines; static QHash trees; -static QString application = "base"; //application -static bool applicationArg = 0; //if 1, then the argument is provided and it will override the qdocconf file +static QString appArg; // application /*! Find the Tree for language \a lang and return a pointer to it. @@ -194,36 +193,25 @@ static void processQdocconfFile(const QString &fileName) config.load(fileName); /* - Set the application to which qdoc will create the output. - The three applications are: - base: simple, basic html output. Best suited for offline viewing - creator: additional formatting. - online: full-featured online version with search and links to Qt topics - - Note: This will override the offline, online, creator defines. + Set the application to which qdoc will create the output. + The three applications are: + + base or assistant: simple, basic html output + for offline viewing in the Assistant application. + + creator: additional formatting for viewing in + the Creator application. + + online: full-featured online version with search and + links to Qt topics */ - if(applicationArg == false){ - - QString appConfig = config.getString(CONFIG_APPLICATION); - if (!appConfig.isEmpty()){ - application = appConfig; - } - } - if(application == "online"){ - config.setStringList(CONFIG_ONLINE, QStringList("true")); - config.setStringList(CONFIG_OFFLINE, QStringList("false")); - config.setStringList(CONFIG_CREATOR, QStringList("false")); - } - else if(application == "creator"){ - config.setStringList(CONFIG_ONLINE, QStringList("false")); - config.setStringList(CONFIG_OFFLINE, QStringList("true")); - config.setStringList(CONFIG_CREATOR, QStringList("false")); - } - else if(application == "base"){ - config.setStringList(CONFIG_ONLINE, QStringList("false")); - config.setStringList(CONFIG_OFFLINE, QStringList("false")); - config.setStringList(CONFIG_CREATOR, QStringList("true")); + if (appArg.isEmpty()) { + qDebug() << "Warning: Application flag not specified on" + << "command line. Options are -assistant, -creator," + << "and -online (default)."; + appArg = "online"; } + config.setStringList(CONFIG_APPLICATION, QStringList(appArg)); /* Add the defines to the configuration variables. @@ -496,18 +484,14 @@ int main(int argc, char **argv) else if (opt == "-obsoletelinks") { obsoleteLinks = true; } - else if (opt == "-base") { - application = "base"; - applicationArg = true; - } - else if (opt == "-creator") { - application = "creator"; - applicationArg = true; - } - else if (opt == "-online") { - application = "online"; - applicationArg = true; - } + else if (opt == "-base") + appArg = "base"; + else if (opt == "-assistant") + appArg = "assistant"; + else if (opt == "-creator") + appArg = "creator"; + else if (opt == "-online") + appArg = "online"; else { qdocFiles.append(opt); } @@ -522,7 +506,7 @@ int main(int argc, char **argv) Main loop. */ foreach (QString qf, qdocFiles) { - qDebug() << "PROCESSING:" << qf; + //qDebug() << "PROCESSING:" << qf; processQdocconfFile(qf); } -- cgit v0.12 From 7de8a0c487ce6a7f13c2028e93648807ef7d8e8b Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 12:09:01 +0200 Subject: qdoc: Removed three unused config variables. These no longer do anything in qdocconf files: online = false offline = false creator = true --- tools/qdoc3/test/assistant.qdocconf | 3 --- tools/qdoc3/test/designer.qdocconf | 3 --- tools/qdoc3/test/linguist.qdocconf | 3 --- tools/qdoc3/test/qdeclarative.qdocconf | 3 --- tools/qdoc3/test/qmake.qdocconf | 3 --- tools/qdoc3/test/qt-api-only.qdocconf | 3 --- tools/qdoc3/test/qt-build-docs.qdocconf | 3 --- tools/qdoc3/test/qt.qdocconf | 3 --- 8 files changed, 24 deletions(-) diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf index 119a676..8cf5722 100644 --- a/tools/qdoc3/test/assistant.qdocconf +++ b/tools/qdoc3/test/assistant.qdocconf @@ -7,9 +7,6 @@ include(qt-defines.qdocconf) project = Qt Assistant description = Qt Assistant Manual url = http://qt.nokia.com/doc/4.7 -online = false -offline = false -creator = true indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf index 0595417..b1f37dc 100644 --- a/tools/qdoc3/test/designer.qdocconf +++ b/tools/qdoc3/test/designer.qdocconf @@ -7,9 +7,6 @@ include(qt-defines.qdocconf) project = Qt Designer description = Qt Designer Manual url = http://qt.nokia.com/doc/4.7 -online = false -offline = false -creator = true indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf index 7dd57fb..26fb55c 100644 --- a/tools/qdoc3/test/linguist.qdocconf +++ b/tools/qdoc3/test/linguist.qdocconf @@ -7,9 +7,6 @@ include(qt-defines.qdocconf) project = Qt Linguist description = Qt Linguist Manual url = http://qt.nokia.com/doc/4.7 -online = false -offline = false -creator = true indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf index 7628519..80bca29 100644 --- a/tools/qdoc3/test/qdeclarative.qdocconf +++ b/tools/qdoc3/test/qdeclarative.qdocconf @@ -8,9 +8,6 @@ project = Qml description = Qml Reference Documentation url = http://qt.nokia.com/doc/4.7/ qmlonly = true -online = false -offline = false -creator = true edition.Console.modules = QtCore QtDBus QtNetwork QtScript QtSql QtXml \ QtXmlPatterns QtTest diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf index c666288..f069129 100644 --- a/tools/qdoc3/test/qmake.qdocconf +++ b/tools/qdoc3/test/qmake.qdocconf @@ -7,9 +7,6 @@ include(qt-defines.qdocconf) project = QMake description = QMake Manual url = http://qt.nokia.com/doc/4.7 -online = false -offline = false -creator = true indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index diff --git a/tools/qdoc3/test/qt-api-only.qdocconf b/tools/qdoc3/test/qt-api-only.qdocconf index 7387810..cdd7a7c 100644 --- a/tools/qdoc3/test/qt-api-only.qdocconf +++ b/tools/qdoc3/test/qt-api-only.qdocconf @@ -5,9 +5,6 @@ include(qt-build-docs.qdocconf) # qmake.qdocconf). url = ./ -online = false -offline = false -creator = true # Ensures that the documentation for the tools is not included in the generated # .qhp file. diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf index 415457e..bb47b57 100644 --- a/tools/qdoc3/test/qt-build-docs.qdocconf +++ b/tools/qdoc3/test/qt-build-docs.qdocconf @@ -7,9 +7,6 @@ include(qt-defines.qdocconf) project = Qt description = Qt Reference Documentation url = http://qt.nokia.com/doc/4.7 -online = false -offline = false -creator = true sourceencoding = UTF-8 outputencoding = UTF-8 diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf index a5e6578..f78bd38 100644 --- a/tools/qdoc3/test/qt.qdocconf +++ b/tools/qdoc3/test/qt.qdocconf @@ -9,9 +9,6 @@ versionsym = version = %VERSION% description = Qt Reference Documentation url = http://qt.nokia.com/doc/4.7 -online = true -offline = false -creator = false sourceencoding = UTF-8 outputencoding = UTF-8 -- cgit v0.12 From f3f95d4282ffbfb307e98d20a166ced4cc982061 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Tue, 22 Jun 2010 13:53:03 +0200 Subject: QXmlPatterns QAbstractDateTime: only parse 3 digits of time fraction the XML Schema dateTime type allows for an unlimited precision of fractial time values; this fails for 4 or more digits when creating a QTime. This patch takes only 3 digits of the time fraction into account, since we cannot store more in a QTime or QDateTime anyway. Reviewed-by: Olivier Goffart Task-number: QTBUG-11559 --- src/xmlpatterns/data/qabstractdatetime.cpp | 2 +- .../files/dateTime-with-microseconds.xml | 1 + .../files/dateTime-with-microseconds.xsd | 12 ++++++++++++ tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml create mode 100644 tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd diff --git a/src/xmlpatterns/data/qabstractdatetime.cpp b/src/xmlpatterns/data/qabstractdatetime.cpp index 6329fbe..a298698 100644 --- a/src/xmlpatterns/data/qabstractdatetime.cpp +++ b/src/xmlpatterns/data/qabstractdatetime.cpp @@ -163,7 +163,7 @@ QDateTime AbstractDateTime::create(AtomicValue::Ptr &errorMessage, QString msecondsStr(getSafeCapt(mseconds)); if(!msecondsStr.isEmpty()) - msecondsStr = msecondsStr.leftJustified(3, QLatin1Char('0')); + msecondsStr = msecondsStr.leftJustified(3, QLatin1Char('0'), true); const MSecondProperty msecs = msecondsStr.toInt(); if(hour == 24) diff --git a/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml new file mode 100644 index 0000000..b17739a --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml @@ -0,0 +1 @@ +2009-12-16T23:14:10.823218Z diff --git a/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd new file mode 100644 index 0000000..55557f1 --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp index 3517b5a..092e966 100644 --- a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp +++ b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp @@ -216,6 +216,12 @@ void tst_XmlPatternsValidator::xsdSupport_data() const << 0 << (QStringList() << QLatin1String("files/complex-type-including-anonymous-type.xsd")) << QString(); + + QTest::newRow("QTBUG-11559 A schema and instance with a dateTime containing microseconds") + << 0 + << (QStringList() << QLatin1String("files/dateTime-with-microseconds.xml") + << QLatin1String("files/dateTime-with-microseconds.xsd")) + << QString(); } QTEST_MAIN(tst_XmlPatternsValidator) -- cgit v0.12 From 6ca2fe678740f4830de2388e9b2928813561373c Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 5 Aug 2010 15:13:58 +0200 Subject: Designer: Prevent rich text from being copied into style sheets. Reviewed-by: Lasse Holmstedt Task-number: QTCREATORBUG-1952 --- tools/designer/src/lib/shared/stylesheeteditor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/designer/src/lib/shared/stylesheeteditor.cpp b/tools/designer/src/lib/shared/stylesheeteditor.cpp index b76d700..e809447 100644 --- a/tools/designer/src/lib/shared/stylesheeteditor.cpp +++ b/tools/designer/src/lib/shared/stylesheeteditor.cpp @@ -79,6 +79,7 @@ StyleSheetEditor::StyleSheetEditor(QWidget *parent) : QTextEdit(parent) { setTabStopWidth(fontMetrics().width(QLatin1Char(' '))*4); + setAcceptRichText(false); new CssHighlighter(document()); } -- cgit v0.12 From 13a0378151a5dc67d1dca91dffac573d051c37f8 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 5 Aug 2010 15:32:56 +0200 Subject: Updated WebKit to 413404da27312051bb3ff2cfd0f3fca42aa4b245 || || [Qt] Input mode states are not reset after entering a password field || --- src/3rdparty/webkit/.tag | 2 +- src/3rdparty/webkit/VERSION | 2 +- src/3rdparty/webkit/WebKit/qt/ChangeLog | 17 +++++++++++++++++ .../WebKit/qt/WebCoreSupport/EditorClientQt.cpp | 7 +++++++ .../qt/tests/qwebview/resources/input_types.html | 5 +++-- .../webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp | 19 +++++++++++++++++++ 6 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag index 718ea9d..fb2703e 100644 --- a/src/3rdparty/webkit/.tag +++ b/src/3rdparty/webkit/.tag @@ -1 +1 @@ -d6aa024c84f61d0602bef4eef84efaed7cfeefcc +413404da27312051bb3ff2cfd0f3fca42aa4b245 diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index 1826cb6..c256434 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 - d6aa024c84f61d0602bef4eef84efaed7cfeefcc + 413404da27312051bb3ff2cfd0f3fca42aa4b245 diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog index 94aca65..5083ba5 100644 --- a/src/3rdparty/webkit/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog @@ -1,3 +1,20 @@ +2010-08-05 David Leong + + Reviewed by Simon Hausmann. + + [Qt] Input mode states are not reset after entering a password field + https://bugs.webkit.org/show_bug.cgi?id=43530 + + Input mode hints are not reset if clicking on password elements then + clicking on
+ diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp index 5dc5e41..bd19578 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp @@ -264,30 +264,37 @@ void tst_QWebView::focusInputTypes() #else QVERIFY(webView->inputMethodHints() == Qt::ImhNone); #endif + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'password' field webView->fireMouseClick(QPoint(20, 60)); QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'tel' field webView->fireMouseClick(QPoint(20, 110)); QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'number' field webView->fireMouseClick(QPoint(20, 160)); QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'email' field webView->fireMouseClick(QPoint(20, 210)); QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'url' field webView->fireMouseClick(QPoint(20, 260)); QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'password' field webView->fireMouseClick(QPoint(20, 60)); QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); // 'text' type webView->fireMouseClick(QPoint(20, 10)); @@ -297,6 +304,18 @@ void tst_QWebView::focusInputTypes() #else QVERIFY(webView->inputMethodHints() == Qt::ImhNone); #endif + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); + + // 'password' field + webView->fireMouseClick(QPoint(20, 60)); + QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); + + qWarning("clicking on text area"); + // 'text area' field + webView->fireMouseClick(QPoint(20, 320)); + QVERIFY(webView->inputMethodHints() == Qt::ImhNone); + QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled)); delete webView; -- cgit v0.12 From c1ce7b4b01c1049c61881bb7d701ed68b92a401b Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 14:56:50 +0200 Subject: qdoc: added application flags in doc.pri and fixed QTBUG-12388 Task-nr: QTBUG-12388 --- doc/doc.pri | 4 ++-- doc/src/index.qdoc | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/doc.pri b/doc/doc.pri index f748f3d..e1efa21 100644 --- a/doc/doc.pri +++ b/doc/doc.pri @@ -19,8 +19,8 @@ $$unixstyle { QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && set QT_BUILD_TREE=$$QT_BUILD_TREE&& set QT_SOURCE_TREE=$$QT_SOURCE_TREE&& $$QT_BUILD_TREE/bin/qdoc3.exe $$DOCS_GENERATION_DEFINES QDOC = $$replace(QDOC, "/", "\\") } -ADP_DOCS_QDOCCONF_FILE = qt-build-docs.qdocconf -QT_DOCUMENTATION = ($$QDOC qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \ +ADP_DOCS_QDOCCONF_FILE = -online qt-build-docs.qdocconf +QT_DOCUMENTATION = ($$QDOC -assistant qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \ linguist.qdocconf qmake.qdocconf qdeclarative.qdocconf) && \ (cd $$QT_BUILD_TREE && \ $$GENERATOR doc-build/html-qt/qt.qhp -o doc/qch/qt.qch && \ diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index 7efd1e6..6e37e89 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -94,12 +94,14 @@
-- cgit v0.12 From 24c3948e53d7239049f6c2ad43add458bee48902 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 14:59:18 +0200 Subject: qdoc: added application flags in doc.pri and fixed QTBUG-12388 Task-nr: QTBUG-12388 --- doc/src/index.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index 6e37e89..fe9b7d4 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -101,7 +101,7 @@
  • Qt qmake
  • Qt Simulator (online)
  • Eclipse Integration (online)
  • -
  • Add-On Products and Services (online)
  • +
  • Add-On Products and Services (online)
  • Virtual Framebuffer
  • -- cgit v0.12 From 205b1b20650839114d319fa381cc500141cdd54e Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 15:17:20 +0200 Subject: qdoc: added application flags in doc.pri and fixed QTBUG-12388 Task-nr: QTBUG-12388 --- doc/src/index.qdoc | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index fe9b7d4..f890aa6 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -109,4 +109,5 @@ \endraw + */ -- cgit v0.12 From 951a4721c58edc0f9cad262cf3679e75fe4d62e6 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 15:46:53 +0200 Subject: qdoc: added application flags in doc.pri and fixed QTBUG-12388 Task-nr: QTBUG-12388 --- doc/src/index.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index f890aa6..6d53abf 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -101,7 +101,7 @@
  • Qt qmake
  • Qt Simulator (online)
  • Eclipse Integration (online)
  • -
  • Add-On Products and Services (online)
  • +
  • Add-On Products and Services (online)
  • Virtual Framebuffer
  • -- cgit v0.12 From b55895cf6164fd479ce6728d6c72e1c4fffd2491 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 5 Aug 2010 15:52:05 +0200 Subject: qdoc: added application flags in doc.pri and fixed QTBUG-12388 Task-nr: QTBUG-12388 --- doc/src/index.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index 6d53abf..f890aa6 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -101,7 +101,7 @@
  • Qt qmake
  • Qt Simulator (online)
  • Eclipse Integration (online)
  • -
  • Add-On Products and Services (online)
  • +
  • Add-On Products and Services (online)
  • Virtual Framebuffer
  • -- cgit v0.12 From cb086eb5340c4c41efaf45373aa05c37e8aa974a Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 5 Aug 2010 17:19:48 +0200 Subject: Doc: Fixed qdoc warnings. Reviewed-by: Trust Me --- doc/src/declarative/declarativeui.qdoc | 2 +- doc/src/declarative/qtdeclarative.qdoc | 2 +- doc/src/examples/qml-examples.qdoc | 2 +- doc/src/examples/simpletreemodel.qdoc | 4 +- doc/src/examples/spinboxdelegate.qdoc | 4 +- doc/src/external-resources.qdoc | 2 +- doc/src/index.qdoc | 10 ++--- doc/src/modules.qdoc | 1 - doc/src/overviews.qdoc | 3 +- doc/src/qt-webpages.qdoc | 5 +++ src/dbus/qdbusconnection.cpp | 4 ++ src/declarative/qml/qdeclarativeimageprovider.cpp | 8 ++-- src/declarative/util/qdeclarativeanimation.cpp | 2 +- src/declarative/util/qdeclarativetransition.cpp | 4 +- src/gui/graphicsview/qgraphicsitem.cpp | 18 +++++++++ src/gui/graphicsview/qgraphicstransform.cpp | 21 +++++++++++ src/gui/s60framework/qs60mainapplication.cpp | 6 +++ src/gui/s60framework/qs60mainappui.cpp | 45 +++++++++++++++++++++++ src/network/access/qnetworkrequest.cpp | 20 +++++----- tools/qdoc3/test/qt-html-templates.qdocconf | 7 +--- 20 files changed, 130 insertions(+), 40 deletions(-) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 217e372..42189c0 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -27,7 +27,7 @@ /*! \title Qt Quick -\page declarativeui.html +\page qtquick.html \brief Qt Quick provides a declarative framework for building highly dynamic, custom user interfaces. diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc index 413eb59..b4f4c83 100644 --- a/doc/src/declarative/qtdeclarative.qdoc +++ b/doc/src/declarative/qtdeclarative.qdoc @@ -48,7 +48,7 @@ \endcode For more information on the Qt Declarative module, see the - \l{declarativeui.html}{Qt Quick} documentation. + \l{Qt Quick} documentation. */ diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc index 8d3aa25..0d191c9 100644 --- a/doc/src/examples/qml-examples.qdoc +++ b/doc/src/examples/qml-examples.qdoc @@ -562,7 +562,7 @@ \example declarative/ui-components/dialcontrol This example shows how to create a dial-type control. It combines - \l Image elements with \l Rotation transforms and \l SpringAnimatino behaviors + \l Image elements with \l Rotation transforms and \l SpringAnimation behaviors to produce an interactive speedometer-type dial. \image qml-dialcontrol-example.png diff --git a/doc/src/examples/simpletreemodel.qdoc b/doc/src/examples/simpletreemodel.qdoc index c34f4af..790d5fa 100644 --- a/doc/src/examples/simpletreemodel.qdoc +++ b/doc/src/examples/simpletreemodel.qdoc @@ -32,7 +32,7 @@ The Simple Tree Model example shows how to create a basic, read-only hierarchical model to use with Qt's standard view classes. For a description of simple non-hierarchical list and table models, see the - \l{model-view-programming.html}{Model/View Programming} overview. + \l{Model/View Programming} overview. \image simpletreemodel-example.png @@ -40,7 +40,7 @@ information in a data source, using an abstract model of the data to simplify and standardize the way it is accessed. Simple models represent data as a table of items, and allow views to access this data via an - \l{model-view-model.html}{index-based} system. More generally, models can + \l{Model/View Programming#Models}{index-based} system. More generally, models can be used to represent data in the form of a tree structure by allowing each item to act as a parent to a table of child items. diff --git a/doc/src/examples/spinboxdelegate.qdoc b/doc/src/examples/spinboxdelegate.qdoc index 49e3295..48e4bfa 100644 --- a/doc/src/examples/spinboxdelegate.qdoc +++ b/doc/src/examples/spinboxdelegate.qdoc @@ -42,8 +42,8 @@ \image spinboxdelegate-example.png This concepts behind this example are covered in the - \l{model-view-delegate.html}{Delegate Classes} chapter of the - \l{model-view-programming.html}{Model/View Programming} overview. + \l{Model/View Programming#Delegate Classes}{Delegate Classes} chapter of the + \l{Model/View Programming} overview. \section1 SpinBoxDelegate Class Definition diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc index 5c6108a..e901124c 100644 --- a/doc/src/external-resources.qdoc +++ b/doc/src/external-resources.qdoc @@ -416,7 +416,7 @@ /*! \externalpage http://opensource.org/licenses/bsd-license.php - \title BSD License + \title New and Modified BSD Licenses */ /*! diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index 7efd1e6..499667c 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -65,7 +65,6 @@ @@ -94,12 +92,12 @@
    diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc index a81bfb2..c51fcad 100644 --- a/doc/src/modules.qdoc +++ b/doc/src/modules.qdoc @@ -116,7 +116,6 @@ /*! \module QtMultimedia - \page qtmultimedia-module.html \title QtMultimedia Module \contentspage All Modules \previouspage QtCore diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc index a1773a3..c7b88cf 100644 --- a/doc/src/overviews.qdoc +++ b/doc/src/overviews.qdoc @@ -55,8 +55,7 @@ These pages are about Qt's traditional set of GUI components for building both native look ^ feel and custom UI's for the desktop - environment. Use \l {declarativeui.html} {Qt Quick} for building - UI's for mobile devices. + environment. Use \l{Qt Quick} for building UI's for mobile devices. \generatelist {related} */ diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc index 0c61285..5d9b41b 100644 --- a/doc/src/qt-webpages.qdoc +++ b/doc/src/qt-webpages.qdoc @@ -234,3 +234,8 @@ \externalpage http://qt.gitorious.org \title Public Qt Repository */ + +/*! + \externalpage http://get.qt.nokia.com/nokiasmartinstaller/ + \title Smart Installer +*/ diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 5cbb8ca..87ee3d1 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -227,6 +227,10 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP \value ExportChildObjects export this object's child objects + \value ExportScriptableInvokables export this object's scriptable methods + \value ExportNonScriptableInvokables export this object's non-scriptable methods + \value ExportAllInvokables export all of this object's methods + \sa registerObject(), QDBusAbstractAdaptor, {usingadaptors.html}{Using adaptors} */ diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp index 241df87..4743a1b 100644 --- a/src/declarative/qml/qdeclarativeimageprovider.cpp +++ b/src/declarative/qml/qdeclarativeimageprovider.cpp @@ -59,13 +59,13 @@ public: \list \o Loaded using QPixmaps rather than actual image files - \o Loaded asynchronously in a separate thread, if imageType() is \l ImageType::Image + \o Loaded asynchronously in a separate thread, if imageType() is \l{QDeclarativeImageProvider::ImageType}{ImageType::Image} \endlist To specify that an image should be loaded by an image provider, use the \bold {"image:"} scheme for the URL source of the image, followed by the identifiers of the image provider and the requested image. For example: - + \qml Image { source: "image://myimageprovider/image.png" } \endqml @@ -83,7 +83,7 @@ public: and "red", respectively: \snippet examples/declarative/cppextensions/imageprovider/imageprovider-example.qml 0 - + When these images are loaded by QML, it looks for a matching image provider and calls its requestImage() or requestPixmap() method (depending on its imageType()) to load the image. The method is called with the \c id @@ -136,7 +136,7 @@ public: main thread. In this case, if \l {Image::}{asynchronous} is set to \c true, the value is ignored and the image is loaded synchronously. - + \sa QDeclarativeEngine::addImageProvider() */ diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index 6a9cf95..cda7623 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -1323,7 +1323,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) \snippet doc/src/snippets/declarative/rotationanimation.qml 0 - Notice the RotationAnimation did not need to set a \l {RotationAnimation::}{target} + Notice the RotationAnimation did not need to set a \l target value. As a convenience, when used in a transition, RotationAnimation will rotate all properties named "rotation" or "angle". You can override this by providing your own properties via \l {PropertyAnimation::properties}{properties} or diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp index 582191b..8de6b23 100644 --- a/src/declarative/util/qdeclarativetransition.cpp +++ b/src/declarative/util/qdeclarativetransition.cpp @@ -60,10 +60,10 @@ QT_BEGIN_NAMESPACE For example, the following \l Rectangle has two states: the default state, and an added "moved" state. In the "moved state, the rectangle's position changes - to (50, 50). The added \l Transition specifies that when the rectangle + to (50, 50). The added Transition specifies that when the rectangle changes between the default and the "moved" state, any changes to the \c x and \c y properties should be animated, using an \c Easing.InOutQuad. - + \snippet doc/src/snippets/declarative/transition.qml 0 To define multiple transitions, specify \l Item::transitions as a list: diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 1626d83..2856699 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -7965,6 +7965,24 @@ void QGraphicsItemPrivate::resetHeight() */ /*! + \property QGraphicsObject::children + \since 4.7 + \internal +*/ + +/*! + \property QGraphicsObject::width + \since 4.7 + \internal +*/ + +/*! + \property QGraphicsObject::height + \since 4.7 + \internal +*/ + +/*! \class QAbstractGraphicsShapeItem \brief The QAbstractGraphicsShapeItem class provides a common base for all path items. diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp index 986bee6..27dceb8 100644 --- a/src/gui/graphicsview/qgraphicstransform.cpp +++ b/src/gui/graphicsview/qgraphicstransform.cpp @@ -565,6 +565,27 @@ void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const \sa QGraphicsRotation::axis */ +/*! + \fn QGraphicsScale::xScaleChanged() + \since 4.7 + + This signal is emitted whenever the \l xScale property changes. +*/ + +/*! + \fn QGraphicsScale::yScaleChanged() + \since 4.7 + + This signal is emitted whenever the \l yScale property changes. +*/ + +/*! + \fn QGraphicsScale::zScaleChanged() + \since 4.7 + + This signal is emitted whenever the \l zScale property changes. +*/ + #include "moc_qgraphicstransform.cpp" QT_END_NAMESPACE diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp index 0f9367e..185c06f 100644 --- a/src/gui/s60framework/qs60mainapplication.cpp +++ b/src/gui/s60framework/qs60mainapplication.cpp @@ -141,11 +141,17 @@ void QS60MainApplication::PreDocConstructL() QS60MainApplicationBase::PreDocConstructL(); } +/*! + \internal +*/ CDictionaryStore *QS60MainApplication::OpenIniFileLC(RFs &aFs) const { return QS60MainApplicationBase::OpenIniFileLC(aFs); } +/*! + \internal +*/ void QS60MainApplication::NewAppServerL(CApaAppServer *&aAppServer) { QS60MainApplicationBase::NewAppServerL(aAppServer); diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp index 40c2d03..72cf577 100644 --- a/src/gui/s60framework/qs60mainappui.cpp +++ b/src/gui/s60framework/qs60mainappui.cpp @@ -281,76 +281,121 @@ void QS60MainAppUi::RestoreMenuL(CCoeControl *menuWindow, TInt resourceId, TMenu } } +/*! + \internal +*/ void QS60MainAppUi::Exit() { QS60MainAppUiBase::Exit(); } +/*! + \internal +*/ void QS60MainAppUi::SetFadedL(TBool aFaded) { QS60MainAppUiBase::SetFadedL(aFaded); } +/*! + \internal +*/ TRect QS60MainAppUi::ApplicationRect() const { return QS60MainAppUiBase::ApplicationRect(); } +/*! + \internal +*/ void QS60MainAppUi::HandleScreenDeviceChangedL() { QS60MainAppUiBase::HandleScreenDeviceChangedL(); } +/*! + \internal +*/ void QS60MainAppUi::HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent) { QS60MainAppUiBase::HandleApplicationSpecificEventL(aType, aEvent); } +/*! + \internal +*/ TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(TTypeUid aId) { return QS60MainAppUiBase::MopSupplyObject(aId); } +/*! + \internal +*/ void QS60MainAppUi::ProcessCommandL(TInt aCommand) { QS60MainAppUiBase::ProcessCommandL(aCommand); } +/*! + \internal +*/ TErrorHandlerResponse QS60MainAppUi::HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText) { return QS60MainAppUiBase::HandleError(aError, aExtErr, aErrorText, aContextText); } +/*! + \internal +*/ void QS60MainAppUi::HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId) { QS60MainAppUiBase::HandleViewDeactivation(aViewIdToBeDeactivated, aNewlyActivatedViewId); } +/*! + \internal +*/ void QS60MainAppUi::PrepareToExit() { QS60MainAppUiBase::PrepareToExit(); } +/*! + \internal +*/ void QS60MainAppUi::HandleTouchPaneSizeChange() { QS60MainAppUiBase::HandleTouchPaneSizeChange(); } +/*! + \internal +*/ void QS60MainAppUi::HandleSystemEventL(const TWsEvent &aEvent) { QS60MainAppUiBase::HandleSystemEventL(aEvent); } +/*! + \internal +*/ void QS60MainAppUi::Reserved_MtsmPosition() { QS60MainAppUiBase::Reserved_MtsmPosition(); } +/*! + \internal +*/ void QS60MainAppUi::Reserved_MtsmObject() { QS60MainAppUiBase::Reserved_MtsmObject(); } +/*! + \internal +*/ void QS60MainAppUi::HandleForegroundEventL(TBool aForeground) { QS60MainAppUiBase::HandleForegroundEventL(aForeground); diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index fa592c2..8710cb6 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -174,12 +174,12 @@ QT_BEGIN_NAMESPACE When using this flag with sequential upload data, the ContentLengthHeader header must be set. - \value HttpPipeliningAllowedAttribute + \value HttpPipeliningAllowedAttribute Requests only, type: QVariant::Bool (default: false) Indicates whether the QNetworkAccessManager code is allowed to use HTTP pipelining with this request. - \value HttpPipeliningWasUsedAttribute + \value HttpPipeliningWasUsedAttribute Replies only, type: QVariant::Bool Indicates whether the HTTP pipelining was used for receiving this reply. @@ -200,9 +200,9 @@ QT_BEGIN_NAMESPACE See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information. - \since 4.7 + (This value was introduced in 4.7.) - \value CookieSaveControlAttribute + \value CookieSaveControlAttribute Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic) Indicates whether to save 'Cookie' headers received from the server in reply to the request. @@ -213,9 +213,9 @@ QT_BEGIN_NAMESPACE See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information. - \since 4.7 + (This value was introduced in 4.7.) - \value AuthenticationReuseAttribute + \value AuthenticationReuseAttribute Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic) Indicates whether to use cached authorization credentials in the request, if available. If this is set to QNetworkRequest::Manual and the authentication @@ -228,15 +228,13 @@ QT_BEGIN_NAMESPACE See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information. - \since 4.7 + (This value was introduced in 4.7.) \omitvalue MaximumDownloadBufferSizeAttribute - \since 4.7 - \internal + (This value was introduced in 4.7.) \omitvalue DownloadBufferAttribute - \since 4.7 - \internal + (This value was introduced in 4.7.) \value User Special type. Additional information can be passed in diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index cf15628..089b11f 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -4,9 +4,6 @@ HTML.stylesheets = style/style.css \ style/style_ie8.css \ style/style_ie6.css -HTML.creatorpostheader = "**\n" -HTML.creatorpostpostheader = "***\n" - HTML.postheader = "
    \n" \ "
    \n" \ "
    \n" \ @@ -48,7 +45,7 @@ HTML.postheader = "
    \n" \ "
  • Qt Topics \n" \ "
      \n" \ "
    • Basic Qt architecture
    • \n" \ - "
    • Device UI's & Qt Quick
    • \n" \ + "
    • Device UI's & Qt Quick
    • \n" \ "
    • Desktop UI components
    • \n" \ "
    • Platform-specific info
    • \n" \ "
    • How-To's and Best Practices
    • \n" \ @@ -100,7 +97,7 @@ HTML.postheader = "
      \n" \ "
      \n" \ " \n" \ -- cgit v0.12 From 4bc408c6faade543c76fa0c7b8841ce72c239688 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Thu, 5 Aug 2010 17:24:31 +0200 Subject: Adding a description for the Spectrum Analyzer demo. For QTBUG-12180 Reviewed by: David Boddie --- doc/src/demos/spectrum.qdoc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 doc/src/demos/spectrum.qdoc diff --git a/doc/src/demos/spectrum.qdoc b/doc/src/demos/spectrum.qdoc new file mode 100644 index 0000000..944f944 --- /dev/null +++ b/doc/src/demos/spectrum.qdoc @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in a +** written agreement between you and Nokia. +** +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of this +** file. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example demos/spectrum + \title Spectrum Analyzer + +This application is a demo which uses the QtMultimedia APIs to capture and +play back PCM audio. While either recording or playback is ongoing, the +application performs real-time level and frequency spectrum analysis, +displaying the results in its main window. + + +*/ + -- cgit v0.12 From 8155ee1db55893876165936f4e9d551b45c0f35a Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Thu, 5 Aug 2010 17:45:52 +0200 Subject: Move note on connectToBus() not actually being able to reconnect to connectToBus() documentation, where it belongs. This also fixes some bad English ("make be connected") by means of removing it. Merge-request: 2443 Reviewed-by: Oswald Buddenhagen --- src/dbus/qdbusconnection.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 5cbb8ca..055fead 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -173,6 +173,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP The connection is then torn down using the disconnectFromBus() function. + Once disconnected, calling connectToBus() will not reestablish a + connection, you must create a new QDBusConnection instance. + As a convenience for the two most common connection types, the sessionBus() and systemBus() functions return open connections to the session server daemon and the system server daemon, @@ -853,10 +856,6 @@ QDBusConnectionInterface *QDBusConnection::interface() const /*! Returns true if this QDBusConnection object is connected. - - If it isn't connected, calling connectToBus() on the same - connection name will not make be connected. You need to call the - QDBusConnection constructor again. */ bool QDBusConnection::isConnected() const { -- cgit v0.12 From 0dfc5666d2b615b2c4c0c2f392771b001de9163b Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Thu, 5 Aug 2010 17:45:53 +0200 Subject: Remove useless QString::clear() from QSharedData example snippet. Merge-request: 2443 Reviewed-by: Oswald Buddenhagen --- doc/src/snippets/sharedemployee/employee.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/snippets/sharedemployee/employee.h b/doc/src/snippets/sharedemployee/employee.h index 18b47e0..2c9ba6f 100644 --- a/doc/src/snippets/sharedemployee/employee.h +++ b/doc/src/snippets/sharedemployee/employee.h @@ -48,7 +48,7 @@ class EmployeeData : public QSharedData { public: - EmployeeData() : id(-1) { name.clear(); } + EmployeeData() : id(-1) { } EmployeeData(const EmployeeData &other) : QSharedData(other), id(other.id), name(other.name) { } ~EmployeeData() { } -- cgit v0.12 From ae2e8c0f479e0b4d819023ddcfd6db81dd773bf3 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 6 Aug 2010 09:38:53 +1000 Subject: Remove some warnings Reviewed-by: Aaron Kennedy --- src/declarative/qml/qdeclarativecompiler.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index ba757fc..2b4a4a5 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -2215,10 +2215,11 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj) if (propNames.contains(prop.name)) COMPILE_EXCEPTION(&prop, tr("Duplicate property name")); - if (QString::fromUtf8(prop.name).at(0).isUpper()) + QString propName = QString::fromUtf8(prop.name); + if (propName.at(0).isUpper()) COMPILE_EXCEPTION(&prop, tr("Property names cannot begin with an upper case letter")); - if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(prop.name)) + if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(propName)) COMPILE_EXCEPTION(&prop, tr("Illegal property name")); propNames.insert(prop.name); @@ -2228,9 +2229,10 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj) QByteArray name = obj->dynamicSignals.at(ii).name; if (methodNames.contains(name)) COMPILE_EXCEPTION(obj, tr("Duplicate signal name")); - if (QString::fromUtf8(name).at(0).isUpper()) + QString nameStr = QString::fromUtf8(name); + if (nameStr.at(0).isUpper()) COMPILE_EXCEPTION(obj, tr("Signal names cannot begin with an upper case letter")); - if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(name)) + if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr)) COMPILE_EXCEPTION(obj, tr("Illegal signal name")); methodNames.insert(name); } @@ -2238,9 +2240,10 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj) QByteArray name = obj->dynamicSlots.at(ii).name; if (methodNames.contains(name)) COMPILE_EXCEPTION(obj, tr("Duplicate method name")); - if (QString::fromUtf8(name).at(0).isUpper()) + QString nameStr = QString::fromUtf8(name); + if (nameStr.at(0).isUpper()) COMPILE_EXCEPTION(obj, tr("Method names cannot begin with an upper case letter")); - if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(name)) + if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr)) COMPILE_EXCEPTION(obj, tr("Illegal method name")); methodNames.insert(name); } -- cgit v0.12 From bbd444559359df3e211fedb28d40b175af778030 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Fri, 6 Aug 2010 10:55:23 +1000 Subject: Update def files for d524da81ee257a6bd67d32d0bc870280a7d5b8a4. --- src/s60installs/eabi/QtNetworku.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def index 6b34a19..2442ee8 100644 --- a/src/s60installs/eabi/QtNetworku.def +++ b/src/s60installs/eabi/QtNetworku.def @@ -1131,7 +1131,7 @@ EXPORTS _ZNK21QNetworkAccessManager13configurationEv @ 1130 NONAME _ZNK21QNetworkAccessManager17networkAccessibleEv @ 1131 NONAME _ZNK21QNetworkAccessManager19activeConfigurationEv @ 1132 NONAME - _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME ABSENT + _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME _ZNK21QNetworkConfiguration10identifierEv @ 1134 NONAME _ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1135 NONAME _ZNK21QNetworkConfiguration4nameEv @ 1136 NONAME -- cgit v0.12 From 97f64280e37f29bdeb92d6de55fac56b1ff37084 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Fri, 6 Aug 2010 12:11:36 +1000 Subject: Fix index page Task-number: QTBUG-12703 --- doc/src/declarative/declarativeui.qdoc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 217e372..1fc9d69 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -41,11 +41,10 @@ and netbooks. Qt Quick consists of the QtDeclarative C++ module, QML, and the integration of both of these into the Qt Creator IDE. Using the QtDeclarative C++ module, you can load and interact with QML files from your Qt application. -QML is an extension to \l -{http://www.ecma-international.org/publications/standards/Ecma-262.htm} -{JavaScript}, that provides a mechanism to declaratively build an -object tree of \l {QML Elements}{QML elements}. QML improves the -integration between JavaScript and Qt's existing QObject based type +QML provides mechanisms to declaratively build an object tree using +\l {QML Elements}{QML elements}. QML improves the integration between +{http://www.ecma-international.org/publications/standards/Ecma-262.htm}{JavaScript} +and Qt's existing QObject based type system, adds support for automatic \l {Property Binding}{property bindings} and provides \l {Network Transparency}{network transparency} at the language level. @@ -87,11 +86,11 @@ application or to build completely new applications. QML is fully \l \o \l {qdeclarativemodules.html}{Modules} \o \l {Extending types from QML} \o \l {qdeclarativedynamicobjects.html}{Dynamic Object Creation} -\o \l {qmlruntime.html}{The Qt Declarative Runtime} \endlist \section1 Using QML with C++ \list +\o \l {qmlruntime.html}{The Qt Declarative Runtime} \o \l {Using QML in C++ Applications} \o \l {Integrating QML with existing Qt UI code} \o \l {Tutorial: Writing QML extensions with C++} -- cgit v0.12 From 94b1c07c31ab84d30b198cb23291a48f98164827 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 6 Aug 2010 13:39:10 +1000 Subject: Top-level QML item should not have special focus handling. It's the scene itself that acts as a focus scope, not the top-level item. Task-number: QTBUG-12682 Reviewed-by: Aaron Kennedy --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 11 ++++------- .../qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 5b74129..ff05997 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -3196,8 +3196,7 @@ bool QDeclarativeItem::hasActiveFocus() const { Q_D(const QDeclarativeItem); return focusItem() == this || - (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0) || - (!parentItem() && focusItem() != 0); + (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0); } /*! @@ -3217,10 +3216,8 @@ bool QDeclarativeItem::hasActiveFocus() const } \endqml - For the purposes of this property, the top level item in the scene - is assumed to act like a focus scope, and to always have active focus - when the scene has focus. On a practical level, that means the following - QML will give active focus to \c input on startup. + For the purposes of this property, the scene as a whole is assumed to act like a focus scope. + On a practical level, that means the following QML will give active focus to \c input on startup. \qml Rectangle { @@ -3246,7 +3243,7 @@ bool QDeclarativeItem::hasFocus() const p = p->parentItem(); } - return hasActiveFocus() ? true : (!QGraphicsItem::parentItem() ? true : false); + return hasActiveFocus(); } /*! \internal */ diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp index b138f61..ec8f048 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp +++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp @@ -336,7 +336,7 @@ void tst_qdeclarativefocusscope::noParentFocus() view->setSource(QUrl::fromLocalFile(SRCDIR "/data/chain.qml")); QVERIFY(view->rootObject()); - QVERIFY(view->rootObject()->property("focus1") == true); + QVERIFY(view->rootObject()->property("focus1") == false); QVERIFY(view->rootObject()->property("focus2") == false); QVERIFY(view->rootObject()->property("focus3") == true); QVERIFY(view->rootObject()->property("focus4") == true); -- cgit v0.12 From ea8cf9c20f5b22c88bda1615b8a37013a1efbc3c Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 6 Aug 2010 15:14:27 +1000 Subject: Revert "Doc: Adding GS QML example files" This reverts commit f13ebf52a0d091c6c72c97d2a13311e1e7c4a5cf. The given example does not meet the autotest requirements for QML examples. These involve that it starts without error messages, and that it follows our naming convention of the start file starting with a lowercase letter. Please run the tests/auto/declarative/examples before pushing new declarative examples. If new examples should be exempted from these checks, add them to the list of exceptions in that autotest. --- .../tutorials/gettingStarted/gsQml/TextEditor.qml | 129 ------------ .../tutorials/gettingStarted/gsQml/core/Button.qml | 110 ---------- .../gettingStarted/gsQml/core/EditMenu.qml | 111 ---------- .../gettingStarted/gsQml/core/FileDialog.qml | 170 --------------- .../gettingStarted/gsQml/core/FileMenu.qml | 232 --------------------- .../gettingStarted/gsQml/core/MenuBar.qml | 148 ------------- .../gettingStarted/gsQml/core/TextArea.qml | 86 -------- .../tutorials/gettingStarted/gsQml/core/qmldir | 48 ----- .../gettingStarted/gsQml/filedialog/cppPlugins.pro | 17 -- .../gsQml/filedialog/dialogPlugin.cpp | 57 ----- .../gettingStarted/gsQml/filedialog/dialogPlugin.h | 57 ----- .../gettingStarted/gsQml/filedialog/directory.cpp | 219 ------------------- .../gettingStarted/gsQml/filedialog/directory.h | 108 ---------- .../gettingStarted/gsQml/filedialog/file.cpp | 57 ----- .../gettingStarted/gsQml/filedialog/file.h | 67 ------ .../gettingStarted/gsQml/filedialog/qmldir | 1 - .../gettingStarted/gsQml/images/arrow.png | Bin 583 -> 0 bytes .../gettingStarted/gsQml/images/qt-logo.png | Bin 5149 -> 0 bytes .../gsQml/pics/qml-texteditor5_editmenu.png | Bin 65123 -> 0 bytes .../gsQml/pics/qml-texteditor5_filemenu.png | Bin 21367 -> 0 bytes .../gsQml/pics/qml-texteditor5_newfile.png | Bin 76693 -> 0 bytes 21 files changed, 1617 deletions(-) delete mode 100644 examples/tutorials/gettingStarted/gsQml/TextEditor.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/TextArea.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/qmldir delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/qmldir delete mode 100644 examples/tutorials/gettingStarted/gsQml/images/arrow.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/images/qt-logo.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png diff --git a/examples/tutorials/gettingStarted/gsQml/TextEditor.qml b/examples/tutorials/gettingStarted/gsQml/TextEditor.qml deleted file mode 100644 index 6ffdd6d..0000000 --- a/examples/tutorials/gettingStarted/gsQml/TextEditor.qml +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 -import "core" - -Rectangle{ - id: screen - width: 1000; height: 1000 - property int partition: height/3 - border.width: 1 - border.color: "#DCDCCC" - state: "DRAWER_CLOSED" - - //Item 1: MenuBar on the top portion of the screen - MenuBar{ - id:menuBar - height: screen.partition; width: screen.width - z:1 - } - //Item 2: The editable text area - TextArea{ - id:textArea - y:drawer.height - color: "#3F3F3F" - fontColor: "#DCDCCC" - height: partition*2; width:parent.width - } - //Item 3: The drawer handle - Rectangle{ - id:drawer - height:15; width: parent.width - border.color : "#6A6D6A" - border.width: 1 - z:1 - gradient: Gradient { - GradientStop { position: 0.0; color: "#8C8F8C" } - GradientStop { position: 0.17; color: "#6A6D6A" } - GradientStop { position: 0.77; color: "#3F3F3F" } - GradientStop { position: 1.0; color: "#6A6D6A" } - } - Image{ - id: arrowIcon - source: "images/arrow.png" - anchors.horizontalCenter: parent.horizontalCenter - - Behavior{NumberAnimation{property: "rotation";easing.type: Easing.OutExpo }} - } - - MouseArea{ - id: drawerMouseArea - anchors.fill:parent - hoverEnabled: true - onEntered: parent.border.color = Qt.lighter("#6A6D6A") - onExited: parent.border.color = "#6A6D6A" - onClicked:{ - if (screen.state == "DRAWER_CLOSED"){ - screen.state = "DRAWER_OPEN" - } - else if (screen.state == "DRAWER_OPEN"){ - screen.state = "DRAWER_CLOSED" - } - } - } - } - - states:[ - State{ - name: "DRAWER_OPEN" - PropertyChanges { target: menuBar; y: 0} - PropertyChanges { target: textArea; y: partition + drawer.height} - PropertyChanges { target: drawer; y: partition} - PropertyChanges { target: arrowIcon; rotation: 180} - }, - State{ - name: "DRAWER_CLOSED" - PropertyChanges { target: menuBar; y:-height; } - PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height} - PropertyChanges { target: drawer; y: 0} - PropertyChanges { target: arrowIcon; rotation: 0} - } - ] - - transitions: [ - Transition{ - to: "*" - NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo } - NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutExpo } - NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutExpo } - } - ] -} diff --git a/examples/tutorials/gettingStarted/gsQml/core/Button.qml b/examples/tutorials/gettingStarted/gsQml/core/Button.qml deleted file mode 100644 index 28ae4ec..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/Button.qml +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -import Qt 4.7 - -Rectangle { - - //identifier of the item - id: button - - //these properties act as constants, useable outside this QML file - property int buttonHeight: 75 - property int buttonWidth: 150 - - //attaches to the Text element's text content - property string label - property color textColor: buttonLabel.color - - //the color highlight when the mouse hovers on the rectangle - property color onHoverColor: "lightsteelblue" - property color borderColor: "transparent" - - //buttonColor is set to the button's main color - property color buttonColor: "lightblue" - - property real labelSize: 14 - //set appearance properties - radius:6 - smooth: true - border.width: 2 - border.color: borderColor - width: buttonWidth; height: buttonHeight - - Text{ - id: buttonLabel - anchors.centerIn: parent - text: label //bind the text to the parent's text - color: "#DCDCCC" - font.pointSize: labelSize - } - - //buttonClick() is callable and a signal handler, onButtonClick is automatically created - signal buttonClick() - - //define the clickable area to be the whole rectangle - MouseArea{ - id: buttonMouseArea - anchors.fill: parent //stretch the area to the parent's dimension - onClicked: buttonClick() - - //if true, then onEntered and onExited called if mouse hovers in the mouse area - //if false, a button must be clicked to detect the mouse hover - hoverEnabled: true - - //display a border if the mouse hovers on the button mouse area - onEntered: parent.border.color = onHoverColor - //remove the border if the mouse exits the button mouse area - onExited: parent.border.color = borderColor - - } - - //change the color of the button when pressed - color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor - //animate the color whenever the color property changes - Behavior on color { ColorAnimation{ duration: 55} } - - //scale the button when pressed - scale: buttonMouseArea.pressed ? 1.1 : 1.00 - //Animate the scale property change - Behavior on scale { NumberAnimation{ duration: 55} } - -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml deleted file mode 100644 index be9f6a1..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -import Qt 4.7 - -Rectangle{ - id: editMenu - height: 480; width:1000 - color: "powderblue" - property color buttonBorderColor: "#7A8182" - property color buttonFillColor: "#61BDCACD" - property string menuName:"Edit" - - gradient: Gradient{ - GradientStop { position: 0.0; color: "#6A7570" } - GradientStop { position: 1.0; color: Qt.darker("#6A7570") } - } - - Rectangle{ - id:actionContainer - color:"transparent" - anchors.centerIn: parent - width: parent.width; height: parent.height / 5 - Row{ - anchors.centerIn: parent - spacing: parent.width/9 - Button{ - id: loadButton - buttonColor: buttonFillColor - label: "Copy" - labelSize:16 - borderColor:buttonBorderColor - height: actionContainer.height - width: actionContainer.width/6 - onButtonClick:textArea.copy() - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - } - - Button{ - id: saveButton - height: actionContainer.height - width: actionContainer.width/6 - buttonColor: buttonFillColor - label: "Paste" - borderColor:buttonBorderColor - labelSize:16 - onButtonClick:textArea.paste() - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - } - Button{ - id: exitButton - label: "Select All" - height: actionContainer.height - width: actionContainer.width/6 - labelSize:16 - buttonColor: buttonFillColor - borderColor:buttonBorderColor - onButtonClick:textArea.selectAll() - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - } - } - } - -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml deleted file mode 100644 index 9948a27..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml +++ /dev/null @@ -1,170 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 - -Rectangle{ - id:dialog - height: 200 * partition; width: 200 - color: "transparent" - - signal selectChanged() - signal notifyRefresh() - onNotifyRefresh:dirView.model = directory.files - - property string selectedFile - property int selectedIndex: 0 - - Rectangle{ - id: dirBox - radius: 10 - anchors.centerIn:parent - height: parent.height -15; width: parent.width -30 - - Rectangle{ - id:header - height:parent.height*0.1 - width: parent.width - radius:3 - z:1 - gradient: Gradient { - GradientStop { position: 0.0; color: "#8C8F8C" } - GradientStop { position: 0.17; color: "#6A6D6A" } - GradientStop { position: 0.98;color: "#3F3F3F" } - GradientStop { position: 1.0; color: "#0e1B20" } - } - Text{ - height: header.height - anchors.centerIn: header - text: "files:" - color: "lightblue" - font.weight: Font.Light - font.italic: true - } - } - GridView{ - id:dirView - width:parent.width - height:parent.height*.9 - anchors.top: header.bottom - cellWidth: 100 - cellHeight: 75 -// highlight: Rectangle { width:cellWidth; height: cellHeight; color: "lightsteelblue" ;radius: 13} - model: directory.files - delegate: dirDelegate - clip: true - highlightMoveDuration:40 - } - - Component{ - id:dirDelegate - - Rectangle{ - id:file - color: "transparent" - width: GridView.view.cellWidth; height: GridView.view.cellHeight - - Text{ - id:fileName - width: parent.width - anchors.centerIn:parent - text: name - color: "#BDCACD" - font.weight: GridView.view.currentIndex == index ? Font.DemiBold : Font.Normal - font.pointSize: GridView.view.currentIndex == index ? 12 : 10 - elide: Text.ElideMiddle - horizontalAlignment: Text.AlignHCenter - } - Rectangle{ - id:selection - width:parent.width; height:parent.height - anchors.centerIn: parent - radius: 10 - smooth: true - scale: GridView.view.currentIndex == index ? 1 : 0.5 - opacity: GridView.view.currentIndex == index ? 1 : 0 - Text{ - id:overlay - width: parent.width - anchors.centerIn:parent - text: name - color: "#696167" - font.weight: Font.DemiBold - font.pointSize: 12 - smooth:true - elide: Text.ElideMiddle - horizontalAlignment: Text.AlignHCenter - } - Behavior on opacity{ NumberAnimation{ duration: 45} } - Behavior on scale { NumberAnimation{ duration: 45} } - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) } - GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) } - } - border.color:"lightsteelblue" - border.width:1 - } - MouseArea{ - id:fileMouseArea - anchors.fill:parent - hoverEnabled: true - - onClicked:{ - GridView.view.currentIndex = index - selectedFile = directory.files[index].name - selectChanged() - } - onEntered:{ - fileName.color = "lightsteelblue" - fileName.font.weight = Font.DemiBold - } - onExited: { - fileName.font.weight = Font.Normal - fileName.color = "#BDCACD" - } - } - } - } - gradient: Gradient{ - GradientStop { position: 0.0; color: "#A5333333" } - GradientStop { position: 1.0; color: "#03333333" } - } - } -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml deleted file mode 100644 index 20d8fd6..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml +++ /dev/null @@ -1,232 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 - -Rectangle{ - id: fileMenu - height: 480; width:1000 - property color buttonBorderColor: "#7F8487" - property color buttonFillColor: "#8FBDCACD" - property string fileContent:directory.fileContent - - //the menuName is accessible from outside this QML file - property string menuName: "File" - - //used to divide the screen into parts. - property real partition: 1/3 - - color: "#6C646A" - gradient: Gradient{ - GradientStop { position: 0.0; color: "#6C646A" } - GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") } - } - - Directory{ - id:directory - filename: textInput.text - onDirectoryChanged:fileDialog.notifyRefresh() - } - - Rectangle{ - id:actionContainer - - //make this rectangle invisible - color:"transparent" - anchors.left: parent.left - - //the height is a good proportion that creates more space at the top of the column of buttons - width: fileMenu.width * partition; height: fileMenu.height - - Column{ - anchors.centerIn: parent - spacing: parent.height/32 - Button{ - id: saveButton - label: "Save" - borderColor: buttonBorderColor - buttonColor: buttonFillColor - width: actionContainer.width/ 1.3 - height:actionContainer.height / 8 - labelSize:24 - onButtonClick:{ - directory.fileContent = textArea.textContent - directory.filename = textInput.text - directory.saveFile() - } - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - - } - Button{ - id: loadButton - width: actionContainer.width/ 1.3 - height:actionContainer.height/ 8 - buttonColor: buttonFillColor - borderColor: buttonBorderColor - label: "Load" - labelSize:24 - onButtonClick:{ - directory.filename = textInput.text - directory.loadFile() - textArea.textContent = directory.fileContent - } - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - } - Button{ - id: newButton - width: actionContainer.width/ 1.3 - height:actionContainer.height/ 8 - buttonColor: buttonFillColor - borderColor: buttonBorderColor - label: "New" - labelSize:24 - onButtonClick:{ - textArea.textContent = "" - textInput.text = "" - } - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - - } - Rectangle{ - id: space - width: actionContainer.width/ 1.3 - height:actionContainer.height / 16 - color:"transparent" - } - Button{ - id: exitButton - width: actionContainer.width/ 1.3 - height:actionContainer.height/ 8 - label: "Exit" - labelSize:24 - buttonColor: buttonFillColor - borderColor: buttonBorderColor - onButtonClick:Qt.quit() - gradient: Gradient { - GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } - GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } - } - } - } - } - - Rectangle{ - id:dialogContainer - - width: 2*fileMenu.width * partition; height: fileMenu.height - anchors.right:parent.right - color:"transparent" - - Column { - anchors.centerIn: parent - spacing: parent.height /640 - FileDialog{ - id:fileDialog - height: 2*dialogContainer.height * partition; width: dialogContainer.width - onSelectChanged: textInput.text = selectedFile - } - - Rectangle{ - id:lowerPartition - height: dialogContainer.height * partition; width: dialogContainer.width - color: "transparent" - - Rectangle{ - id: nameField - gradient: Gradient{ - GradientStop { position: 0.0; color: "#806F6F6F" } - GradientStop { position: 1.0; color: "#136F6F6F" } - } - - radius: 10 - anchors {centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15} - height: parent.height-15; width: parent.width -20 - border {color:"#4A4A4A"; width:1} - - TextInput{ - id: textInput - z:2 - anchors {bottom: parent.bottom; topMargin: 10; horizontalCenter:parent.horizontalCenter} - width: parent.width - 10 - height: parent.height -10 - font.pointSize: 40 - color:"lightsteelblue" - focus:true - } - Text{ - id: textInstruction - anchors.centerIn:parent - text: "Select file name and press save or load" - font {pointSize: 11; weight:Font.Light; italic: true} - color: "lightblue" - z:2 - opacity: (textInput.text == "") ? 1: 0 - } - Text{ - id:fieldLabel - anchors {top: parent.top; left: parent.left} - text: " file name: " - font {pointSize: 11; weight: Font.Light; italic: true} - color: "lightblue" - z:2 - } - MouseArea{ - anchors.centerIn:parent - width: nameField.width; height: nameField.height - onClicked:{ - textInput.text = "" - textInput.focus = true - textInput.forceFocus() - } - } - } - } - } - } -} diff --git a/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml deleted file mode 100644 index c387f5f..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml +++ /dev/null @@ -1,148 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 - -Rectangle { - id: menuBar - width: 1000; height:300 - color:"transparent" - property color fileColor: "plum" - property color editColor: "powderblue" - - property real partition: 1/10 - - Column{ - anchors.fill: parent - //container for the header and the buttons - z: 1 - Rectangle{ - id: labelList - height:menuBar.height*partition - width: menuBar.width - color: "beige" - gradient: Gradient { - GradientStop { position: 0.0; color: "#8C8F8C" } - GradientStop { position: 0.17; color: "#6A6D6A" } - GradientStop { position: 0.98;color: "#3F3F3F" } - GradientStop { position: 1.0; color: "#0e1B20" } - } - Text{ - height: parent.height - anchors {right: labelRow.left ; verticalCenter: parent.bottom} - text: "menu: " - color: "lightblue" - font {weight: Font.Light; italic: true} - smooth: true - } - - //row displays its children in a vertical row - Row{ - id: labelRow - anchors.centerIn: parent - spacing:40 - Button{ - id: fileButton - height: 20; width: 50 - label: "File" - buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5) - scale: menuListView.currentIndex == 0? 1.25: 1 - labelSize: menuListView.currentIndex == 0? 16:12 - radius: 1 - smooth:true - //on a button click, change the list's currently selected item to FileMenu - onButtonClick: menuListView.currentIndex = 0 - gradient: Gradient{ - GradientStop { position: 0.0; color: fileColor } - GradientStop { position: 1.0; color: "#136F6F6F" } - } - } - Button{ - id: editButton - height: 20; width: 50 - buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9) - scale: menuListView.currentIndex == 1? 1.25: 1 - label: "Edit" - radius: 1 - labelSize: menuListView.currentIndex == 1? 16:12 - smooth:true - //on a button click, change the list's currently selected item to EditMenu - onButtonClick: menuListView.currentIndex = 1 - gradient: Gradient{ - GradientStop { position: 0.0; color: editColor } - GradientStop { position: 1.0; color: "#136F6F6F" } - } - } - } - } - - //list view will display a model according to a delegate - ListView{ - id: menuListView - width:menuBar.width; height: 9*menuBar.height*partition - - //the model contains the data - model: menuListModel - - //control the movement of the menu switching - snapMode: ListView.SnapOneItem - orientation: ListView.Horizontal - boundsBehavior: Flickable.StopAtBounds - flickDeceleration: 5000 - highlightFollowsCurrentItem: true - highlightMoveDuration:240 - highlightRangeMode: ListView.StrictlyEnforceRange - } - } - //a list of visual items already have delegates handling their display - VisualItemModel{ - id: menuListModel - - FileMenu{ - id:fileMenu - width: menuListView.width; height: menuListView.height - color: fileColor - } - EditMenu{ - color: editColor - width: menuListView.width; height: menuListView.height - } - } -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml b/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml deleted file mode 100644 index 3953d9f..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import Qt 4.7 - -Rectangle{ - id:textArea - - function paste(){ textEdit.paste()} - function copy() { textEdit.copy() } - function selectAll() { textEdit.selectAll() } - - width :400; height:400 - - property color fontColor: "white" - property alias textContent: textEdit.text - Flickable{ - id: flickArea - width: parent.width; height: parent.height - anchors.fill:parent - - boundsBehavior: Flickable.StopAtBounds - flickableDirection: Flickable.HorizontalFlick - interactive: true - //Will move the text Edit area to make the area visible when scrolled with keyboard strokes - function ensureVisible(r){ - if (contentX >= r.x) - contentX = r.x; - else if (contentX+width <= r.x+r.width) - contentX = r.x+r.width-width; - if (contentY >= r.y) - contentY = r.y; - else if (contentY+height <= r.y+r.height) - contentY = r.y+r.height-height; - } - - TextEdit{ - id: textEdit - anchors.fill:parent - width:parent.width; height:parent.height - color:fontColor - focus: true - wrapMode: TextEdit.Wrap - font.pointSize:10 - onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle) - selectByMouse: true - } - } -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/qmldir b/examples/tutorials/gettingStarted/gsQml/core/qmldir deleted file mode 100644 index 1beb5ed..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/qmldir +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -Button ./Button.qml -FileDialog ./FileDialog.qml -TextArea ./TextArea.qml -TextEditor ./TextEditor.qml -EditMenu ./EditMenu.qml -MenuBar ./MenuBar.qml - -plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro deleted file mode 100644 index 6247747..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro +++ /dev/null @@ -1,17 +0,0 @@ -TEMPLATE = lib -CONFIG += qt plugin -QT += declarative - -DESTDIR += ../plugins -OBJECTS_DIR = tmp -MOC_DIR = tmp - -TARGET = FileDialog - -HEADERS += directory.h \ - file.h \ - dialogPlugin.h - -SOURCES += directory.cpp \ - file.cpp \ - dialogPlugin.cpp diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp deleted file mode 100644 index c0132c0..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "dialogPlugin.h" -#include "directory.h" -#include "file.h" -#include - -void DialogPlugin::registerTypes(const char *uri){ - - //register the class Directory into QML as a "Directory" element version 1.0 - qmlRegisterType(uri, 1, 0, "Directory"); - qmlRegisterType(uri,1,0,"File"); - - //qRegisterMetaType > ("QDeclarativeListProperty"); - -} - -//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs -Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h deleted file mode 100644 index 7f8d3ff..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef DIALOGPLUGIN_H -#define DIALOGPLUGIN_H - -#include - -class DialogPlugin : public QDeclarativeExtensionPlugin -{ - Q_OBJECT - - public: - //registerTypes is inherited from QDeclarativeExtensionPlugin - void registerTypes(const char *uri); - -}; - -#endif - diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp deleted file mode 100644 index b3e0256..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "directory.h" -#include - -/* -Directory constructor - -Initialize the saves directory and creates the file list -*/ -Directory::Directory(QObject *parent) : QObject(parent) -{ - - - m_dir.cd( QDir::currentPath()); - - //go to the saved directory. if not found, create save directory - m_saveDir = "saves"; - if (m_dir.cd(m_saveDir) == 0){ - m_dir.mkdir(m_saveDir); - m_dir.cd(m_saveDir); - } - m_filterList << "*.txt"; - - refresh(); -} - -/* -Directory::filesNumber -Return the number of Files -*/ -int Directory:: filesCount() const{ - return m_fileList.size(); -} - -/* -Function called to append data onto list property -*/ -void appendFiles(QDeclarativeListProperty * property, File * file){ - //Do nothing. can't add to a directory using this method -} - -/* -Function called to retrieve file in the list using an index -*/ -File* fileAt(QDeclarativeListProperty * property, int index){ - return static_cast< QList *>(property->data)->at(index); -} - -/* -Returns the number of files in the list -*/ -int filesSize(QDeclarativeListProperty * property){ - return static_cast< QList *>(property->data)->size(); -} - -/* -Function called to empty the list property contents -*/ -void clearFilesPtr(QDeclarativeListProperty *property){ - return static_cast< QList *>(property->data)->clear(); -} - -/* -Returns the list of files as a QDeclarativeListProperty. -*/ -QDeclarativeListProperty Directory::files(){ - - refresh(); -// return QDeclarativeListProperty(this,m_filePtrList); //not recommended in the docs - return QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); -} - -/* -Return te name of the currently selected file -*/ -QString Directory::filename() const{ - return currentFile.name(); -} - -/* -Return the file's content as a string. -*/ -QString Directory::fileContent() const{ - return m_fileContent; -} - -/* -Set the file name of the current file -*/ -void Directory::setFilename(const QString &str){ - if(str != currentFile.name()){ - currentFile.setName(str); - emit filenameChanged(); - } -} - -/* -Set the content of the file as a string -*/ -void Directory::setFileContent(const QString &str){ - if(str != m_fileContent){ - m_fileContent = str; - emit fileContentChanged(); - } -} - -/* -Called from QML to save the file using the filename and file content. -Saving makes sure that the file has a .txt extension. -*/ -void Directory::saveFile(){ - - if(currentFile.name().size() == 0){ - qWarning()<< "Empty filename. no save"; - return; - } - - QString extendedName = currentFile.name(); - if(!currentFile.name().endsWith(".txt")){ - extendedName.append(".txt"); - } - - QFile file( m_dir.filePath(extendedName) ); - if (file.open(QFile::WriteOnly | QFile::Truncate)){ - QTextStream outStream(&file); - outStream << m_fileContent; - } - file.close(); - refresh(); - emit directoryChanged(); -} - -/* -Load the contents of a file. -Only loads files with a .txt extension -*/ -void Directory::loadFile(){ - - m_fileContent.clear(); - QString extendedName = currentFile.name(); - if(!currentFile.name().endsWith(".txt")){ - extendedName.append(".txt"); - } - - QFile file( m_dir.filePath(extendedName) ); - if (file.open(QFile::ReadOnly )){ - QTextStream inStream(&file); - - QString line; - do{ - line = inStream.read(75); - m_fileContent.append(line); - }while (!line .isNull()); - } - file.close(); -} - -/* -Reloads the content of the files list. This is to ensure that the newly -created files are added onto the list. -*/ -void Directory::refresh(){ - m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name); - m_fileList.clear(); - - File * file; - for(int i = 0; i < m_dirFiles.size() ; i ++){ - - file = new File(); - - if(m_dirFiles.at(i).endsWith(".txt")){ - QString name = m_dirFiles.at(i); - file->setName( name.remove(".txt",Qt::CaseSensitive)); - } - else{ - file->setName(m_dirFiles.at(i)); - } - m_fileList.append(file); - } -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h deleted file mode 100644 index bef1a93..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef DIRECTORY_H -#define DIRECTORY_H - -#include "file.h" - -#include -#include -#include -#include -#include - -class Directory : public QObject{ - - Q_OBJECT - - //number of files in the directory - Q_PROPERTY(int filesCount READ filesCount) - - //list property containing file names as QString - Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) - - //file name of the text file to read/write - Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) - - //text content of the file - Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged) - - public: - Directory(QObject *parent = 0); - - //properties' read functions - int filesCount() const; - QString filename() const; - QString fileContent() const; - QDeclarativeListProperty files(); - - //properties' write functions - void setFilename(const QString &str); - void setFileContent(const QString &str); - - //accessible from QML - Q_INVOKABLE void saveFile(); - Q_INVOKABLE void loadFile(); - - signals: - void directoryChanged(); - void filenameChanged(); - void fileContentChanged(); - - private: - QDir m_dir; - QStringList m_dirFiles; - File currentFile; - QString m_saveDir; - QStringList m_filterList; - - //contains the file data in QString format - QString m_fileContent; - - //Registered to QML in a plugin. Accessible from QML as a property of Directory - QList m_fileList; - - //refresh content of the directory - void refresh(); -}; - - -#endif diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp deleted file mode 100644 index 39a7469..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include "file.h" - -File::File(QObject *parent) : QObject(parent) -{ - m_name = ""; -} - -QString File::name() const{ - return m_name; -} -void File::setName(const QString &str){ - if(str != m_name){ - m_name = str; - emit nameChanged(); - } -} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h deleted file mode 100644 index e4ba429..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef FILE_H -#define FILE_H - - -#include -#include - -class File : public QObject{ - - Q_OBJECT - - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - - public: - File(QObject *parent = 0); - - QString name() const; - void setName(const QString &str); - - signals: - void nameChanged(); - - private: - QString m_name; -}; - -#endif \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir deleted file mode 100644 index c2b27da..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin FileDialog plugins diff --git a/examples/tutorials/gettingStarted/gsQml/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/images/arrow.png deleted file mode 100644 index 14978c2..0000000 Binary files a/examples/tutorials/gettingStarted/gsQml/images/arrow.png and /dev/null differ diff --git a/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png b/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png deleted file mode 100644 index 14ddf2a..0000000 Binary files a/examples/tutorials/gettingStarted/gsQml/images/qt-logo.png and /dev/null differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png deleted file mode 100644 index 27feed5..0000000 Binary files a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png and /dev/null differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png deleted file mode 100644 index 4d8f9f2..0000000 Binary files a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png and /dev/null differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png deleted file mode 100644 index 680acfe..0000000 Binary files a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png and /dev/null differ -- cgit v0.12 From 59e3430662cfdc3820115a2ff4c0b44829b3d1d4 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Fri, 6 Aug 2010 16:32:19 +1000 Subject: Fix broken example code Task-number: QTBUG-12705 --- src/declarative/util/qdeclarativepropertymap.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/declarative/util/qdeclarativepropertymap.cpp b/src/declarative/util/qdeclarativepropertymap.cpp index 919727f..6b43040 100644 --- a/src/declarative/util/qdeclarativepropertymap.cpp +++ b/src/declarative/util/qdeclarativepropertymap.cpp @@ -104,22 +104,25 @@ void QDeclarativePropertyMapMetaObject::propertyCreated(int, QMetaPropertyBuilde The following example shows how you might declare data in C++ and then access it in QML. - Setup in C++: + In the C++ file: \code - //create our data + // create our data QDeclarativePropertyMap ownerData; ownerData.insert("name", QVariant(QString("John Smith"))); ownerData.insert("phone", QVariant(QString("555-5555"))); - //expose it to the UI layer - QDeclarativeContext *ctxt = view->rootContext(); - ctxt->setProperty("owner", &data); + // expose it to the UI layer + QDeclarativeView view; + QDeclarativeContext *ctxt = view.rootContext(); + ctxt->setContextProperty("owner", &ownerData); + + view.setSource(QUrl::fromLocalFile("main.qml")); + view.show(); \endcode - Then, in QML: + Then, in \c main.qml: \code - Text { text: owner.name } - Text { text: owner.phone } + Text { text: owner.name + " " + owner.phone } \endcode The binding is dynamic - whenever a key's value is updated, anything bound to that -- cgit v0.12 From 4808151512faef0d78152905885bd3009b89c1a6 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Fri, 6 Aug 2010 09:42:28 +0200 Subject: Changed width of the document. Part of the fix for QTBUG-12180 --- doc/src/demos/spectrum.qdoc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/doc/src/demos/spectrum.qdoc b/doc/src/demos/spectrum.qdoc index 944f944..b720ce1 100644 --- a/doc/src/demos/spectrum.qdoc +++ b/doc/src/demos/spectrum.qdoc @@ -28,12 +28,8 @@ /*! \example demos/spectrum \title Spectrum Analyzer - -This application is a demo which uses the QtMultimedia APIs to capture and -play back PCM audio. While either recording or playback is ongoing, the -application performs real-time level and frequency spectrum analysis, +This application is a demo which uses the QtMultimedia APIs to capture and +play back PCM audio. While either recording or playback is ongoing, the +application performs real-time level and frequency spectrum analysis, displaying the results in its main window. - - */ - -- cgit v0.12 From 7f59bc3c7f13058e2b8fca076072e99136dd4648 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 5 Aug 2010 13:00:36 +0300 Subject: Fix run and runonphone targets for projects that have TARGET with path Sis files are always generated in the pro file directory even if TARGET indicates another target directory. Reviewed-by: axis --- mkspecs/features/symbian/run_on_phone.prf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/symbian/run_on_phone.prf b/mkspecs/features/symbian/run_on_phone.prf index 818151a..f77369c 100644 --- a/mkspecs/features/symbian/run_on_phone.prf +++ b/mkspecs/features/symbian/run_on_phone.prf @@ -13,23 +13,25 @@ else:!equals(DEPLOYMENT, default_deployment) { equals(GENERATE_RUN_TARGETS, true) { symbian-abld|symbian-sbsv2 { sis_destdir = + sis_file = $$basename(TARGET).sis } else { sis_destdir = $$DESTDIR + sis_file = $${TARGET}.sis !isEmpty(sis_destdir):!contains(sis_destdir, "[/\\\\]$"):sis_destdir = $${sis_destdir}/ contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\") } contains(SYMBIAN_PLATFORMS, "WINSCW"):contains(TEMPLATE, "app") { run_target.target = run - run_target.commands = call "$${EPOCROOT}epoc32/release/winscw/udeb/$${TARGET}.exe" $(QT_RUN_OPTIONS) + run_target.commands = call "$${EPOCROOT}epoc32/release/winscw/udeb/$$basename(TARGET).exe" $(QT_RUN_OPTIONS) QMAKE_EXTRA_TARGETS += run_target } runonphone_target.target = runonphone runonphone_target.depends = sis - runonphone_target.commands = runonphone $(QT_RUN_ON_PHONE_OPTIONS) --sis "$${sis_destdir}$${TARGET}.sis" - contains(TEMPLATE, "app"):runonphone_target.commands += "$${TARGET}.exe" $(QT_RUN_OPTIONS) + runonphone_target.commands = runonphone $(QT_RUN_ON_PHONE_OPTIONS) --sis "$${sis_destdir}$${sis_file}" + contains(TEMPLATE, "app"):runonphone_target.commands += "$$basename(TARGET).exe" $(QT_RUN_OPTIONS) QMAKE_EXTRA_TARGETS += runonphone_target } -- cgit v0.12 From 64ca5d3ac1dc1b1e82c409cf011d97ca8f76f6ed Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 5 Aug 2010 14:55:27 +0300 Subject: Fix some autotest deployments to work in case Qt is already deployed Reviewed-by: Shane Kearns --- tests/auto/qdom/qdom.pro | 4 +++- tests/auto/qsvgrenderer/qsvgrenderer.pro | 4 +++- tests/auto/qtextcodec/test/test.pro | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/auto/qdom/qdom.pro b/tests/auto/qdom/qdom.pro index 5434ada..9040b91 100644 --- a/tests/auto/qdom/qdom.pro +++ b/tests/auto/qdom/qdom.pro @@ -9,7 +9,9 @@ wince*|symbian: { addFiles.path = . DEPLOYMENT += addFiles - DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs + wince*|qt_not_deployed { + DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs + } !symbian:DEFINES += SRCDIR=\\\"\\\" } else { diff --git a/tests/auto/qsvgrenderer/qsvgrenderer.pro b/tests/auto/qsvgrenderer/qsvgrenderer.pro index 8cfbcce..0b785e3 100644 --- a/tests/auto/qsvgrenderer/qsvgrenderer.pro +++ b/tests/auto/qsvgrenderer/qsvgrenderer.pro @@ -13,6 +13,8 @@ wince*|symbian { addFiles.path = . DEPLOYMENT += addFiles - DEPLOYMENT_PLUGIN += qsvg + wince*|qt_not_deployed { + DEPLOYMENT_PLUGIN += qsvg + } } diff --git a/tests/auto/qtextcodec/test/test.pro b/tests/auto/qtextcodec/test/test.pro index efa2e85..b85032a 100644 --- a/tests/auto/qtextcodec/test/test.pro +++ b/tests/auto/qtextcodec/test/test.pro @@ -20,7 +20,9 @@ wince*|symbian { addFiles.sources = ../*.txt addFiles.path = . DEPLOYMENT += addFiles - DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs + wince*|qt_not_deployed { + DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs + } } wince*: { -- cgit v0.12 From bba4b0caa9865ee021a3e477e1bb861c56000f68 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 5 Aug 2010 15:53:44 +0300 Subject: Fix duplicate binary names issues in Symbian autotests In Symbian each binary name must be unique as all binaries are stored in the same directory on the device. Some autotests created helper binaries that had same names on different tests, which caused build and installation issues when building entire autotest project tree. Reviewed-by: Shane Kearns --- tests/auto/qfile/qfile.pro | 2 +- tests/auto/qpluginloader/lib/lib.pro | 2 +- tests/auto/qpluginloader/tst/tst.pro | 2 +- tests/auto/qpluginloader/tst_qpluginloader.cpp | 2 +- tests/auto/qtextcodec/qtextcodec.pro | 2 +- tests/auto/qtextcodec/tst_qtextcodec.cpp | 2 ++ tests/auto/qtextstream/qtextstream.pro | 3 ++- 7 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/auto/qfile/qfile.pro b/tests/auto/qfile/qfile.pro index 0383e30..727f660 100644 --- a/tests/auto/qfile/qfile.pro +++ b/tests/auto/qfile/qfile.pro @@ -1,5 +1,5 @@ TEMPLATE = subdirs -wince*:{ +wince*|symbian:{ SUBDIRS = test } else { SUBDIRS = test stdinprocess diff --git a/tests/auto/qpluginloader/lib/lib.pro b/tests/auto/qpluginloader/lib/lib.pro index 96a9732..ce9bf13 100644 --- a/tests/auto/qpluginloader/lib/lib.pro +++ b/tests/auto/qpluginloader/lib/lib.pro @@ -2,7 +2,7 @@ TEMPLATE = lib CONFIG += dll CONFIG -= staticlib SOURCES = mylib.c -TARGET = mylib +TARGET = tst_qpluginloaderlib DESTDIR = ../bin QT = core diff --git a/tests/auto/qpluginloader/tst/tst.pro b/tests/auto/qpluginloader/tst/tst.pro index 2de0912..2d757e7 100644 --- a/tests/auto/qpluginloader/tst/tst.pro +++ b/tests/auto/qpluginloader/tst/tst.pro @@ -20,7 +20,7 @@ wince*: { } symbian: { - libDep.sources = mylib.dll + libDep.sources = tst_qpluginloaderlib.dll libDep.path = /sys/bin pluginDep.sources = theplugin.dll pluginDep.path = bin diff --git a/tests/auto/qpluginloader/tst_qpluginloader.cpp b/tests/auto/qpluginloader/tst_qpluginloader.cpp index 705e600..e913cb5 100644 --- a/tests/auto/qpluginloader/tst_qpluginloader.cpp +++ b/tests/auto/qpluginloader/tst_qpluginloader.cpp @@ -169,7 +169,7 @@ void tst_QPluginLoader::errorString() QCOMPARE(loader.errorString(), unknown); } { - QPluginLoader loader( sys_qualifiedLibraryName("mylib")); //not a plugin + QPluginLoader loader( sys_qualifiedLibraryName("tst_qpluginloaderlib")); //not a plugin bool loaded = loader.load(); #ifdef SHOW_ERRORS qDebug() << loader.errorString(); diff --git a/tests/auto/qtextcodec/qtextcodec.pro b/tests/auto/qtextcodec/qtextcodec.pro index 0bcf067..6cb13a9 100644 --- a/tests/auto/qtextcodec/qtextcodec.pro +++ b/tests/auto/qtextcodec/qtextcodec.pro @@ -1,4 +1,4 @@ TEMPLATE = subdirs SUBDIRS = test -!wince*:SUBDIRS += echo +!wince*:!symbian:SUBDIRS += echo diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp index 0946c93..cc41591 100644 --- a/tests/auto/qtextcodec/tst_qtextcodec.cpp +++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp @@ -1946,6 +1946,8 @@ void tst_QTextCodec::toLocal8Bit() { #ifdef QT_NO_PROCESS QSKIP("This test requires QProcess", SkipAll); +#elif defined(Q_OS_SYMBIAN) + QSKIP("This test requires streams support in QProcess", SkipAll); #else QProcess process; process.start("echo/echo"); diff --git a/tests/auto/qtextstream/qtextstream.pro b/tests/auto/qtextstream/qtextstream.pro index 8346d7f..a2dcc81 100644 --- a/tests/auto/qtextstream/qtextstream.pro +++ b/tests/auto/qtextstream/qtextstream.pro @@ -1,5 +1,6 @@ TEMPLATE = subdirs -SUBDIRS = test stdinProcess readAllStdinProcess readLineStdinProcess +SUBDIRS = test +!symbian: SUBDIRS += stdinProcess readAllStdinProcess readLineStdinProcess -- cgit v0.12 From f732113f45a918fcb39ed073f82bcf0de5b455b2 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 6 Aug 2010 10:40:16 +0300 Subject: Added $$MW_LAYER_SYSTEMINCLUDE to some autotests These autotests couldn't find e32svr.h in Symbian^3 env because that header has moved. Reviewed-by: TrustMe --- tests/auto/qfileinfo/qfileinfo.pro | 1 + tests/auto/qlocale/test/test.pro | 2 ++ tests/auto/qsslsocket/qsslsocket.pro | 1 + 3 files changed, 4 insertions(+) diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro index ef5ed22..30656e2 100644 --- a/tests/auto/qfileinfo/qfileinfo.pro +++ b/tests/auto/qfileinfo/qfileinfo.pro @@ -16,6 +16,7 @@ wince*:|symbian: { symbian { TARGET.CAPABILITY=AllFiles LIBS *= -lefsrv + INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE # Needed for e32svr.h in S^3 envs } # support for running test from shadow build directory diff --git a/tests/auto/qlocale/test/test.pro b/tests/auto/qlocale/test/test.pro index e33d0fe..6512e19 100644 --- a/tests/auto/qlocale/test/test.pro +++ b/tests/auto/qlocale/test/test.pro @@ -37,3 +37,5 @@ symbian:contains(S60_VERSION,3.2) { "$${LITERAL_HASH}endif" MMP_RULES += custom_paged_rule } + +symbian: INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE # Needed for e32svr.h in S^3 envs diff --git a/tests/auto/qsslsocket/qsslsocket.pro b/tests/auto/qsslsocket/qsslsocket.pro index 3557fc8..accfa89 100644 --- a/tests/auto/qsslsocket/qsslsocket.pro +++ b/tests/auto/qsslsocket/qsslsocket.pro @@ -29,6 +29,7 @@ wince* { certFiles.sources = certs ssl.tar.gz certFiles.path = . DEPLOYMENT += certFiles + INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE # Needed for e32svr.h in S^3 envs } else { DEFINES += SRCDIR=\\\"$$PWD/\\\" } -- cgit v0.12 From 339270016bd8805b081f0b4ff550906a6bcfec5b Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Fri, 6 Aug 2010 10:09:16 +0300 Subject: Register window types for Symbian system effects Set the purpose of the window (dialog/popup/child window etc...). Notify WServ when modal window is shown/hidden Notify WServ when temporary surface deallocation happens. Notify WServ when the application is going to shutdown. Task-number: QT-2027 Reviewed-by: Jason Barron --- src/gui/kernel/qapplication.h | 3 ++ src/gui/kernel/qapplication_p.h | 1 + src/gui/kernel/qapplication_s60.cpp | 58 ++++++++++++++++++++++++++++++++++++- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h index 799d4c2..0242582 100644 --- a/src/gui/kernel/qapplication.h +++ b/src/gui/kernel/qapplication.h @@ -412,6 +412,9 @@ private: #if defined(QT_RX71_MULTITOUCH) Q_PRIVATE_SLOT(d_func(), void _q_readRX71MultiTouchEvents()) #endif +#if defined(Q_OS_SYMBIAN) + Q_PRIVATE_SLOT(d_func(), void _q_aboutToQuit()) +#endif }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h index 53205b5..8dc16e0 100644 --- a/src/gui/kernel/qapplication_p.h +++ b/src/gui/kernel/qapplication_p.h @@ -519,6 +519,7 @@ public: int symbianHandleCommand(const QSymbianEvent *symbianEvent); int symbianResourceChange(const QSymbianEvent *symbianEvent); + void _q_aboutToQuit(); #endif #if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined (Q_WS_QWS) || defined(Q_WS_MAC) void sendSyntheticEnterLeave(QWidget *widget); diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 1f6a4ae..52f0db6 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -87,6 +87,10 @@ #include #include +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS +#include +#endif + QT_BEGIN_NAMESPACE // Goom Events through Window Server @@ -372,7 +376,7 @@ void QSymbianControl::ConstructL(bool isWindowOwning, bool desktop) { if (!desktop) { - if (isWindowOwning or !qwidget->parentWidget()) + if (isWindowOwning || !qwidget->parentWidget()) CreateWindowL(S60->windowGroup()); else /** @@ -395,6 +399,34 @@ void QSymbianControl::ConstructL(bool isWindowOwning, bool desktop) DrawableWindow()->SetPointerGrab(ETrue); } + +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + if (OwnsWindow()) { + TTfxWindowPurpose windowPurpose(ETfxPurposeNone); + switch (qwidget->windowType()) { + case Qt::Dialog: + windowPurpose = ETfxPurposeDialogWindow; + break; + case Qt::Popup: + windowPurpose = ETfxPurposePopupWindow; + break; + case Qt::Tool: + windowPurpose = ETfxPurposeToolWindow; + break; + case Qt::ToolTip: + windowPurpose = ETfxPurposeToolTipWindow; + break; + case Qt::SplashScreen: + windowPurpose = ETfxPurposeSplashScreenWindow; + break; + default: + windowPurpose = (isWindowOwning || !qwidget->parentWidget()) + ? ETfxPurposeWindow : ETfxPurposeChildWindow; + break; + } + Window().SetPurpose(windowPurpose); + } +#endif } QSymbianControl::~QSymbianControl() @@ -1483,6 +1515,10 @@ void qt_init(QApplicationPrivate * /* priv */, int) systemFont.setFamily(systemFont.defaultFamily()); QApplicationPrivate::setSystemFont(systemFont); +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + QObject::connect(qApp, SIGNAL(aboutToQuit()), qApp, SLOT(_q_aboutToQuit())); +#endif + /* ### Commented out for now as parameter handling not needed in SOS(yet). Code below will break testlib with -o flag int argc = priv->argc; @@ -1572,6 +1608,9 @@ bool QApplicationPrivate::modalState() void QApplicationPrivate::enterModal_sys(QWidget *widget) { +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + S60->wsSession().SendEffectCommand(ETfxCmdAppModalModeEnter); +#endif if (widget) { static_cast(widget->effectiveWinId())->FadeBehindPopup(ETrue); // Modal partial screen dialogs (like queries) capture pointer events. @@ -1587,6 +1626,9 @@ void QApplicationPrivate::enterModal_sys(QWidget *widget) void QApplicationPrivate::leaveModal_sys(QWidget *widget) { +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + S60->wsSession().SendEffectCommand(ETfxCmdAppModalModeExit); +#endif if (widget) { static_cast(widget->effectiveWinId())->FadeBehindPopup(EFalse); // ### FixMe: Add specialized behaviour for fullscreen modal dialogs @@ -1883,6 +1925,9 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent break; QRefCountedWidgetBackingStore &backingStore = window->d_func()->maybeTopData()->backingStore; if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) { +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + S60->wsSession().SendEffectCommand(ETfxCmdDeallocateLayer); +#endif // Decrement backing store reference count backingStore.deref(); // In order to ensure that any resources used by the window surface @@ -1893,6 +1938,9 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent // Increment backing store reference count backingStore.ref(); } else { +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + S60->wsSession().SendEffectCommand(ETfxCmdRestoreLayer); +#endif // Create backing store with an initial reference count of 1 backingStore.create(window); backingStore.ref(); @@ -2268,6 +2316,14 @@ void QApplication::restoreOverrideCursor() #endif // QT_NO_CURSOR +void QApplicationPrivate::_q_aboutToQuit() +{ +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + // Send the shutdown tfx command + S60->wsSession().SendEffectCommand(ETfxCmdAppShutDown); +#endif +} + QS60ThreadLocalData::QS60ThreadLocalData() { CCoeEnv *env = CCoeEnv::Static(); -- cgit v0.12 From e4acfde1ecfa6d4ae4e8d093e20e085a4b8d8c44 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Fri, 6 Aug 2010 11:09:02 +0200 Subject: Adding Getting Started files. Auto test passes. --- .../tutorials/gettingStarted/gsQml/core/button.qml | 108 ++++++++++ .../gettingStarted/gsQml/core/editMenu.qml | 105 ++++++++++ .../gettingStarted/gsQml/core/fileDialog.qml | 163 +++++++++++++++ .../gettingStarted/gsQml/core/fileMenu.qml | 232 +++++++++++++++++++++ .../gettingStarted/gsQml/core/menuBar.qml | 147 +++++++++++++ .../tutorials/gettingStarted/gsQml/core/qmldir | 49 +++++ .../gettingStarted/gsQml/core/textArea.qml | 87 ++++++++ .../gettingStarted/gsQml/filedialog/cppPlugins.pro | 17 ++ .../gsQml/filedialog/dialogPlugin.cpp | 54 +++++ .../gettingStarted/gsQml/filedialog/dialogPlugin.h | 57 +++++ .../gettingStarted/gsQml/filedialog/directory.cpp | 224 ++++++++++++++++++++ .../gettingStarted/gsQml/filedialog/directory.h | 107 ++++++++++ .../gettingStarted/gsQml/filedialog/file.cpp | 57 +++++ .../gettingStarted/gsQml/filedialog/file.h | 67 ++++++ .../gettingStarted/gsQml/filedialog/qmldir | 1 + .../gettingStarted/gsQml/images/arrow.png | Bin 0 -> 583 bytes .../gsQml/pics/qml-texteditor5_editmenu.png | Bin 0 -> 65123 bytes .../gsQml/pics/qml-texteditor5_filemenu.png | Bin 0 -> 21367 bytes .../gsQml/pics/qml-texteditor5_newfile.png | Bin 0 -> 76693 bytes .../tutorials/gettingStarted/gsQml/texteditor.qml | 128 ++++++++++++ 20 files changed, 1603 insertions(+) create mode 100644 examples/tutorials/gettingStarted/gsQml/core/button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/editMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/menuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/core/textArea.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/images/arrow.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png create mode 100644 examples/tutorials/gettingStarted/gsQml/texteditor.qml diff --git a/examples/tutorials/gettingStarted/gsQml/core/button.qml b/examples/tutorials/gettingStarted/gsQml/core/button.qml new file mode 100644 index 0000000..dd5dcad --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/button.qml @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +import Qt 4.7 + +Rectangle { + //identifier of the item + id: button + + //these properties act as constants, useable outside this QML file + property int buttonHeight: 75 + property int buttonWidth: 150 + + //attaches to the Text element's text content + property string label + property color textColor: buttonLabel.color + + //the color highlight when the mouse hovers on the rectangle + property color onHoverColor: "lightsteelblue" + property color borderColor: "transparent" + + //buttonColor is set to the button's main color + property color buttonColor: "lightblue" + + property real labelSize: 14 + + //set appearance properties + radius: 6 + smooth: true + border { width: 2; color: borderColor } + width: buttonWidth; height: buttonHeight + + Text { + id: buttonLabel + anchors.centerIn: parent + text: label //bind the text to the parent's text + color: "#DCDCCC" + font.pointSize: labelSize + } + + //buttonClick() is callable and a signal handler, onButtonClick is automatically created + signal buttonClick() + + //define the clickable area to be the whole rectangle + MouseArea { + id: buttonMouseArea + anchors.fill: parent //stretch the area to the parent's dimension + onClicked: buttonClick() + + //if true, then onEntered and onExited called if mouse hovers in the mouse area + //if false, a button must be clicked to detect the mouse hover + hoverEnabled: true + + //display a border if the mouse hovers on the button mouse area + onEntered: parent.border.color = onHoverColor + //remove the border if the mouse exits the button mouse area + onExited: parent.border.color = borderColor + } + + //change the color of the button when pressed + color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor + //animate the color whenever the color property changes + Behavior on color { ColorAnimation{ duration: 55 } } + + //scale the button when pressed + scale: buttonMouseArea.pressed ? 1.1 : 1.00 + //Animate the scale property change + Behavior on scale { NumberAnimation{ duration: 55 } } + +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml new file mode 100644 index 0000000..7f47d9f --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +import Qt 4.7 + +Rectangle { + id: editMenu + height: 480; width:1000 + color: "powderblue" + property color buttonBorderColor: "#7A8182" + property color buttonFillColor: "#61BDCACD" + property string menuName:"Edit" + gradient: Gradient { + GradientStop { position: 0.0; color: "#6A7570" } + GradientStop { position: 1.0; color: Qt.darker("#6A7570") } + } + + Rectangle { + id:actionContainer + color:"transparent" + anchors.centerIn: parent + width: parent.width; height: parent.height / 5 + Row { + anchors.centerIn: parent + spacing: parent.width/9 + Button { + id: loadButton + buttonColor: buttonFillColor + label: "Copy" + labelSize: 16 + borderColor: buttonBorderColor + height: actionContainer.height; width: actionContainer.width/6 + onButtonClick: textArea.copy() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + Button { + id: saveButton + height: actionContainer.height; width: actionContainer.width/6 + buttonColor: buttonFillColor + label: "Paste" + borderColor: buttonBorderColor + labelSize: 16 + onButtonClick: textArea.paste() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + Button { + id: exitButton + label: "Select All" + height: actionContainer.height; width: actionContainer.width/6 + labelSize: 16 + buttonColor: buttonFillColor + borderColor:buttonBorderColor + onButtonClick: textArea.selectAll() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + } + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml new file mode 100644 index 0000000..425f717 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml @@ -0,0 +1,163 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + id:dialog + height: 200 * partition; width: 200 + color: "transparent" + + signal selectChanged() + signal notifyRefresh() + onNotifyRefresh:dirView.model = directory.files + + property string selectedFile + property int selectedIndex: 0 + + Rectangle { + id: dirBox + radius: 10 + anchors.centerIn:parent + height: parent.height -15; width: parent.width -30 + + Rectangle { + id:header + height: parent.height*0.1; width: parent.width + radius:3 + z:1 + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.98;color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#0e1B20" } + } + Text { + height: header.height; anchors.centerIn: header + text: "files:" + color: "lightblue" + font.weight: Font.Light + font.italic: true + } + } + GridView { + id:dirView + width:parent.width; height:parent.height*.9 + anchors.top: header.bottom + cellWidth: 100; cellHeight: 75 + model: directory.files + delegate: dirDelegate + clip: true + highlightMoveDuration: 40 + } + Component { + id: dirDelegate + Rectangle { + id:file + color: "transparent" + width: GridView.view.cellWidth; height: GridView.view.cellHeight + + Text { + id:fileName + width: parent.width + anchors.centerIn: parent + text: name + color: "#BDCACD" + font.weight: GridView.view.currentIndex == index ? Font.DemiBold : Font.Normal + font.pointSize: GridView.view.currentIndex == index ? 12 : 10 + elide: Text.ElideMiddle + horizontalAlignment: Text.AlignHCenter + } + Rectangle { + id: selection + width: parent.width; height: parent.height + anchors.centerIn: parent + radius: 10 + smooth: true + scale: GridView.view.currentIndex == index ? 1 : 0.5 + opacity: GridView.view.currentIndex == index ? 1 : 0 + Text { + id: overlay + width: parent.width + anchors.centerIn: parent + text: name + color: "#696167" + font.weight: Font.DemiBold + font.pointSize: 12 + smooth: true + elide: Text.ElideMiddle + horizontalAlignment: Text.AlignHCenter + } + Behavior on opacity { NumberAnimation{ duration: 45 } } + Behavior on scale { NumberAnimation{ duration: 45 } } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) } + GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) } + } + border.color: "lightsteelblue" + border.width: 1 + } + MouseArea { + id:fileMouseArea + anchors.fill:parent + hoverEnabled: true + + onClicked: { + GridView.view.currentIndex = index + selectedFile = directory.files[index].name + selectChanged() + } + onEntered: { + fileName.color = "lightsteelblue" + fileName.font.weight = Font.DemiBold + } + onExited: { + fileName.font.weight = Font.Normal + fileName.color = "#BDCACD" + } + } + } + } + gradient: Gradient { + GradientStop { position: 0.0; color: "#A5333333" } + GradientStop { position: 1.0; color: "#03333333" } + } + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml new file mode 100644 index 0000000..afe48c7 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml @@ -0,0 +1,232 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + id: fileMenu + height: 480; width:1000 + property color buttonBorderColor: "#7F8487" + property color buttonFillColor: "#8FBDCACD" + property string fileContent:directory.fileContent + + //the menuName is accessible from outside this QML file + property string menuName: "File" + + //used to divide the screen into parts. + property real partition: 1/3 + + color: "#6C646A" + gradient: Gradient { + GradientStop { position: 0.0; color: "#6C646A" } + GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") } + } + + Directory { + id:directory + filename: textInput.text + onDirectoryChanged:fileDialog.notifyRefresh() + } + + Rectangle { + id:actionContainer + + //make this rectangle invisible + color:"transparent" + anchors.left: parent.left + + //the height is a good proportion that creates more space at the top of + //the column of buttons + width: fileMenu.width * partition; height: fileMenu.height + + Column { + anchors.centerIn: parent + spacing: parent.height/32 + Button { + id: saveButton + label: "Save" + borderColor: buttonBorderColor + buttonColor: buttonFillColor + width: actionContainer.width/ 1.3 + height:actionContainer.height / 8 + labelSize:24 + onButtonClick: { + directory.fileContent = textArea.textContent + directory.filename = textInput.text + directory.saveFile() + } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + Button { + id: loadButton + width: actionContainer.width/ 1.3 + height:actionContainer.height/ 8 + buttonColor: buttonFillColor + borderColor: buttonBorderColor + label: "Load" + labelSize:24 + onButtonClick:{ + directory.filename = textInput.text + directory.loadFile() + textArea.textContent = directory.fileContent + } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + Button { + id: newButton + width: actionContainer.width/ 1.3 + height: actionContainer.height/ 8 + buttonColor: buttonFillColor + borderColor: buttonBorderColor + label: "New" + labelSize: 24 + onButtonClick:{ + textArea.textContent = "" + textInput.text = "" + } + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + + } + Rectangle { + id: space + width: actionContainer.width/ 1.3 + height: actionContainer.height / 16 + color: "transparent" + } + Button { + id: exitButton + width: actionContainer.width/ 1.3 + height: actionContainer.height/ 8 + label: "Exit" + labelSize: 24 + buttonColor: buttonFillColor + borderColor: buttonBorderColor + onButtonClick: Qt.quit() + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) } + GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) } + } + } + } + } + Rectangle { + id:dialogContainer + + width: 2*fileMenu.width * partition; height: fileMenu.height + anchors.right:parent.right + color: "transparent" + + Column { + anchors.centerIn: parent + spacing: parent.height /640 + FileDialog { + id:fileDialog + height: 2*dialogContainer.height * partition + width: dialogContainer.width + onSelectChanged: textInput.text = selectedFile + } + + Rectangle { + id:lowerPartition + height: dialogContainer.height * partition; width: dialogContainer.width + color: "transparent" + + Rectangle { + id: nameField + gradient: Gradient { + GradientStop { position: 0.0; color: "#806F6F6F" } + GradientStop { position: 1.0; color: "#136F6F6F" } + } + radius: 10 + anchors { centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15 } + height: parent.height-15 + width: parent.width -20 + border { color: "#4A4A4A"; width:1 } + + TextInput { + id: textInput + z:2 + anchors { bottom: parent.bottom; topMargin: 10; horizontalCenter: parent.horizontalCenter } + width: parent.width - 10 + height: parent.height -10 + font.pointSize: 40 + color: "lightsteelblue" + focus: true + } + Text { + id: textInstruction + anchors.centerIn: parent + text: "Select file name and press save or load" + font {pointSize: 11; weight: Font.Light; italic: true} + color: "lightblue" + z: 2 + opacity: (textInput.text == "") ? 1 : 0 + } + Text { + id:fieldLabel + anchors { top: parent.top; left: parent.left } + text: " file name: " + font { pointSize: 11; weight: Font.Light; italic: true } + color: "lightblue" + z:2 + } + MouseArea { + anchors.centerIn:parent + width: nameField.width; height: nameField.height + onClicked: { + textInput.text = "" + textInput.focus = true + textInput.forceFocus() + } + } + } + } + } + } +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml new file mode 100644 index 0000000..0695772 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + id: menuBar + width: 1000; height:300 + color:"transparent" + property color fileColor: "plum" + property color editColor: "powderblue" + + property real partition: 1/10 + + Column { + anchors.fill: parent + //container for the header and the buttons + z: 1 + Rectangle { + id: labelList + height:menuBar.height*partition + width: menuBar.width + color: "beige" + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.98;color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#0e1B20" } + } + Text { + height: parent.height + anchors { right: labelRow.left ; verticalCenter: parent.bottom } + text: "menu: " + color: "lightblue" + font { weight: Font.Light; italic: true } + smooth: true + } + //row displays its children in a vertical row + Row { + id: labelRow + anchors.centerIn: parent + spacing:40 + Button { + id: fileButton + height: 20; width: 50 + label: "File" + buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5) + scale: menuListView.currentIndex == 0? 1.25: 1 + labelSize: menuListView.currentIndex == 0? 16:12 + radius: 1 + smooth:true + //on a button click, change the list's currently selected item to FileMenu + onButtonClick: menuListView.currentIndex = 0 + gradient: Gradient { + GradientStop { position: 0.0; color: fileColor } + GradientStop { position: 1.0; color: "#136F6F6F" } + } + } + Button { + id: editButton + height: 20; width: 50 + buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9) + scale: menuListView.currentIndex == 1? 1.25: 1 + label: "Edit" + radius: 1 + labelSize: menuListView.currentIndex == 1? 16:12 + smooth:true + //on a button click, change the list's currently selected item to EditMenu + onButtonClick: menuListView.currentIndex = 1 + gradient: Gradient { + GradientStop { position: 0.0; color: editColor } + GradientStop { position: 1.0; color: "#136F6F6F" } + } + } + } + } + + //list view will display a model according to a delegate + ListView { + id: menuListView + width:menuBar.width; height: 9*menuBar.height*partition + + //the model contains the data + model: menuListModel + + //control the movement of the menu switching + snapMode: ListView.SnapOneItem + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + flickDeceleration: 5000 + highlightFollowsCurrentItem: true + highlightMoveDuration:240 + highlightRangeMode: ListView.StrictlyEnforceRange + } + } + //a list of visual items already have delegates handling their display + VisualItemModel { + id: menuListModel + + FileMenu { + id:fileMenu + width: menuListView.width; height: menuListView.height + color: fileColor + } + EditMenu { + color: editColor + width: menuListView.width; height: menuListView.height + } + } +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/qmldir b/examples/tutorials/gettingStarted/gsQml/core/qmldir new file mode 100644 index 0000000..08575cc --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/qmldir @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +Button ./button.qml +FileDialog ./fileDialog.qml +TextArea ./textArea.qml +TextEditor ./textEditor.qml +EditMenu ./editMenu.qml +MenuBar ./menuBar.qml +FileMenu ./fileMenu.qml + +plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStarted/gsQml/core/textArea.qml b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml new file mode 100644 index 0000000..6d3d214 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + id:textArea + + function paste() { textEdit.paste() } + function copy() { textEdit.copy() } + function selectAll() { textEdit.selectAll() } + + width :400; height:400 + + property color fontColor: "white" + property alias textContent: textEdit.text + Flickable { + id: flickArea + width: parent.width; height: parent.height + anchors.fill:parent + + boundsBehavior: Flickable.StopAtBounds + flickableDirection: Flickable.HorizontalFlick + interactive: true + //Will move the text Edit area to make the area visible when + //scrolled with keyboard strokes + function ensureVisible(r) { + if (contentX >= r.x) + contentX = r.x; + else if (contentX+width <= r.x+r.width) + contentX = r.x+r.width-width; + if (contentY >= r.y) + contentY = r.y; + else if (contentY+height <= r.y+r.height) + contentY = r.y+r.height-height; + } + + TextEdit { + id: textEdit + anchors.fill:parent + width:parent.width; height:parent.height + color:fontColor + focus: true + wrapMode: TextEdit.Wrap + font.pointSize:10 + onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle) + selectByMouse: true + } + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro new file mode 100644 index 0000000..d85787d --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro @@ -0,0 +1,17 @@ +TEMPLATE = lib +CONFIG += qt plugin +QT += declarative + +DESTDIR += ../plugins +OBJECTS_DIR = tmp +MOC_DIR = tmp + +TARGET = FileDialog + +HEADERS += directory.h \ + file.h \ + dialogPlugin.h + +SOURCES += directory.cpp \ + file.cpp \ + dialogPlugin.cpp diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp new file mode 100644 index 0000000..e3a82dc --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "dialogPlugin.h" +#include "directory.h" +#include "file.h" +#include + +void DialogPlugin::registerTypes(const char *uri) +{ + //register the class Directory into QML as a "Directory" element version 1.0 + qmlRegisterType(uri, 1, 0, "Directory"); + qmlRegisterType(uri,1,0,"File"); +} + +//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs +Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h new file mode 100644 index 0000000..c345641 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DIALOGPLUGIN_H +#define DIALOGPLUGIN_H + +#include + +class DialogPlugin : public QDeclarativeExtensionPlugin +{ + Q_OBJECT + + public: + //registerTypes is inherited from QDeclarativeExtensionPlugin + void registerTypes(const char *uri); + +}; + +#endif + diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp new file mode 100644 index 0000000..c46a65b --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp @@ -0,0 +1,224 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "directory.h" +#include + +/* +Directory constructor + +Initialize the saves directory and creates the file list +*/ +Directory::Directory(QObject *parent) : QObject(parent) +{ + m_dir.cd( QDir::currentPath() ); + + //go to the saved directory. if not found, create save directory + m_saveDir = "saves"; + if ( m_dir.cd(m_saveDir) == 0 ) { + m_dir.mkdir(m_saveDir); + m_dir.cd(m_saveDir); + } + m_filterList << "*.txt"; + refresh(); +} + +/* +Directory::filesNumber +Return the number of Files +*/ +int Directory::filesCount() const +{ + return m_fileList.size(); +} + +/* +Function called to append data onto list property +*/ +void appendFiles(QDeclarativeListProperty * property, File * file) +{ + Q_UNUSED(property); + Q_UNUSED(file); + //Do nothing. can't add to a directory using this method +} + +/* +Function called to retrieve file in the list using an index +*/ +File* fileAt(QDeclarativeListProperty * property, int index) +{ + return static_cast< QList *>(property->data)->at(index); +} + +/* +Returns the number of files in the list +*/ +int filesSize(QDeclarativeListProperty * property) +{ + return static_cast< QList *>(property->data)->size(); +} + +/* +Function called to empty the list property contents +*/ +void clearFilesPtr(QDeclarativeListProperty *property) +{ + return static_cast< QList *>(property->data)->clear(); +} + +/* +Returns the list of files as a QDeclarativeListProperty. +*/ +QDeclarativeListProperty Directory::files() +{ + refresh(); + return QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); +} + +/* +Return the name of the currently selected file +*/ +QString Directory::filename() const +{ + return currentFile.name(); +} + +/* +Return the file's content as a string. +*/ +QString Directory::fileContent() const +{ + return m_fileContent; +} + +/* +Set the file name of the current file +*/ +void Directory::setFilename(const QString &str) +{ + if( str != currentFile.name() ) { + currentFile.setName(str); + emit filenameChanged(); + } +} + +/* +Set the content of the file as a string +*/ +void Directory::setFileContent(const QString &str) +{ + if(str != m_fileContent){ + m_fileContent = str; + emit fileContentChanged(); + } +} + +/* +Called from QML to save the file using the filename and file content. +Saving makes sure that the file has a .txt extension. +*/ +void Directory::saveFile() +{ + if(currentFile.name().size() == 0){ + qWarning()<< "Empty filename. no save"; + return; + } + QString extendedName = currentFile.name(); + if(!currentFile.name().endsWith(".txt")){ + extendedName.append(".txt"); + } + QFile file( m_dir.filePath(extendedName) ); + if ( file.open(QFile::WriteOnly | QFile::Truncate) ) { + QTextStream outStream(&file); + outStream << m_fileContent; + } + file.close(); + refresh(); + emit directoryChanged(); +} + +/* +Load the contents of a file. +Only loads files with a .txt extension +*/ +void Directory::loadFile() +{ + m_fileContent.clear(); + QString extendedName = currentFile.name(); + if( !currentFile.name().endsWith(".txt") ) { + extendedName.append(".txt"); + } + + QFile file( m_dir.filePath(extendedName) ); + if ( file.open(QFile::ReadOnly ) ) { + QTextStream inStream(&file); + + QString line; + do { + line = inStream.read(75); + m_fileContent.append(line); + } while ( !line.isNull() ) ; + } + file.close(); +} + +/* +Reloads the content of the files list. This is to ensure that the newly +created files are added onto the list. +*/ +void Directory::refresh() +{ + m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name); + m_fileList.clear(); + + File * file; + for(int i = 0; i < m_dirFiles.size() ; i ++) { + file = new File(); + + if( m_dirFiles.at(i).endsWith(".txt") ) { + QString name = m_dirFiles.at(i); + file->setName( name.remove(".txt",Qt::CaseSensitive) ); + } + else { + file->setName(m_dirFiles.at(i)); + } + m_fileList.append(file); + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h new file mode 100644 index 0000000..0dc388a --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DIRECTORY_H +#define DIRECTORY_H + +#include "file.h" + +#include +#include +#include +#include +#include + +class Directory : public QObject { + + Q_OBJECT + + //number of files in the directory + Q_PROPERTY(int filesCount READ filesCount) + + //list property containing file names as QString + Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) + + //file name of the text file to read/write + Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) + + //text content of the file + Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged) + + public: + Directory(QObject *parent = 0); + + //properties' read functions + int filesCount() const; + QString filename() const; + QString fileContent() const; + QDeclarativeListProperty files(); + + //properties' write functions + void setFilename(const QString &str); + void setFileContent(const QString &str); + + //accessible from QML + Q_INVOKABLE void saveFile(); + Q_INVOKABLE void loadFile(); + + signals: + void directoryChanged(); + void filenameChanged(); + void fileContentChanged(); + + private: + QDir m_dir; + QStringList m_dirFiles; + File currentFile; + QString m_saveDir; + QStringList m_filterList; + + //contains the file data in QString format + QString m_fileContent; + + //Registered to QML in a plugin. Accessible from QML as a property of Directory + QList m_fileList; + + //refresh content of the directory + void refresh(); +}; + +#endif diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp new file mode 100644 index 0000000..ccf762c --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "file.h" + +File::File(QObject *parent) : QObject(parent) +{ + m_name = ""; +} + +QString File::name() const{ + return m_name; +} +void File::setName(const QString &str){ + if(str != m_name){ + m_name = str; + emit nameChanged(); + } +} \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h new file mode 100644 index 0000000..606f374 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef FILE_H +#define FILE_H + + +#include +#include + +class File : public QObject{ + + Q_OBJECT + + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + + public: + File(QObject *parent = 0); + + QString name() const; + void setName(const QString &str); + + signals: + void nameChanged(); + + private: + QString m_name; +}; + +#endif \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir new file mode 100644 index 0000000..c2b27da --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir @@ -0,0 +1 @@ +plugin FileDialog plugins diff --git a/examples/tutorials/gettingStarted/gsQml/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/images/arrow.png new file mode 100644 index 0000000..14978c2 Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/images/arrow.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png new file mode 100644 index 0000000..27feed5 Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png new file mode 100644 index 0000000..4d8f9f2 Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png new file mode 100644 index 0000000..680acfe Binary files /dev/null and b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png differ diff --git a/examples/tutorials/gettingStarted/gsQml/texteditor.qml b/examples/tutorials/gettingStarted/gsQml/texteditor.qml new file mode 100644 index 0000000..3bd9d55 --- /dev/null +++ b/examples/tutorials/gettingStarted/gsQml/texteditor.qml @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 +import "core" + +Rectangle { + id: screen + width: 1000; height: 1000 + property int partition: height/3 + border { width: 1; color: "#DCDCCC"} + state: "DRAWER_CLOSED" + + //Item 1: MenuBar on the top portion of the screen + MenuBar { + id:menuBar + height: screen.partition; width: screen.width + z: 1 + } + + //Item 2: The editable text area + TextArea { + id: textArea + y: drawer.height + color: "#3F3F3F" + fontColor: "#DCDCCC" + height: partition*2; width:parent.width + } + + //Item 3: The drawer handle + Rectangle { + id: drawer + height: 15; width: parent.width + border { color : "#6A6D6A"; width: 1 } + z: 1 + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.77; color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#6A6D6A" } + } + Image { + id: arrowIcon + source: "images/arrow.png" + anchors.horizontalCenter: parent.horizontalCenter + Behavior{ NumberAnimation { property: "rotation"; easing.type: Easing.OutExpo } } + } + + MouseArea { + id: drawerMouseArea + anchors.fill: parent + hoverEnabled: true + onEntered: parent.border.color = Qt.lighter("#6A6D6A") + onExited: parent.border.color = "#6A6D6A" + onClicked: { + if (screen.state == "DRAWER_CLOSED") { + screen.state = "DRAWER_OPEN" + } + else if (screen.state == "DRAWER_OPEN"){ + screen.state = "DRAWER_CLOSED" + } + } + } + } + + states:[ + State { + name: "DRAWER_OPEN" + PropertyChanges { target: menuBar; y: 0} + PropertyChanges { target: textArea; y: partition + drawer.height} + PropertyChanges { target: drawer; y: partition} + PropertyChanges { target: arrowIcon; rotation: 180} + }, + State { + name: "DRAWER_CLOSED" + PropertyChanges { target: menuBar; y:-height; } + PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height } + PropertyChanges { target: drawer; y: 0 } + PropertyChanges { target: arrowIcon; rotation: 0 } + } + ] + + transitions: [ + Transition { + to: "*" + NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo } + NumberAnimation { target: menuBar; properties: "y"; duration: 100; easing.type: Easing.OutExpo } + NumberAnimation { target: drawer; properties: "y"; duration: 100; easing.type: Easing.OutExpo } + } + ] +} -- cgit v0.12 From a273f6fb0b2410da772e7759125f955da9a5e19c Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 6 Aug 2010 11:52:41 +0200 Subject: doc: Fixed some missing images. Task-nr: QTBUG-8246 --- doc/src/examples/imagegestures.qdoc | 2 -- doc/src/getting-started/examples.qdoc | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/src/examples/imagegestures.qdoc b/doc/src/examples/imagegestures.qdoc index 57479d8..3d4e467 100644 --- a/doc/src/examples/imagegestures.qdoc +++ b/doc/src/examples/imagegestures.qdoc @@ -32,8 +32,6 @@ This example shows how to enable gestures for a widget and use gesture input to perform actions. - \image imagegestures-example.png Screenshot of the Image Gestures example. - We use two classes to create the user interface for the application: \c MainWidget and \c ImageWidget. The \c MainWidget class is simply used as a container for the \c ImageWidget class, which we will configure to accept gesture input. Since we diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index b2895ba..1bf86e5 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -529,7 +529,7 @@ \title OpenVG Examples \brief Accessing OpenVG from Qt - \image openvg-examples.png + \image opengl-examples.png Qt provides support for integration with OpenVG implementations on platforms with suitable drivers. -- cgit v0.12 From 6b61a2787759673f246493453c0809d24c9d6ae5 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 6 Aug 2010 10:56:44 +0100 Subject: Make input methods work correctly with Symbian^3 FEP in numeric mode Enable alphanumeric modes to use EAknEditorFlagUseSCTNumericCharmap flag so that all symbols are shown when you press the * key when the FEP is in portrait mode (traditional 4x3 mobile phone keypad emulation) Enable text input mode as well as numeric input mode for ImhFormattedNumbersOnly or ImhDialableCharactersOnly, as the '*' key on the virtual keypad does not work to launch the symbols menu otherwise. Task-number: QT-3681 Reviewed-by: Jason Barron --- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index 999edda..cd05e38 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -359,10 +359,10 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) commitTemporaryPreeditString(); - bool numbersOnly = hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly - || hints & ImhDialableCharactersOnly; - bool noOnlys = !(numbersOnly || hints & ImhUppercaseOnly - || hints & ImhLowercaseOnly); + bool numbersOnly = (hints & ImhDigitsOnly) || (hints & ImhFormattedNumbersOnly) + || (hints & ImhDialableCharactersOnly); + bool noOnlys = !(numbersOnly || (hints & ImhUppercaseOnly) + || (hints & ImhLowercaseOnly)); TInt flags; Qt::InputMethodHints oldHints = hints; @@ -388,8 +388,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) hints |= ImhPreferLowercase; } else if (hints & ImhUppercaseOnly) { hints |= ImhPreferUppercase; - } else if (hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly - || hints & ImhDialableCharactersOnly) { + } else if (numbersOnly) { hints |= ImhPreferNumbers; } } @@ -406,6 +405,11 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) if (numbersOnly) { flags |= EAknEditorNumericInputMode; } + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 + && ((hints & ImhFormattedNumbersOnly) || (hints & ImhDialableCharactersOnly)) { + //workaround - the * key does not launch the symbols menu, making it impossible to use these modes unless text mode is enabled. + flags |= EAknEditorTextInputMode; + } if (hints & ImhUppercaseOnly || hints & ImhLowercaseOnly) { flags |= EAknEditorTextInputMode; } @@ -456,6 +460,9 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) if (hints & ImhNoPredictiveText || hints & ImhHiddenText) { flags |= EAknEditorFlagNoT9; } + // if alphanumeric input, then make all symbols available in numeric mode too. + if (!numbersOnly) + flags |= EAknEditorFlagUseSCTNumericCharmap; m_fepState->SetFlags(flags); ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateFlagsUpdate); -- cgit v0.12 From fb6aa3b0769c33685ad38a13fe5ad0ca48679a93 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 6 Aug 2010 12:18:00 +0200 Subject: doc: Fixed some S60 qdoc errors. --- src/gui/s60framework/qs60mainapplication.cpp | 9 ++++++ src/gui/s60framework/qs60mainappui.cpp | 45 ++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp index 0f9367e..5d4c54e 100644 --- a/src/gui/s60framework/qs60mainapplication.cpp +++ b/src/gui/s60framework/qs60mainapplication.cpp @@ -136,16 +136,25 @@ TFileName QS60MainApplication::ResourceFileName() const return KNullDesC(); } +/*! + \internal +*/ void QS60MainApplication::PreDocConstructL() { QS60MainApplicationBase::PreDocConstructL(); } +/*! + \internal +*/ CDictionaryStore *QS60MainApplication::OpenIniFileLC(RFs &aFs) const { return QS60MainApplicationBase::OpenIniFileLC(aFs); } +/*! + \internal +*/ void QS60MainApplication::NewAppServerL(CApaAppServer *&aAppServer) { QS60MainApplicationBase::NewAppServerL(aAppServer); diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp index 40c2d03..ea9dbb3 100644 --- a/src/gui/s60framework/qs60mainappui.cpp +++ b/src/gui/s60framework/qs60mainappui.cpp @@ -281,76 +281,121 @@ void QS60MainAppUi::RestoreMenuL(CCoeControl *menuWindow, TInt resourceId, TMenu } } +/*! + \internal +*/ void QS60MainAppUi::Exit() { QS60MainAppUiBase::Exit(); } +/*! + \internal +*/ void QS60MainAppUi::SetFadedL(TBool aFaded) { QS60MainAppUiBase::SetFadedL(aFaded); } +/*! + \internal +*/ TRect QS60MainAppUi::ApplicationRect() const { return QS60MainAppUiBase::ApplicationRect(); } +/*! + \internal +*/ void QS60MainAppUi::HandleScreenDeviceChangedL() { QS60MainAppUiBase::HandleScreenDeviceChangedL(); } +/*! + \internal +*/ void QS60MainAppUi::HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent) { QS60MainAppUiBase::HandleApplicationSpecificEventL(aType, aEvent); } +/*! + \internal +*/ TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(TTypeUid aId) { return QS60MainAppUiBase::MopSupplyObject(aId); } +/*! + \internal +*/ void QS60MainAppUi::ProcessCommandL(TInt aCommand) { QS60MainAppUiBase::ProcessCommandL(aCommand); } +/*! + \internal +*/ TErrorHandlerResponse QS60MainAppUi::HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText) { return QS60MainAppUiBase::HandleError(aError, aExtErr, aErrorText, aContextText); } +/*! + \internal +*/ void QS60MainAppUi::HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId) { QS60MainAppUiBase::HandleViewDeactivation(aViewIdToBeDeactivated, aNewlyActivatedViewId); } +/*! + \internal +*/ void QS60MainAppUi::PrepareToExit() { QS60MainAppUiBase::PrepareToExit(); } +/*! + \internal +*/ void QS60MainAppUi::HandleTouchPaneSizeChange() { QS60MainAppUiBase::HandleTouchPaneSizeChange(); } +/*! + \internal +*/ void QS60MainAppUi::HandleSystemEventL(const TWsEvent &aEvent) { QS60MainAppUiBase::HandleSystemEventL(aEvent); } +/*! + \internal +*/ void QS60MainAppUi::Reserved_MtsmPosition() { QS60MainAppUiBase::Reserved_MtsmPosition(); } +/*! + \internal +*/ void QS60MainAppUi::Reserved_MtsmObject() { QS60MainAppUiBase::Reserved_MtsmObject(); } +/*! + \internal +*/ void QS60MainAppUi::HandleForegroundEventL(TBool aForeground) { QS60MainAppUiBase::HandleForegroundEventL(aForeground); -- cgit v0.12 From 30d6f7ed29a2a5723387768cfe82a807a2724b8b Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 6 Aug 2010 12:31:48 +0200 Subject: doc: Fixed some qdoc errors. --- src/gui/graphicsview/qgraphicsitem.cpp | 15 +++++++++++++++ src/gui/graphicsview/qgraphicstransform.cpp | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index ff3dc1f..e1e27d2 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -7758,6 +7758,21 @@ void QGraphicsItemPrivate::resetHeight() } /*! + \property QGraphicsObject::children + \internal +*/ + +/*! + \property QGraphicsObject::width + \internal +*/ + +/*! + \property QGraphicsObject::height + \internal +*/ + +/*! \property QGraphicsObject::parent \brief the parent of the item diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp index 986bee6..7b69317 100644 --- a/src/gui/graphicsview/qgraphicstransform.cpp +++ b/src/gui/graphicsview/qgraphicstransform.cpp @@ -345,6 +345,24 @@ void QGraphicsScale::applyTo(QMatrix4x4 *matrix) const */ /*! + \fn QGraphicsScale::xScaleChanged() + + QGraphicsScale emits this signal when its xScale changes. +*/ + +/*! + \fn QGraphicsScale::yScaleChanged() + + QGraphicsScale emits this signal when its yScale changes. +*/ + +/*! + \fn QGraphicsScale::zScaleChanged() + + QGraphicsScale emits this signal when its zScale changes. +*/ + +/*! \fn QGraphicsScale::scaleChanged() This signal is emitted whenever the xScale, yScale, or zScale -- cgit v0.12 From 0210bbbd7bf8254be5f7f19f524068cd39fc34c2 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Fri, 6 Aug 2010 13:18:24 +0300 Subject: Use ARGB32 premultiplied backing store format in Symbian^3 raster paint engine for translucent windows. Task-number: QTBUG-12710 Reviewed-by: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 3 ++- src/gui/painting/qwindowsurface_s60.cpp | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 52f0db6..a14b1a7 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1087,7 +1087,8 @@ void QSymbianControl::Draw(const TRect& controlRect) const break; case QWExtra::ZeroFill: - if (Window().DisplayMode() == EColor16MA) { + if (Window().DisplayMode() == EColor16MA + || Window().DisplayMode() == Q_SYMBIAN_ECOLOR16MAP) { gc.SetBrushStyle(CGraphicsContext::ESolidBrush); gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); gc.SetBrushColor(TRgb::Color16MA(0)); diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp index 477bd93..8bac1f5 100644 --- a/src/gui/painting/qwindowsurface_s60.cpp +++ b/src/gui/painting/qwindowsurface_s60.cpp @@ -67,10 +67,14 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget) TDisplayMode mode = S60->screenDevice()->DisplayMode(); bool isOpaque = qt_widget_private(widget)->isOpaque; - if (mode == EColor16MA && isOpaque) - mode = EColor16MU; // Faster since 16MU -> 16MA is typically accelerated - else if (mode == EColor16MU && !isOpaque) - mode = EColor16MA; // Try for transparency anyway + if (isOpaque) { + mode = EColor16MU; + } else { + if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3) + mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 WServ has support for ARGB32_PRE + else + mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA + } // We create empty CFbsBitmap here -> it will be resized in setGeometry CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new -- cgit v0.12 From d2a52ba7d5fa48632d6f0092da8db97188993252 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 6 Aug 2010 11:38:18 +0100 Subject: Test code for input method hints A simple test application to set any combination of input method hints on a QLineEdit widget. This makes it easier to debug when the original report relies on webkit. Task-number: QT-3681 Reviewed-by: Miikka Heikkinen --- tests/manual/inputmethodhints/inputmethodhints.cpp | 99 +++++++++++++++ tests/manual/inputmethodhints/inputmethodhints.h | 63 ++++++++++ tests/manual/inputmethodhints/inputmethodhints.pro | 13 ++ tests/manual/inputmethodhints/inputmethodhints.ui | 138 +++++++++++++++++++++ tests/manual/inputmethodhints/main.cpp | 53 ++++++++ 5 files changed, 366 insertions(+) create mode 100644 tests/manual/inputmethodhints/inputmethodhints.cpp create mode 100644 tests/manual/inputmethodhints/inputmethodhints.h create mode 100644 tests/manual/inputmethodhints/inputmethodhints.pro create mode 100644 tests/manual/inputmethodhints/inputmethodhints.ui create mode 100644 tests/manual/inputmethodhints/main.cpp diff --git a/tests/manual/inputmethodhints/inputmethodhints.cpp b/tests/manual/inputmethodhints/inputmethodhints.cpp new file mode 100644 index 0000000..0c00b8d --- /dev/null +++ b/tests/manual/inputmethodhints/inputmethodhints.cpp @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "inputmethodhints.h" + +inputmethodhints::inputmethodhints(QWidget *parent) + : QMainWindow(parent) +{ + ui.setupUi(this); + connect(ui.cbDialableOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbDigitsOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbEmailOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbFormattedNumbersOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbHiddenText, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbLowercaseOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbNoAutoUppercase, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbNoPredictiveText, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbPreferLowercase, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbPreferNumbers, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbPreferUpperCase, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbUppercaseOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); + connect(ui.cbUrlOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int))); +} + +inputmethodhints::~inputmethodhints() +{ + +} + +void inputmethodhints::checkboxChanged(int) +{ + int flags = 0; + if (ui.cbDialableOnly->isChecked()) + flags |= Qt::ImhDialableCharactersOnly; + if (ui.cbDigitsOnly->isChecked()) + flags |= Qt::ImhDigitsOnly; + if (ui.cbEmailOnly->isChecked()) + flags |= Qt::ImhEmailCharactersOnly; + if (ui.cbFormattedNumbersOnly->isChecked()) + flags |= Qt::ImhFormattedNumbersOnly; + if (ui.cbHiddenText->isChecked()) + flags |= Qt::ImhHiddenText; + if (ui.cbLowercaseOnly->isChecked()) + flags |= Qt::ImhLowercaseOnly; + if (ui.cbNoAutoUppercase->isChecked()) + flags |= Qt::ImhNoAutoUppercase; + if (ui.cbNoPredictiveText->isChecked()) + flags |= Qt::ImhNoPredictiveText; + if (ui.cbPreferLowercase->isChecked()) + flags |= Qt::ImhPreferLowercase; + if (ui.cbPreferNumbers->isChecked()) + flags |= Qt::ImhPreferNumbers; + if (ui.cbPreferUpperCase->isChecked()) + flags |= Qt::ImhPreferUppercase; + if (ui.cbUppercaseOnly->isChecked()) + flags |= Qt::ImhUppercaseOnly; + if (ui.cbUrlOnly->isChecked()) + flags |= Qt::ImhUrlCharactersOnly; + ui.lineEdit->clear(); + ui.lineEdit->setInputMethodHints(Qt::InputMethodHints(flags)); +} diff --git a/tests/manual/inputmethodhints/inputmethodhints.h b/tests/manual/inputmethodhints/inputmethodhints.h new file mode 100644 index 0000000..988a4be --- /dev/null +++ b/tests/manual/inputmethodhints/inputmethodhints.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef INPUTMETHODHINTS_H +#define INPUTMETHODHINTS_H + +#include +#include "ui_tst_inputmethodhints.h" + +class inputmethodhints : public QMainWindow +{ + Q_OBJECT + +public: + inputmethodhints(QWidget *parent = 0); + ~inputmethodhints(); + +public slots: + void checkboxChanged(int); + +private: + Ui::MainWindow ui; +}; + +#endif // INPUTMETHODHINTS_H diff --git a/tests/manual/inputmethodhints/inputmethodhints.pro b/tests/manual/inputmethodhints/inputmethodhints.pro new file mode 100644 index 0000000..7298ec6 --- /dev/null +++ b/tests/manual/inputmethodhints/inputmethodhints.pro @@ -0,0 +1,13 @@ +TEMPLATE = app +TARGET = tst_inputmethodhints + +QT += core \ + gui + +HEADERS += inputmethodhints.h +SOURCES += main.cpp \ + inputmethodhints.cpp +FORMS += inputmethodhints.ui +RESOURCES += + +symbian:TARGET.UID3 = 0xE4938ABC diff --git a/tests/manual/inputmethodhints/inputmethodhints.ui b/tests/manual/inputmethodhints/inputmethodhints.ui new file mode 100644 index 0000000..d0dc01d --- /dev/null +++ b/tests/manual/inputmethodhints/inputmethodhints.ui @@ -0,0 +1,138 @@ + + + MainWindow + + + + 0 + 0 + 360 + 640 + + + + MainWindow + + + + + + + 1 + + + + behaviour + + + + + + ImhHiddenText + + + + + + + ImhNoAutoUppercase + + + + + + + ImhPreferNumbers + + + + + + + ImhPreferUppercase + + + + + + + ImhPreferLowercase + + + + + + + ImhNoPredictiveText + + + + + + + + restrictions + + + + + + ImhDigitsOnly + + + + + + + ImhFormattedNumbersOnly + + + + + + + ImhUppercaseOnly + + + + + + + ImhLowercaseOnly + + + + + + + ImhDialableCharactersOnly + + + + + + + ImhEmailCharactersOnly + + + + + + + ImhUrlCharactersOnly + + + + + + + + + + + + + + + + diff --git a/tests/manual/inputmethodhints/main.cpp b/tests/manual/inputmethodhints/main.cpp new file mode 100644 index 0000000..022bf3f --- /dev/null +++ b/tests/manual/inputmethodhints/main.cpp @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "inputmethodhints.h" + +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + inputmethodhints w; + w.showMaximized(); + return a.exec(); +} -- cgit v0.12 From e4c144db1cde192745a198160a01fca1416fe855 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 6 Aug 2010 12:00:54 +0100 Subject: fix compile error Task-number: QT-3681 Reviewed-by: Trust Me --- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index cd05e38..ae51b1c 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -406,7 +406,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) flags |= EAknEditorNumericInputMode; } if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 - && ((hints & ImhFormattedNumbersOnly) || (hints & ImhDialableCharactersOnly)) { + && ((hints & ImhFormattedNumbersOnly) || (hints & ImhDialableCharactersOnly))) { //workaround - the * key does not launch the symbols menu, making it impossible to use these modes unless text mode is enabled. flags |= EAknEditorTextInputMode; } -- cgit v0.12 From 8521d8d32235ad5b59088121ea7b4e9ce69adfaa Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 6 Aug 2010 13:02:59 +0200 Subject: doc: Fixed some qdoc errors. --- src/network/access/qnetworkrequest.cpp | 43 ++++++++++++---------------------- tools/qdoc3/generator.cpp | 7 ++++-- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index fa592c2..38cae8b 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -105,7 +105,8 @@ QT_BEGIN_NAMESPACE /*! \enum QNetworkRequest::Attribute - + \since 4.7 + Attribute codes for the QNetworkRequest and QNetworkReply. Attributes are extra meta-data that are used to control the @@ -186,34 +187,28 @@ QT_BEGIN_NAMESPACE \value CustomVerbAttribute Requests only, type: QVariant::ByteArray - Holds the value for the custom HTTP verb to send (destined for usage - of other verbs than GET, POST, PUT and DELETE). This verb is set - when calling QNetworkAccessManager::sendCustomRequest(). + Holds the value for the custom HTTP verb to send (destined for usage + of other verbs than GET, POST, PUT and DELETE). This verb is set + when calling QNetworkAccessManager::sendCustomRequest(). \value CookieLoadControlAttribute - Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic) - Indicates whether to send 'Cookie' headers in the request. - - This attribute is set to false by QtWebKit when creating a cross-origin - XMLHttpRequest where withCredentials has not been set explicitly to true by the - Javascript that created the request. - - See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information. - - \since 4.7 + Requests only, type: QVariant::Int (default: + QNetworkRequest::Automatic) Indicates whether to send 'Cookie' + headers in the request. This attribute is set to false by + QtWebKit when creating a cross-origin XMLHttpRequest where + withCredentials has not been set explicitly to true by the + Javascript that created the request. See + \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} + {here} for more information. \value CookieSaveControlAttribute Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic) Indicates whether to save 'Cookie' headers received from the server in reply to the request. - This attribute is set to false by QtWebKit when creating a cross-origin XMLHttpRequest where withCredentials has not been set explicitly to true by the Javascript that created the request. - - See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information. - - \since 4.7 + See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} {here} for more information. \value AuthenticationReuseAttribute Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic) @@ -221,22 +216,14 @@ QT_BEGIN_NAMESPACE if available. If this is set to QNetworkRequest::Manual and the authentication mechanism is 'Basic' or 'Digest', Qt will not send an an 'Authorization' HTTP header with any cached credentials it may have for the request's URL. - This attribute is set to QNetworkRequest::Manual by QtWebKit when creating a cross-origin XMLHttpRequest where withCredentials has not been set explicitly to true by the Javascript that created the request. - - See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information. - - \since 4.7 + See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} {here} for more information. \omitvalue MaximumDownloadBufferSizeAttribute - \since 4.7 - \internal \omitvalue DownloadBufferAttribute - \since 4.7 - \internal \value User Special type. Additional information can be passed in diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp index 24219a1..7f39be2 100644 --- a/tools/qdoc3/generator.cpp +++ b/tools/qdoc3/generator.cpp @@ -1068,8 +1068,11 @@ void Generator::generateSince(const Node *node, CodeMarker *marker) Text text; text << Atom::ParaLeft << "This " - << typeString(node) - << " was introduced in "; + << typeString(node); + if (node->type() == Node::Enum) + text << " was introduced or modified in "; + else + text << " was introduced in "; if (project.isEmpty()) text << "version"; else -- cgit v0.12 From fc4e9d15d4b85ade770cf92c10258a556fafa698 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 6 Aug 2010 13:12:25 +0200 Subject: doc: Fixed some qdoc errors. --- src/dbus/qdbusconnection.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 055fead..e1fcb36 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -212,6 +212,7 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP \value ExportScriptableSlots export this object's scriptable slots \value ExportScriptableSignals export this object's scriptable signals \value ExportScriptableProperties export this object's scriptable properties + \value ExportScriptableInvokables export this object's scriptable invokables \value ExportScriptableContents shorthand form for ExportScriptableSlots | ExportScriptableSignals | ExportScriptableProperties @@ -219,6 +220,7 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP \value ExportNonScriptableSlots export this object's non-scriptable slots \value ExportNonScriptableSignals export this object's non-scriptable signals \value ExportNonScriptableProperties export this object's non-scriptable properties + \value ExportNonScriptableInvokables export this object's non-scriptable invokables \value ExportNonScriptableContents shorthand form for ExportNonScriptableSlots | ExportNonScriptableSignals | ExportNonScriptableProperties @@ -226,10 +228,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP \value ExportAllSlots export all of this object's slots \value ExportAllSignals export all of this object's signals \value ExportAllProperties export all of this object's properties + \value ExportAllInvokables export all of this object's invokables \value ExportAllContents export all of this object's contents - \value ExportChildObjects export this object's child objects - \sa registerObject(), QDBusAbstractAdaptor, {usingadaptors.html}{Using adaptors} */ -- cgit v0.12 From 1f32f4013ab9178e8434bff847013a84491fe516 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Fri, 6 Aug 2010 13:32:29 +0200 Subject: Removed duplicate case for const variable snippet. Reviewer: David Boddie Task number: QTBUG-10411 --- doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp index 088e043..0bd5fdf 100644 --- a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp @@ -87,14 +87,9 @@ void myFunction(bool useSubClass) // is equivalent to: const QScopedPointer p(new QWidget()); - QWidget *const p = new QWidget(); - // is equivalent to: - const QScopedPointer p(new QWidget()); - const QWidget *p = new QWidget(); // is equivalent to: QScopedPointer p(new QWidget()); - //! [2] //! [3] -- cgit v0.12 From 5988d0dfcca6374f7bc06bad3ec9e3a3b8ebc22f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 6 Aug 2010 12:44:12 +0300 Subject: Rename Symbian generated mmp/mk files to include target in filename Mmp and mk files previously contained UID3 as unique identifier in the filename. However, this was not particularly useful for building subprojects in massive project trees such as Qt, as it was difficult to remember UID for each subproject. Now with intuitive naming of mmps, it is possible to build a subproject like this: sbs -c armv6_urel -p qtcore_dll.mmp Task-number: QTBUG-12715 Reviewed-by: Jason Barron --- qmake/generators/symbian/symmake.cpp | 33 +++++++++++++------------------ qmake/generators/symbian/symmake.h | 2 ++ qmake/generators/symbian/symmake_abld.cpp | 9 ++------- qmake/generators/symbian/symmake_abld.h | 2 +- 4 files changed, 19 insertions(+), 27 deletions(-) diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index ff58270..cf6bd13 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -241,13 +241,8 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) writeMkFile(wrapperFileName, false); - QString shortProFilename = project->projectFile(); - shortProFilename.replace(0, shortProFilename.lastIndexOf("/") + 1, QString("")); - shortProFilename.replace(Option::pro_ext, QString("")); - - QString mmpFilename = Option::output_dir + QLatin1Char('/') + shortProFilename + QLatin1Char('_') - + uid3 + Option::mmp_ext; - writeMmpFile(mmpFilename, symbianLangCodes); + QString absoluteMmpFileName = Option::output_dir + QLatin1Char('/') + mmpFileName; + writeMmpFile(absoluteMmpFileName, symbianLangCodes); if (targetType == TypeExe) { if (!project->isActiveConfig("no_icon")) { @@ -281,6 +276,15 @@ void SymbianMakefileGenerator::init() project->values("MAKEFILE") += BLD_INF_FILENAME; // .mmp + mmpFileName = fixedTarget; + if (targetType == TypeExe) + mmpFileName.append("_exe"); + else if (targetType == TypeDll || targetType == TypePlugin) + mmpFileName.append("_dll"); + else if (targetType == TypeLib) + mmpFileName.append("_lib"); + mmpFileName.append(Option::mmp_ext); + initMmpVariables(); uid2 = project->first("TARGET.UID2"); @@ -480,7 +484,7 @@ void SymbianMakefileGenerator::writeMmpFileHeader(QTextStream &t) t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl; t << "// This file is generated by qmake and should not be modified by the" << endl; t << "// user." << endl; - t << "// Name : " << escapeFilePath(fileFixify(project->projectFile().remove(project->projectFile().length() - 4, 4))) << Option::mmp_ext << endl; + t << "// Name : " << mmpFileName << endl; t << "// ==============================================================================" << endl << endl; } @@ -890,8 +894,6 @@ void SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy // Add includes of subdirs bld.inf files - QString mmpfilename = escapeFilePath(fileFixify(project->projectFile())); - mmpfilename = mmpfilename.replace(mmpfilename.lastIndexOf("."), 4, Option::mmp_ext); QString currentPath = qmake_getpwd(); QDir directory(currentPath); @@ -973,15 +975,8 @@ void SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy t << endl << mmpTag << endl << endl; writeBldInfMkFilePart(t, addDeploymentExtension); - if (targetType != TypeSubdirs) { - QString shortProFilename = project->projectFile(); - shortProFilename.replace(0, shortProFilename.lastIndexOf("/") + 1, QString("")); - shortProFilename.replace(Option::pro_ext, QString("")); - - QString mmpFilename = shortProFilename + QString("_") + uid3 + Option::mmp_ext; - - t << mmpFilename << endl; - } + if (targetType != TypeSubdirs) + t << mmpFileName << endl; userItems = userBldInfRules.value(mmpTag); foreach(QString item, userItems) diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h index 9853790..a1a8e88 100644 --- a/qmake/generators/symbian/symmake.h +++ b/qmake/generators/symbian/symmake.h @@ -59,6 +59,7 @@ class SymbianMakefileGenerator : public MakefileGenerator, public SymbianCommonG protected: QString platform; QString uid2; + QString mmpFileName; QMap sources; QMap systeminclude; QMap library; @@ -78,6 +79,7 @@ protected: QString generateUID3(); void initMmpVariables(); + void generateMmpFileName(); void handleMmpRulesOverrides(QString &checkString, bool &inResourceBlock, QStringList &restrictedMmpKeywords, diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp index d60528b..c896ac6 100644 --- a/qmake/generators/symbian/symmake_abld.cpp +++ b/qmake/generators/symbian/symmake_abld.cpp @@ -70,10 +70,6 @@ SymbianAbldMakefileGenerator::~SymbianAbldMakefileGenerator() { } void SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly) { - QString gnuMakefileName = QLatin1String("Makefile_") + uid3; - removeEpocSpecialCharacters(gnuMakefileName); - gnuMakefileName.append(".mk"); - QFile ft(gnuMakefileName); if (ft.open(QIODevice::WriteOnly)) { generatedFiles << ft.fileName(); @@ -471,9 +467,8 @@ void SymbianAbldMakefileGenerator::writeBldInfMkFilePart(QTextStream& t, bool ad // Normally emulator deployment gets done via regular makefile, but since subdirs // do not get that, special deployment only makefile is generated for them if needed. if (targetType != TypeSubdirs || addDeploymentExtension) { - QString gnuMakefileName = QLatin1String("Makefile_") + uid3; - removeEpocSpecialCharacters(gnuMakefileName); - gnuMakefileName.append(".mk"); + gnuMakefileName = QLatin1String("Makefile_") + fileInfo(mmpFileName).completeBaseName() + + QLatin1String(".mk"); t << "gnumakefile " << gnuMakefileName << endl; } } diff --git a/qmake/generators/symbian/symmake_abld.h b/qmake/generators/symbian/symmake_abld.h index f998b28..214e0c5 100644 --- a/qmake/generators/symbian/symmake_abld.h +++ b/qmake/generators/symbian/symmake_abld.h @@ -58,7 +58,7 @@ protected: virtual void appendAbldTempDirs(QStringList& sysincspaths, QString includepath); bool writeDeploymentTargets(QTextStream &t, bool isRom); - + QString gnuMakefileName; public: SymbianAbldMakefileGenerator(); -- cgit v0.12 From 0df2adc66a72aeed79906e86527f80b337b32ab1 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Fri, 6 Aug 2010 13:34:53 +0200 Subject: Doc: Fixing validation bugs --- tools/qdoc3/test/qt-html-templates.qdocconf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index cf15628..94c8f47 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -12,7 +12,7 @@ HTML.postheader = "
      \n" \ "
      \n" \ " Home
      \n" \ " Qt Reference Documentation\n" \ - "
      \n" \ + "
      \n" \ "
      \n" \ " \n" \ "
      \n" \ @@ -41,7 +41,7 @@ HTML.postheader = "
      \n" \ "
    • Function index
    • \n" \ "
    • Modules
    • \n" \ "
    • Namespaces
    • \n" \ - "
    • Global stuff
    • \n" \ + "
    • Global Declarations
    • \n" \ "
    • QML elements
    • \n" \ "
    \n" \ "
  • \n" \ @@ -149,6 +149,7 @@ HTML.footer = " \n" \ " \n" \ "
    \n" \ "
    \n" \ + "
    \n" \ "
    \n" \ "

    \n" \ " © 2008-2010 Nokia Corporation and/or its\n" \ @@ -161,8 +162,8 @@ HTML.footer = " \n" \ "

    \n" \ "
    X
    \n" \ " \n" \ - "

    Thank you for giving your feedback.

    Make sure it is related to this specific page. For more general bugs and \n" \ - " requests, please use the Qt Bug Tracker.

    \n" \ + "

    Thank you for giving your feedback.

    Make sure it is related to this specific page. For more general bugs and \n" \ + " requests, please use the Qt Bug Tracker.

    \n" \ "

    \n" \ "

    \n" \ " \n" \ -- cgit v0.12 From 2118f407b02654e9e3c6706647e8b9b711e8982b Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 6 Aug 2010 14:30:42 +0200 Subject: doc: Re-introduced next/previous page links in the footer. Task-Nr: QTBUG-12278 --- tools/qdoc3/htmlgenerator.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index b1a8336..d23b41e 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1878,6 +1878,61 @@ void HtmlGenerator::generateHeader(const QString& title, break; } + navigationLinks.clear(); + + if (node && !node->links().empty()) { + QPair linkPair; + QPair 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() << " \n"; + + navigationLinks += "[Previous: "; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protect(anchorPair.second); + else + navigationLinks += protect(linkPair.second); + navigationLinks += "]\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() << " \n"; + + navigationLinks += "[Next: "; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protect(anchorPair.second); + else + navigationLinks += protect(linkPair.second); + navigationLinks += "]\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() << " \n"; + } + } + #if 0 // Removed for new doc format. MWS if (node && !node->links().empty()) out() << "

    \n" << navigationLinks << "

    \n"; -- cgit v0.12 From 065cc163d7848131dcfd8bb210c8590b6cd11991 Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Wed, 30 Jun 2010 21:47:37 +0200 Subject: Some french translations Reviewed-by: gabi --- tools/linguist/phrasebooks/french.qph | 22 +- translations/assistant_fr.ts | 220 - translations/designer_fr.ts | 1437 +---- translations/linguist_fr.ts | 412 -- translations/qt_fr.ts | 10775 ++++++++++++++++++-------------- translations/qt_help_fr.ts | 158 +- 6 files changed, 6251 insertions(+), 6773 deletions(-) diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph index 9e1a580..47cb306 100644 --- a/tools/linguist/phrasebooks/french.qph +++ b/tools/linguist/phrasebooks/french.qph @@ -801,7 +801,7 @@ Redo - Annuler Annuler + Rétablir region selection @@ -1111,10 +1111,6 @@ &Édition - &Redo - Re&faire - - debugger débogueur @@ -1438,4 +1434,20 @@ &Debug &Déboguer + + Slider + Barre de défilement + + + &Restore + &Restaurer + + + &Move + &Déplacer + + + New + Créer + diff --git a/translations/assistant_fr.ts b/translations/assistant_fr.ts index 4c6c5a0..e8f5fd1 100644 --- a/translations/assistant_fr.ts +++ b/translations/assistant_fr.ts @@ -4,7 +4,6 @@ AboutDialog - &Close &Fermer @@ -12,19 +11,16 @@ AboutLabel - Warning Avertissement - Unable to launch external application. Impossible d'ouvrir l'application externe. - OK OK @@ -32,46 +28,34 @@ BookmarkDialog - Add Bookmark Ajouter un signet - Bookmark: Signet : - Add in Folder: Ajouter dans le dossier : - + + - New Folder Nouveau dossier - - - - - Bookmarks Signets - Delete Folder Supprimer le dossier - Rename Folder Renommer le dossier @@ -79,23 +63,18 @@ BookmarkManager - Bookmarks Signets - Remove Suppression - You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? Vous allez supprimer un dossier, ceci va aussi<br>supprimer son contenu. Voulez-vous continuer ? - - New Folder Nouveau dossier @@ -103,47 +82,38 @@ BookmarkWidget - Delete Folder Supprimer le dossier - Rename Folder Renommer le dossier - Show Bookmark Afficher le signet - Show Bookmark in New Tab Afficher le signet dans un nouvel onglet - Delete Bookmark Supprimer le signet - Rename Bookmark Renommer le signet - Filter: Filtre : - Add Ajouter - Remove Retirer @@ -151,48 +121,38 @@ CentralWidget - Add new page Créer une nouvelle page - Close current page Fermer la page courante - Print Document Imprimer le document - - unknown inconnu - Add New Page Créer une nouvelle page - Close This Page Fermer cette page - Close Other Pages Fermer les autres pages - Add Bookmark for this Page... Ajouter un signet pour cette page... - Search Recherche @@ -200,12 +160,10 @@ ContentWindow - Open Link Ouvrir le lien - Open Link in New Tab Ouvrir le lien dans un nouvel onglet @@ -213,12 +171,10 @@ FilterNameDialogClass - Add Filter Name Ajouter un filtre - Filter Name: Nom du filtre : @@ -226,27 +182,22 @@ FindWidget - Previous Précédent - Next Suivant - Case Sensitive Sensible à la casse - Whole words Mots complets - <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Recherche à partir du début @@ -254,27 +205,22 @@ FontPanel - Font Police - &Writing system &Système d'écriture - &Family &Famille - &Style &Style - &Point size &Taille en points @@ -282,39 +228,32 @@ HelpViewer - Open Link in New Tab Ouvrir le lien dans un nouvel onglet - <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> <title>Erreur 404...</title><div align="center"><br><br><h1>La page n'a pas pu être trouvée</h1><br><h3>'%1'</h3></div> - Help Aide - Unable to launch external application. Impossible de lancer l'application externe. - OK OK - Copy &Link Location Copier l'&adresse cible - Open Link in New Tab Ctrl+LMB LMB? ← ouais exactement pareil... Ouvrir dans un nouvel onglet Ctrl+clic gauche @@ -323,17 +262,14 @@ IndexWindow - &Look for: &Rechercher : - Open Link Ouvrir le lien - Open Link in New Tab Ouvrir le lien dans un nouvel onglet @@ -341,97 +277,74 @@ InstallDialog - - Install Documentation Installer la documentation - Available Documentation: Documentation disponible : - Install Installer - Cancel Annuler - Close Fermer - Installation Path: Chemin d'installation : - ... - Downloading documentation info... Téléchargement des informations de la documentation… - Download canceled. Téléchargement annulé. - - - Done. Terminé. - The file %1 already exists. Do you want to overwrite it? Le fichier %1 existe déjà. Voulez-vous l'écraser ? - Unable to save the file %1: %2. Impossible de sauver le fichier %1 : %2. - Downloading %1... Téléchargement de %1 en cours… - - - Download failed: %1. Échec du téléchargement : %1. - Documentation info file is corrupt! Le fichier d'information de documentation est corrompu ! - Download failed: Downloaded file is corrupted. Échec du téléchargement : le fichier téléchargé est corrompu. - Installing documentation %1... Installation de la documentation %1… - Error while installing documentation: %1 Erreur durant l'installation de la documentation : @@ -441,304 +354,239 @@ MainWindow - - Index Index - - Contents Sommaire - - Bookmarks Signets - - - Qt Assistant Qt Assistant - - Unfiltered Non-filtré - Looking for Qt Documentation... Recherche la documentation de Qt… - &File &Fichier - Page Set&up... &Mise en page… - Print Preview... Aperçu avant impression… - &Print... &Imprimer… - New &Tab Nouvel ongle&t - &Close Tab &Fermer l'onglet - &Quit &Quitter - &Edit &Édition - &Copy selected Text &Copier le texte selectionné - &Find in Text... &Rechercher dans le texte… - &Find &Rechercher - Find &Next Rechercher le suiva&nt - Find &Previous Rechercher le &précédent - Preferences... Préférences… - &View &Affichage - Zoom &in Zoom &avant - Zoom &out Zoom a&rrière - Normal &Size &Taille normale - Ctrl+0 Ctrl+0 - ALT+C ALT+C - ALT+I ALT+I - ALT+O ALT+O - Search Recherche - ALT+S ALT+S - &Go A&ller - &Home &Accueil - ALT+Home ALT+Home - &Back &Précédent - &Forward &Suivant - Sync with Table of Contents Synchroniser la table des matières - Sync Rafraîchir - Next Page Page suivante - Ctrl+Alt+Right Ctrl+Alt+Right - Previous Page Page précédente - Ctrl+Alt+Left Ctrl+Alt+Left - &Bookmarks Si&gnets - Add Bookmark... Ajouter un signet… - CTRL+D CTRL+D - &Help Ai&de - About... À propos… - Navigation Toolbar Barre d'outils de navigation - &Window &Fenêtre - Zoom Zoom - Minimize Minimiser - Ctrl+M Ctrl+M - Toolbars Barres d'outils - Filter Toolbar Barre d'outils de filtrage - Filtered by: Filtre : - Address Toolbar Barre d'outils d'adresse - Address: Adresse : - Could not find the associated content item. what is item in this context? ← same question here Impossible de trouver l'élément de contenu associé. - About %1 À propos de %1 - Updating search index Mise à jour de l'index de recherche @@ -746,48 +594,38 @@ PreferencesDialog - - Add Documentation Ajouter de la documentation - Qt Compressed Help Files (*.qch) Fichiers d'aide Qt compressés (*.qch) - The namespace %1 is already registered! L'espace de nom %1 existe déjà ! - The specified file is not a valid Qt Help File! Le fichier spécifié n'est pas un fichier d'aide Qt valide ! - Remove Documentation Supprimer la documentation - Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. Certains documents ouverts dans Assistant ont des références vers la documentation que vous allez supprimer. Supprimer la documentation fermera ces documents. - Cancel Annuler - OK OK - Use custom settings Utiliser des paramètres personnalisés @@ -795,118 +633,95 @@ PreferencesDialogClass - Preferences Préférences - Fonts Polices - Font settings: Configuration des polices : - Browser Navigateur - Application Application - Filters Filtres - Filter: Filtre : - Attributes: Attributs : - 1 1 - Add Ajouter - Remove Supprimer - Documentation Documentation - Registered Documentation: documentation enregistrée ? ← je préfère référencée pour les deux... Documentation référencée : - Add... Ajouter… - Options Options - On help start: Au démarrage : - Show my home page Afficher ma page d'accueil - Show a blank page Afficher une page blanche - Show my tabs from last session Afficher mes onglets de la dernière session - Homepage Page d'accueil - Current Page Page courante - Blank Page Page blanche - Restore to default Restaurer les valeurs par défaut @@ -914,69 +729,50 @@ QObject - The specified collection file does not exist! Le fichier de collection spécifié n'existe pas ! - Missing collection file! Fichier de collection manquant ! - Invalid URL! URL invalide ! - Missing URL! URL manquante ! - - - Unknown widget: %1 Widget inconnu : %1 - - - Missing widget! Widget manquant ! - - The specified Qt help file does not exist! Le fichier d'aide Qt spécifié n'existe pas ! - - Missing help file! Fichier d'aide manquant ! - Missing filter argument! Argument de filtre manquant ! - Unknown option: %1 Option inconnue : %1 - - Qt Assistant Qt Assistant - Could not register documentation file %1 @@ -989,17 +785,14 @@ Raison : %2 - Documentation successfully registered. Documentation enregistrée avec succès. - Documentation successfully unregistered. Documentation retirée avec succès. - Could not unregister documentation file %1 @@ -1012,12 +805,10 @@ Raison : %2 - Cannot load sqlite database driver! Impossible de charger le driver de la base de données sqlite ! - The specified collection file could not be read! Le fichier de collection spécifié ne peut pas être lu ! @@ -1025,12 +816,10 @@ Raison : RemoteControl - Debugging Remote Control Débogage du contrôle à distance - Received Command: %1 %2 Commande reçue : %1 %2 @@ -1038,22 +827,18 @@ Raison : SearchWidget - &Copy &Copier - Copy &Link Location Copier &l'adresse du lien - Open Link in New Tab Ouvrir le lien dans un nouvel onglet - Select All Sélectionner tout @@ -1061,27 +846,22 @@ Raison : TopicChooser - Choose Topic Choisir le domaine - &Topics &Domaines - &Display &Afficher - &Close &Fermer - Choose a topic for <b>%1</b>: Choisir le domaine pour <b>%1</b> : diff --git a/translations/designer_fr.ts b/translations/designer_fr.ts index bfdbb73..175d5c5 100644 --- a/translations/designer_fr.ts +++ b/translations/designer_fr.ts @@ -4,27 +4,22 @@ AbstractFindWidget - &Previous &Précédent - &Next &Suivant - &Case sensitive &Sensible à la casse - Whole &words M&ots complets - <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/shared/images/wrap.png">&nbsp;Recherche à partir du début @@ -32,17 +27,14 @@ AddLinkDialog - Insert Link Insérer lien - Title: Titre : - URL: URL : @@ -50,7 +42,6 @@ AppFontDialog - Additional Fonts Polices additionnelles @@ -58,38 +49,31 @@ AppFontManager - '%1' is not a file. '%1' n'est pas un fichier. - The font file '%1' does not have read permissions. Le fichier de la police '%1' n'a pas les permissions de lecture. - The font file '%1' is already loaded. Le fichier de la police '%1' est déjà chargé. - The font file '%1' could not be loaded. passé composé plutôt Le fichier de la police '%1' n'a pas pu chargé. - '%1' is not a valid font id. '%1' n'est pas un identifiant de police valide. - There is no loaded font matching the id '%1'. Il n'y a pas de police chargée correspondant à l'identifiant '%1'. - The font '%1' (%2) could not be unloaded. La police '%1' (%2) ne peut pas être déchargée. @@ -97,53 +81,43 @@ AppFontWidget - Fonts Polices - Add font files Ajouter des fichiers de polices - Remove current font file Retirer le fichier de police courant - Remove all font files Retirer tous les fichiers de polices - Add Font Files Ajouter des fichiers de polices - Font files (*.ttf) Fichier de polices (*.ttf) - Error Adding Fonts Erreur dans l'ajout de polices - Error Removing Fonts s/de/des/ pour être cohérent avec le suivant... Erreur lors de la suppression des polices - Remove Fonts Retirer les polices - Would you like to remove all fonts? Voulez-vous supprimer toutes les polices ? @@ -151,12 +125,10 @@ AppearanceOptionsWidget - Form Formulaire - User Interface Mode Mode de l'interface utilisateur @@ -164,17 +136,14 @@ AssistantClient - Unable to send request: Assistant is not responding. Impossible d'envoyer la requête : Assistant ne répond pas. - The binary '%1' does not exist. Le binaire '%1' n'existe pas. - Unable to launch assistant (%1). Impossible de démarrer Assistant (%1). @@ -182,93 +151,75 @@ BrushPropertyManager - No brush Pas de pinceau - Solid c'est plutôt continu ou "trait continu" pour moi Trait continu - Dense 1 Dense 1 - Dense 2 Dense 2 - Dense 3 Dense 3 - Dense 4 Dense 4 - Dense 5 Dense 5 - Dense 6 Dense 6 - Dense 7 Dense 7 - Horizontal Horizontal - Vertical Vertical - Cross Croix - Backward diagonal Diagonale arrière - Forward diagonal Diagonale avant - Crossing diagonal Diagonale croisée - Style Style - Color Couleur - [%1, %2] [%1, %2] @@ -276,353 +227,276 @@ Command - - Change signal Modifier le signal - - Change slot Modifier le slot - Change signal-slot connection Modfier la connection signal-slot - Change sender expéditeur/source Modifier l'envoyeur - Change receiver destinataire++/cible? Modifier le destinataire - Create button group Créer un groupe de boutons - Break button group Dissocier le groupe de bouton - Break button group '%1' Dissossier le groupe de bouton '%1' - Add buttons to group Ajouter les boutons au groupe - - Add '%1' to '%2' Command description for adding buttons to a QButtonGroup Ajouter '%1' à '%2' - Remove buttons from group Retirer les boutons du groupe - Remove '%1' from '%2' Command description for removing buttons from a QButtonGroup Retirer '%1' de '%2' - Add connection Ajouter une connexion - Adjust connection Réajuster les connexions - Delete connections Supprimer les connexions - Change source Modifier la source - Change target Modifier la cible - Morph %1/'%2' into %3 MorphWidgetCommand description Transformer %1/'%2' en %3 - Insert '%1' Insérer '%1' - Change Z-order of '%1' l'ordre de '%1' sur l'axe z? profondeur ? Modifier la profondeur de '%1' - Raise '%1' Élever '%1' - Lower '%1' Abaisser '%1' - Delete '%1' Supprimer '%1' - Reparent '%1' Reparenter '%1' - Promote to custom widget Promouvoir en widget personnalisé - Demote from custom widget Annuler la promotion en widget personnalisé - Lay out using grid Mettre en page à l'aide d'une grille - Lay out vertically Mettre en page verticalement - Lay out horizontaly + Mettre en page horizontalement + + + Lay out horizontally Mettre en page horizontalement - Break layout Casser la mise en page - Simplify Grid Layout Simplifier la mise en page en grille - - - Move Page Déplacer la page - - - - Delete Page Supprimer la page - - Page Page - - - - Insert Page Insérer une page - Change Tab order Modifier l'ordre des tabulations - Create Menu Bar Créer une barre de menu - Delete Menu Bar Supprimer la barre de menu - Create Status Bar Créer une barre d'état - Delete Status Bar Supprimer la barre d'état - Add Tool Bar Ajouter une barre d'outil - Add Dock Window Ajouter une fenêtre ancrable - Adjust Size of '%1' Ajuster les dimensions de '%1' - Change Form Layout Item Geometry Modifier la géométrie de l'élément de formulaire - Change Layout Item Geometry Modifier la géométrie de l'élément de mise en page - Delete Subwindow Supprimer la sous-fenêtre - page page - Insert Subwindow Insérer une sous-fenêtre - subwindow sous-fenêtre - Subwindow Sous fenêtre - Change Table Contents Modifier le contenu de la table - Change Tree Contents Modifier le contenu de l'arbre - - Add action Ajouter une action - - Remove action Supprimer l'action - Add menu Ajouter un menu - Remove menu Supprimer le menu - Create submenu Créer une sous-fenêtre - Delete Tool Bar Supprimer la barre d'outils - Change layout of '%1' from %2 to %3 Modifier la mise en page de '%1' de %2 à %3 - Set action text Définir le texte de l'action - Insert action Insérer action - - Move action Déplacer action - Change Title Modifier le titre - Insert Menu Insérer menu - Changed '%1' of '%2' Modifier '%1' de '%2' - Changed '%1' of %n objects Modifier '%1' de %n objet @@ -630,12 +504,10 @@ - Reset '%1' of '%2' Réinitialiser '%1' de '%2' - Reset '%1' of %n objects Réinitialiser '%1' de %n objet @@ -643,12 +515,10 @@ - Add dynamic property '%1' to '%2' Ajouter la propriété dynamique '%1' à '%2' - Add dynamic property '%1' to %n objects Ajouter la propriété dynamique '%1' à %n objet @@ -656,12 +526,10 @@ - Remove dynamic property '%1' from '%2' Supprimer la propriété dynamique '%1' de '%2' - Remove dynamic property '%1' from %n objects Supprimer la propriété dynamique '%1' de %n objet @@ -669,12 +537,10 @@ - Change script Modifier le script - Change signals/slots Modifier signaux/slots @@ -682,24 +548,18 @@ ConnectDialog - Configure Connection Configurer connexion - - GroupBox GroupBox - - Edit... Éditer... - Show signals and slots inherited from QWidget Afficher les signaux et slots hérités de QWidget @@ -707,17 +567,14 @@ ConnectionDelegate - <object> <objet> - <signal> <signal> - <slot> <slot> @@ -725,19 +582,16 @@ DPI_Chooser - Standard (96 x 96) Embedded device standard screen resolution Standard (96 x 96) - Greenphone (179 x 185) Embedded device screen resolution Greenphone (179 x 185) - High (192 x 192) Embedded device high definition screen resolution "haute resolution" would be missleading @@ -747,89 +601,72 @@ Designer - Qt Designer Qt Designer - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. Ce fichier contient des ressorts de premier niveau. <br>Ils ne sont <b>PAS</b> sauvegardé dans le formulaire. - Perhaps you forgot to create a layout? Peut-être avez-vous oublié de créer un layout ? - Invalid UI file: The root element <ui> is missing. Fichier UI invalide. L'élément racine <ui> est manquant. - An error has occurred while reading the UI file at line %1, column %2: %3 Une erreur est survenue lors de la lecture du fichier UI à la ligne %1, colonne %2: %3 - This file cannot be read because it was created using %1. Ce fichier ne peut pas être lu car il a été créé à l'aide de %1. - This file was created using Designer from Qt-%1 and cannot be read. Ce fichier a été créé à l'aide du Designer de Qt-%1 et ne peut être lu. - The converted file could not be read. Le fichier converti ne peut pas être lu. - This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. Ce fichier a été créé par le Designer de Qt-%1 et sera converti au nouveau format par Qt Designer. - The old form has not been touched, but you will have to save the form under a new name. L'ancienne interface n'a pas été modifiée, vous devez sauvergarder l'interface sous un nouveau nom. - This file was created using Designer from Qt-%1 and could not be read: %2 Le fichier a été créé à l'aide de Designer de Qt-%1 et ne peut pas être lu : %2 - Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. Veuillez le faire passer par <b>uic3&nbsp;-convert</b> pour le convertir au format de fichier de Qt 4. - This file cannot be read because the extra info extension failed to load. Ce fichier ne peut pas être lu car les informations d'extension n'ont pu être chargées. - Unable to launch %1. Impossible de lancer %1. - %1 timed out. %1 est arrivé à échéance. - Custom Widgets Widgets personnalisés - Promoted Widgets Widgets promus @@ -837,12 +674,10 @@ DesignerMetaEnum - %1 is not a valid enumeration value of '%2'. %1 n'est pas une valeur d'énumeration valide de '%2'. - '%1' could not be converted to an enumeration value of type '%2'. '%1' ne peut pas être converti en une valeur d'énumération de type '%2'. @@ -850,7 +685,6 @@ DesignerMetaFlags - '%1' could not be converted to a flag value of type '%2'. '%1' ne peut pas être converti en un drapeau de type '%2'. @@ -858,13 +692,11 @@ DeviceProfile - '%1' is not a number. Reading a number for an embedded device profile '%1' n'est pas un nombre. - An invalid tag <%1> was encountered. La balise invalide <%1> a été rencontré. @@ -872,27 +704,22 @@ DeviceProfileDialog - &Family &Famille - &Point Size &Taille en points - Style Style - Device DPI PPP/DPI de l'appareil - Name Nom @@ -900,57 +727,46 @@ DeviceSkin - The image file '%1' could not be loaded. Le fichier image '%1' n'a pas pu être chargé. - The skin directory '%1' does not contain a configuration file. Le repertoire de revêtement '%1' ne contient pas un fichier de configuration. - The skin configuration file '%1' could not be opened. Le fichier de configuration de revêtement '%1' ne peut pas être ouvert. - The skin configuration file '%1' could not be read: %2 Le fichier de configuration de revêtement '%1' ne peut pas être lu: %2 - Syntax error: %1 Erreur de syntaxe : %1 - The skin "up" image file '%1' does not exist. Le fichier image "up" de revêtement '%1' n'existe pas. - The skin "down" image file '%1' does not exist. Le fichier image "down" de revêtement '%1' n'existe pas. - The skin "closed" image file '%1' does not exist. Le fichier image "closed" de revêtement '%1' n'existe pas. - The skin cursor image file '%1' does not exist. Le fichier image de revêtement '%1' n'existe pas. - Syntax error in area definition: %1 Erreur de syntaxe dans la zone de définition : %1 - Mismatch in number of areas, expected %1, got %2. Incohérence dans le nombre de zones, %1 attendu, %2 reçu. @@ -958,7 +774,6 @@ EmbeddedOptionsControl - <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> Format embedded device profile description <html><table><tr><td><b>Police</b></td><td>%1, %2</td></tr><tr><td><b>Style</b></td><td>%3</td></tr><tr><td><b>Résolution</b></td><td>%4 x %5</td></tr></table></html> @@ -967,13 +782,11 @@ EmbeddedOptionsPage - Embedded Design Tab in preferences dialog Design pour appareil mobile - Device Profiles EmbeddedOptionsControl group box" Profils des appareils @@ -982,27 +795,22 @@ FontPanel - Font Police - &Writing system &Système d'écriture - &Family &Famille - &Style &Style - &Point size &Taille en points @@ -1010,22 +818,18 @@ FontPropertyManager - PreferDefault PreferDefault - NoAntialias NoAntialias - PreferAntialias PreferAntialias - Antialiasing Antialiasing @@ -1033,13 +837,11 @@ FormBuilder - Invalid stretch value for '%1': '%2' Parsing layout stretch values Valeur d'extension invalide pour '%1' : '%2' - Invalid minimum size for '%1': '%2' Parsing grid layout minimum size values Taille minimum invalide pour '%1' : '%2' @@ -1048,28 +850,23 @@ FormEditorOptionsPage - %1 % %1 % - Preview Zoom Zoom de visualisation - Default Zoom Zoom par défaut - Forms Tab in preferences dialog Formulaires - Default Grid Grille par défaut @@ -1077,38 +874,31 @@ FormLayoutRowDialog - Add Form Layout Row Ajouter une ligne de mise en page au formulaire - &Label text: &Texte du label : - Field &type: &Type du champ : - &Field name: &Nom du champ : - &Buddy: copain c'est un peu beaucoup ptet &Copain : - &Row: &Ligne : - Label &name: &Nom du label : @@ -1116,12 +906,10 @@ FormWindow - Unexpected element <%1> Element inattendu : <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Erreur lors du collage du contenu du presse-papier à la ligne %1, colonne %2 : %3 @@ -1129,62 +917,50 @@ FormWindowSettings - Form Settings Configuration du formulaire - Layout &Default Mise en page par &défaut - &Spacing: &Espacements : - &Margin: &Marge : - &Layout Function &Fonction de mise en page - Ma&rgin: Ma&rge : - Spa&cing: Espa&cement : - &Pixmap Function Fonction de &pixmap - &Include Hints Indication d'&include - Grid Grille - Embedded Design Design pour appareil mobile - &Author &Auteur @@ -1192,7 +968,6 @@ IconSelector - All Pixmaps ( Tous les pixmaps ( @@ -1200,7 +975,6 @@ ItemPropertyBrowser - XX Icon Selected off Sample string to determinate the width for the first column of the list item property browser XX Icon Selected off @@ -1209,33 +983,27 @@ MainWindowBase - Main Not currently used (main tool bar) Principal - File Fichier - Edit Édition - Tools Outils - Form Formulaire - Qt Designer Qt Designer @@ -1243,52 +1011,42 @@ NewForm - Show this Dialog on Startup Afficher cette boîte de dialogue au démarrage - C&reate C&réer - Recent Récent - New Form Nouveau formulaire - &Close &Fermer - &Open... &Ouvrir... - &Recent Forms &Formulaires récents - Read error Erreur de lecture - A temporary form file could not be created in %1. Un fichier temporaire de formulaire n'a pas pu être créé dans %1. - The temporary form file %1 could not be written. Le fichier temporaire de formulaire %1 n'a pas pu être écrit. @@ -1296,22 +1054,18 @@ ObjectInspectorModel - Object Objet - Class Classe - separator séparateur - <noname> <sans nom> @@ -1319,12 +1073,10 @@ ObjectNameDialog - Change Object Name Modifier le nom de l'objet - Object Name Nom de l'objet @@ -1332,12 +1084,10 @@ PluginDialog - Plugin Information Information du plugin - 1 1 @@ -1345,7 +1095,6 @@ PreferencesDialog - Preferences Préférences @@ -1353,34 +1102,26 @@ PreviewConfigurationWidget - Form Formulaire - Print/Preview Configuration Configuration d'impression/prévisualisation - Style Style - Style sheet Feuille de style - - - ... ... - Device skin Revêtement de l'appareil @@ -1388,7 +1129,6 @@ PromotionModel - Not used Usage of promoted widgets Non utilisé @@ -1397,8 +1137,6 @@ Q3WizardContainer - - Page Page @@ -1406,59 +1144,48 @@ QAbstractFormBuilder - Unexpected element <%1> Élément imprévu <%1> - An error has occurred while reading the UI file at line %1, column %2: %3 Une erreur s'est produite lors de la lecture du fichier UI à la ligne %1, colonne %2 : %3 - Invalid UI file: The root element <ui> is missing. Fichier UI invalide : l'élément racine <ui> est manquant. - The creation of a widget of the class '%1' failed. La création d'un widget de la classe '%1' a échoué. - Attempt to add child that is not of class QWizardPage to QWizard. Tentative d'ajout d'enfant qui n'est pas de la classe QWizardPage à QWizard. - 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. Tentative d'ajout d'un layout au widget '%1' (%2) qui a déjà un layout dont le type n'est pas boîte %3. Ceci indique une incohérence dans le fichier ui. - Empty widget item in %1 '%2'. Widget vide dans %1 '%2'. - Flags property are not supported yet. Les propriétés de type drapeau ne sont pas supportées. - While applying tab stops: The widget '%1' could not be found. Lors de l'application des arrêts de tabulation : le widget '%1' ne peut pas être trouvé. - Invalid QButtonGroup reference '%1' referenced by '%2'. Référence invalide '%1' à QButtonGroup, référencé par '%2'. - This version of the uitools library is linked without script support. Cette version de la bibliothèque uitools n'a pas le support des scripts. @@ -1466,12 +1193,10 @@ Ceci indique une incohérence dans le fichier ui. QAxWidgetPlugin - ActiveX control Control ActiveX - ActiveX control widget Widget control ActiveX @@ -1479,22 +1204,18 @@ Ceci indique une incohérence dans le fichier ui. QAxWidgetTaskMenu - Set Control Définir le contrôle - Reset Control Réinitialiser le contrôle - Licensed Control Contrôle licencié - The control requires a design-time license Le contrôle requiert une license par interface @@ -1502,67 +1223,54 @@ Ceci indique une incohérence dans le fichier ui. QCoreApplication - %1 is not a promoted class. %1 n'est pas une classe promue. - The base class %1 is invalid. La classe de base %1 est invalide. - The class %1 already exists. La classe %1 existe déjà. - Promoted Widgets Widgets promus - The class %1 cannot be removed La classe %1 ne peut pas être retirée - The class %1 cannot be removed because it is still referenced. La classe %1 ne peut pas être retirée car elle est toujours référencée. - The class %1 cannot be renamed La classe %1 ne peut pas être renommée - The class %1 cannot be renamed to an empty name. La classe %1 ne peut pas être renommé avec un nom vide. - There is already a class named %1. Une classe existe déjà avec le nom %1. - Cannot set an empty include file. Impossible de créer un fichier include vide. - Exception at line %1: %2 Exception à la ligne %1 : %2 - Unknown error Erreur inconnue - An error occurred while running the script for %1: %2 Script: %3 Une erreur s'est produite lors de l'exécution du script de %1 : %2 @@ -1572,17 +1280,14 @@ Script : %3 QDesigner - %1 - warning Avertissement - %1 - Qt Designer Qt Designer - This application cannot be used for the Console edition of Qt Cette application ne peut pas être utilisée avec l'édition console de Qt @@ -1590,228 +1295,178 @@ Script : %3 QDesignerActions - Saved %1. %1 sauvé. - %1 already exists. Do you want to replace it? %1 existe déjà. Voulez-vous le remplacer ? - Edit Widgets Éditer les widgets - &New... &Nouveau... - &Open... &Ouvrir... - &Save &Enregistrer - Save &As... Enregistrer &sous... - Save A&ll Enregistrer &tout - Save As &Template... Sauver comme &modèle... - - &Close &Fermer - Save &Image... Enregistrer &image... - &Print... Im&primer... - &Quit &Quitter - View &Code... &Visualizer le code... - &Minimize &Minimiser - Bring All to Front Amener tout au premier plan - Preferences... Préférences... - Additional Fonts... Polices additionnelles... - ALT+CTRL+S ALT+CTRL+S - CTRL+SHIFT+S CTRL+SHIFT+S - CTRL+R CTRL+R - CTRL+M CTRL+M - Qt Designer &Help &Aide de Qt Designer - Current Widget Help Aide du widget courant - What's New in Qt Designer? Quoi de neuf dans Qt Designer ? - About Plugins À propos des plugins - - About Qt Designer À propos de Qt Designer - About Qt À propos de Qt - Clear &Menu Réinitialiser le &menu - &Recent Forms Formulaires &récents - - Open Form Ouvrir le formulaire - - - Designer UI files (*.%1);;All Files (*) Fichier UI de Qt Designer (*.%1);;Tous les fichiers(*) - - Save Form As Enregistrer le formulaire sous - Designer Designer - Feature not implemented yet! Cette fonctionnalité n'est pas encore implémentée ! - Code generation failed La génération du code à échoué - Read error Erreur de lecture - %1 Do you want to update the file location or generate a new form? %1 Voulez vous mettre à jour l'emplacement du fichier ou générer un nouveau formulaire ? - &Update &Mettre à jour - &New Form &Nouveau formulaire - - Save Form? Sauver le formulaire ? - Could not open file Impossible d'ouvrir le fichier - The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? @@ -1820,17 +1475,14 @@ Raison : %2 Voulez-vous réessayer ou sélectionner un fichier différent ? - Select New File Sélectionner un nouveau fichier - Could not write file Impossible d'écrire le fichier - It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? @@ -1839,65 +1491,50 @@ Raison : %2 Voulez-vous réessayer ? - - Assistant Assistant - &Close Preview &Fermer la prévisualisation - - The backup file %1 could not be written. Le fichier de backup %1 n'a pas pu être écrit. - The backup directory %1 could not be created. Le dossier de backup %1 n'a pas pu être créé. - The temporary backup directory %1 could not be created. Le dossier temporaire de backup %1 n'a pas pu être créé. - Preview failed La prévisualisation a échoué - Image files (*.%1) Fichiers image (*.%1) - - Save Image Sauver image - Saved image %1. Image %1 sauvée. - The file %1 could not be written. Le fichier %1 n'a pas pu être écrit. - Please close all forms to enable the loading of additional fonts. Veuillez fermer tous les formulaires pour activer le chargement de polices additionnelles. - Printed %1. Impression de %1 terminée. @@ -1905,7 +1542,6 @@ Voulez-vous réessayer ? QDesignerAppearanceOptionsPage - Appearance Tab in preferences dialog Apparence @@ -1914,17 +1550,14 @@ Voulez-vous réessayer ? QDesignerAppearanceOptionsWidget - Docked Window Fenêtre ancrable - Multiple Top-Level Windows Fenêtres multiples - Toolwindow Font Police des fenêtre d'outils @@ -1932,22 +1565,18 @@ Voulez-vous réessayer ? QDesignerAxWidget - Reset control Réinitialiser les contrôles - Set control Définir les contrôles - Control loaded Contrôle chargé - A COM exception occurred when executing a meta call of type %1, index %2 of "%3". Une exception COM a été levée lors de l'execution du meta-appel de type %1, indice %2 de "%3". @@ -1955,17 +1584,14 @@ Voulez-vous réessayer ? QDesignerFormBuilder - Script errors occurred: Erreurs du script : - The preview failed to build. La construction de la prévisualisation a échoué. - Designer Designer @@ -1973,22 +1599,18 @@ Voulez-vous réessayer ? QDesignerFormWindow - %1 - %2[*] %1 - %2[*] - Save Form? Enregistrer le formulaire ? - Do you want to save the changes to this document before closing? Voulez-vous enregistrer les changements de ce document avant de le fermer ? - If you don't save, your changes will be lost. Si vous ne sauvegardez pas, les changements seront perdus. @@ -1996,38 +1618,30 @@ Voulez-vous réessayer ? QDesignerMenu - Type Here Taper ici - Add Separator Ajouter séparateur - Insert separator Insérer séparateur - Remove separator Retirer séparateur - Remove action '%1' Supprimer l'action '%1' - - Add separator Ajouter séparateur - Insert action Insérer action @@ -2035,22 +1649,18 @@ Voulez-vous réessayer ? QDesignerMenuBar - Type Here Taper ici - Remove Menu '%1' Supprimer menu '%1' - Remove Menu Bar Supprimer barre de menu - Menu Menu @@ -2058,37 +1668,30 @@ Voulez-vous réessayer ? QDesignerPluginManager - An XML error was encountered when parsing the XML of the custom widget %1: %2 Une erreur XML a été rencontrée lors de l'analyse grammaticale du XML provenant du widget personnalisé %1 : %2 - A required attribute ('%1') is missing. Un attribut obligatoire ('%1') est manquant. - An invalid property specification ('%1') was encountered. Supported types: %2 Une spécification invalide de propriété ('%1') a été rencontrée. Types supportés : %2 - '%1' is not a valid string property specification. '%1' n'est pas une spécification valide de propriété chaîne de caractères. - The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. Le XML du widget personnalisé %1 ne contient aucun des éléments <widget> ou <ui>. - The class attribute for the class %1 is missing. L'attribut de classe est manquant pour la classe %1. - The class attribute for the class %1 does not match the class name %2. L'attribut de classe pour la classe %1 ne correspond pas au nom de la classe %2. @@ -2096,7 +1699,6 @@ Voulez-vous réessayer ? QDesignerPropertySheet - Dynamic Properties Propriétés dynamiques @@ -2104,31 +1706,26 @@ Voulez-vous réessayer ? QDesignerResource - The layout type '%1' is not supported, defaulting to grid. Le type de layout '%1' n'est pas supporté, replacement par une grille. - 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. L'extension du widget '%1' (%2) a retourné un widget non géré par Designer '%3' (%4) lors de la requête pour la page #%5. Les pages du conteneur ne devraient être ajoutées que par spécification dans le XML retourné par la méthode domXml() du widget personnalisé. - Unexpected element <%1> Parsing clipboard contents Élément inattendu <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Parsing clipboard contents Erreur lors du collage du contenu du presse-papier à la ligne %1, colonne %2 : %3 - Error while pasting clipboard contents: The root element <ui> is missing. Parsing clipboard contents Erreur lors du collage du contenu du presse-papier. L'élément racine <ui> est manquant. @@ -2137,12 +1734,10 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QDesignerSharedSettings - The template path %1 could not be created. Le chemin du modèle %1 n'a pas pu être créé. - An error has been encountered while parsing device profile XML: %1 Une erreur a été rencontrée lors de l'analyse grammaticale du XML du profil de l'appareil : %1 @@ -2150,33 +1745,27 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QDesignerToolWindow - Property Editor Éditeur de propriétés - Action Editor Éditeur d'actions - Object Inspector Inspecteur d'objet - Resource Browser plural Explorateur de ressources - Signal/Slot Editor Éditeur de signaux et slots - Widget Box Boîte de widget @@ -2184,62 +1773,50 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QDesignerWorkbench - &File &Fichier - Edit Édition - F&orm F&ormulaire - Preview in Prévisualisation avec - &View Afficha&ge - &Settings &Configuration - &Window Fe&nêtre - &Help &Aide - Toolbars Barre d'outils - Widget Box Boîte de widget - Save Forms? Enregistrer les formulaires ? - There are %n forms with unsaved changes. Do you want to review these changes before quitting? Il y a %n formulaire avec des changements non-enregistrés. Voulez-vous vérifier les changements avant de quitter? @@ -2247,37 +1824,30 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans - If you do not review your documents, all your changes will be lost. Si vous ne vérifiez pas vos documents, tous les changements seront perdus. - Discard Changes Abandonner les changements - Review Changes Vérifier les changements - Backup Information Informations de sauvegarde - The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? La dernière session de Designer n'a pas été fermée correctement. Des fichiers de sauvegarde existent. Voulez-vous les charger ? - The file <b>%1</b> could not be opened. Le fichier <b>%1</b> n'a pas pu être ouvert. - The file <b>%1</b> is not a valid Designer UI file. Le fichier <b>%1</b> n'est pas un fichier valide d'UI de Designer. @@ -2285,92 +1855,82 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QFormBuilder - An empty class name was passed on to %1 (object name: '%2'). Empty class name passed to widget factory method Un nom de classe vide a été passé à %1 (nom d'objet '%2'). - QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. QFormBuilder n'a pas pu créer le widget personnalisé de classe '%1'; passage à la classe de base '%2'. - QFormBuilder was unable to create a widget of the class '%1'. QFormBuilder n'a pas pu créer un widget de classe '%1'. - The layout type `%1' is not supported. Le type de layout '%1' n'est pas supporté. - The set-type property %1 could not be read. Le type du setteur de propriété %1 n'a pas pu être lu. - The enumeration-type property %1 could not be read. Le type d'énumeration de propriété %1 n'a pas pu être lu. - Reading properties of the type %1 is not supported yet. La lecture des propriétés de type %1 n'est pas supporté. - The property %1 could not be written. The type %2 is not supported yet. La propriété %1 ne peut pas être écrite. Le type %2 n'est pas encore supporté. + + The enumeration-value '%1' is invalid. The default value '%2' will be used instead. + la valeur d'énumération '%1' est invalide. La valeur par défaut '%2' sera utilisée à la place. + + + The flag-value '%1' is invalid. Zero will be used instead. + Le drapeau '%1' est invalide. Zero sera utilisé à la place. + QStackedWidgetEventFilter - Previous Page Page précédente - Next Page Page suivante - Delete Supprimer - Before Current Page Avant la page courante - After Current Page Après la page courante - Change Page Order... Modifier l'ordre des pages... - Change Page Order Modifier l'ordre des pages - Page %1 of %2 Page %1 de %2 - - Insert Page Insérer page @@ -2378,12 +1938,10 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QStackedWidgetPreviewEventFilter - Go to previous page of %1 '%2' (%3/%4). Aller à la page précédente de %1 '%2' (%3/%4). - Go to next page of %1 '%2' (%3/%4). Aller à la page suivante de %1 '%2' (%3/%4). @@ -2391,28 +1949,22 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QTabWidgetEventFilter - Delete Supprimer - Before Current Page Avant la page courante - After Current Page Après la page courante - Page %1 of %2 Page %1 de %2 - - Insert Page Insérer page @@ -2420,37 +1972,30 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QToolBoxHelper - Delete Page Supprimer page - Before Current Page Avant la page courante - After Current Page Après la page courante - Change Page Order... Modifier l'ordre des pages... - Change Page Order Modifier l'ordre de pages - Page %1 of %2 Page %1 de %2 - Insert Page Insérer page @@ -2458,15 +2003,10 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtBoolEdit - - - True Vrai - - False Faux @@ -2474,12 +2014,10 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtBoolPropertyManager - True Vrai - False Faux @@ -2487,7 +2025,6 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtCharEdit - Clear Char Effacer caractère @@ -2495,7 +2032,6 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtColorEditWidget - ... ... @@ -2503,22 +2039,18 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtColorPropertyManager - Red Rouge - Green Vert - Blue Bleu - Alpha Alpha @@ -2526,97 +2058,78 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtCursorDatabase - Arrow Flèche - Up Arrow Flèche vers le haut - Cross Croix - Wait Attendre - IBeam IBeam - Size Vertical Redimensionner verticalement - Size Horizontal Redimensionner horizontalement - Size Backslash Redimensionner diagonale droite - Size Slash Redimensionner diagonale gauche - Size All Redimensionner - Blank Vide - Split Vertical Scinder verticalement - Split Horizontal Scinder horizontalement - Pointing Hand Pointeur index - Forbidden Interdit - Open Hand Main ouverte - Closed Hand Main fermée - What's This Qu'est-ce que c'est ? - Busy Occupé @@ -2624,12 +2137,10 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtFontEditWidget - ... ... - Select Font Selectionner police @@ -2637,37 +2148,30 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtFontPropertyManager - Family Famille - Point Size Taille en points - Bold Gras - Italic Italique - Underline Souligné - Strikeout Barré - Kerning Crénage @@ -2675,7 +2179,6 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientDialog - Edit Gradient Modifier le gradient @@ -2683,316 +2186,242 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientEditor - Form Formulaire - Gradient Editor Éditeur de gradient - 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. Cette zone montre une prévisualisation du gradient édité. Elle permet aussi d'éditer les paramètres spécifiques au type de gradient tel que les points de départ et d'arrivée, le rayon, etc. par glisser-déposer. - 1 1 - 2 2 - 3 3 - 4 4 - 5 5 - Gradient Stops Editor Éditeur de point d'arrêt du gradient - 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. Cette zone vous permet d'éditer les points d'arrêt du gardient. Double-cliquez sur un point d'arrêt existant pour le dupliquer. Double-cliquez à l'exterieur d'un point d'arrêt pour en créer un nouveau. Glissez-déposez un point pour le repositionner. Utilisez le bouton droit de la souris pour afficher le menu contextuel avec des actions supplémentaires. - Zoom Zoom - - Reset Zoom Réinitialiser le zoom - Position Position - - - Hue Teinte - H T - - Saturation Saturation - S S - Sat Sat - - Value Valeur - V V - Val Val - - - Alpha Alpha - A A - Type Type - Spread Étendue - Color Couleur - Current stop's color Couleur du point d'arrêt courant - Show HSV specification Montrer les spécifications TSV/HSV - HSV TSV/HSV - Show RGB specification Affichier les spécifications RGB - RGB RGB - Current stop's position Position du point d'arrêt courant - % % - Zoom In Zoomer - Zoom Out Dézoomer - Toggle details extension Inverser les détails d'exention - > > - Linear Type Type linéaire - - - - - - ... ... - Radial Type Type radial - Conical Type Type conique - Pad Spread Étendue par remplissage - Repeat Spread Étendue par répétition - Reflect Spread Étendue par réflexion - Start X X de départ - Start Y Y de départ - Final X X de fin - Final Y Y de fin - - Central X X central - - Central Y Y central - Focal X X focal - Focal Y Y focal - Radius Rayon - Angle Angle - Linear Linéaire - Radial Radial - Conical Conique - Pad Remplissage - Repeat Répéter - Reflect Réflexion @@ -3000,37 +2429,30 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientStopsWidget - New Stop Nouveau point d'arrêt - Delete Supprimer - Flip All Tout renverser - Select All Tout sélectionner - Zoom In Zoomer - Zoom Out Dézoomer - Reset Zoom Réinitialiser le zoom @@ -3038,46 +2460,34 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientView - Gradient View Vue du gradient - - New... Nouveau... - - Edit... Éditer... - - Rename Renommer - - Remove Retirer - Grad Gradient - Remove Gradient Retirer gradient - Are you sure you want to remove the selected gradient? Êtes-vous sûr de vouloir supprimer le gradient sélectionné ? @@ -3085,7 +2495,6 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientViewDialog - Select Gradient Sélectionner gradient @@ -3093,7 +2502,6 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtKeySequenceEdit - Clear Shortcut Effacer les racourcis @@ -3101,17 +2509,14 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtLocalePropertyManager - %1, %2 %1, %2 - Language Langue - Country Pays @@ -3119,17 +2524,14 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtPointFPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3137,17 +2539,14 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtPointPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3155,12 +2554,10 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtPropertyBrowserUtils - [%1, %2, %3] (%4) [%1, %2, %3] (%4) - [%1, %2] [%1, %2] @@ -3168,27 +2565,22 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtRectFPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Largeur - Height Hauteur @@ -3196,27 +2588,22 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtRectPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Largeur - Height Hauteur @@ -3224,175 +2611,134 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtResourceEditorDialog - Dialog Dialogue - New File Nouveau fichier - - N N - Remove File Supprimer fichier - - R S - I - New Resource Nouvelle ressource - A A - Remove Resource or File Supprimer ressource ou fichier - %1 already exists. Do you want to replace it? %1 existe déjà. Voulez-vous le remplacer ? - The file does not appear to be a resource file; element '%1' was found where '%2' was expected. Le fichier n'est pas un fichier ressource; l'élément '%1' a été trouvé à la place de %2. - %1 [read-only] %1 [lecture seule] - - %1 [missing] %1 [manquant] - <no prefix> <pas de préfixe> - - New Resource File Nouveau fichier de ressource - - Resource files (*.qrc) Fichier de ressource (*.qrc) - Import Resource File Importer fichier de ressource - newPrefix newPrefix - <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> <p><b>Avertissement :</b> le fichier</p><p>%1</p><p>est en dehors du répertoire parent du fichier de ressource courant.</p> - <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> <p>Pour résoudre le problème, appuyez sur :</p><table><tr><th align="left">Copier</th><td>Pour copier le fichier dans le répertoire parent du fichier de ressource.</td></tr><tr><th align="left">Copier sous...</th><td>Pour copier le fichier ressource dans un sous-répertoire du répertoire parent du fichier de ressource.</td></tr><tr><th align="left">Conserver</th><td>pour conserver l'emplacement courant.</td></tr></table> - Add Files Ajouter fichiers - Incorrect Path Chemin incorrect - - - - Copy Copier - Copy As... Copier sous... - Keep Conserver - Skip Passer - Clone Prefix Cloner le préfixe - 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". Entrez le suffixe que vous voulez ajouter aux noms des fichiers clonés. Ceci peut être une extension de langue par exemple, comme "_fr'. - - Copy As Copier sous - <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> <p>Le fichier sélectionné</p><p>%1</p><p>est en dehors du répertoire du fichier de ressource courant :</p><p>%2</p><p>Veuillez sélectionner un chemin dans le répertoire courant.</p> - Could not overwrite %1. Impossible d'écraser %1. - Could not copy %1 to @@ -3403,108 +2749,84 @@ vers %2 - A parse error occurred at line %1, column %2 of %3: %4 Une erreur d'analyse grammaticale est apparue à la ligne %1, colonne %2 de %3 : %4 - Save Resource File Enregistrer le fichier de ressource - Could not write %1: %2 Impossible d'écrire %1 : %2 - Edit Resources Éditer les ressources - New... Nouveau... - Open... Ouvrir... - Open Resource File Ouvrir fichier de ressource - - Remove Retirer - - Move Up Vers le Haut - - Move Down Vers le Bas - - Add Prefix Ajouter préfixe - Add Files... Ajouter fichiers... - Change Prefix Modifier le préfixe - Change Language Modifier la langue - Change Alias Modifier l'alias - Clone Prefix... Cloner le préfixe... - Prefix / Path Préfixe / chemin - Language / Alias Langue / Alias - <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> <html><p><b>Avertissement:</b> Des problèmes sont apparus lors du rafraichissement des données des ressources :</p><pre>%1</pre></html> - Resource Warning Avertissement relatif aux ressources @@ -3512,24 +2834,20 @@ vers QtResourceView - Size: %1 x %2 %3 Taille : %1 x %2 %3 - Edit Resources... Éditer ressources... - Reload Recharger - Copy Path Copier le chemin @@ -3537,7 +2855,6 @@ vers QtResourceViewDialog - Select Resource Séléctionner ressource @@ -3545,17 +2862,14 @@ vers QtSizeFPropertyManager - %1 x %2 %1 x %2 - Width Largeur - Height Hauteur @@ -3563,33 +2877,26 @@ vers QtSizePolicyPropertyManager - - <Invalid> <Invalide> - [%1, %2, %3, %4] [%1, %2, %3, %4] - Horizontal Policy Politique horizontale - Vertical Policy Politique verticale - Horizontal Stretch Étirement horizontal - Vertical Stretch Étirement vertical @@ -3597,17 +2904,14 @@ vers QtSizePropertyManager - %1 x %2 %1 x %2 - Width Largeur - Height Hauteur @@ -3615,107 +2919,86 @@ vers QtToolBarDialog - Customize Toolbars Personnaliser les barres d'outils - 1 1 - Actions Actions - Toolbars Barres d'outils - Add new toolbar Ajouter une nouvelle barre d'outils - New Nouveau - Remove selected toolbar Supprimer la barre d'outils sélectionnée - Remove Supprimer - Rename toolbar Renommer la barre d'outils - Rename Renommer - Move action up Déplacer l'action vers le haut - Up Monter - Remove action from toolbar Retirer l'action de la barre d'outils - <- <- - Add action to toolbar Ajouter l'action à la barre d'outil - -> -> - Move action down Déplacer l'action vers le bas - Down Descendre - Current Toolbar Actions Actions de la barre d'outils courante - Custom Toolbar Barre d'outils personnalisée - < S E P A R A T O R > < S É P A R A T E U R > @@ -3723,12 +3006,10 @@ vers QtTreePropertyBrowser - Property Propriété - Value Valeur @@ -3736,64 +3017,52 @@ vers SaveFormAsTemplate - Save Form As Template Enregistrer le formulaire comme un modèle - &Name: &Nom : - &Category: &Catégorie : - Add path... Ajouter chemin... - Template Exists Le modèle existe - A template with the name %1 already exists. Do you want overwrite the template? Un modèle existe déjà avec le nom %1. Voulez-vous le remplacer ? - Overwrite Template Remplacer modèle - Open Error Erreur d'ouverture - There was an error opening template %1 for writing. Reason: %2 Une erreur s'est produite à l'ouverture du modèle %1 en écriture. Raison : %2 - Write Error Erreur d'écriture - There was an error writing the template %1 to disk. Reason: %2 Une erreur s'est produite lors de l'écriture du modèle %1 sur le disque. Raison : %2 - Pick a directory to save templates in Sélectionner le dossier dans lequel le modèle sera enregistré @@ -3801,7 +3070,6 @@ Voulez-vous le remplacer ? ScriptErrorDialog - An error occurred while running the scripts for "%1": Une erreur est apparue lors de l'execution des scripts de "%1" : @@ -3811,22 +3079,18 @@ Voulez-vous le remplacer ? SelectSignalDialog - Go to slot Aller au slot - Select signal Sélectionner signal - signal signal - class classe @@ -3834,7 +3098,6 @@ Voulez-vous le remplacer ? SignalSlotConnection - SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) ENVOYER(%1), SIGNAL(%2), RECEVEUR(%3), SLOT(%4) @@ -3842,37 +3105,26 @@ Voulez-vous le remplacer ? SignalSlotDialogClass - Signals and slots Signaux et slots - Slots Slots - - Add Ajouter - - - - ... ... - - Delete Supprimer - Signals Signaux @@ -3880,12 +3132,10 @@ Voulez-vous le remplacer ? Spacer - Horizontal Spacer '%1', %2 x %3 Ressort horizontal '%1', %2 x %3 - Vertical Spacer '%1', %2 x %3 Ressort vertical '%1', %2 x %3 @@ -3893,7 +3143,6 @@ Voulez-vous le remplacer ? TemplateOptionsPage - Template Paths Tab in preferences dialog Chemins des modèles @@ -3902,32 +3151,42 @@ Voulez-vous le remplacer ? ToolBarManager - Configure Toolbars... Configurer les barres d'outils... - Window Fenêtre - Help Aide - Style Style - Dock views Ancrer les vues - + File + Fichier + + + Edit + Édition + + + Tools + Outils + + + Form + Formulaire + + Toolbars Barres d'outils @@ -3935,22 +3194,18 @@ Voulez-vous le remplacer ? VersionDialog - <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>Version %2 - Qt Designer Qt Designer - <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> <br/>Qt Designer est une interface de création d'interface graphique pour les applications Qt.<br/> - %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). %1<br/>Copyright (C) 2010 Nokia Corporation et/ou ses filiales. @@ -3958,7 +3213,6 @@ Voulez-vous le remplacer ? WidgetDataBase - 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. Le fichier contient un widget personnalisé '%1' dont la classe de base (%2) est différente de l'entrée dans la base de données de widget (%3). La base de données de widget n'a pas été modifiée. @@ -3966,87 +3220,70 @@ Voulez-vous le remplacer ? qdesigner_internal::ActionEditor - New... Nouveau... - Edit... Éditer... - Go to slot... Aller au slot... - Copy Copier - Cut Couper - Paste Coller - Select all Tout sélectionner - Delete Supprimer - Actions Actions - Configure Action Editor Configurer l'éditeur d'action - Icon View Vue en icônes - Detailed View Vue détaillée - New action Nouvelle action - Edit action Editer action - Remove action '%1' Supprimer action '%1' - Remove actions Supprimer les actions - Used In Utilisé dans @@ -4054,32 +3291,26 @@ Voulez-vous le remplacer ? qdesigner_internal::ActionModel - Name Nom - Used Utilisé - Text Texte - Shortcut Raccourci - Checkable Vérifiable - ToolTip Info-bulle @@ -4087,27 +3318,22 @@ Voulez-vous le remplacer ? qdesigner_internal::BrushManagerProxy - The element '%1' is missing the required attribute '%2'. L'attribut requis '%2' est manquant pour l'élément '%1'. - Empty brush name encountered. Un nom vide de pinceau a été rencontré. - An unexpected element '%1' was encountered. L'élément inattendu '%1' a été rencontré. - An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 Une erreur est apparue lors de la lecture du fichier '%1' de définition des pinceaux à la ligne %2, colonne %3: %4 - An error occurred when reading the resource file '%1' at line %2, column %3: %4 Une erreur est survenue lors de la lecture du fichier de ressource '%1' à la ligne %2, colonne %3 : %4 @@ -4115,17 +3341,14 @@ Voulez-vous le remplacer ? qdesigner_internal::BuddyEditor - Add buddy Ajouter un copain - Remove buddies Supprimer les copains - Remove %n buddies Supprimer %n copain @@ -4133,7 +3356,6 @@ Voulez-vous le remplacer ? - Add %n buddies Ajouter %n copain @@ -4141,7 +3363,6 @@ Voulez-vous le remplacer ? - Set automatically Définir automatiquement @@ -4149,7 +3370,6 @@ Voulez-vous le remplacer ? qdesigner_internal::BuddyEditorPlugin - Edit Buddies Éditer les copains @@ -4157,7 +3377,6 @@ Voulez-vous le remplacer ? qdesigner_internal::BuddyEditorTool - Edit Buddies Éditer les copains @@ -4165,12 +3384,10 @@ Voulez-vous le remplacer ? qdesigner_internal::ButtonGroupMenu - Select members Sélectionner les membres - Break Casser @@ -4178,32 +3395,26 @@ Voulez-vous le remplacer ? qdesigner_internal::ButtonTaskMenu - Assign to button group Assigner au groupe de boutons - Button group Groupe de boutons - New button group Nouveau groupe de boutons - Change text... Modifier le texte... - None Aucun - Button group '%1' Groupe de boutons '%1' @@ -4211,57 +3422,46 @@ Voulez-vous le remplacer ? qdesigner_internal::CodeDialog - Save... Enregistrer... - Copy All Tout copier - &Find in Text... &Rechercher dans le texte... - A temporary form file could not be created in %1. Un fichier temporaire de formulaire n'a pas pu être créé dans %1. - The temporary form file %1 could not be written. Le fichier temporaire de formulaire %1 n'a pas pu être écrit. - %1 - [Code] %1 - [Code] - Save Code Enregistrer le code - Header Files (*.%1) Fichiers headers (*.%1) - The file %1 could not be opened: %2 Le fichier %1 ne peut pas être ouvert : %2 - The file %1 could not be written: %2 Le fichier %1 ne peut pas être écrit : %2 - %1 - Error %1 - Erreur @@ -4269,7 +3469,6 @@ Voulez-vous le remplacer ? qdesigner_internal::ColorAction - Text Color Couleur du texte @@ -4277,12 +3476,10 @@ Voulez-vous le remplacer ? qdesigner_internal::ComboBoxTaskMenu - Edit Items... Éditer les éléments... - Change Combobox Contents Modifier le contenu du Combobox @@ -4290,7 +3487,6 @@ Voulez-vous le remplacer ? qdesigner_internal::CommandLinkButtonTaskMenu - Change description... Modifier la description... @@ -4298,17 +3494,14 @@ Voulez-vous le remplacer ? qdesigner_internal::ConnectionEdit - Select All Tout sélectionner - Deselect All Désélectionner tout - Delete Supprimer @@ -4316,52 +3509,42 @@ Voulez-vous le remplacer ? qdesigner_internal::ConnectionModel - Sender Émetteur - Signal Signal - Receiver Receveur - Slot Slot - <sender> <émetteur> - <signal> <signal> - <receiver> <receveur> - <slot> <slot> - The connection already exists!<br>%1 La connexion existe déjà !<br>%1 - Signal and Slot Editor Éditeur de signaux et slots @@ -4369,42 +3552,34 @@ Voulez-vous le remplacer ? qdesigner_internal::ContainerWidgetTaskMenu - Delete Supprimer - Insert Insérer - Insert Page Before Current Page Insérer la page avant la page courante - Insert Page After Current Page Insérer la page après la page courante - Add Subwindow Ajouter sous-fenêtre - Subwindow Sous fenêtre - Page Page - Page %1 of %2 Page %1 de %2 @@ -4412,18 +3587,15 @@ Voulez-vous le remplacer ? qdesigner_internal::DPI_Chooser - System (%1 x %2) System resolution Système (%1 x %2) - User defined Défini par l'utilisateur - x DPI X/Y separator x @@ -4432,49 +3604,38 @@ Voulez-vous le remplacer ? qdesigner_internal::DesignerPropertyManager - - AlignLeft AlignementGauche - AlignHCenter AlignementCentreH - AlignRight AlignementDroite - AlignJustify AlignementJustifié - AlignTop AlignementSommet - - AlignVCenter AlignementCentreV - AlignBottom AlignementDessous - %1, %2 %1, %2 - Customized (%n roles) Personnalisé (%n rôle) @@ -4482,76 +3643,59 @@ Voulez-vous le remplacer ? - Inherited pour la palette Héritée - Horizontal Horizontal - Vertical Vertical - Normal Off Arrêt normal - Normal On Marche normal - Disabled Off Arrêt désactivé - Disabled On Marche désactivé - Active Off Arrêt activé - Active On Marche activé - Selected Off Arrêt sélectionné - Selected On Marche sélectionné - - translatable Traduisible - - disambiguation désambiguation - - comment commentaire @@ -4559,48 +3703,38 @@ Voulez-vous le remplacer ? qdesigner_internal::DeviceProfileDialog - Device Profiles (*.%1) Profils d'appareil (*.%1) - Default Par défaut - Save Profile Enregistrer le profil - Save Profile - Error Enregistrer le profile - Erreur - Unable to open the file '%1' for writing: %2 Impossible d'ouvrir le fichier '%1' en écriture : %2 - Open profile Ouvrir profil - - Open Profile - Error Ouvrir profil - Erreur - Unable to open the file '%1' for reading: %2 Impossible d'ouvrir le fichier '%1' en lecture : %2 - '%1' is not a valid profile: %2 '%1' n'est pas un profil valide : %2 @@ -4608,57 +3742,46 @@ Voulez-vous le remplacer ? qdesigner_internal::Dialog - Dialog Boîte de dialogue - StringList Liste de chaîne de caractères - New String Nouvelle chaîne de caractères - &New &Nouveau - Delete String Supprimer la chaîne de caractères - &Delete &Supprimer - &Value: &Valeur : - Move String Up Déplacer la chaîne de caractères vers le haut - Up Vers le haut - Move String Down Déplacer la chaîne de caractères vers le bas - Down Vers le bas @@ -4666,52 +3789,42 @@ Voulez-vous le remplacer ? qdesigner_internal::EmbeddedOptionsControl - None Aucun - Add a profile Ajouter un profil - Edit the selected profile Éditer le profile sélectionné - Delete the selected profile Supprimer le profil sélectionné - Add Profile Ajouter profil - New profile Nouveau profil - Edit Profile Éditer profil - Delete Profile Supprimer profil - Would you like to delete the profile '%1'? Voulez-vous supprimer le profil '%1' ? - Default Par défaut @@ -4719,20 +3832,25 @@ Voulez-vous le remplacer ? qdesigner_internal::FilterWidget - <Filter> - <Filtre> + <Filtre> + + + Filter + Filtre + + + Clear text + Effacer le texte qdesigner_internal::FormEditor - Resource File Changed Fichier de ressource modifié - The file "%1" has changed outside Designer. Do you want to reload it? Le fichier "%1" a été modifié en dehors de Designer. Voulez-vous le recharger ? @@ -4740,7 +3858,6 @@ Voulez-vous le remplacer ? qdesigner_internal::FormLayoutMenu - Add form layout row... Ajouter une ligne au layout du formulaire... @@ -4748,33 +3865,30 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindow - Edit contents Éditer le contenu - F2 F2 - Insert widget '%1' Insérer le widget '%1' - Resize Redimensionner - - Key Move Déplacement au clavier + + Key Resize + Redimensionnement au clavier + - Paste %n action(s) Coller %n action @@ -4782,7 +3896,6 @@ Voulez-vous le remplacer ? - Paste %n widget(s) Coller %n widget @@ -4790,53 +3903,42 @@ Voulez-vous le remplacer ? - Paste (%1 widgets, %2 actions) Coller (%1 widgets, %2 actions) - Cannot paste widgets. Designer could not find a container without a layout to paste into. Impossible de coller les widgets. Designer n'a pas trouvé de conteneur sans layout pour coller. - Break the layout of the container you want to paste into, select this container and then paste again. Retirez le layout du conteneur dans lequel vous voulez coller, sélectionnez ce conteneur et collez à nouveau. - Paste error Erreur de collage - Raise widgets Élever widgets - Lower widgets Descendre widgets - Select Ancestor Sélectionner les ancêtres - Lay out Mettre en page - - Drop widget Supprimer widget - A QMainWindow-based form does not contain a central widget. Un formulaire basé sur QMainWindow ne contenant pas de widget central. @@ -4844,12 +3946,10 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindowBase - Delete '%1' Supprimer '%1' - Delete Supprimer @@ -4857,200 +3957,167 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindowManager - Cu&t Co&uper - Cuts the selected widgets and puts them on the clipboard Coupe les widgets sélectionnés et les place dans le presse-papiers - &Copy Cop&ier - Copies the selected widgets to the clipboard Copie les widgets sélectionnés dans le presse-papiers - &Paste C&oller - Pastes the clipboard's contents Colle le contenu du presse-papiers - &Delete &Supprimer - Deletes the selected widgets Supprime les widgets sélectionnés - Select &All Tout &sélectionner - Selects all widgets Sélectionne tous les widgets - Bring to &Front Amener au premier &plan - - Raises the selected widgets Élève les widgets sélectionnés - Send to &Back Placer en &arrière plan - - Lowers the selected widgets Descend les widgets sélectionnés - Adjust &Size Ajuster les &dimensions - Adjusts the size of the selected widget Ajuster les dimensions du widget sélectionné - Lay Out &Horizontally Mettre en page &horizontalement - - Lays out the selected widgets horizontaly + Lays out the selected widgets horizontally Mettre en page horizontalement les widgets sélectionnés - + Lays out the selected widgets horizontally in a splitter + Met en page les widgets sélectionnés horizontalement à l'aide d'un séparateur + + + Lays out the selected widgets horizontaly + Mettre en page horizontalement les widgets sélectionnés + + Lay Out &Vertically Mettre en page &verticalement - Lays out the selected widgets vertically Mettre en page verticalement les widgets sélectionnés - Lay Out in a &Form Layout Mettre en page dans un layout de &formulaire - Lays out the selected widgets in a form layout Mettre en page les widgets sélectionnés dans un layout de formulaire - Lay Out in a &Grid Mettre en page dans une &grille - Lays out the selected widgets in a grid Mettre en page les widgets sélectionnés dans une grille - Lay Out Horizontally in S&plitter Mettre en page horizontalement avec un sé&parateur - Lays out the selected widgets horizontaly in a splitter - Met en page les widgets sélectionnés horizontalement à l'aide d'un séparateur + Met en page les widgets sélectionnés horizontalement à l'aide d'un séparateur - Lay Out Vertically in Sp&litter Mettre en page verticalement avec un sépa&rateur - Lays out the selected widgets vertically in a splitter Met en page les widgets sélectionnés verticalement à l'aide d'un séparateur - &Break Layout &Casser la mise en page - Breaks the selected layout Retire le layout sélectionné - Si&mplify Grid Layout Si&mplifier le layout de grille - Removes empty columns and rows Supprime les lignes et colonnes vides - &Preview... &Prévisualisation... - Preview current form Prévisualise le formulaire courant - Form &Settings... Paramètres du &formulaire... - Break Layout Casser la mise en page - Adjust Size Ajuster les dimensions - Could not create form preview Title of warning message box Impossible de créer la prévisualisation du formulaire - Form Settings - %1 Paramètres du formulaire - %1 @@ -5058,12 +4125,10 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindowSettings - None Aucun - Device Profile: %1 Profil de périphérique : %1 @@ -5071,38 +4136,30 @@ Voulez-vous le remplacer ? qdesigner_internal::GridPanel - Form Formulaire - Grid Grille - Visible Visible - Grid &X Grille &X - - Snap Grille aimantée - Reset Réinitialisé - Grid &Y Grille &Y @@ -5110,7 +4167,6 @@ Voulez-vous le remplacer ? qdesigner_internal::GroupBoxTaskMenu - Change title... Modifier le titre... @@ -5118,7 +4174,6 @@ Voulez-vous le remplacer ? qdesigner_internal::HtmlTextEdit - Insert HTML entity Insérer une entité HTML @@ -5126,92 +4181,74 @@ Voulez-vous le remplacer ? qdesigner_internal::IconSelector - The pixmap file '%1' cannot be read. Le fichier pixmap '%1' ne peut pas être lu. - The file '%1' does not appear to be a valid pixmap file: %2 Le fichier '%1' n'est pas un fichier de pixmap valide : %2 - The file '%1' could not be read: %2 Le fichier '%1' ne peut pas être lu : %2 - Choose a Pixmap Choisissez un pixmap - Pixmap Read Error Erreur de lecture de pixmap - ... ... - Normal Off Arrêt normal - Normal On Marche normal - Disabled Off Arrêt désactivé - Disabled On Marche désactivé - Active Off Arrêt activé - Active On Marche activé - Selected Off Arrêt sélectionné - Selected On Marche sélectionné - Choose Resource... Choisir ressource... - Choose File... Choisir un fichier... - Reset Réinitialiser - Reset All Réinitialisé tout @@ -5219,58 +4256,46 @@ Voulez-vous le remplacer ? qdesigner_internal::ItemListEditor - Items List Liste d'éléments - New Item Nouvel élément - &New &Nouveau - Delete Item Supprimer élément - &Delete &Supprimer - Move Item Up Déplacer l'élément vers le haut - U Monter - Move Item Down Déplacer l'élément vers le bas - D Descendre - - Properties &>> Propriétés &>> - Properties &<< Propriétés &<< @@ -5278,12 +4303,10 @@ Voulez-vous le remplacer ? qdesigner_internal::LabelTaskMenu - Change rich text... Modifier texte riche... - Change plain text... Modifier texte simple... @@ -5291,7 +4314,6 @@ Voulez-vous le remplacer ? qdesigner_internal::LanguageResourceDialog - Choose Resource Choisir ressource @@ -5299,7 +4321,6 @@ Voulez-vous le remplacer ? qdesigner_internal::LineEditTaskMenu - Change text... Modifier texte... @@ -5307,17 +4328,14 @@ Voulez-vous le remplacer ? qdesigner_internal::ListWidgetEditor - New Item Nouvel élément - Edit List Widget Éditer le widget de liste - Edit Combobox Éditer le Combobox @@ -5325,12 +4343,10 @@ Voulez-vous le remplacer ? qdesigner_internal::ListWidgetTaskMenu - Edit Items... Éditer les éléments... - Change List Contents Modifier le contenu de la liste @@ -5338,22 +4354,18 @@ Voulez-vous le remplacer ? qdesigner_internal::MdiContainerWidgetTaskMenu - Next Subwindow Sous-fenêtre suivante - Previous Subwindow Sous-fenêtre précédente - Tile Côte à côte - Cascade Cascade @@ -5361,7 +4373,6 @@ Voulez-vous le remplacer ? qdesigner_internal::MenuTaskMenu - Remove Supprimer @@ -5369,7 +4380,6 @@ Voulez-vous le remplacer ? qdesigner_internal::MorphMenu - Morph into Transformer en @@ -5377,43 +4387,34 @@ Voulez-vous le remplacer ? qdesigner_internal::NewActionDialog - New Action... Nouvelle action... - &Text: &Texte : - Object &name: &Nom de l'objet : - &Icon: &Icône : - Shortcut: Raccourci : - Checkable: Peut être cochée : - ToolTip: Info-bulle : - - ... ... @@ -5421,39 +4422,32 @@ Voulez-vous le remplacer ? qdesigner_internal::NewDynamicPropertyDialog - Create Dynamic Property Créer une propriété dynamique - Property Name Nom de la propriété - horizontalSpacer Espaceur horizontal - Property Type Type de la propriété - Set Property Name Définir le nom de la propriété - The current object already has a property named '%1'. Please select another, unique one. L'objet courant possède déjà une propriété nommée '%1'. Veuillez-sélectionner un autre nom. - The '_q_' prefix is reserved for the Qt library. Please select another name. Le préfixe «_q_» est réservé pour la bibliothèque Qt. @@ -5463,83 +4457,67 @@ Veuillez sélectionner un autre nom. qdesigner_internal::NewFormWidget - 0 0 - Choose a template for a preview Choisir un modèle pour la prévisualisation - Embedded Design Design pour appareil mobile - Device: Appareil : - Screen Size: Dimensions de l'écran : - Default size Dimensions par défaut - QVGA portrait (240x320) QVGA portrait (240x320) - QVGA landscape (320x240) QVGA paysage (320x240) - VGA portrait (480x640) VGA portrait (480x640) - VGA landscape (640x480) VGA paysage (640x480) - Widgets New Form Dialog Categories Widgets - Custom Widgets Widgets personnalisé - None Aucun - Error loading form Erreur de chargement du formulaire - Unable to open the form template file '%1': %2 Impossible d'ouvrir le fichier de modèle de formulaire '%1' : %2 - Internal error: No template selected. Erreur interne : aucun modèle sélectionné. @@ -5547,37 +4525,30 @@ Veuillez sélectionner un autre nom. qdesigner_internal::NewPromotedClassPanel - Add Ajouter - New Promoted Class Nouvelle classe promue - Base class name: Nom de la classe de base : - Promoted class name: Nom de la classe promue : - Header file: Fichier d'en-tête : - Global include En-tête global - Reset Réinitialiser @@ -5585,7 +4556,10 @@ Veuillez sélectionner un autre nom. qdesigner_internal::ObjectInspector - + Change Current Page + Modifier la page courante + + &Find in Text... &Rechercher dans le texte... @@ -5593,40 +4567,33 @@ Veuillez sélectionner un autre nom. qdesigner_internal::ObjectInspector::ObjectInspectorPrivate - Change Current Page - Modifier la page courante + Modifier la page courante qdesigner_internal::OrderDialog - Change Page Order Modifier l'ordre des pages - Page Order Ordre des pages - Move page up Déplacer la page vers le haut - Move page down Déplacer la page vers le bas - Index %1 (%2) Indice %1 (%2) - %1 %2 %1 %2 @@ -5634,47 +4601,38 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PaletteEditor - Edit Palette Éditer la palette - Tune Palette Ajuster la palette - Show Details Afficher les détails - Compute Details Calculer les détails - Quick Rapide - Preview Prévisualisation - Disabled Désactivé - Inactive Inactif - Active Actif @@ -5682,7 +4640,6 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PaletteEditorButton - Change Palette Modifier la palette @@ -5690,22 +4647,18 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PaletteModel - Color Role Rôle de la couleur - Active Actif - Inactive Inactif - Disabled Désactivé @@ -5713,28 +4666,22 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PixmapEditor - Choose Resource... Choisir ressource... - Choose File... Choisir fichier... - Copy Path Chemin de copie - Paste Path Chemin de collage - - ... ... @@ -5742,7 +4689,6 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PlainTextEditorDialog - Edit text Éditer le texte @@ -5750,37 +4696,30 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PluginDialog - Components Composants - Plugin Information Information sur les plugins - Refresh Rafraîchir - Scan for newly installed custom widget plugins. Recherche des plugins personnalisés récemment installés. - Qt Designer couldn't find any plugins Qt Designer n'a trouvé aucun plugin - Qt Designer found the following plugins Qt Designer a trouvé les plugins suivants - New custom widget plugins have been found. De nouveaux plugins de widgets ont été trouvés. @@ -5788,7 +4727,6 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewActionGroup - %1 Style Style %1 @@ -5796,50 +4734,38 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewConfigurationWidget - Default Par défaut - None Aucun - Browse... Parcourir... - - - qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate - Load Custom Device Skin Charger le revêtement d'appareil personnalisé - All QVFB Skins (*.%1) Tous les revêtements QVFB (*.%1) - %1 - Duplicate Skin %1 - Revêtement doublon - The skin '%1' already exists. Le revêtement '%1' existe déjà. - %1 - Error - %1 - -Erreur + %1 - Erreur - %1 is not a valid skin directory: %2 %1 n'est pas un répertoire de revêtements valide : @@ -5847,26 +4773,51 @@ Veuillez sélectionner un autre nom. + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate + + Load Custom Device Skin + Charger le revêtement d'appareil personnalisé + + + All QVFB Skins (*.%1) + Tous les revêtements QVFB (*.%1) + + + %1 - Duplicate Skin + %1 - Revêtement doublon + + + The skin '%1' already exists. + Le revêtement '%1' existe déjà. + + + %1 - Error + %1 - -Erreur + + + %1 is not a valid skin directory: +%2 + %1 n'est pas un répertoire de revêtements valide : +%2 + + + qdesigner_internal::PreviewDeviceSkin - &Portrait &Portrait - Landscape (&CCW) Rotate form preview counter-clockwise Paysage (&dans le sens horaire) - &Landscape (CW) Rotate form preview clockwise Paysage (&dans le sens anti-horaire) - &Close &Fermer @@ -5874,7 +4825,6 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewManager - %1 - [Preview] %1 - [prévisualisation] @@ -5882,7 +4832,6 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewMdiArea - The moose in the noose ate the goose who was loose. Palette editor background @@ -5893,57 +4842,46 @@ je préfère les mines de Pompéi. qdesigner_internal::PreviewWidget - Preview Window Fenêtre de prévisualisation - LineEdit LineEdit - ComboBox ComboBox - PushButton PushButton - ButtonGroup2 ButtonGroup2 - CheckBox1 CheckBox1 - CheckBox2 CheckBox2 - ButtonGroup ButtonGroup - RadioButton1 RadioButton1 - RadioButton2 RadioButton2 - RadioButton3 BoutonRadio1 @@ -5951,22 +4889,18 @@ je préfère les mines de Pompéi. qdesigner_internal::PromotionModel - Name Nom - Header file Fichier d'en-tête - Global include En-tête global - Usage Usage @@ -5974,27 +4908,22 @@ je préfère les mines de Pompéi. qdesigner_internal::PromotionTaskMenu - Promoted widgets... Widgets promus... - Promote to ... Promouvoir en... - Change signals/slots... Modifier signaux/slots... - Promote to Promouvoir en - Demote to %1 Rétrograder en %1 @@ -6002,57 +4931,46 @@ je préfère les mines de Pompéi. qdesigner_internal::PropertyEditor - Add Dynamic Property... Ajouter une propriété dynamique... - Remove Dynamic Property Supprimer la propriété dynamique - Sorting Tri - Color Groups Groupes de couleur - Tree View Vue arborescente - Drop Down Button View - Liste déroulante + Liste déroulante - String... Chaîne de caractères... - Bool... Booléen... - Other... Autre... - Configure Property Editor Configurer l'éditeur de propriétés - Object: %1 Class: %2 Objet : %1 @@ -6062,7 +4980,6 @@ Classe : %2 qdesigner_internal::PropertyLineEdit - Insert line break Insérer saut de ligne @@ -6070,27 +4987,22 @@ Classe : %2 qdesigner_internal::QDesignerPromotionDialog - Promoted Widgets Widgets promus - Promoted Classes Classes promues - Promote Promouvoir - Change signals/slots... Modifier signaux/slots... - %1 - Error %1 - Erreur @@ -6098,22 +5010,18 @@ Classe : %2 qdesigner_internal::QDesignerResource - Loading qrc file Chargement du fichier qrc - The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> Le fichier qrc spécifié <p><b>%1</b></p><p>n'a pas pu être trouvé. Voulez-vous mettre à jour l'emplacement du fichier?</p> - New location for %1 Nouvel emplacement pour %1 - Resource files (*.qrc) Fichier de ressource (*.qrc) @@ -6121,112 +5029,90 @@ Classe : %2 qdesigner_internal::QDesignerTaskMenu - Change objectName... Modifier objectName... - Change toolTip... Modifier toolTip... - Change whatsThis... Modifier whatsThis... - Change styleSheet... Modifier la feuille de style... - Create Menu Bar Créer une barre de menus - Add Tool Bar Ajouter une barre d'outils - Create Status Bar Créer une barre de status - Remove Status Bar Supprimer la barre de status - Change script... Modifier le script... - Change signals/slots... Modifier signaux/slots... - Go to slot... Aller au slot... - Size Constraints Contrainte de taille - Set Minimum Width Définir la largeur minimum - Set Minimum Height Définir la hauteur minimum - Set Minimum Size Définir la taille minimum - Set Maximum Width Définir la largeur maximum - Set Maximum Height Définir la hauteur maximum - Set Maximum Size Définir la taille maximum - Edit ToolTip Éditer l'info-bulle - Edit WhatsThis Éditer «Qu'est-ce» - no signals available Aucun signal disponible - Set size constraint on %n widget(s) Définir les contraintes de dimensions sur %n widget @@ -6237,40 +5123,32 @@ Classe : %2 qdesigner_internal::QDesignerWidgetBox - An error has been encountered at line %1 of %2: %3 Une erreur a été rencontrée à la ligne %1 de %2 : %3 - Unexpected element <%1> encountered when parsing for <widget> or <ui> L'élément inattendu <%1> a été rencontré lors de l'analyse des élements <widget> et <ui> - Unexpected end of file encountered when parsing widgets. Fin de fichier inattendue lors de l'analyse grammaticale des widgets. - A widget element could not be found. Un élement de widget n'a pas pu être trouvé. - - Unexpected element <%1> Élément <%1> inattendu - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 %5 Une erreur d'analyse grammaticale est apparue à la ligne %1, colonne %2 du code XML spécifiant le widget %3 : %4 %5 - The XML code specified for the widget %1 does not contain any widget elements. %2 Le code XML spécifié pour le widget %1 ne contient aucun élément widget. @@ -6280,73 +5158,58 @@ Classe : %2 qdesigner_internal::QtGradientStopsController - H T - S S - V V - - Hue Teinte - Sat Sat - Val Val - Saturation Saturation - Value Valeur - R R - G V - B B - Red Rouge - Green Vert - Blue Bleu @@ -6354,27 +5217,22 @@ Classe : %2 qdesigner_internal::RichTextEditorDialog - Edit text Éditer le texte - Rich Text Texte riche - Source Source - &OK &OK - &Cancel &Annuler @@ -6382,72 +5240,58 @@ Classe : %2 qdesigner_internal::RichTextEditorToolBar - Bold Gras - CTRL+B CTRL+B - Italic Italique - CTRL+I CTRL+I - Underline Souligné - CTRL+U CTRL+U - Left Align Aligner à gauche - Center Centrer - Right Align Aligner à droite - Justify Justifier - Superscript Exposant - Subscript Indice - Insert &Link Insérer &lien - Insert &Image Insérer &image @@ -6455,17 +5299,14 @@ Classe : %2 qdesigner_internal::ScriptDialog - Edit script Éditer le script - <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>Entrez un snippet de code Qt Script à exécuter lors du chargement du formulaire.<br>Le widget et ses enfants sont accessibles via les variables <i>widget</i> et <i>childWidgets</i>, respectivement. - Syntax error Erreur de syntaxe @@ -6473,7 +5314,6 @@ Classe : %2 qdesigner_internal::ScriptErrorDialog - Script errors Erreurs de script @@ -6481,23 +5321,18 @@ Classe : %2 qdesigner_internal::SignalSlotDialog - There is already a slot with the signature '%1'. Un slot existe déjà avec la signature '%1'. - There is already a signal with the signature '%1'. Un signal existe déjà avec la signature '%1'. - %1 - Duplicate Signature %1 - Signature double - - Signals/Slots of %1 Signaux/slots de %1 @@ -6505,12 +5340,10 @@ Classe : %2 qdesigner_internal::SignalSlotEditorPlugin - Edit Signals/Slots Éditer signaux/slots - F4 F4 @@ -6518,7 +5351,6 @@ Classe : %2 qdesigner_internal::SignalSlotEditorTool - Edit Signals/Slots Éditer signaux/slots @@ -6526,7 +5358,6 @@ Classe : %2 qdesigner_internal::StatusBarTaskMenu - Remove Supprimer @@ -6534,7 +5365,6 @@ Classe : %2 qdesigner_internal::StringListEditorButton - Change String List Modifier la liste de chaîne de caractères @@ -6542,38 +5372,30 @@ Classe : %2 qdesigner_internal::StyleSheetEditorDialog - - Valid Style Sheet Feuille de style valide - Add Resource... Ajouter ressource... - Add Gradient... Ajouter gradient... - Add Color... Ajouter couleur... - Add Font... Ajouter police... - Edit Style Sheet Éditer feuille de style - Invalid Style Sheet Feuille de style invalide @@ -6581,27 +5403,22 @@ Classe : %2 qdesigner_internal::TabOrderEditor - Start from Here Démarrer à partir d'ici - Restart Redémarrer - Tab Order List... Ordre de la liste de tabulation... - Tab Order List Ordre de la liste de tabulation - Tab Order Ordre des tabulations @@ -6609,7 +5426,6 @@ Classe : %2 qdesigner_internal::TabOrderEditorPlugin - Edit Tab Order Éditer l'ordre des tabulations @@ -6617,7 +5433,6 @@ Classe : %2 qdesigner_internal::TabOrderEditorTool - Edit Tab Order Éditer l'ordre des tabulations @@ -6625,48 +5440,38 @@ Classe : %2 qdesigner_internal::TableWidgetEditor - Edit Table Widget Éditer le widget de table - &Items &Éléments - Table Items Éléments de la table - - Properties &>> Propriétés &>> - New Column Nouvelle colonne - New Row Nouvelle ligne - &Columns &Colonne - &Rows &Lignes - Properties &<< Propriétés &<< @@ -6674,7 +5479,6 @@ Classe : %2 qdesigner_internal::TableWidgetTaskMenu - Edit Items... Éditer les éléments... @@ -6682,23 +5486,18 @@ Classe : %2 qdesigner_internal::TemplateOptionsWidget - Form Formulaire - Additional Template Paths Chemins de modèles additionnels - - ... ... - Pick a directory to save templates in Choisir un répertoire où enregistrer les modèles @@ -6706,22 +5505,18 @@ Classe : %2 qdesigner_internal::TextEditTaskMenu - Edit HTML Éditer le HTML - Change HTML... Modifier le HTML... - Edit Text Éditer le texte - Change Plain Text... Modifier le texte simple... @@ -6729,22 +5524,18 @@ Classe : %2 qdesigner_internal::TextEditor - Choose Resource... Choisir ressource... - Choose File... Choisir fichier... - ... ... - Choose a File Choisir un fichier @@ -6752,27 +5543,22 @@ Classe : %2 qdesigner_internal::ToolBarEventFilter - Insert Separator before '%1' Insérer un séparateur avant '%1' - Append Separator Ajouter un séparateur à la fin - Remove action '%1' Supprimer l'action '%1' - Remove Toolbar '%1' Supprimer la barre d'outils '%1' - Insert Separator Insérer un séparateur @@ -6780,125 +5566,98 @@ Classe : %2 qdesigner_internal::TreeWidgetEditor - Edit Tree Widget Éditer un widget d'arborescence - &Items &Éléments - Tree Items Élément de l'arbre - 1 1 - - New Item Nouvel élément - &New &Nouveau - - New Subitem Nouveau sous-élément - New &Subitem Nouveau &sous-élément - Delete Item Supprimer l'élément - &Delete &Supprimer - Move Item Left (before Parent Item) Déplacer l'élément à gauche (avant l'élément parent) - L G - Move Item Right (as a First Subitem of the Next Sibling Item) Déplacer l'élément sur la droite (comme un premier sous-élément de l'élément à droite) - R D - Move Item Up Déplacer l'élément vers le haut - U H - Move Item Down Déplacer l'élément vers le bas - D B - - Properties &>> Propriétés &>> - New Column Nouvelle colonne - &Columns &Colonnes - Per column properties Propriétés par colonnes - Common properties Propritétés de colonnes - Properties &<< Propriétés &<< @@ -6906,7 +5665,6 @@ Classe : %2 qdesigner_internal::TreeWidgetTaskMenu - Edit Items... Éditer les éléments... @@ -6914,7 +5672,6 @@ Classe : %2 qdesigner_internal::WidgetBox - Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. Avertissement : La création du widget a échoué dans la boîte de widget. Ceci peut être causé par un code XML invalide d'un widget personnalisé. @@ -6922,42 +5679,34 @@ Classe : %2 qdesigner_internal::WidgetBoxTreeWidget - Scratchpad bloc-notes - Custom Widgets Widgets personnalisés - Expand all Tout étendre - Collapse all Tout replier - List View Vue de liste - Icon View Vue en icônes - Remove Supprimer - Edit name Éditer le nom @@ -6965,7 +5714,6 @@ Classe : %2 qdesigner_internal::WidgetDataBase - A custom widget plugin whose class name (%1) matches that of an existing class has been found. Un plugin de widgets personnalisés dont un nom de classe (%1) correspond à une classe existante à été trouvé. @@ -6973,7 +5721,6 @@ Classe : %2 qdesigner_internal::WidgetEditorTool - Edit Widgets Éditer les widgets @@ -6981,34 +5728,28 @@ Classe : %2 qdesigner_internal::WidgetFactory - The custom widget factory registered for widgets of class %1 returned 0. La fabrique (factory) de widget personnalisé, enregistrée pour les widgets de classe %1, a retourné 0. - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. Une discordance de nom de classe est apparue lors de la création d'un nouveau widget à l'aide de la fabrique de widget personnalisé enregistrée pour la classe %1. La fabrique a retourné un widget de classe %2. - %1 Widget %1 Widget - The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. Le conteneur '%1' de la page courante (%2) n'a pas pu être déterminé lors de la création du layout. Ceci indique une incohérence dans le fichier ui, probablement un layout étant construit sur un widget conteneur. - Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. Temptative d'ajout d'un layout sur le widget '%1' (%2) qui a déjà un layout non pris en charge de type %3. Ceci indique une inconsistance dans le fichier ui. - Cannot create style '%1'. Impossible de créer le style '%1'. @@ -7016,12 +5757,10 @@ Ceci indique une inconsistance dans le fichier ui. qdesigner_internal::WizardContainerWidgetTaskMenu - Next Suivant - Back Précédent @@ -7029,7 +5768,6 @@ Ceci indique une inconsistance dans le fichier ui. qdesigner_internal::ZoomMenu - %1 % Zoom factor %1 % @@ -7038,7 +5776,6 @@ Ceci indique une inconsistance dans le fichier ui. qdesigner_internal::ZoomablePreviewDeviceSkin - &Zoom &Zoom diff --git a/translations/linguist_fr.ts b/translations/linguist_fr.ts index 873adb7..5b98904 100644 --- a/translations/linguist_fr.ts +++ b/translations/linguist_fr.ts @@ -4,7 +4,6 @@ - (New Entry) @@ -12,7 +11,6 @@ AboutDialog - Qt Linguist @@ -20,89 +18,72 @@ BatchTranslationDialog - Batch Translation of '%1' - Qt Linguist - Searching, please wait... - &Cancel - Linguist batch translator - Batch translated %n entries - Qt Linguist - Batch Translation - Options - Set translated entries to finished - Retranslate entries with existing translation - Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked. - Translate also finished entries - Phrase book preference - Move up - Move down - The batch translator will search through the selected phrase books in the order given above. - &Run - Cancel @@ -110,38 +91,31 @@ DataModel - <qt>Duplicate messages found in '%1': - <p>[more duplicates omitted] - <p>* Context: %1<br>* Source: %2 - <br>* Comment: %3 - Linguist does not know the plural rules for '%1'. Will assume a single universal form. - Cannot create '%2': %1 - Universal Form @@ -149,37 +123,30 @@ Will assume a single universal form. ErrorsView - Accelerator possibly superfluous in translation. - Accelerator possibly missing in translation. - Translation does not end with the same punctuation as the source text. - A phrase book suggestion for '%1' was ignored. - Translation does not refer to the same place markers as in the source text. - Translation does not contain the necessary %n place marker. - Unknown error @@ -187,98 +154,79 @@ Will assume a single universal form. FindDialog - Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog - This window allows you to search for some text in the translation source file. - Type in the text to search for. - Options - Source texts are searched when checked. - Translations are searched when checked. - Texts such as 'TeX' and 'tex' are considered as different when checked. - Comments and contexts are searched when checked. - Find - &Find what: - &Source texts - &Translations - &Match case - &Comments - Ignore &accelerators - Click here to find the next occurrence of the text you typed in. - Find Next - Click here to close this window. - Cancel @@ -286,7 +234,6 @@ Will assume a single universal form. LRelease - Generated %n translation(s) (%1 finished and %2 unfinished) @@ -294,7 +241,6 @@ Will assume a single universal form. - Ignored %n untranslated source text(s) @@ -305,1121 +251,868 @@ Will assume a single universal form. MainWindow - MainWindow - &Phrases - &Close Phrase Book - &Edit Phrase Book - &Print Phrase Book - V&alidation - &View - Vie&ws - &Toolbars - &Help - &Translation - &File - &Edit - &Open... - Open a Qt translation source file (TS file) for editing - Ctrl+O - E&xit - Close this window and exit. - Ctrl+Q - - &Save - Save changes made to this Qt translation source file - Previous unfinished item. - Move to the previous unfinished item. - Next unfinished item. - Move to the next unfinished item. - Move to previous item. - Move to the previous item. - Next item. - Move to the next item. - Mark item as done and move to the next unfinished item. - Mark this item as done and move to the next unfinished item. - Copy from source text - Toggle the validity check of accelerators. - 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. - Toggle the validity check of ending punctuation. - Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. - Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. - Toggle the validity check of place markers. - 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. - Open Read-O&nly... - &Save All - Ctrl+S - - - Save &As... - Save As... - Save changes made to this Qt translation source file into a new file. - &Release - Create a Qt message file suitable for released applications from the current message file. - &Print... - Ctrl+P - &Undo - Recently Opened &Files - Save - Print a list of all the translation units in the current translation source file. - Undo the last editing operation performed on the current translation. - Ctrl+Z - &Redo - Redo an undone editing operation performed on the translation. - Ctrl+Y - Cu&t - Copy the selected translation text to the clipboard and deletes it. - Ctrl+X - &Copy - Copy the selected translation text to the clipboard. - Ctrl+C - &Paste - Paste the clipboard text into the translation. - Ctrl+V - Select &All - Select the whole translation text. - Ctrl+A - &Find... - Search for some text in the translation source file. - Ctrl+F - Find &Next - Continue the search where it was left. - F3 - &Prev Unfinished - Close - &Close All - Ctrl+W - Ctrl+K - &Next Unfinished - P&rev - Ctrl+Shift+K - Ne&xt - &Done and Next - Copies the source text into the translation field. - Ctrl+B - &Accelerators - &Ending Punctuation - &Phrase matches - Toggle checking that phrase suggestions are used. - Place &Marker Matches - &New Phrase Book... - Create a new phrase book. - Ctrl+N - &Open Phrase Book... - Open a phrase book to assist translation. - Ctrl+H - &Reset Sorting - Sort the items back in the same order as in the message file. - &Display guesses - Set whether or not to display translation guesses. - &Statistics - Display translation statistics. - &Manual - F1 - About Qt Linguist - About Qt - Display information about the Qt toolkit by Trolltech. - &What's This? - What's This? - Enter What's This? mode. - Shift+F1 - &Search And Translate... - Replace the translation on all entries that matches the search source text. - - &Batch Translation... - Batch translate all entries using the information in the phrase books. - - - Release As... - 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. - This is the application's main window. - Source text - - Index - - Context - Items - This panel lists the source contexts. - Strings - Phrases and guesses - Sources and Forms - Warnings - MOD status bar: file(s) modified - Loading... - - Loading File - Qt Linguist - The file '%1' does not seem to be related to the currently open file(s) '%2'. Close the open file(s) first? - 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? - %n translation unit(s) loaded. - Related files (%1);; - Open Translation Files - - File saved. - - - Release - Qt message files for released applications (*.qm) All files (*) - - File created. - - Printing... - Context: %1 - finished - unresolved - obsolete - - Printing... (page %1) - - Printing completed - - Printing aborted - Search wrapped. - - - - - - - - - - Qt Linguist - - Cannot find the string '%1'. - Search And Translate in '%1' - Qt Linguist - - - Translate - Qt Linguist - Translated %n entry(s) - No more occurrences of '%1'. Start over? - Create New Phrase Book - Qt phrase books (*.qph) All files (*) - Phrase book created. - Open Phrase Book - Qt phrase books (*.qph);;All files (*) - %n phrase(s) loaded. - - - Add to phrase book - No appropriate phrasebook found. - Adding entry to phrasebook %1 - Select phrase book to add to - Unable to launch Qt Assistant (%1) - Version %1 - <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) 2010 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> - Do you want to save the modified files? - Do you want to save '%1'? - Qt Linguist[*] - %1[*] - Qt Linguist - - No untranslated translation units left. - &Window - Minimize - Ctrl+M - Display the manual for %1. - Display information about %1. - &Save '%1' - Save '%1' &As... - Release '%1' - Release '%1' As... - &Close '%1' - - &Close - Save All - - &Release All - Close All - Translation File &Settings for '%1'... - &Batch Translation of '%1'... - Search And &Translate in '%1'... - Search And &Translate... - - File - - Edit - - Translation - - Validation - - Help - Cannot read from phrase book '%1'. - Close this phrase book. - Enables you to add, modify, or delete entries in this phrase book. - Print the entries in this phrase book. - Cannot create phrase book '%1'. - Do you want to save phrase book '%1'? - All - Open/Refresh Form &Preview - Form Preview Tool - F5 - - Translation File &Settings... - &Add to Phrase Book - Ctrl+T - Ctrl+J - Ctrl+Shift+J @@ -1427,92 +1120,74 @@ All files (*) MessageEditor - German - Japanese - French - Polish - Chinese - This whole panel allows you to view and edit the translation of some source text. - Source text - This area shows the source text. - Source text (Plural) - This area shows the plural form of the source text. - Developer comments - This area shows a comment that may guide you, and the context in which the text occurs. - Here you can enter comments for your own use. They have no effect on the translated applications. - %1 translation (%2) - This is where you can enter or modify the translation of the above source text. - %1 translation - %1 translator comments - '%1' Line: %2 @@ -1521,22 +1196,18 @@ Line: %2 MessageModel - Completion status for %1 - <file header> - <context comment> - <unnamed context> @@ -1544,7 +1215,6 @@ Line: %2 MsgEdit - This is the right panel of the main window. @@ -1553,108 +1223,87 @@ Line: %2 PhraseBookBox - Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox. - %1[*] - Qt Linguist - Qt Linguist - Cannot save phrase book '%1'. - Edit Phrase Book - This window allows you to add, modify, or delete entries in a phrase book. - &Translation: - This is the phrase in the target language corresponding to the source phrase. - S&ource phrase: - This is a definition for the source phrase. - This is the phrase in the source language. - &Definition: - Click here to add the phrase to the phrase book. - &New Entry - Click here to remove the entry from the phrase book. - &Remove Entry - Settin&gs... - Click here to save the changes made. - &Save - Click here to close this window. - Close @@ -1662,17 +1311,14 @@ Line: %2 PhraseModel - Source phrase - Translation - Definition @@ -1680,22 +1326,18 @@ Line: %2 PhraseView - Insert - Edit - Guess (%1) - Guess @@ -1703,83 +1345,62 @@ Line: %2 QObject - Compiled Qt translations - Translation files (%1);; - All files (*) - - - - - - - Qt Linguist - C++ source files - Java source files - GNU Gettext localization files - Qt Script source files - Qt translation sources (format 1.1) - Qt translation sources (format 2.0) - Qt translation sources (latest format) - Qt Designer form files - Qt Jambi form files - XLIFF localization files - Qt Linguist 'Phrase Book' @@ -1787,17 +1408,14 @@ Line: %2 SourceCodeView - <i>Source code not available</i> - <i>File %1 not available</i> - <i>File %1 not readable</i> @@ -1805,42 +1423,34 @@ Line: %2 Statistics - Statistics - Translation - Source - 0 - Words: - Characters: - Characters (with spaces): - Close @@ -1848,7 +1458,6 @@ Line: %2 TrWindow - This is the application's main window. @@ -1857,72 +1466,58 @@ Line: %2 TranslateDialog - This window allows you to search for some text in the translation source file. - Type in the text to search for. - Find &source text: - &Translate to: - Search options - Texts such as 'TeX' and 'tex' are considered as different when checked. - Match &case - Mark new translation as &finished - Click here to find the next occurrence of the text you typed in. - Find Next - Translate - Translate All - Click here to close this window. - Cancel @@ -1930,33 +1525,26 @@ Line: %2 TranslationSettingsDialog - Any Country - - Settings for '%1' - Qt Linguist - Source language - Language - Country/Region - Target language diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts index 77feab6..2a4135b 100644 --- a/translations/qt_fr.ts +++ b/translations/qt_fr.ts @@ -2,59 +2,18 @@ - MAC_APPLICATION_MENU - - - Services - Services - - - - Hide %1 - Masquer %1 - - - - Hide Others - Masquer les autres - - - - Show All - Tout afficher - - - - Preferences... - Préférences… - - - - Quit %1 - Quitter %1 - - - - About %1 - À propos de %1 - - - AudioOutput - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> - <html>Le périphérique audio <b>%1</b> ne fonctionne pas.<br/>Utilisation de <b>%2</b>.</html> + <html>Le périphérique audio <b>%1</b> ne fonctionne pas.<br/>Utilisation de <b>%2</b>.</html> - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> - <html>Utilisation de <b>%1</b><br/>qui vient de devenir disponible et a une plus grande priorité.</html> + <html>Utilisation de <b>%1</b><br/>qui vient de devenir disponible et a une plus grande priorité.</html> - Revert back to device '%1' - Utilisation de '%1' + Utilisation de '%1' @@ -107,6 +66,48 @@ + FakeReply + + Fake error ! + Fausse erreur! + + + Invalid URL + URL non valide + + + + MAC_APPLICATION_MENU + + Services + Services + + + Hide %1 + Masquer %1 + + + Hide Others + Masquer les autres + + + Show All + Tout afficher + + + Preferences... + Préférences… + + + Quit %1 + Quitter %1 + + + About %1 + À propos de %1 + + + MainWindow Print @@ -200,6 +201,25 @@ so on. + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>Le périphérique audio <b>%1</b> ne fonctionne pas.<br/>Repli sur <b>%2</b>.</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Basculement vers le périphérique audio <b>%1</b><br/>qui vient juste d'être disponible et dont le niveau de préférence est plus élevé.</html> + + + Revert back to device '%1' + Revenir au périphérique '%1' + + + <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> + <html>Basculement vers le périphérique audio <b>%1</b><br/>dont le niveau de préférence est plus élevé ou qui est spécifiquement configuré pour ce flux.</html> + + + Phonon::Gstreamer::Backend Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. @@ -217,12 +237,11 @@ Le support audio et vidéo est désactivé Phonon::Gstreamer::MediaObject - Cannot start playback. Check your Gstreamer installation and make sure you have libgstreamer-plugins-base installed. - Impossible de démarrer la lecture. Verifiez votre installation de Gstreamer et assurez-vous d'avoir installé libgstreamer-plugins-base. + Impossible de démarrer la lecture. Verifiez votre installation de Gstreamer et assurez-vous d'avoir installé libgstreamer-plugins-base. Unknown media format: %1 @@ -257,6 +276,15 @@ have libgstreamer-plugins-base installed. Impossible de charger la source + Missing codec helper script assistant. + ??? + Assistant de script d'aide au codec manquant. + + + Plugin codec installation failed for codec: %0 + Échec de l'installation du plugin pour le codec : %0 + + A required codec is missing. You need to install the following codec(s) to play this content: %0 Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0 @@ -292,9278 +320,10613 @@ d'avoir installé libgstreamer-plugins-base. - Phonon::VolumeSlider + Phonon::MMF - Volume: %1% - Volume: %1% + Audio Output + Sortie audio - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% - Utilisez le slider pour ajuster le volume. La position la plus à gauche est 0%, la plus à droite est %1% + The audio output device + Périphérique audio de sortie - Muted - Son coupé + No error + Aucune erreur - - - Q3Accel - %1, %2 not defined - La séquence %1, %2 n'est pas définie + Not found + Introuvable - Ambiguous %1 not handled - Séquence ambiguë %1 non traitée + Out of memory + Mémoire insuffisante - - - Q3DataTable - True - Vrai + Not supported + Non supporté - False - Faux + Overflow + Dépassement - Insert - Insérer + Underflow + Soupassement - Update - Actualiser + Already exists + Existe déjà - Delete - Supprimer + Path not found + Chemin introuvable - - - Q3FileDialog - Copy or Move a File - Copie ou déplace un fichier + In use + Utilisé - Read: %1 - Lecture : %1 + Not ready + Pas prêt - Write: %1 - Écriture : %1 + Access denied + Accès refusé - Cancel - Annuler + Could not connect + Connexion impossible - All Files (*) - Tous les fichiers (*) + Disconnected + Déconnecté - Name - Nom + Permission denied + Autorisation refusée - Size - Taille + Insufficient bandwidth + Bande passante insuffisante - Type - Type + Network unavailable + Réseau non disponible - Date - Date + Network communication error + Erreur de communication réseau - Attributes - Attributs + Streaming not supported + Streaming non supporté - &OK - &OK + Server alert + Alerte serveur - Look &in: - Chercher &dans : + Invalid protocol + Protocole non valide - File &name: - &Nom de fichier : + Invalid URL + URL non valide - File &type: - &Type de fichier : + Multicast error + Erreur multicast - Back - Précédent (historique) + Proxy server error + Erreur du serveur proxy - One directory up - Aller au dossier parent + Proxy server not supported + Serveur proxy non supporté - Create New Folder - Créer un nouveau dossier + Audio output error + Erreur de sortie audio - List View - Affichage liste + Video output error + Erreur de sortie vidéo - Detail View - Affichage détaillé + Decoder error + Erreur du décodeur - Preview File Info - Informations du fichier prévisualisé + Audio or video components could not be played + Les composants audio ou vidéo n'ont pas pu être lus - Preview File Contents - Contenu du fichier prévisualisé + DRM error + Erreur GDN - Read-write - Lecture-écriture + Unknown error (%1) + Erreur inconnue (%1) + + + Phonon::MMF::AbstractMediaPlayer - Read-only - Lecture seule + Not ready to play + Pas prêt pour lecture - Write-only - Écriture seule + Error opening file + Erreur lors de l'ouverture du fichier - Inaccessible - Inaccessible + Error opening URL + Erreur lors de l'ouverture de l'URL - Symlink to File - Lien symbolique vers un fichier + Setting volume failed + Le réglage du volume a échoué - Symlink to Directory - Lien symbolique vers un dossier + Loading clip failed + Échec de l'ouverture du clip - Symlink to Special - Lien symbolique vers un fichier spécial + Playback complete + Lecture terminée + + + Phonon::MMF::AbstractVideoPlayer - File - Fichier + Pause failed + La mise en pause a échoué - Dir - Dossier + Seek failed + La recherche a échoué - Special - Fichier spécial + Getting position failed + L'obtention de la position a échoué - Open - Ouvrir + Opening clip failed + L'ouverture du clip a échoué + + + Phonon::MMF::AudioEqualizer - Save As - Enregistrer sous + %1 Hz + %1 Hz + + + Phonon::MMF::AudioPlayer - &Open - &Ouvrir + Getting position failed + L'obtention de la position a échoué - &Save - &Enregistrer + Opening clip failed + L'ouverture du clip a échoué + + + Phonon::MMF::DsaVideoPlayer - &Rename - &Renommer + Video display error + Erreur de l'affichage vidéo + + + Phonon::MMF::EffectFactory - &Delete - Suppri&mer + Enabled + Activé + + + Phonon::MMF::EnvironmentalReverb - R&eload - R&echarger + Decay HF ratio (%) + DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. + Ratio HF du déclin (%) - Sort by &Name - Trier par &nom + Decay time (ms) + DecayTime: Time over which reverberation is diminished. + Temps de déclin (ms) - Sort by &Size - Trier par ta&ille + Density (%) + 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. + Densité (%) - Sort by &Date - Trier par &date + Diffusion (%) + 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. + Diffusion (%) - &Unsorted - &Non trié + Reflections delay (ms) + ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. + Délai réflexions (ms) - Sort - Tri + Reflections level (mB) + ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. + Niveau réflexions (mB) - Show &hidden files - Afficher les fic&hiers cachés + Reverb delay (ms) + ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. + Délai de réverbération (ms) - the file - le fichier + Reverb level (mB) + ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. + Niveau de réverbération (mB) - the directory - le dossier + Room HF level + RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. + Niveau HF pièce - the symlink - le lien symbolique + Room level (mB) + RoomLevel: Master volume control for all reflected sound. + Niveau pièce (mB) + + + Phonon::MMF::MediaObject - Delete %1 - Supprimer %1 + Error opening source: type not supported + Erreur lors de l'ouverture de la source: type non supporté - <qt>Are you sure you wish to delete %1 "%2"?</qt> - <qt>Voulez-vous vraiment supprimer %1 "%2" ?</qt> + Error opening source: media type could not be determined + Erreur lors de l'ouverture de la source: type de média non déterminé + + + Phonon::MMF::StereoWidening - &Yes - &Oui + Level (%) + Niveau (%) + + + Phonon::MMF::SurfaceVideoPlayer - &No - &Non + Video display error + Erreur de l'affichage vidéo + + + Phonon::MMF::VideoPlayer - New Folder 1 - Nouveau dossier 1 + Pause failed + La mise en pause a échoué - New Folder - Nouveau dossier + Seek failed + La recherche a échoué - New Folder %1 - Nouveau dossier %1 + Getting position failed + L'obtention de la position a échoué - Find Directory - Chercher dans le dossier + Opening clip failed + L'ouverture du clip a échoué - Directories - Dossiers + Buffering clip failed + La mise en mémoire tampon du clip a échoué - Directory: - Dossier : + Video display error + Erreur de l'affichage vidéo + + + Phonon::VolumeSlider - Error - Erreur + Volume: %1% + Volume: %1% - %1 -File not found. -Check path and filename. - %1 -Impossible de trouver le fichier. -Vérifier le chemin et le nom du fichier. + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Utilisez le slider pour ajuster le volume. La position la plus à gauche est 0%, la plus à droite est %1% - All Files (*.*) - Tous les fichiers (*.*) + Muted + Son coupé + + + Q3Accel - Open - Ouvrir + %1, %2 not defined + La séquence %1, %2 n'est pas définie - Select a Directory - Sélectionner un dossier + Ambiguous %1 not handled + Séquence ambiguë %1 non traitée - Q3LocalFs - - Could not read directory -%1 - Impossible de lire le dossier -%1 - + Q3DataTable - Could not create directory -%1 - Impossible de créer le dossier -%1 + True + Vrai - Could not remove file or directory -%1 - Impossible de supprimer le fichier ou dossier -%1 + False + Faux - Could not rename -%1 -to -%2 - Impossible de renommer -%1 -en -%2 + Insert + Insérer - Could not open -%1 - Impossible d'ouvrir -%1 + Update + Actualiser - Could not write -%1 - Impossible d'écrire -%1 + Delete + Supprimer - Q3MainWindow + Q3FileDialog - Line up - Aligner + Copy or Move a File + Copie ou déplace un fichier - Customize... - Personnaliser... + Read: %1 + Lecture : %1 - - - Q3NetworkProtocol - Operation stopped by the user - Opération interrompue par l'utilisateur + Write: %1 + Écriture : %1 - - - Q3ProgressDialog Cancel Annuler - - - Q3TabDialog - OK - OK + All Files (*) + Tous les fichiers (*) - Apply - Appliquer + Name + Nom - Help - Aide + Size + Taille - Defaults - Par défaut + Type + Type - Cancel - Annuler + Date + Date - - - Q3TextEdit - &Undo - &Annuler + Attributes + Attributs - &Redo - &Rétablir + &OK + &OK - Cu&t - Co&uper + Look &in: + Chercher &dans : - &Copy - Cop&ier + File &name: + &Nom de fichier : - &Paste - Co&ller + File &type: + &Type de fichier : - Clear - Effacer + Back + Précédent (historique) - Select All - Tout sélectionner + One directory up + Aller au dossier parent - - - Q3TitleBar - System - Système + Create New Folder + Créer un nouveau dossier - Restore up - Restaurer en haut + List View + Affichage liste - Minimize - Réduire + Detail View + Affichage détaillé - Restore down - Restaurer en bas + Preview File Info + Informations du fichier prévisualisé - Maximize - Maximiser + Preview File Contents + Contenu du fichier prévisualisé - Close - Fermer + Read-write + Lecture-écriture - Contains commands to manipulate the window - Contient des commandes pour manipuler la fenêtre + Read-only + Lecture seule - - Puts a minimized back to normal - Rend à une fenêtre minimisée son aspect normal + Write-only + Écriture seule - Moves the window out of the way - Déplace la fenêtre à l'écart + Inaccessible + Inaccessible - Puts a maximized window back to normal - Rend à une fenêtre minimisée son aspect normal + Symlink to File + Lien symbolique vers un fichier - Makes the window full screen - Affiche la fenêtre en plein écran + Symlink to Directory + Lien symbolique vers un dossier - Closes the window - Ferme la fenêtre + Symlink to Special + Lien symbolique vers un fichier spécial - Displays the name of the window and contains controls to manipulate it - Affiche le nom de la fenêtre et contient des contrôles pour la manipuler + File + Fichier - Puts a minimized window back to normal - Rend à une fenêtre minimisée son aspect normal + Dir + Dossier - - - Q3ToolBar - More... - Reste... + Special + Fichier spécial - - - Q3UrlOperator - The protocol `%1' is not supported - Le protocole '%1' n'est pas géré + Open + Ouvrir - The protocol `%1' does not support listing directories - Le protocole `%1' ne permet pas de lister les fichiers d'un dossier + Save As + Enregistrer sous - The protocol `%1' does not support creating new directories - Le protocole `%1' ne permet pas de créer de nouveaux dossiers + &Open + &Ouvrir - The protocol `%1' does not support removing files or directories - Le protocole `%1' ne permet pas de supprimer des fichiers ou des dossiers + &Save + &Enregistrer - The protocol `%1' does not support renaming files or directories - Le protocole `%1' ne permet pas de renommer des fichiers ou des dossiers + &Rename + &Renommer - The protocol `%1' does not support getting files - Le protocole `%1' ne permet pas de recevoir des fichiers + &Delete + Suppri&mer - The protocol `%1' does not support putting files - Le protocole `%1' ne permet pas d'envoyer des fichiers + R&eload + R&echarger - The protocol `%1' does not support copying or moving files or directories - Le protocole `%1' ne permet pas de copier ou de déplacer des fichiers + Sort by &Name + Trier par &nom - (unknown) - (inconnu) + Sort by &Size + Trier par ta&ille - - - Q3Wizard - &Cancel - &Annuler + Sort by &Date + Trier par &date - < &Back - < &Précédent + &Unsorted + &Non trié - &Next > - &Suivant > + Sort + Tri - &Finish - &Terminer + Show &hidden files + Afficher les fic&hiers cachés - &Help - &Aide + the file + le fichier - - - QAbstractSocket - Host not found - Hôte introuvable + the directory + le dossier - Connection refused - Connexion refusée + the symlink + le lien symbolique - Connection timed out - Connexion expirée + Delete %1 + Supprimer %1 - Operation on socket is not supported - Opération sur socket non supportée + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>Voulez-vous vraiment supprimer %1 "%2" ?</qt> - Socket operation timed out - Opération socket expirée + &Yes + &Oui - Socket is not connected - Le socket n'est pas connecté + &No + &Non - Network unreachable - Réseau impossible à rejoindre + New Folder 1 + Nouveau dossier 1 - - - QAbstractSpinBox - &Step up - &Augmenter + New Folder + Nouveau dossier - Step &down - &Diminuer + New Folder %1 + Nouveau dossier %1 - &Select All - Tout &sélectionner + Find Directory + Chercher dans le dossier - - - QApplication - - QT_LAYOUT_DIRECTION - 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. - LTR + Directories + Dossiers - Executable '%1' requires Qt %2, found Qt %3. - L'exécutable '%1' requiert Qt %2 (Qt %3 présent). + Directory: + Dossier : - Incompatible Qt Library Error - Erreur : bibliothèque Qt incompatible + Error + Erreur - Activate - Activer + %1 +File not found. +Check path and filename. + %1 +Impossible de trouver le fichier. +Vérifier le chemin et le nom du fichier. - Activates the program's main window - Active la fenêtre principale du programme + All Files (*.*) + Tous les fichiers (*.*) - QT_LAYOUT_DIRECTION - LTR + Open + Ouvrir - - - QAxSelect - Select ActiveX Control - Sélectionner un contrôle ActiveX + Select a Directory + Sélectionner un dossier + + + Q3LocalFs - OK - OK + Could not read directory +%1 + Impossible de lire le dossier +%1 - &Cancel - &Annuler + Could not create directory +%1 + Impossible de créer le dossier +%1 - COM &Object: - &Objet COM : + Could not remove file or directory +%1 + Impossible de supprimer le fichier ou dossier +%1 - - - QCheckBox - Uncheck - Décocher + Could not rename +%1 +to +%2 + Impossible de renommer +%1 +en +%2 - Check - Cocher + Could not open +%1 + Impossible d'ouvrir +%1 - Toggle - Changer + Could not write +%1 + Impossible d'écrire +%1 - QColorDialog + Q3MainWindow - Hu&e: - &Teinte : + Line up + Aligner - &Sat: - &Saturation : + Customize... + Personnaliser... + + + Q3NetworkProtocol - &Val: - &Valeur : + Operation stopped by the user + Opération interrompue par l'utilisateur + + + Q3ProgressDialog - &Red: - &Rouge : + Cancel + Annuler + + + Q3TabDialog - &Green: - &Vert : + OK + OK - Bl&ue: - Ble&u : + Apply + Appliquer - A&lpha channel: - Canal a&lpha : + Help + Aide - Select Color - Sélectionner une couleur + Defaults + Par défaut - &Basic colors - Couleurs de &base + Cancel + Annuler + + + Q3TextEdit - &Custom colors - &Couleurs personnalisées + &Undo + &Annuler - &Define Custom Colors >> - Définir des &couleurs personnalisées >> + &Redo + &Rétablir - OK - OK + Cu&t + Co&uper - Cancel - Annuler + &Copy + Cop&ier - &Add to Custom Colors - &Ajouter aux couleurs personnalisées + &Paste + Co&ller - Select color - Sélection d'une couleur + Clear + Effacer + + + Select All + Tout sélectionner - QComboBox + Q3TitleBar - Open - Ouvrir + System + Système - False - Faux + Restore up + Restaurer en haut - True - Vrai + Minimize + Réduire - Close - Fermer + Restore down + Restaurer en bas - - - QCoreApplication - %1: permission denied - QSystemSemaphore - %1: permission refusée + Maximize + Maximiser - %1: already exists - QSystemSemaphore - %1: existe déjà + Close + Fermer - %1: doesn't exists - QSystemSemaphore - %1: n'existe pas + Contains commands to manipulate the window + Contient des commandes pour manipuler la fenêtre - %1: out of resources - QSystemSemaphore - %1: plus de ressources disponibles + Puts a minimized back to normal + Rend à une fenêtre minimisée son aspect normal - %1: unknown error %2 - QSystemSemaphore - %1: erreur inconnue %2 + Moves the window out of the way + Déplace la fenêtre à l'écart - - %1: key is empty - QSystemSemaphore - %1: clé vide + Puts a maximized window back to normal + Rend à une fenêtre minimisée son aspect normal - - %1: unable to make key - QSystemSemaphore - %1: impossible de créer la clé + Makes the window full screen + Affiche la fenêtre en plein écran - - %1: ftok failed - QSystemSemaphore - %1: ftok a échoué + Closes the window + Ferme la fenêtre - %1: key is empty - %1: clé vide + Displays the name of the window and contains controls to manipulate it + Affiche le nom de la fenêtre et contient des contrôles pour la manipuler - %1: unable to make key - %1: impossible de créer la clé + Puts a minimized window back to normal + Rend à une fenêtre minimisée son aspect normal + + + Q3ToolBar - %1: ftok failed - %1: ftok a échoué + More... + Reste... + + + Q3UrlOperator - %1: already exists - %1: existe déjà + The protocol `%1' is not supported + Le protocole '%1' n'est pas géré - %1: does not exist - %1: n'existe pas + The protocol `%1' does not support listing directories + Le protocole `%1' ne permet pas de lister les fichiers d'un dossier - %1: out of resources - %1: plus de ressources disponibles + The protocol `%1' does not support creating new directories + Le protocole `%1' ne permet pas de créer de nouveaux dossiers - %1: unknown error %2 - %1: erreur inconnue %2 + The protocol `%1' does not support removing files or directories + Le protocole `%1' ne permet pas de supprimer des fichiers ou des dossiers - - - QDB2Driver - Unable to connect - Incapable d'établir une connexion + The protocol `%1' does not support renaming files or directories + Le protocole `%1' ne permet pas de renommer des fichiers ou des dossiers - Unable to commit transaction - Incapable de soumettre la transaction + The protocol `%1' does not support getting files + Le protocole `%1' ne permet pas de recevoir des fichiers - Unable to rollback transaction - Incapable d'annuler la transaction + The protocol `%1' does not support putting files + Le protocole `%1' ne permet pas d'envoyer des fichiers - Unable to set autocommit - Impossible d'activer l'auto-soumission + The protocol `%1' does not support copying or moving files or directories + Le protocole `%1' ne permet pas de copier ou de déplacer des fichiers - - - QDB2Result - Unable to execute statement - Impossible d'exécuter la requête + (unknown) + (inconnu) + + + Q3Wizard - Unable to prepare statement - Impossible de prépare la requête + &Cancel + &Annuler - Unable to bind variable - Impossible d'attacher la variable + < &Back + < &Précédent - Unable to fetch record %1 - Impossible de récupérer l'enregistrement %1 + &Next > + &Suivant > - Unable to fetch next - Impossible de récupérer le suivant + &Finish + &Terminer - Unable to fetch first - Impossible de récupérer le premier + &Help + &Aide - QDateTimeEdit + QAbstractSocket - AM - AM + Host not found + Hôte introuvable - am - am + Connection refused + Connexion refusée - PM - PM + Connection timed out + Connexion expirée - pm - pm + Operation on socket is not supported + Opération sur socket non supportée - - - QDial - QDial - QDial + Socket operation timed out + Opération socket expirée - SpeedoMeter - Tachymètre + Socket is not connected + Le socket n'est pas connecté - SliderHandle - Poignée + Network unreachable + Réseau impossible à rejoindre - QDialog - - What's This? - Qu'est-ce que c'est ? - + QAbstractSpinBox - Done - Terminer + &Step up + &Augmenter - - - QDialogButtonBox - OK - OK + Step &down + &Diminuer - Save - Enregistrer + &Select All + Tout &sélectionner + + + QAccessibleButton - &Save - Enregi&strer + Press + Appuyer + + + QApplication - Open - Ouvrir + QT_LAYOUT_DIRECTION + 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. + LTR - Cancel - Annuler + Executable '%1' requires Qt %2, found Qt %3. + L'exécutable '%1' requiert Qt %2 (Qt %3 présent). - &Cancel - &Annuler + Incompatible Qt Library Error + Erreur : bibliothèque Qt incompatible - Close - Fermer + Activate + Activer - &Close - &Fermer + Activates the program's main window + Active la fenêtre principale du programme - Apply - Appliquer + QT_LAYOUT_DIRECTION + LTR + + + QAxSelect - Reset - Réinitialiser + Select ActiveX Control + Sélectionner un contrôle ActiveX - Help - Aide + OK + OK - Don't Save - Ne pas enregistrer + &Cancel + &Annuler - Discard - Ne pas enregistrer + COM &Object: + &Objet COM : + + + QCheckBox - &Yes - &Oui + Uncheck + Décocher - Yes to &All - Oui à &tout + Check + Cocher - &No - &Non + Toggle + Changer + + + QColorDialog - N&o to All - Non à to&ut + Hu&e: + &Teinte : - Save All - Tout Enregistrer + &Sat: + &Saturation : - Abort - Abandonner + &Val: + &Valeur : - Retry - Réessayer + &Red: + &Rouge : - Ignore - Ignorer + &Green: + &Vert : - Restore Defaults - Restaurer les valeurs par défaut + Bl&ue: + Ble&u : - Close without Saving - Fermer sans enregistrer + A&lpha channel: + Canal a&lpha : - &OK - &OK + Select Color + Sélectionner une couleur - - - QDirModel - Name - Nom + &Basic colors + Couleurs de &base - Size - Taille + &Custom colors + &Couleurs personnalisées - - Kind - Match OS X Finder - Type + &Define Custom Colors >> + Définir des &couleurs personnalisées >> - - Type - All other platforms - Type + OK + OK - Date Modified - Dernière Modification + Cancel + Annuler - Kind - Type + &Add to Custom Colors + &Ajouter aux couleurs personnalisées - Type - Type + Select color + Sélection d'une couleur - QDockWidget + QComboBox - Close - Fermer + Open + Ouvrir - Dock - Attacher + False + Faux - Float - Détacher + True + Vrai + + + Close + Fermer - QDoubleSpinBox + QCoreApplication - More - Plus + %1: permission denied + QSystemSemaphore + %1: permission refusée - Less - Moins + %1: already exists + QSystemSemaphore + %1 : existe déjà - - - QErrorMessage - &Show this message again - &Afficher ce message de nouveau + %1: doesn't exists + QSystemSemaphore + %1: n'existe pas - &OK - &OK + %1: does not exist + QSystemSemaphore + %1 : n'existe pas - Debug Message: - Message de débogage: + %1: out of resources + QSystemSemaphore + %1 : plus de ressources disponibles - Warning: - Avertissement: + %1: unknown error %2 + QSystemSemaphore + %1 : erreur inconnue %2 - Fatal Error: - Erreur fatale: + %1: key is empty + QSystemSemaphore + %1 : clé vide - - - QFile - Destination file exists - Le fichier destination existe + %1: unable to make key + QSystemSemaphore + %1 : impossible de créer la clé - Cannot remove source file - Impossible de supprimer le fichier source + %1: ftok failed + QSystemSemaphore + %1 : ftok a échoué - Cannot open %1 for input - Impossible d'ouvrir %1 pour lecture + %1: key is empty + %1: clé vide - Cannot open for output - Impossible d'ouvrir pour écriture + %1: unable to make key + %1: impossible de créer la clé - Failure to write block - Impossible d'écrire un bloc + %1: ftok failed + %1: ftok a échoué - Cannot create %1 for output - Impossible de créer %1 pour écriture + %1: already exists + %1: existe déjà - Will not rename sequential file using block copy - Ne renommera pas le fichier séquentiel avec la copie bloc + %1: does not exist + %1: n'existe pas + + + %1: out of resources + %1: plus de ressources disponibles + + + %1: unknown error %2 + %1: erreur inconnue %2 - QFileDialog + QDB2Driver - Back - Précédent (historique) + Unable to connect + Incapable d'établir une connexion - List View - Affichage liste + Unable to commit transaction + Incapable de soumettre la transaction - Detail View - Affichage détaillé + Unable to rollback transaction + Incapable d'annuler la transaction - Open - Ouvrir + Unable to set autocommit + Impossible d'activer l'auto-soumission + + + QDB2Result - &Open - &Ouvrir + Unable to execute statement + Impossible d'exécuter la requête - &Save - &Enregistrer + Unable to prepare statement + Impossible de prépare la requête - &Rename - &Renommer + Unable to bind variable + Impossible d'attacher la variable - &Delete - Suppri&mer + Unable to fetch record %1 + Impossible de récupérer l'enregistrement %1 - Show &hidden files - Afficher les fic&hiers cachés + Unable to fetch next + Impossible de récupérer le suivant - Directories - Dossiers + Unable to fetch first + Impossible de récupérer le premier + + + QDateTimeEdit - Recent Places - Emplacements récents + AM + AM - All Files (*) - Tous les fichiers (*) + am + am - %1 already exists. -Do you want to replace it? - Le fichier %1 existe déjà. Voulez-vous l'écraser ? + PM + PM - %1 -File not found. -Please verify the correct file name was given. - %1 -Fichier introuvable. -Veuillez vérifier que le nom du fichier est correct. + pm + pm + + + QDeclarativeAbstractAnimation - My Computer - Poste de travail + Cannot animate non-existent property "%1" + Impossible d'animer la propriété inexistante "%1" - Parent Directory - Dossier parent + Cannot animate read-only property "%1" + Impossible d'animer la propriété en lecture seule "%1" - Files of type: - Fichiers de type : + Animation is an abstract class + L'animation est une classe abstraite + + + QDeclarativeAnchorAnimation - Directory: - Dossier : + Cannot set a duration of < 0 + Impossible de sélectionner une durée négative + + + QDeclarativeAnchors - -File not found. -Please verify the correct file name was given - -Fichier introuvable. -Veuillez vérifier que le nom du fichier est correct + Possible anchor loop detected on fill. + Boucle potentielle dans les ancres détectée pour le remplissage. - %1 -Directory not found. -Please verify the correct directory name was given. - %1 -Dossier introuvable. -Veuillez vérifier que le nom du dossier est correct. + Possible anchor loop detected on centerIn. + Boucle potentielle dans les ancres détectée pour le centrage. - '%1' is write protected. -Do you want to delete it anyway? - '%1' est protégé en écriture. -Voulez-vous quand même le supprimer ? + Cannot anchor to an item that isn't a parent or sibling. + Impossible d'ancrer à un élément qui n'est pas un parent ou partage le même parent. - Are sure you want to delete '%1'? - Etes-vous sûr de vouloir supprimer '%1' ? + Possible anchor loop detected on vertical anchor. + Boucle potentielle dans les ancres détectée pour l'ancre verticale. - Could not delete directory. - Impossible de supprimer le dossier. + Possible anchor loop detected on horizontal anchor. + Boucle potentielle dans les ancres détectée pour l'ancre horizontale. - All Files (*.*) - Tous les fichiers (*.*) + Cannot specify left, right, and hcenter anchors. + Impossible de spécifier à la fois une ancre gauche, droite et hcenter. - Save As - Enregistrer sous + Cannot anchor to a null item. + impossible d'ancrer à un élément nul. - Drive - Unité + Cannot anchor a horizontal edge to a vertical edge. + Impossible d'ancrer un bord horizontal à un bord vertical. - File - Fichier + Cannot anchor item to self. + Impossible d'ancrer l'élément à lui même. - Unknown - Inconnu + Cannot specify top, bottom, and vcenter anchors. + Impossible de spécifier à la fois une ancre haut, bas et vcenter. - Find Directory - Chercher dans le dossier + Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. + L'ancre baseline ne peut pas etre combinée à l'usage des ancres haut, bas ou vcenter. - Show - Montrer + Cannot anchor a vertical edge to a horizontal edge. + Impossible d'ancrer un bord vertical à un bord horizontal. + + + QDeclarativeAnimatedImage - Forward - Successeur + Qt was built without support for QMovie + Qt a été compilé sans support de QMovie + + + QDeclarativeBehavior - New Folder - Nouveau dossier + Cannot change the animation assigned to a Behavior. + Impossible de changer l'animation affectée à un comportement. + + + QDeclarativeBinding - &New Folder - &Nouveau dossier + Binding loop detected for property "%1" + Boucle détectée dans l'affectation pour la propriété "%1" + + + QDeclarativeCompiledBindings - &Choose - &Choisir + Binding loop detected for property "%1" + + + + QDeclarativeCompiler - Remove - Supprimer + Invalid property assignment: "%1" is a read-only property + Affectation de propriété invalide : "%1"est une propriété en lecture seule - File &name: - &Nom de fichier : + Invalid property assignment: unknown enumeration + Affectation de propriété invalide : énumération inconnue - Look in: - Voir dans: + Invalid property assignment: string expected + Affectation de propriété invalide : chaîne attendue - Create New Folder - Créer un nouveau dossier + Invalid property assignment: url expected + Affectation de propriété invalide : url attendue - File Folder - Fichier Dossier + Invalid property assignment: unsigned int expected + Affectation de propriété invalide : unsigned int attendu - Folder - Dossier + Invalid property assignment: int expected + Affectation de propriété invalide : int attendu - Alias - Alias + Invalid property assignment: float expected + Affectation de propriété invalide : float attendu - Shortcut - Raccourci + Invalid property assignment: double expected + Affectation de propriété invalide : double attendu - - - QFileSystemModel - %1 TB - %1 To + Invalid property assignment: color expected + Affectation de propriété invalide : couleur attendue - %1 GB - %1 Go + Invalid property assignment: date expected + Affectation de propriété invalide : date attendue - %1 MB - %1 Mo + Invalid property assignment: time expected + Affectation de propriété invalide : heure attendue - %1 KB - %1 Ko + Invalid property assignment: datetime expected + Affectation de propriété invalide : date et heure attendues - %1 bytes - %1 octets + Invalid property assignment: point expected + Affectation de propriété invalide : point attendu - Invalid filename - Nom de fichier invalide + Invalid property assignment: size expected + Affectation de propriété invalide : taille attendue - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. - <b>Le nom "%1" ne peut pas être utilisé.</b><p>Essayez un autre nom avec moins de caractères ou sans ponctuation. + Invalid property assignment: rect expected + Affectation de propriété invalide : rectangle attendu - Name - Nom + Invalid property assignment: boolean expected + Affectation de propriété invalide : booléen attendu - Size - Taille + Invalid property assignment: 3D vector expected + Affectation de propriété invalide : vecteur 3D attendu - - Kind - Match OS X Finder - Type + Invalid property assignment: unsupported type "%1" + Affectation de propriété invalide : type "%1" non supporté - - Type - All other platforms - Type + Element is not creatable. + Impossible de créer l'élément. - Date Modified - Dernière modification + Component elements may not contain properties other than id + - My Computer - Mon ordinateur + Invalid component id specification + L'ID de composant spécifiée n'est pas valide - Computer - Ordinateur + id is not unique + l'ID n'est pas unique - Kind - Type + Invalid component body specification + - Type - Type + Component objects cannot declare new properties. + - %1 byte(s) - %1 octet(s) + Component objects cannot declare new signals. + - - - QFontDatabase - Normal - Normal + Component objects cannot declare new functions. + - Bold - Gras + Cannot create empty component specification + - Demi Bold - Semi Gras + Incorrectly specified signal assignment + - Black - Noir + Cannot assign a value to a signal (expecting a script to be run) + - Demi - Demi + Empty signal assignment + - Light - Léger + Empty property assignment + - Italic - Italique + Attached properties cannot be used here + - Oblique - Oblique + Non-existent attached object + - Any - Tous + Invalid attached object assignment + - Latin - Latin + Cannot assign to non-existent default property + - Greek - Grec + Cannot assign to non-existent property "%1" + - Cyrillic - Cyrillique + Invalid use of namespace + - Armenian - Arménien + Not an attached property name + - Hebrew - Hébreu + Invalid use of id property + - Arabic - Arabe + Property has already been assigned a value + - Syriac - Syriaque + Invalid grouped property access + - Thaana - Thaana + Cannot assign a value directly to a grouped property + - Devanagari - Devanagari + Invalid property use + - Bengali - Bengali + Property assignment expected + - Gurmukhi - Gurmukhi + Single property assignment expected + - Gujarati - Gujarati + Unexpected object assignment + - Oriya - Oriya + Cannot assign object to list + - Tamil - Tamil + Can only assign one binding to lists + - Telugu - Telugu + Cannot assign primitives to lists + - Kannada - Kannada + Cannot assign multiple values to a script property + - Malayalam - Malayalam + Invalid property assignment: script expected + - Sinhala - Sinhala + Cannot assign object to property + - Thai - Thaï + "%1" cannot operate on "%2" + - Lao - Lao/Laotien sont corrects - Lao + Duplicate default property + - Tibetan - Tibétain + Duplicate property name + - Myanmar - Myanmar/Birman sont corrects mais Myanmar semble plus adapté pour la langue écrite - Myanmar + Property names cannot begin with an upper case letter + - Georgian - Géorgien + Duplicate signal name + - Khmer - Khmer + Signal names cannot begin with an upper case letter + - Simplified Chinese - Chinois Simplifié + Duplicate method name + - Traditional Chinese - Chinois Traditionnel + Method names cannot begin with an upper case letter + - Japanese - Japonais + Property value set multiple times + - Korean - Coréen + Invalid property nesting + - Vietnamese - Vietnamien + Cannot override FINAL property + - Symbol - Symbole + Invalid property type + Type de propriété invalide - Ogham - Ogham + Invalid empty ID + ID vide non valide - Runic - Runique + IDs cannot start with an uppercase letter + - N'Ko - N'Ko + IDs must start with a letter or underscore + - - - QFontDialog - &Font - &Police + IDs must contain only letters, numbers, and underscores + - Font st&yle - St&yle de police + ID illegally masks global JavaScript property + - &Size - &Taille + No property alias location + - Effects - Effets + Invalid alias location + - Stri&keout - &Barré + Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> + - &Underline - &Souligné + Invalid alias reference. Unable to find id "%1" + + + + QDeclarativeComponent - Sample - Exemple + Invalid empty URL + + + + QDeclarativeCompositeTypeManager - Select Font - Choisir une police + Resource %1 unavailable + - Wr&iting System - &Système d'écriture + Namespace %1 cannot be used as a type + + + + %1 %2 + %1% {1 %2?} + + + Type %1 unavailable + - QFtp + QDeclarativeConnections - Host %1 found - Hôte %1 trouvé + Cannot assign to non-existent property "%1" + - Host found - Hôte trouvé + Connections: nested objects not allowed + - Connected to host %1 - Connecté à l'hôte %1 + Connections: syntax error + - Connected to host - Connecté à l'hôte + Connections: script expected + + + + QDeclarativeEngine - Connection to %1 closed - Connexion à %1 arrêtée + executeSql called outside transaction() + - Connection closed - Connexion arrêtée + Read-only Transaction + - Host %1 not found - Hôte %1 introuvable + Version mismatch: expected %1, found %2 + - Connection refused to host %1 - Connexion à l'hôte %1 refusée + SQL transaction failed + - Connection timed out to host %1 - Connexion expirée vers l'hôte %1 + transaction: missing callback + - Unknown error - Erreur inconnue + SQL: database version mismatch + + + + QDeclarativeFlipable - Connecting to host failed: -%1 - Échec de la connexion à l'hôte -%1 + front is a write-once property + - Login failed: -%1 - Échec du login: -%1 + back is a write-once property + + + + QDeclarativeImportDatabase - Listing directory failed: -%1 - Échec du listage du dossier : -%1 + module "%1" definition "%2" not readable + - Changing directory failed: -%1 - Échec du changement de dossier : -%1 + plugin cannot be loaded for module "%1": %2 + - Downloading file failed: -%1 - Échec du téléchargement du fichier : -%1 + module "%1" plugin "%2" not found + - Uploading file failed: -%1 - Échec du télédéchargement : -%1 + module "%1" version %2.%3 is not installed + - Removing file failed: -%1 - Échec de la suppression d'un fichier : -%1 + module "%1" is not installed + - Creating directory failed: -%1 - Échec de la création d'un dossier : -%1 + "%1": no such directory + - Removing directory failed: -%1 - Échec de la suppression d'un dossier : -%1 + import "%1" has no qmldir and no namespace + - Not connected - Non connecté + - %1 is not a namespace + - Connection refused for data connection - Connexion donnée refusée + - nested namespaces not allowed + - - - QHostInfo - Unknown error - Erreur inconnue + local directory + - - - QHostInfoAgent - Host not found - Hôte introuvable + is ambiguous. Found in %1 and in %2 + - Unknown address type - Adresse de type inconnu + is ambiguous. Found in %1 in version %2.%3 and %4.%5 + - Unknown error - Erreur inconnue + is instantiated recursively + - No host name given - Aucun nom d'hôte n'a été donné + is not a type + + + + QDeclarativeKeyNavigationAttached - Invalid hostname - Nom d'hôte non valide + KeyNavigation is only available via attached properties + - QHttp + QDeclarativeKeysAttached - Connection refused - Connexion refusée + Keys is only available via attached properties + + + + QDeclarativeListModel - Host %1 not found - Hôte %1 introuvable + remove: index %1 out of range + - Wrong content length - Longueur du contenu invalide + insert: value is not an object + - HTTP request failed - Échec de la requête HTTP + insert: index %1 out of range + - Host %1 found - Hôte %1 trouvé + move: out of range + - Host found - Hôte trouvé + append: value is not an object + - Connected to host %1 - Connecté à l'hôte %1 + set: value is not an object + - Connected to host - Connecté à l'hôte + set: index %1 out of range + - Connection to %1 closed - Connexion à %1 arrêtée + ListElement: cannot contain nested elements + - Connection closed - Connexion arrêtée + ListElement: cannot use reserved "id" property + - Unknown error - Erreur inconnue + ListElement: cannot use script for property value + - Request aborted - Requête interrompue + ListModel: undefined property '%1' + + + + QDeclarativeLoader - No server set to connect to - Aucun serveur spécifié + Loader does not support loading non-visual elements. + + + + QDeclarativeParentAnimation - Server closed connection unexpectedly - Connexion interrompue par le serveur + Unable to preserve appearance under complex transform + - Invalid HTTP response header - Entête de réponse HTTP invalide + Unable to preserve appearance under non-uniform scale + - Unknown authentication method - Méthode d'authentification inconnue + Unable to preserve appearance under scale of 0 + + + + QDeclarativeParentChange - Invalid HTTP chunked body - Fragment HTTP invalide + Unable to preserve appearance under complex transform + - Error writing response to device - Erreur lors de l'écriture de la réponse + Unable to preserve appearance under non-uniform scale + - Proxy authentication required - Le proxy requiert une authentification + Unable to preserve appearance under scale of 0 + + + + QDeclarativeParser - Authentication required - Authentification requise + Illegal unicode escape sequence + - Proxy requires authentication - Le proxy requiert une authentification + Illegal character + - Host requires authentication - L'hôte requiert une authentification + Unclosed string at end of line + - Data corrupted - Données corrompues + Illegal escape squence + - Unknown protocol specified - Protocole spécifié inconnu + Unclosed comment at end of file + - SSL handshake failed - le handshake SSL a échoué + Illegal syntax for exponential number + - Connection refused (or timed out) - Connexion refusée (ou délai expiré) + Identifier cannot start with numeric literal + - HTTPS connection requested but SSL support not compiled in - Connexion HTTPS requise mais le support SSL n'est pas compilé + Unterminated regular expression literal + - - - QHttpSocketEngine - Did not receive HTTP response from proxy - Pas de réponse HTTP de la part du proxy + Invalid regular expression flag '%0' + - Error parsing authentication request from proxy - Erreur dans le reqête d'authentification reçue du proxy + Unterminated regular expression backslash sequence + - Authentication required - Authentification requise + Unterminated regular expression class + - Proxy denied connection - Le Proxy a rejeté la connexion + Syntax error + - Error communicating with HTTP proxy - Erreur de communication avec le proxy HTTP + Unexpected token `%1' + - Proxy server not found - Serveur proxy introuvable + Expected token `%1' + - Proxy connection refused - Connexion au proxy refusée + Property value set multiple times + - Proxy server connection timed out - La connexion au serveur proxy a expiré + Expected type name + - Proxy connection closed prematurely - La connexion au serveur proxy a été fermée prématurément + Invalid import qualifier ID + - - - QIBaseDriver - Error opening database - Erreur d'ouverture de la base de données + Reserved name "Qt" cannot be used as an qualifier + - Could not start transaction - La transaction n'a pas pu être démarrée + Script import qualifiers must be unique. + - Unable to commit transaction - Incapable de soumettre la transaction + Script import requires a qualifier + - Unable to rollback transaction - Incapable d'annuler la transaction + Library import requires a version + - - - QIBaseResult - Unable to create BLOB - Impossible de créer un BLOB + Expected parameter type + - Unable to write BLOB - Impossible d'écrire le BLOB + Invalid property type modifier + - Unable to open BLOB - Impossible d'ouvrir le BLOB + Unexpected property type modifier + - Unable to read BLOB - Impossible de lire le BLOB + Expected property type + - Could not find array - Impossible de trouver le tableau + Readonly not yet supported + - Could not get array data - Impossible de trouver le tableau de données + JavaScript declaration outside Script element + + + + QDeclarativePauseAnimation - Could not get query info - Impossible d'avoir les informations sur la requête + Cannot set a duration of < 0 + + + + QDeclarativePixmapCache - Could not start transaction - Impossible de démarrer la transaction + Error decoding: %1: %2 + - Unable to commit transaction - Incapable de soumettre la transaction + Failed to get image from provider: %1 + - Could not allocate statement - Impossible d'allouer la requête + Cannot open: %1 + - Could not prepare statement - Impossible de préparer la requête + Unknown Error loading %1 + + + + QDeclarativePropertyAnimation - Could not describe input statement - Impossible de décrire la requête + Cannot set a duration of < 0 + + + + QDeclarativePropertyChanges - Could not describe statement - Impossible de décrire la requête + PropertyChanges does not support creating state-specific objects. + - Unable to close statement - Impossible de fermer la requête + Cannot assign to non-existent property "%1" + - Unable to execute query - Impossible d'exécuter la requête + Cannot assign to read-only property "%1" + + + + QDeclarativeTextInput - Could not fetch next item - Impossible de récuperer l'élément suivant + Could not load cursor delegate + - Could not get statement info - Impossible d'avoir les informations sur la requête + Could not instantiate cursor delegate + - QIODevice + QDeclarativeVME - Permission denied - Accès refusé + Unable to create object of type %1 + - Too many open files - Trop de fichiers ouverts simultanément + Cannot assign value %1 to property %2 + - No such file or directory - Aucun fichier ou dossier de ce nom + Cannot assign object type %1 with no default method + - No space left on device - Aucun espace disponible sur le périphérique + Cannot connect mismatched signal/slot %1 %vs. %2 + - Unknown error - Erreur inconnue + Cannot assign an object to signal property %1 + - - - QInputContext - XIM - XIM + Cannot assign object to list + - XIM input method - Méthode d'entrée XIM + Cannot assign object to interface property + - Windows input method - Méthode d'entrée Windows + Unable to create attached object + - Mac OS X input method - Méthode d'entrée Mac OS X + Cannot set properties on %1 as it is null + + + + QDeclarativeVisualDataModel - FEP - Processeur frontal + Delegate component must be Item type. + + + + QDeclarativeXmlListModel - S60 FEP input method - Méthode de saisie processeur frontal S60 + Qt was built without support for xmlpatterns + - QInputDialog + QDeclarativeXmlListModelRole - Enter a value: - Entrer une valeur : + An XmlRole query must not start with '/' + - QLibrary + QDeclarativeXmlRoleList - QLibrary::load_sys: Cannot load %1 (%2) - QLibrary::load_sys: Impossible de charger %1 (%2) + An XmlListModel query must start with '/' or "//" + + + + QDial - QLibrary::unload_sys: Cannot unload %1 (%2) - QLibrary::unload_sys: Impossible de décharger %1 (%2) + QDial + QDial - QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) - QLibrary::resolve_sys: Symbole "%1" non défini dans %2 (%3) + SpeedoMeter + Tachymètre - Could not mmap '%1': %2 - Impossible d'établir la projection en mémoire de '%1' : %2 + SliderHandle + Poignée + + + QDialog - Plugin verification data mismatch in '%1' - Données de vérification du plugin différente dans '%1' + What's This? + Qu'est-ce que c'est ? - Could not unmap '%1': %2 - Impossible de supprimer la projection en mémoire de '%1' : %2 + Done + Terminer + + + QDialogButtonBox - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] - Le plugin '%1' utilise une bibliothèque Qt incompatible. (%2.%3.%4) [%5] + OK + OK - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" - Le plugin '%1' utilise une bibliothèque Qt incompatible. Clé attendue "%2", reçue "%3" + Save + Enregistrer - Unknown error - Erreur inconnue + &Save + Enregi&strer - The shared library was not found. - La bibliothèque partagée est introuvable. + Open + Ouvrir - The file '%1' is not a valid Qt plugin. - Le fichier '%1' n'est pas un plugin Qt valide. + Cancel + Annuler - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) - Le plugin '%1' utilise une bibliothèque Qt incompatible. (Il est impossible de mélanger des bibliothèques 'debug' et 'release'.) + &Cancel + &Annuler - Cannot load library %1: %2 - Impossible de charger la bibliothèque %1 : %2 + Close + Fermer - Cannot unload library %1: %2 - Impossible de décharger la bibliothèque %1 : %2 + &Close + &Fermer - Cannot resolve symbol "%1" in %2: %3 - Impossible de résoudre le symbole "%1" dans %2 : %3 + Apply + Appliquer - - - QLineEdit - Select All - Tout sélectionner + Reset + Réinitialiser - &Undo - &Annuler + Help + Aide - &Redo - &Rétablir + Don't Save + Ne pas enregistrer - Cu&t - Co&uper + Discard + Ne pas enregistrer - &Copy - Cop&ier + &Yes + &Oui - &Paste - Co&ller + Yes to &All + Oui à &tout - Delete - Supprimer + &No + &Non - - - QLocalServer - %1: Name error - %1: Erreur de nom + N&o to All + Non à to&ut - %1: Permission denied - %1: Permission refusée + Save All + Tout Enregistrer - %1: Address in use - %1: Address déjà utilisée + Abort + Abandonner - %1: Unknown error %2 - %1: Erreur inconnue %2 + Retry + Réessayer - - - QLocalSocket - %1: Connection refused - %1: Connexion refusée + Ignore + Ignorer - %1: Remote closed - %1: Connexion fermée + Restore Defaults + Restaurer les valeurs par défaut - %1: Invalid name - %1: Nom invalide + Close without Saving + Fermer sans enregistrer - %1: Socket access error - %1: Erreur d'accès au socket + &OK + &OK + + + QDirModel - %1: Socket resource error - %1: Erreur de ressource du socket + Name + Nom - %1: Socket operation timed out - %1: L'opération socket a expiré + Size + Taille - %1: Datagram too large - %1: Datagramme trop grand + Kind + Match OS X Finder + Type - %1: Connection error - %1: Erreur de connexion + Type + All other platforms + Type - %1: The socket operation is not supported - %1: L'opération n'est pas supportée + Date Modified + Dernière Modification - %1: Unknown error - %1 : erreur inconnue + Kind + Type - %1: Unknown error %2 - %1: Erreur inconnue %2 + Type + Type - QMYSQLDriver + QDockWidget - Unable to open database ' - Impossible d'ouvrir la base de données ' + Close + Fermer - Unable to connect - Impossible d'établir une connexion + Dock + Attacher - Unable to begin transaction - Impossible de démarrer la transaction + Float + Détacher + + + QDoubleSpinBox - Unable to commit transaction - Impossible de soumettre la transaction + More + Plus - Unable to rollback transaction - Impossible d'annuler la transaction + Less + Moins - QMYSQLResult + QErrorMessage - Unable to fetch data - Impossible de récuperer des données + &Show this message again + &Afficher ce message de nouveau - Unable to execute query - Impossible d'exécuter la requête + &OK + &OK - Unable to store result - Impossible de stocker le résultat + Debug Message: + Message de débogage: - Unable to prepare statement - Impossible de préparer l'instruction + Warning: + Avertissement: - Unable to reset statement - Impossible de réinitialiser l'instruction + Fatal Error: + Erreur fatale: + + + QFile - Unable to bind value - Impossible d'attacher la valeur + Destination file exists + Le fichier destination existe - Unable to execute statement - Impossible d'exécuter la requête + Cannot remove source file + Impossible de supprimer le fichier source - Unable to bind outvalues - Impossible d'attacher les valeurs de sortie + Cannot open %1 for input + Impossible d'ouvrir %1 pour lecture - Unable to store statement results - Impossible de stocker les résultats de la requête + Cannot open for output + Impossible d'ouvrir pour écriture - Unable to execute next query - Impossible d'exécuterla prochaine requête + Failure to write block + Impossible d'écrire un bloc - Unable to store next result - Impossible de stocker le prochain résultat + Cannot create %1 for output + Impossible de créer %1 pour écriture - - - QMdiArea - (Untitled) - (Sans titre) + Will not rename sequential file using block copy + Ne renommera pas le fichier séquentiel avec la copie bloc - QMdiSubWindow + QFileDialog - %1 - [%2] - %1 - [%2] + Back + Précédent (historique) - Close - Fermer + List View + Affichage liste - Minimize - Réduire + Detail View + Affichage détaillé - Restore Down - Restaurer en bas + Open + Ouvrir - &Restore - &Restaurer + &Open + &Ouvrir - &Move - &Déplacer + &Save + &Enregistrer - &Size - &Taille + &Rename + &Renommer - Mi&nimize - Réd&uire + &Delete + Suppri&mer - Ma&ximize - Ma&ximiser + Show &hidden files + Afficher les fic&hiers cachés - Stay on &Top - &Rester au premier plan - + Directories + Dossiers + - &Close - &Fermer + Recent Places + Emplacements récents - - [%1] - - [%1] + All Files (*) + Tous les fichiers (*) - Maximize - Maximiser + %1 already exists. +Do you want to replace it? + Le fichier %1 existe déjà. Voulez-vous l'écraser ? - Unshade - Restaurer + %1 +File not found. +Please verify the correct file name was given. + %1 +Fichier introuvable. +Veuillez vérifier que le nom du fichier est correct. - Shade - Ombrer + My Computer + Poste de travail - Restore - Restaurer + Parent Directory + Dossier parent - Help - Aide + Files of type: + Fichiers de type : - Menu - Menu + Directory: + Dossier : - - - QMenu - Close - Fermer + +File not found. +Please verify the correct file name was given + +Fichier introuvable. +Veuillez vérifier que le nom du fichier est correct - Open - Ouvrir + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Dossier introuvable. +Veuillez vérifier que le nom du dossier est correct. - Execute - Exécuter + '%1' is write protected. +Do you want to delete it anyway? + '%1' est protégé en écriture. +Voulez-vous quand même le supprimer ? - - - QMenuBar - About - A propos + Are sure you want to delete '%1'? + Etes-vous sûr de vouloir supprimer '%1' ? - Config - Configuration + Could not delete directory. + Impossible de supprimer le dossier. - Preference - Préférence + All Files (*.*) + Tous les fichiers (*.*) - Options - Options + Save As + Enregistrer sous - Setting - Paramètre + Drive + Unité - Setup - Réglage + File + Fichier - Quit - Quitter + File Folder + Match Windows Explorer + Fichier Dossier - Exit - Quitter + Folder + All other platforms + Dossier - About %1 - A propos de %1 + Alias + Mac OS X Finder + Alias - About Qt - À propos de Qt + Shortcut + All other platforms + Raccourci - Preferences - Préférences + Unknown + Inconnu - Quit %1 - Quitter %1 + Find Directory + Chercher dans le dossier - Actions - Actions + Show + Afficher - - - QMessageBox - OK - OK + Forward + Successeur - About Qt - À propos de Qt + New Folder + Nouveau dossier - Help - Aide + &New Folder + &Nouveau dossier - <p>This program uses Qt version %1.</p> - <p>Ce programme utilise la version %1 de Qt.</p> + &Choose + &Choisir - <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://qt.nokia.com/">qt.nokia.com/</a> for more information.</p> - <h3>A propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'applications multi-platformes.</p><p>Qt fournit la portabilité du code source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et toutes les variantes commerciales majeures d'Unix. Qt est aussi disponible pour les systèmes embarqués sous le nom Qtopia Core.</p><p>Qt est un produit de Trolltech. <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + Remove + Supprimer - Show Details... - Montrer les détails... + File &name: + &Nom de fichier : - Hide Details... - Cacher les détails... + Look in: + Voir dans: - - <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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> - <h3>À propos de Qt</h3><p>Ce programme utilise Qt version %1.</p><p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> + Create New Folder + Créer un nouveau dossier - <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - <h3>A propos de Qt</h3>%1<p>Qt est un framework de développement d'applications multi-plateforme.</p><p>Qt fournit la portabilité du code source surMS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, et toutes les variantes majeures d'Unix. Qt est aussi disponible pour l'embarqué avec Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt est un produit de Nokia. Allez à <a href="http://qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> + File Folder + Fichier Dossier - <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://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> for an overview of Qt licensing.</p> - <p>Ce programme utilise Qt Open Source Edition version %1.</p><p>Qt Open Source Edition est prévu pour le développement d'applications Open Source. Vous devez avoir un license commerciale de Qt pour développer des applications propiétaires (Closed Source).</p><p>Vous pouvez aller sur <a href="http://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> pour plus d'informations sur les licenses Qt.</p> + Folder + Dossier - <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://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - <h3>A propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'application multi-plateforme.</p><p>Qt fournit la portabilité de votre source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, toutes les variantes majeures d'Unix. Qt est aussi disponible pour les périphériques embarqués avec Qt Embedded.</p><p>Qt est un produit de Trolltech. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> + Alias + Alias - <h3>About Qt</h3><p>This program uses Qt version %1.</p> - <h3>À propos de Qt</h3><p>Ce programme utilise Qt version %1.</p> + Shortcut + Raccourci - <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> - <p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> + Go back + Précédent - - - QMultiInputContext - Select IM - Sélectionner IM + Go forward + Suivant - - - QMultiInputContextPlugin - Multiple input method switcher - Sélectionneur de méthode de saisie + Go to the parent directory + Dossier parent - Multiple input method switcher that uses the context menu of the text widgets - Sélectionneur de méthode de saisie qui utilise le menu contextuel des widgets de texte + Create a New Folder + Créer un nouveau dossier - - - QNativeSocketEngine - The remote host closed the connection - L'hôte distant a fermé la connexion + Change to list view mode + Affichage liste - Network operation timed out - L'opération réseau a expiré + Change to detail view mode + Affichage détaillé + + + QFileSystemModel - Out of resources - Manque de ressources + %1 TB + %1 To - Unsupported socket operation - Opération socket non supportée + %1 GB + %1 Go - Protocol type not supported - Protocol non géré + %1 MB + %1 Mo - Invalid socket descriptor - Descripteur de socket invalide + %1 KB + %1 Ko - Network unreachable - Réseau impossible à rejoindre + %1 bytes + %1 octets - Permission denied - Accès refusé + Invalid filename + Nom de fichier invalide - Connection timed out - Connexion expirée + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Le nom "%1" ne peut pas être utilisé.</b><p>Essayez un autre nom avec moins de caractères ou sans ponctuation. - Connection refused - Connexion refusée + Name + Nom - The bound address is already in use - L'adresse liée est déjà en usage + Size + Taille - The address is not available - L'adresse n'est pas disponible + Kind + Match OS X Finder + Type - The address is protected - L'adresse est protégée + Type + All other platforms + Type - Unable to send a message - Impossible d'envoyer un message + Date Modified + Dernière modification - Unable to receive a message - Impossible de recevoir un message + My Computer + Poste de travail - Unable to write - Impossible d'écrire + Computer + Ordinateur - Network error - Erreur réseau - - - Another socket is already listening on the same port - Un autre socket écoute déjà sur le même port - - - Unable to initialize non-blocking socket - Impossible d'initialiser le socket asynchrone + Kind + Type - Unable to initialize broadcast socket - Impossible d'initialiser le socket broadcast + Type + Type - Attempt to use IPv6 socket on a platform with no IPv6 support - Tentative d'utiliser un socket IPv6 sur une plateforme qui ne supporte pas IPv6 + %1 byte(s) + %1 octet(s) + + + QFontDatabase - Host unreachable - Hôte inaccessible + Normal + Normal - Datagram was too large to send - Le datagramme était trop grand pour être envoyé + Bold + Gras - Operation on non-socket - Operation sur non-socket + Demi Bold + Semi Gras - Unknown error - Erreur inconnue + Black + Noir - The proxy type is invalid for this operation - Le type de proxy est invalide pour cette opération + Demi + Demi - - - QNetworkAccessCacheBackend - Error opening %1 - Erreur lors de l'ouverture de %1 + Light + Léger - - - QNetworkAccessFileBackend - Request for opening non-local file %1 - Requête d'ouverture de fichier distant %1 + Italic + Italique - Error opening %1: %2 - Erreur lors de l'ouverture de %1 : %2 + Oblique + Oblique - Write error writing to %1: %2 - Erreur d'écriture de %1 : %2 + Any + Tous - Cannot open %1: Path is a directory - Impossible d'ouvrir %1 : le chemin est un dossier + Latin + Latin - Read error reading from %1: %2 - Erreur de lecture de %1 : %2 + Greek + Grec - - - QNetworkAccessFtpBackend - No suitable proxy found - Aucun proxy trouvé + Cyrillic + Cyrillique - Cannot open %1: is a directory - Impossible d'ouvrir %1 : le chemin est un dossier + Armenian + Arménien - Logging in to %1 failed: authentication required - Connexion à %1 a échoué : authentification requise + Hebrew + Hébreu - Error while downloading %1: %2 - Erreur lors du téléchargement de %1 : %2 + Arabic + Arabe - Error while uploading %1: %2 - Erreur lors de l'envoi de %1 : %2 + Syriac + Syriaque - - - QNetworkAccessHttpBackend - No suitable proxy found - Aucun proxy trouvé + Thaana + Thaana - - - QNetworkReply - Error downloading %1 - server replied: %2 - Erreur lors du téléchargement de %1 - le serveur a répondu: %2 + Devanagari + Devanagari - Protocol "%1" is unknown - Le protocole "%1" est inconnu + Bengali + Bengali - - - QNetworkReplyImpl - Operation canceled - Opération annulée + Gurmukhi + Gurmukhi - - - QOCIDriver - Unable to logon - Impossible d'ouvrir une session + Gujarati + Gujarati - - Unable to initialize - QOCIDriver - L'initialisation a échoué + Oriya + Oriya - Unable to begin transaction - Impossible de démarrer la transaction + Tamil + Tamil - Unable to commit transaction - Impossible d'enregistrer la transaction + Telugu + Telugu - Unable to rollback transaction - Impossible d'annuler la transaction + Kannada + Kannada - Unable to initialize - L'initialisation a échoué + Malayalam + Malayalam - - - QOCIResult - Unable to bind column for batch execute - Impossible d'attacher la colonne pour une execution batch + Sinhala + Sinhala - Unable to execute batch statement - Impossible d'exécuter l'instruction batch + Thai + Thaï - Unable to goto next - Impossible de passer au suivant + Lao + Lao/Laotien sont corrects + Lao - Unable to alloc statement - Impossible d'allouer la requête + Tibetan + Tibétain - Unable to prepare statement - Impossible de préparer la requête + Myanmar + Myanmar/Birman sont corrects mais Myanmar semble plus adapté pour la langue écrite + Myanmar - Unable to bind value - Impossible d'attacher la valeur + Georgian + Géorgien - Unable to execute select statement - Impossible d'exéctuer la requête select + Khmer + Khmer - Unable to execute statement - Impossible d'exéctuer la requête + Simplified Chinese + Chinois Simplifié - Unable to get statement type - Impossible d'obtenir le type de la requête + Traditional Chinese + Chinois Traditionnel - - - QODBCDriver - Unable to connect - Incapable d'établir une connexion + Japanese + Japonais - - Unable to connect - Driver doesn't support all needed functionality - Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires + Korean + Coréen - Unable to disable autocommit - Impossible de désactiver l'autocommit + Vietnamese + Vietnamien - Unable to commit transaction - Incapable de soumettre la transaction + Symbol + Symbole - Unable to rollback transaction - Incapable d'annuler la transaction + Ogham + Ogham - Unable to enable autocommit - Impossible d'activer l'autocommit + Runic + Runique - Unable to connect - Driver doesn't support all functionality required - Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires + N'Ko + N'Ko - QODBCResult + QFontDialog - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC + &Font + &Police - Unable to execute statement - Impossible d'exéctuer la requête + Font st&yle + St&yle de police - Unable to fetch next - Impossible de récupérer le suivant + &Size + &Taille - Unable to prepare statement - Impossible de préparer la requête + Effects + Effets - Unable to bind variable - Impossible d'attacher la variable + Stri&keout + &Barré - Unable to fetch last - Impossible de récupérer le dernier + &Underline + &Souligné - Unable to fetch - Impossible de récupérer + Sample + Exemple - Unable to fetch first - Impossible de récupérer le premier + Select Font + Choisir une police - Unable to fetch previous - Impossible de récupérer le précedent - + Wr&iting System + &Système d'écriture + - QObject - - - Home - Début - + QFtp - Operation not supported on %1 - Opération non supportée sur %1 + Host %1 found + Hôte %1 trouvé - Invalid URI: %1 - URI invalide : %1 + Host found + Hôte trouvé - - Write error writing to %1: %2 - Erreur d'écriture sur %1 : %2 + Connected to host %1 + Connecté à l'hôte %1 - - Read error reading from %1: %2 - Erreur de lecture sur %1 : %2 + Connected to host + Connecté à l'hôte - Socket error on %1: %2 - Erreur de socket sur %1 : %2 + Connection to %1 closed + Connexion à %1 arrêtée - Remote host closed the connection prematurely on %1 - L'hôte distant a fermé sa connexion de façon prématurée sur %1 + Connection closed + Connexion arrêtée - - Protocol error: packet of size 0 received - Erreur de protocole: paquet de taille 0 reçu + Host %1 not found + Hôte %1 introuvable - No host name given - Nom d'hôte manquant + Connection refused to host %1 + Connexion à l'hôte %1 refusée - Invalid hostname - Nom d'hôte non valide + Connection timed out to host %1 + Connexion expirée vers l'hôte %1 - - - QPPDOptionsModel - Name - Nom + Unknown error + Erreur inconnue - Value - Valeur + Connecting to host failed: +%1 + Échec de la connexion à l'hôte +%1 - - - QPSQLDriver - Unable to connect - Impossible d'établir une connexion + Login failed: +%1 + Échec du login: +%1 - Could not begin transaction - Impossible de démarrer la transaction + Listing directory failed: +%1 + Échec du listage du dossier : +%1 - Could not commit transaction - Impossible de soumettre la transaction + Changing directory failed: +%1 + Échec du changement de dossier : +%1 - Could not rollback transaction - Impossible d'annuler la transaction + Downloading file failed: +%1 + Échec du téléchargement du fichier : +%1 - Unable to subscribe - Impossible de s'inscrire + Uploading file failed: +%1 + Échec du télédéchargement : +%1 - Unable to unsubscribe - Impossible de se désinscrire + Removing file failed: +%1 + Échec de la suppression d'un fichier : +%1 - - - QPSQLResult - Unable to create query - Impossible de créer la requête + Creating directory failed: +%1 + Échec de la création d'un dossier : +%1 - Unable to prepare statement - Impossible de préparer la requête + Removing directory failed: +%1 + Échec de la suppression d'un dossier : +%1 - - - QPageSetupWidget - Centimeters (cm) - Centimètres (cm) + Not connected + Non connecté - Millimeters (mm) - Millimètres (mm) + Connection refused for data connection + Connexion donnée refusée + + + QGstreamerPlayerSession - Inches (in) - Pouces (in) + Unable to play %1 + Impossible de lire %1 + + + QHostInfo - Points (pt) - Points (pts) + Unknown error + Erreur inconnue - Form - Formulaire + No host name given + Aucun nom d'hôte n'a été donné + + + QHostInfoAgent - Paper - Papier + Host not found + Hôte introuvable - Page size: - Dimensions : + Unknown address type + Adresse de type inconnu - Width: - Largeur : + Unknown error + Erreur inconnue - Height: - Hauteur : + No host name given + Aucun nom d'hôte n'a été donné - Paper source: - Source du papier : + Invalid hostname + Nom d'hôte non valide + + + QHttp - Orientation - Orientation + Connection refused + Connexion refusée - Portrait - Portrait + Host %1 not found + Hôte %1 introuvable - Landscape - Paysage + Wrong content length + Longueur du contenu invalide - Reverse landscape - Paysage inversé + HTTP request failed + Échec de la requête HTTP - Reverse portrait - Portrait inversé + Host %1 found + Hôte %1 trouvé - Margins - Marges + Host found + Hôte trouvé - top margin - marge haute + Connected to host %1 + Connecté à l'hôte %1 - left margin - marge gauche + Connected to host + Connecté à l'hôte - right margin - marge droite + Connection to %1 closed + Connexion à %1 arrêtée - bottom margin - marge basse + Connection closed + Connexion arrêtée - - - QPluginLoader Unknown error Erreur inconnue - The plugin was not loaded. - Le plugin n'a pas été chargé. + Request aborted + Requête interrompue - - - QPrintDialog - locally connected - connecté en local + No server set to connect to + Aucun serveur spécifié - unknown - inconnu + Server closed connection unexpectedly + Connexion interrompue par le serveur - OK - OK + Invalid HTTP response header + Entête de réponse HTTP invalide - Cancel - Annuler + Unknown authentication method + Méthode d'authentification inconnue - Print in color if available - Imprimer en couleur si possible + Invalid HTTP chunked body + Fragment HTTP invalide - Print all - Imprimer tout + Error writing response to device + Erreur lors de l'écriture de la réponse - Print range - Imprimer la sélection + Proxy authentication required + Le proxy requiert une authentification - Print last page first - Imprimer d'abord la dernière page + Authentication required + Authentification requise - Number of copies: - Nombre de copies : + Proxy requires authentication + Le proxy requiert une authentification - Paper format - Format du papier + Host requires authentication + L'hôte requiert une authentification - Portrait - Portrait + Data corrupted + Données corrompues - Landscape - Paysage + Unknown protocol specified + Protocole spécifié inconnu - A0 (841 x 1189 mm) - A0 (841 x 1189 mm) + SSL handshake failed + le handshake SSL a échoué - A1 (594 x 841 mm) - A1 (594 x 841 mm) + Connection refused (or timed out) + Connexion refusée (ou délai expiré) - A2 (420 x 594 mm) - A2 (420 x 594 mm) + HTTPS connection requested but SSL support not compiled in + Connexion HTTPS requise mais le support SSL n'est pas compilé + + + QHttpSocketEngine - A3 (297 x 420 mm) - A3 (297 x 420 mm) + Did not receive HTTP response from proxy + Pas de réponse HTTP de la part du proxy - A5 (148 x 210 mm) - A5 (148 x 210 mm) + Error parsing authentication request from proxy + Erreur dans le reqête d'authentification reçue du proxy - A6 (105 x 148 mm) - A6 (105 x 148 mm) + Authentication required + Authentification requise - A7 (74 x 105 mm) - A7 (74 x 105 mm) + Proxy denied connection + Le Proxy a rejeté la connexion - A8 (52 x 74 mm) - A8 (52 x 74 mm) + Error communicating with HTTP proxy + Erreur de communication avec le proxy HTTP - A9 (37 x 52 mm) - A9 (37 x 52 mm) + Proxy server not found + Serveur proxy introuvable - B0 (1000 x 1414 mm) - B0 (1000 x 1414 mm) + Proxy connection refused + Connexion au proxy refusée - B1 (707 x 1000 mm) - B1 (707 x 1000 mm) + Proxy server connection timed out + La connexion au serveur proxy a expiré - B2 (500 x 707 mm) - B2 (500 x 707 mm) + Proxy connection closed prematurely + La connexion au serveur proxy a été fermée prématurément + + + QIBaseDriver - B3 (353 x 500 mm) - B3 (353 x 500 mm) + Error opening database + Erreur d'ouverture de la base de données - B4 (250 x 353 mm) - B4 (250 x 353 mm) + Could not start transaction + La transaction n'a pas pu être démarrée - B6 (125 x 176 mm) - B6 (125 x 176 mm) + Unable to commit transaction + Incapable de soumettre la transaction - B7 (88 x 125 mm) - B7 (88 x 125 mm) + Unable to rollback transaction + Incapable d'annuler la transaction + + + QIBaseResult - B8 (62 x 88 mm) - B8 (62 x 88 mm) + Unable to create BLOB + Impossible de créer un BLOB - B9 (44 x 62 mm) - B9 (44 x 62 mm) + Unable to write BLOB + Impossible d'écrire le BLOB - B10 (31 x 44 mm) - B10 (31 x 44 mm) + Unable to open BLOB + Impossible d'ouvrir le BLOB - C5E (163 x 229 mm) - C5E (163 x 229 mm) + Unable to read BLOB + Impossible de lire le BLOB - DLE (110 x 220 mm) - DLE (110 x 220 mm) + Could not find array + Impossible de trouver le tableau - Folio (210 x 330 mm) - Folio (210 x 330 mm) + Could not get array data + Impossible de trouver le tableau de données - Ledger (432 x 279 mm) - Ledger (432 x 279 mm) + Could not get query info + Impossible d'avoir les informations sur la requête - Tabloid (279 x 432 mm) - Tabloïde (279 x 432 mm) + Could not start transaction + Impossible de démarrer la transaction - US Common #10 Envelope (105 x 241 mm) - US Common #10 Envelope (105 x 241 mm) + Unable to commit transaction + Incapable de soumettre la transaction - Aliases: %1 - Alias : %1 + Could not allocate statement + Impossible d'allouer la requête - A4 (210 x 297 mm, 8.26 x 11.7 inches) - A4 (210 x 297 mm) + Could not prepare statement + Impossible de préparer la requête - B5 (176 x 250 mm, 6.93 x 9.84 inches) - B5 (176 x 250 mm) + Could not describe input statement + Impossible de décrire la requête - Executive (7.5 x 10 inches, 191 x 254 mm) - Executive (7,5 x 10 pouces, 191 x 254 mm) + Could not describe statement + Impossible de décrire la requête - Legal (8.5 x 14 inches, 216 x 356 mm) - Legal (8.5 x 14 pouces, 216 x 356 mm) + Unable to close statement + Impossible de fermer la requête - Letter (8.5 x 11 inches, 216 x 279 mm) - Letter (8,5 x 11 pouces, 216 x 279 mm) + Unable to execute query + Impossible d'exécuter la requête - Print selection - Imprimer la sélection + Could not fetch next item + Impossible de récuperer l'élément suivant - Page size: - Dimensions : + Could not get statement info + Impossible d'avoir les informations sur la requête + + + QIODevice - Orientation: - Orientation : + Permission denied + Accès refusé - Paper source: - Source du papier : + Too many open files + Trop de fichiers ouverts simultanément - Print - Impr écran + No such file or directory + Aucun fichier ou dossier de ce nom - File - Fichier + No space left on device + Aucun espace disponible sur le périphérique - Printer - Imprimante + Unknown error + Erreur inconnue + + + QInputContext - Print To File ... - Imprimer dans un fichier... + XIM + XIM - Print dialog - Fenêtre d'impression + XIM input method + Méthode d'entrée XIM - Size: - Taille : + Windows input method + Méthode d'entrée Windows - Properties - Propriétés + Mac OS X input method + Méthode d'entrée Mac OS X - Printer info: - Informations sur l'imprimante : + FEP + Processeur frontal - Browse - Parcourir + S60 FEP input method + Méthode de saisie processeur frontal S60 + + + QInputDialog - Print to file - Imprimer dans un fichier + Enter a value: + Entrer une valeur : + + + QLibrary - Pages from - Pages + QLibrary::load_sys: Cannot load %1 (%2) + QLibrary::load_sys: Impossible de charger %1 (%2) - to - à + QLibrary::unload_sys: Cannot unload %1 (%2) + QLibrary::unload_sys: Impossible de décharger %1 (%2) - Selection - Sélection + QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) + QLibrary::resolve_sys: Symbole "%1" non défini dans %2 (%3) - Copies - Copies + Could not mmap '%1': %2 + Impossible d'établir la projection en mémoire de '%1' : %2 - Collate - Assembler + Plugin verification data mismatch in '%1' + Données de vérification du plugin différente dans '%1' - Other - Autre + Could not unmap '%1': %2 + Impossible de supprimer la projection en mémoire de '%1' : %2 - Double side printing - Impression recto verso + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Le plugin '%1' utilise une bibliothèque Qt incompatible. (%2.%3.%4) [%5] - File %1 is not writable. -Please choose a different file name. - Impossible d'écrire dans le fichier %1. -Veuillez choisir un nom de fichier différent. + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Le plugin '%1' utilise une bibliothèque Qt incompatible. Clé attendue "%2", reçue "%3" - %1 already exists. -Do you want to overwrite it? - %1 existe. -Voulez-vous l'écraser ? + Unknown error + Erreur inconnue - File exists - Le fichier existe + The shared library was not found. + La bibliothèque partagée est introuvable. - <qt>Do you want to overwrite it?</qt> - <qt>voulez-vous l'écraser ?</qt> + The file '%1' is not a valid Qt plugin. + Le fichier '%1' n'est pas un plugin Qt valide. - %1 is a directory. -Please choose a different file name. - %1 est un dossier. -Veuillez choisir un nom de fichier différent. + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Le plugin '%1' utilise une bibliothèque Qt incompatible. (Il est impossible de mélanger des bibliothèques 'debug' et 'release'.) - A0 - + Cannot load library %1: %2 + Impossible de charger la bibliothèque %1 : %2 - A1 - + Cannot unload library %1: %2 + Impossible de décharger la bibliothèque %1 : %2 - A2 - + Cannot resolve symbol "%1" in %2: %3 + Impossible de résoudre le symbole "%1" dans %2 : %3 + + + QLineEdit - A3 - + Select All + Tout sélectionner - A4 - + &Undo + &Annuler - A5 - + &Redo + &Rétablir - A6 - + Cu&t + Co&uper - A7 - + &Copy + Cop&ier - A8 - + &Paste + Co&ller - A9 - + Delete + Supprimer + + + QLocalServer - B0 - + %1: Name error + %1: Erreur de nom - B1 - + %1: Permission denied + %1: Permission refusée - B2 - + %1: Address in use + %1: Address déjà utilisée - B3 - + %1: Unknown error %2 + %1: Erreur inconnue %2 + + + QLocalSocket - B4 - + %1: Connection refused + %1: Connexion refusée - B5 - + %1: Remote closed + %1: Connexion fermée - B6 - + %1: Invalid name + %1: Nom invalide - B7 - + %1: Socket access error + %1: Erreur d'accès au socket - B8 - + %1: Socket resource error + %1: Erreur de ressource du socket - B9 - + %1: Socket operation timed out + %1: L'opération socket a expiré - B10 - + %1: Datagram too large + %1: Datagramme trop grand - C5E - + %1: Connection error + %1: Erreur de connexion - DLE - + %1: The socket operation is not supported + %1: L'opération n'est pas supportée - Executive - + %1: Unknown error + %1 : erreur inconnue - Folio - + %1: Unknown error %2 + %1: Erreur inconnue %2 + + + QMYSQLDriver - Ledger - + Unable to open database ' + Impossible d'ouvrir la base de données ' - Legal - + Unable to connect + Impossible d'établir une connexion - Letter - + Unable to begin transaction + Impossible de démarrer la transaction - Tabloid - + Unable to commit transaction + Impossible de soumettre la transaction - US Common #10 Envelope - + Unable to rollback transaction + Impossible d'annuler la transaction + + + QMYSQLResult - Custom - Personnalisé + Unable to fetch data + Impossible de récuperer des données - &Options >> - + Unable to execute query + Impossible d'exécuter la requête - &Print - Im&primer + Unable to store result + Impossible de stocker le résultat - &Options << - + Unable to prepare statement + Impossible de préparer l'instruction - Print to File (PDF) - Imprimer dans un fichier (PDF) + Unable to reset statement + Impossible de réinitialiser l'instruction - Print to File (Postscript) - Imprimer dans un fichier (PostScript) + Unable to bind value + Impossible d'attacher la valeur - Local file - Fichier local + Unable to execute statement + Impossible d'exécuter la requête - Write %1 file - Ecriture du fichier %1 + Unable to bind outvalues + Impossible d'attacher les valeurs de sortie - The 'From' value cannot be greater than the 'To' value. - La valeur 'de' ne peut pas être plus grande que la valeur 'à'. + Unable to store statement results + Impossible de stocker les résultats de la requête - - - QPrintPreviewDialog - %1% - %1% + Unable to execute next query + Impossible d'exécuterla prochaine requête - Print Preview - Aperçu avant impression + Unable to store next result + Impossible de stocker le prochain résultat + + + QMdiArea - Next page - Page suivante + (Untitled) + (Sans titre) + + + QMdiSubWindow - Previous page - Page précédente + %1 - [%2] + %1 - [%2] - First page - Première page + Close + Fermer - Last page - Dernière page + Minimize + Réduire - Fit width - Ajuster la largeur + Restore Down + Restaurer en bas - Fit page - Ajuster la page + &Restore + &Restaurer - Zoom in - Zoom avant + &Move + &Déplacer - Zoom out - Zoom arrière + &Size + &Taille - Portrait - Portrait + Mi&nimize + Réd&uire - Landscape - Paysage + Ma&ximize + Ma&ximiser - Show single page - Afficher une seule page + Stay on &Top + &Rester au premier plan - Show facing pages - Afficher deux pages + &Close + &Fermer - Show overview of all pages - Afficher un aperçu de toutes les pages + - [%1] + - [%1] - Print - Impr écran + Maximize + Maximiser - Page setup - Configuration de la page + Unshade + Restaurer - Close - Fermer + Shade + Ombrer - Export to PDF - Exporter vers PDF + Restore + Restaurer - Export to PostScript - Exporter vers PostScript + Help + Aide - Page Setup - Configuration de la page + Menu + Menu - QPrintPropertiesDialog + QMediaPlayer - PPD Properties - Propriétés PPD + The QMediaPlayer object does not have a valid service + Pas de service valide pour l'objet QMediaPlayer + + + QMediaPlaylist - Save - Enregistrer + Could not add items to read only playlist. + Impossible d'ajouter des éléments à une liste de lecture en lecture seule. - OK - OK + Playlist format is not supported + Le format de liste de lecture n'est pas supporté + + + The file could not be accessed. + Impossible d'accéder au fichier. + + + Playlist format is not supported. + - QPrintPropertiesWidget + QMenu - Form - Formulaire + Close + Fermer - Page - + Open + Ouvrir - Advanced - Avancé + Execute + Exécuter - QPrintSettingsOutput - - Form - Formulaire - + QMenuBar - Copies - Copies + About + A propos - Print range - Imprimer la sélection + Config + Configuration - Print all - Imprimer tout + Preference + Préférence - Pages from - Pages + Options + Options - to - à + Setting + Paramètre - Selection - Sélection + Setup + Réglage - Output Settings - Paramètres de sortie + Quit + Quitter - Copies: - Copies : + Exit + Quitter - Collate - Assembler + About %1 + A propos de %1 - Reverse - Inverse + About Qt + À propos de Qt - Options - Options + Preferences + Préférences - Color Mode - Mode de couleur + Quit %1 + Quitter %1 - Color - Couleur + Actions + Actions + + + QMessageBox - Grayscale - Dégradé de gris + OK + OK - Duplex Printing - Impression en duplex + About Qt + À propos de Qt - None - Aucun + Help + Aide - Long side - Côté long + <p>This program uses Qt version %1.</p> + <p>Ce programme utilise la version %1 de Qt.</p> - Short side - Côté court + <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://qt.nokia.com/">qt.nokia.com/</a> for more information.</p> + <h3>A propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'applications multi-platformes.</p><p>Qt fournit la portabilité du code source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et toutes les variantes commerciales majeures d'Unix. Qt est aussi disponible pour les systèmes embarqués sous le nom Qtopia Core.</p><p>Qt est un produit de Trolltech. <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - - - QPrintWidget - Form - Formulaire + Show Details... + Montrer les détails... - Printer - Imprimante + Hide Details... + Cacher les détails... - &Name: - &Nom : + <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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> + <h3>À propos de Qt</h3><p>Ce programme utilise Qt version %1.</p><p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> - P&roperties - P&ropriétés + <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <h3>A propos de Qt</h3>%1<p>Qt est un framework de développement d'applications multi-plateforme.</p><p>Qt fournit la portabilité du code source surMS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, et toutes les variantes majeures d'Unix. Qt est aussi disponible pour l'embarqué avec Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt est un produit de Nokia. Allez à <a href="http://qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> - Location: - Emplacement : + <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://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> for an overview of Qt licensing.</p> + <p>Ce programme utilise Qt Open Source Edition version %1.</p><p>Qt Open Source Edition est prévu pour le développement d'applications Open Source. Vous devez avoir un license commerciale de Qt pour développer des applications propiétaires (Closed Source).</p><p>Vous pouvez aller sur <a href="http://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> pour plus d'informations sur les licenses Qt.</p> - Preview - Prévisualisation + <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://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <h3>A propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'application multi-plateforme.</p><p>Qt fournit la portabilité de votre source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, toutes les variantes majeures d'Unix. Qt est aussi disponible pour les périphériques embarqués avec Qt Embedded.</p><p>Qt est un produit de Trolltech. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> - Type: - Type : + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>À propos de Qt</h3><p>Ce programme utilise Qt version %1.</p> - Output &file: - &Fichier de sortie: + <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> + <p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> + + + QMultiInputContext - ... - + Select IM + Sélectionner IM - QProcess + QMultiInputContextPlugin - Could not open input redirection for reading - Impossible d'ouvrir la redirection d'entrée en lecture + Multiple input method switcher + Sélectionneur de méthode de saisie - Could not open output redirection for writing - Impossible d'ouvrir la redirection de sortie pour écriture + Multiple input method switcher that uses the context menu of the text widgets + Sélectionneur de méthode de saisie qui utilise le menu contextuel des widgets de texte + + + QNativeSocketEngine - Resource error (fork failure): %1 - Erreur de ressouce (fork) : %1 + The remote host closed the connection + L'hôte distant a fermé la connexion - Process operation timed out - Operation de processus a expiré + Network operation timed out + L'opération réseau a expiré - Error reading from process - Erreur de lecture du processus + Out of resources + Manque de ressources - Error writing to process - Erreur d"écriture vers le processus + Unsupported socket operation + Opération socket non supportée - Process crashed - Le processus à planté + Protocol type not supported + Protocol non géré - No program defined - Aucun programme défini + Invalid socket descriptor + Descripteur de socket invalide - - Process failed to start - Le processus n'a pas démarré + Network unreachable + Réseau impossible à rejoindre - Process failed to start: %1 - Le démarrage du processus a échoué: %1 + Permission denied + Accès refusé - - - QProgressDialog - Cancel - Annuler + Connection timed out + Connexion expirée - - - QPushButton - Open - Ouvrir + Connection refused + Connexion refusée - - - QRadioButton - Check - Cocher + The bound address is already in use + L'adresse liée est déjà en usage - - - QRegExp - no error occurred - aucune erreur ne s'est produite + The address is not available + L'adresse n'est pas disponible - disabled feature used - option désactivée + The address is protected + L'adresse est protégée - bad char class syntax - syntaxe invalide pour classe de caractère + Unable to send a message + Impossible d'envoyer un message - bad lookahead syntax - syntaxe invalide pour lookahead + Unable to receive a message + Impossible de recevoir un message - bad repetition syntax - syntaxe invalide pour répétition + Unable to write + Impossible d'écrire - invalid octal value - valeur octale invalide + Network error + Erreur réseau - missing left delim - délémiteur gauche manquant + Another socket is already listening on the same port + Un autre socket écoute déjà sur le même port - unexpected end - fin impromptue + Unable to initialize non-blocking socket + Impossible d'initialiser le socket asynchrone - met internal limit - rencontré limite interne - - - invalid interval - intervalle non valide + Unable to initialize broadcast socket + Impossible d'initialiser le socket broadcast - invalid category - catégorie non valide + Attempt to use IPv6 socket on a platform with no IPv6 support + Tentative d'utiliser un socket IPv6 sur une plateforme qui ne supporte pas IPv6 - - - QSQLite2Driver - - Error to open database - Erreur à l'ouverture de la base de données + Host unreachable + Hôte inaccessible - Unable to begin transaction - Impossible de démarrer la transaction + Datagram was too large to send + Le datagramme était trop grand pour être envoyé - Unable to commit transaction - Impossible de soumettre la transaction + Operation on non-socket + Operation sur non-socket - - Unable to rollback Transaction - Impossible d'annuler la transaction + Unknown error + Erreur inconnue - Error opening database - Erreur lors de l'ouverture de la base de données + The proxy type is invalid for this operation + Le type de proxy est invalide pour cette opération + + + QNetworkAccessCacheBackend - Unable to rollback transaction - Impossible de répéter la transaction + Error opening %1 + Erreur lors de l'ouverture de %1 - QSQLite2Result + QNetworkAccessDataBackend - Unable to fetch results - Impossible de récupérer les résultats + Operation not supported on %1 + Opération non supportée sur %1 - Unable to execute statement - Impossible d'exécuter la requête + Invalid URI: %1 + URI invalide : %1 - QSQLiteDriver + QNetworkAccessDebugPipeBackend - Error opening database - Erreur lors de l'ouverture de la base de données + Write error writing to %1: %2 + Erreur lors de l'écriture dans %1: %2 - Error closing database - Erreur lors de la fermeture de la base de données + Socket error on %1: %2 + Erreur de socket sur %1 : %2 - Unable to begin transaction - Impossible de démarrer la transaction + Remote host closed the connection prematurely on %1 + L'hôte distant a fermé sa connexion de façon prématurée sur %1 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Requête d'ouverture de fichier distant %1 - Unable to commit transaction - Incapable de soumettre la transaction + Error opening %1: %2 + Erreur lors de l'ouverture de %1 : %2 - Unable to roll back transaction - Impossible d'annuler la transaction + Write error writing to %1: %2 + Erreur d'écriture de %1 : %2 - Unable to rollback transaction - Impossible d'annuler la transaction + Cannot open %1: Path is a directory + Impossible d'ouvrir %1 : le chemin est un dossier - - - QSQLiteResult - Unable to fetch row - Impossible de récupérer la rangée + Read error reading from %1: %2 + Erreur de lecture de %1 : %2 + + + QNetworkAccessFtpBackend - Unable to execute statement - Impossible d'exécuter la requête + No suitable proxy found + Aucun proxy trouvé - Unable to reset statement - Impossible de réinitialiser la requête + Cannot open %1: is a directory + Impossible d'ouvrir %1 : le chemin est un dossier - Unable to bind parameters - Impossible d'attacher les paramètres + Logging in to %1 failed: authentication required + Connexion à %1 a échoué : authentification requise - Parameter count mismatch - Nombre de paramètres incorrect + Error while downloading %1: %2 + Erreur lors du téléchargement de %1 : %2 - No query - Pas de requête + Error while uploading %1: %2 + Erreur lors de l'envoi de %1 : %2 - QScrollBar + QNetworkAccessHttpBackend - Scroll here - Défiler jusqu'ici + No suitable proxy found + Aucun proxy trouvé + + + QNetworkAccessManager - Left edge - Extrême gauche + Network access is disabled. + L'accès au réseau est désactivé. + + + QNetworkReply - Top - En haut + Error downloading %1 - server replied: %2 + Erreur lors du téléchargement de %1 - le serveur a répondu: %2 - Right edge - Extrême droite + Protocol "%1" is unknown + Le protocole "%1" est inconnu - Bottom - En bas + Network session error. + Erreur de session réseau. - Page left - Page précédente + Temporary network failure. + Erreur réseau temporaire. + + + QNetworkReplyImpl - Page up - Page précédente + Operation canceled + Opération annulée + + + QNetworkSession - Page right - Page suivante + Invalid configuration. + Configuration invalide. + + + QNetworkSessionPrivateImpl - Page down - Page suivante + Roaming error + Erreur de roaming - Scroll left - Défiler vers la gauche + Session aborted by user or system + Session annulée par l'utilisateur ou le système - Scroll up - Défiler vers le haut + Unidentified Error + Erreur inconnue - Scroll right - Défiler vers la droite + Unknown session error. + Erreur de session inconnue. - Scroll down - Défiler vers le bas + The session was aborted by the user or system. + la session a été annulée par l'utilisateur ou le système. - Line up - Aligner + The requested operation is not supported by the system. + L'opération requise n'est pas suportée par le système. - Position - Position + The specified configuration cannot be used. + La configuration spécifiée ne peut être utilisée. - Line down - Aligner en-bas + Roaming was aborted or is not possible. + Le roaming a été annulé ou est impossible. - QSharedMemory + QOCIDriver - %1: unable to set key on lock - %1 : impossible d'affecter la clé au verrou + Unable to logon + Impossible d'ouvrir une session - %1: create size is less then 0 - %1 : taille de création est inférieur à 0 + Unable to initialize + QOCIDriver + L'initialisation a échoué - %1: unable to lock - %1 : impossible de vérrouiller + Unable to begin transaction + Impossible de démarrer la transaction - %1: unable to unlock - %1 : impossible de déverrouiller + Unable to commit transaction + Impossible d'enregistrer la transaction - %1: permission denied - %1 : permission refusée + Unable to rollback transaction + Impossible d'annuler la transaction - %1: already exists - %1 : existe déjà + Unable to initialize + L'initialisation a échoué + + + QOCIResult - %1: doesn't exists - %1 : n'existe pas + Unable to bind column for batch execute + Impossible d'attacher la colonne pour une execution batch - %1: out of resources - %1 : plus de ressources disponibles + Unable to execute batch statement + Impossible d'exécuter l'instruction batch - %1: unknown error %2 - %1 : erreur inconnue %2 + Unable to goto next + Impossible de passer au suivant - %1: key is empty - %1 : clé vide + Unable to alloc statement + Impossible d'allouer la requête - - %1: unix key file doesn't exists - %1 : le fichier de clé unix n'existe pas + Unable to prepare statement + Impossible de préparer la requête - %1: ftok failed - %1 : ftok a échoué + Unable to bind value + Impossible d'attacher la valeur - %1: unable to make key - %1 : impossible de créer la clé + Unable to execute select statement + Impossible d'exéctuer la requête select - %1: system-imposed size restrictions - %1 : le système impose des restrictions sur la taille + Unable to execute statement + Impossible d'exéctuer la requête - %1: not attached - %1 : non attaché + Unable to get statement type + Impossible d'obtenir le type de la requête + + + QODBCDriver - %1: invalid size - %1 : taille invalide + Unable to connect + Incapable d'établir une connexion - %1: key error - %1 : erreur de clé + Unable to connect - Driver doesn't support all needed functionality + Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires - %1: size query failed - %1 : la requête de taille a échoué + Unable to disable autocommit + Impossible de désactiver l'autocommit - %1: doesn't exist - %1: n'existe pas + Unable to commit transaction + Incapable de soumettre la transaction - %1: UNIX key file doesn't exist - %1: le fichier de clés UNIX n'existe pas + Unable to rollback transaction + Incapable d'annuler la transaction - - - QShortcut - Space - Espace + Unable to enable autocommit + Impossible d'activer l'autocommit - Esc - Échap + Unable to connect - Driver doesn't support all functionality required + Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires + + + QODBCResult - Tab - Tab + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC - Backtab - Tab arr + Unable to execute statement + Impossible d'exéctuer la requête - Backspace - Effacement + Unable to fetch next + Impossible de récupérer le suivant - Return - Retour + Unable to prepare statement + Impossible de préparer la requête - Enter - Entrée + Unable to bind variable + Impossible d'attacher la variable - Ins - Inser + Unable to fetch last + Impossible de récupérer le dernier - Del - Suppr + Unable to fetch + Impossible de récupérer - Pause - Pause + Unable to fetch first + Impossible de récupérer le premier - Print - Impr écran + Unable to fetch previous + Impossible de récupérer le précedent + + + QObject - SysReq - Syst + Home + Début - Home - Début + Operation not supported on %1 + Opération non supportée sur %1 - End - Fin + Invalid URI: %1 + URI invalide : %1 - Left - Gauche + Write error writing to %1: %2 + Erreur d'écriture sur %1 : %2 - Up - Haut + Read error reading from %1: %2 + Erreur de lecture sur %1 : %2 - Right - Droite + Socket error on %1: %2 + Erreur de socket sur %1 : %2 - Down - Bas + Remote host closed the connection prematurely on %1 + L'hôte distant a fermé sa connexion de façon prématurée sur %1 - PgUp - Page préc + Protocol error: packet of size 0 received + Erreur de protocole: paquet de taille 0 reçu - PgDown - Page suiv + No host name given + Nom d'hôte manquant - CapsLock - Verr maj + Invalid hostname + Nom d'hôte non valide - NumLock - Verr num + PulseAudio Sound Server + Serveur de son PulseAudio - ScrollLock - Arrêt défil + "%1" duplicates a previous role name and will be disabled. + "%1" est un doublon d'un nom de role existant et sera désactivé. - Menu - Menu + invalid query: "%1" + Requête invalide : "%1" + + + QPPDOptionsModel - Help - Aide + Name + Nom - Back - Précédent (historique) + Value + Valeur + + + QPSQLDriver - Forward - Successeur (historique) + Unable to connect + Impossible d'établir une connexion - Stop - Stop + Could not begin transaction + Impossible de démarrer la transaction - Refresh - Rafraîchir + Could not commit transaction + Impossible de soumettre la transaction - Volume Down - Volume bas + Could not rollback transaction + Impossible d'annuler la transaction - Volume Mute - Volume muet + Unable to subscribe + Impossible de s'inscrire - Volume Up - Volume haut - + Unable to unsubscribe + Impossible de se désinscrire + + + QPSQLResult - Bass Boost - Graves fort + Unable to create query + Impossible de créer la requête - Bass Up - Graves haut + Unable to prepare statement + Impossible de préparer la requête + + + QPageSetupWidget - Bass Down - Graves bas + Centimeters (cm) + Centimètres (cm) - Treble Up - Aigus haut + Millimeters (mm) + Millimètres (mm) - Treble Down - Aigus bas + Inches (in) + Pouces (in) - Media Play - Média démarrer + Points (pt) + Points (pts) - Media Stop - Média arrêt + Form + Formulaire - Media Previous - Média précédent + Paper + Papier - Media Next - Média suivant + Page size: + Dimensions : - Media Record - Média enregistrer + Width: + Largeur : - Favorites - Préférés + Height: + Hauteur : - Search - Recherche + Paper source: + Source du papier : - Standby - Attente + Orientation + Orientation - Open URL - Ouvrir URL + Portrait + Portrait - Launch Mail - Lancer courrier + Landscape + Paysage - Launch Media - Lancer média + Reverse landscape + Paysage inversé - Launch (0) - Lancer (0) + Reverse portrait + Portrait inversé - Launch (1) - Lancer (1) + Margins + Marges - Launch (2) - Lancer (2) + top margin + marge haute - Launch (3) - Lancer (3) + left margin + marge gauche - Launch (4) - Lancer (4) + right margin + marge droite - Launch (5) - Lancer (5) + bottom margin + marge basse + + + QPluginLoader - Launch (6) - Lancer (6) + Unknown error + Erreur inconnue - Launch (7) - Lancer (7) + The plugin was not loaded. + Le plugin n'a pas été chargé. + + + QPrintDialog - Launch (8) - Lancer (8) + locally connected + connecté en local - Launch (9) - Lancer (9) + unknown + inconnu - Launch (A) - Lancer (A) + OK + OK - Launch (B) - Lancer (B) + Cancel + Annuler - Launch (C) - Lancer (C) + Print in color if available + Imprimer en couleur si possible - Launch (D) - Lancer (D) + Print all + Imprimer tout - Launch (E) - Lancer (E) - - - Launch (F) - Lancer (F) + Print range + Imprimer la sélection - Print Screen - Capture d'écran + Print last page first + Imprimer d'abord la dernière page - Page Up - Page haut + Number of copies: + Nombre de copies : - Page Down - Page bas + Paper format + Format du papier - Caps Lock - Verr Maj + Portrait + Portrait - Num Lock - Verr num + Landscape + Paysage - Number Lock - Verrouillage numérique + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) - Scroll Lock - Arrêt défilement + A1 (594 x 841 mm) + A1 (594 x 841 mm) - Insert - Insérer + A2 (420 x 594 mm) + A2 (420 x 594 mm) - Delete - Supprimer + A3 (297 x 420 mm) + A3 (297 x 420 mm) - Escape - Échapement + A5 (148 x 210 mm) + A5 (148 x 210 mm) - System Request - Système + A6 (105 x 148 mm) + A6 (105 x 148 mm) - Select - Sélectionner + A7 (74 x 105 mm) + A7 (74 x 105 mm) - Yes - Oui + A8 (52 x 74 mm) + A8 (52 x 74 mm) - No - Non + A9 (37 x 52 mm) + A9 (37 x 52 mm) - Context1 - Contexte1 + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) - Context2 - Contexte2 + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) - Context3 - Contexte3 + B2 (500 x 707 mm) + B2 (500 x 707 mm) - Context4 - Contexte4 + B3 (353 x 500 mm) + B3 (353 x 500 mm) - Call - Appeler + B4 (250 x 353 mm) + B4 (250 x 353 mm) - Hangup - Raccrocher + B6 (125 x 176 mm) + B6 (125 x 176 mm) - Flip - Retourner + B7 (88 x 125 mm) + B7 (88 x 125 mm) - Ctrl - Ctrl + B8 (62 x 88 mm) + B8 (62 x 88 mm) - Shift - Maj + B9 (44 x 62 mm) + B9 (44 x 62 mm) - Alt - Alt + B10 (31 x 44 mm) + B10 (31 x 44 mm) - Meta - Méta + C5E (163 x 229 mm) + C5E (163 x 229 mm) - + - + + DLE (110 x 220 mm) + DLE (110 x 220 mm) - F%1 - F%1 + Folio (210 x 330 mm) + Folio (210 x 330 mm) - Home Page - Page d'accueil + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) - Monitor Brightness Up - Augmenter la luminosité du moniteur + Tabloid (279 x 432 mm) + Tabloïde (279 x 432 mm) - Monitor Brightness Down - Baisser la luminosité du moniteur + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) - Keyboard Light On/Off - Avec/sans lumière clavier + Print current page + Imprimer la page courante - Keyboard Brightness Up - Augmenter la luminosité du clavier + Aliases: %1 + Alias : %1 - Keyboard Brightness Down - Baisser la luminosité du clavier + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm) - Power Off - Couper l'alimentation + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm) - Wake Up - Réveiller + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7,5 x 10 pouces, 191 x 254 mm) - Eject - Éjecter + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 pouces, 216 x 356 mm) - Screensaver - Économiseur d'écran + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8,5 x 11 pouces, 216 x 279 mm) - WWW - WWW + Print selection + Imprimer la sélection - Sleep - Dormir + Page size: + Dimensions : - LightBulb - Ampoule + Orientation: + Orientation : - Shop - Magasin + Paper source: + Source du papier : - History - Historique + Print + Imprimer - Add Favorite - Ajouter favori + File + Fichier - Hot Links - Liens chauds + Printer + Imprimante - Adjust Brightness - Régler la luminosité + Print To File ... + Imprimer dans un fichier... - Finance - Finances + Print dialog + Fenêtre d'impression - Community - Communauté + Size: + Taille : - Audio Rewind - Audio arrière + Properties + Propriétés - Back Forward - Retour avant + Printer info: + Informations sur l'imprimante : - Application Left - Application gauche + Browse + Parcourir - Application Right - Application droite + Print to file + Imprimer dans un fichier - Book - Livre + Pages from + Pages - CD - CD + to + à - Calculator - Calculatrice + Selection + Sélection - Clear - Effacer + Copies + Copies - Clear Grab - Effacer la prise + Collate + Assembler - Close - Fermer + Other + Autre - Copy - Copier + Double side printing + Impression recto verso - Cut - Couper + File %1 is not writable. +Please choose a different file name. + Impossible d'écrire dans le fichier %1. +Veuillez choisir un nom de fichier différent. - Display - Affichage + %1 already exists. +Do you want to overwrite it? + %1 existe. +Voulez-vous l'écraser ? - DOS - DOS + File exists + Le fichier existe - Documents - Documents + <qt>Do you want to overwrite it?</qt> + <qt>voulez-vous l'écraser ?</qt> - Spreadsheet - Feuille de calcul + %1 is a directory. +Please choose a different file name. + %1 est un dossier. +Veuillez choisir un nom de fichier différent. - Browser - Navigateur + A0 + - Game - Jeu + A1 + - Go - Aller + A2 + - iTouch - iTouch + A3 + - Logoff - Fermer une session + A4 + - Market - Marché + A5 + - Meeting - Réunion + A6 + - Keyboard Menu - Menu du clavier + A7 + - Menu PB - Menu PB + A8 + - My Sites - Mes sites + A9 + - News - Actualités + B0 + - Home Office - Bureau à domicile + B1 + - Option - Option + B2 + - Paste - Coller + B3 + - Phone - Téléphone + B4 + - Reply - Répondre + B5 + - Reload - Recharger + B6 + - Rotate Windows - Faire tourner la fenêtre + B7 + - Rotation PB - Rotation PB + B8 + - Rotation KB - Rotation KB + B9 + - Save - Enregistrer + B10 + - Send - Envoyer + C5E + - Spellchecker - Correcteur orthographique + DLE + - Split Screen - Partager l'écran + Executive + - Support - Supporter + Folio + - Task Panel - Panneau de tâches + Ledger + - Terminal - Terminal + Legal + - Tools - Outils + Letter + - Travel - Voyager + Tabloid + - Video - Vidéo + US Common #10 Envelope + - Word Processor - Traitement de texte + Custom + Personnalisé - XFer - XFer + &Options >> + - Zoom In - Agrandir + &Print + Im&primer - Zoom Out - Rétrécir + &Options << + - Away - Absent + Print to File (PDF) + Imprimer dans un fichier (PDF) - Messenger - Messagerie instantanée + Print to File (Postscript) + Imprimer dans un fichier (PostScript) - WebCam - Webcaméra + Local file + Fichier local - Mail Forward - Faire suivre l'e-mail + Write %1 file + Ecriture du fichier %1 - Pictures - Images + The 'From' value cannot be greater than the 'To' value. + La valeur 'de' ne peut pas être plus grande que la valeur 'à'. + + + QPrintPreviewDialog - Music - Musique + %1% + %1% - Battery - Batterie + Print Preview + Aperçu avant impression - Bluetooth - Bluetooth + Next page + Page suivante - Wireless - Sans fil + Previous page + Page précédente - Ultra Wide Band - Bande ultralarge + First page + Première page - Audio Forward - Audio avant + Last page + Dernière page - Audio Repeat - Audio répéter + Fit width + Ajuster la largeur - Audio Random Play - Audio lecture aléatoire + Fit page + Ajuster la page - Subtitle - Sous-titre + Zoom in + Zoom avant - Audio Cycle Track - Audio répéter la piste + Zoom out + Zoom arrière - Time - Heure + Portrait + Portrait - View - Afficher + Landscape + Paysage - Top Menu - Haut du menu + Show single page + Afficher une seule page - Suspend - Suspendre + Show facing pages + Afficher deux pages - Hibernate - Hiberner + Show overview of all pages + Afficher un aperçu de toutes les pages - - - QSlider - Page left - Page précédente + Print + Imprimer - Page up - Page précédente + Page setup + Mise en page - Position - Position + Close + Fermer - Page right - Page suivante + Export to PDF + Exporter vers PDF - Page down - Page suivante + Export to PostScript + Exporter vers PostScript + + + Page Setup + Mise en page - QSocks5SocketEngine + QPrintPropertiesDialog - Connection to proxy refused - Connexion au proxy refusée + PPD Properties + Propriétés PPD - Connection to proxy closed prematurely - connexion au proxy fermée prématurément - - - Proxy host not found - Hôte proxy introuvable + Save + Enregistrer - Connection to proxy timed out - Connexion au proxy expirée + OK + OK + + + QPrintPropertiesWidget - Proxy authentication failed - L'authentification proxy a échoué + Form + Formulaire - Proxy authentication failed: %1 - L'authentification proxy a échoué : %1 + Page + - SOCKS version 5 protocol error - Erreur de protocole SOCKS version 5 + Advanced + Avancé + + + QPrintSettingsOutput - General SOCKSv5 server failure - Erreur générale du serveur SOCKSv5 + Form + Formulaire - Connection not allowed by SOCKSv5 server - Connexion refusée par le serveur SOCKSv5 + Copies + Copies - TTL expired - TTL expiré + Print range + Imprimer la sélection - SOCKSv5 command not supported - Commande SOCKSv5 non supportée + Print all + Imprimer tout - Address type not supported - Type d'adresse non supporté + Pages from + Pages - Unknown SOCKSv5 proxy error code 0x%1 - Erreur proxy SOCKSv5 inconnue : 0x%1 + to + à - Socks5 timeout error connecting to socks server - Erreur d'expiration socks5 lors de l'établissement d'une connexion au serveur socks + Selection + Sélection - Network operation timed out - L'opération réseau a expiré + Output Settings + Paramètres de sortie - - - QSpinBox - More - Plus + Copies: + Copies : - Less - Moins + Collate + Assembler - - - QSql - Delete - Supprimer + Reverse + Inverse - Delete this record? - Supprimer cet enregistrement ? + Options + Options - Yes - Oui + Color Mode + Mode de couleur - No - Non + Color + Couleur - Insert - Insérer + Grayscale + Dégradé de gris - Update - Actualiser + Duplex Printing + Impression en duplex - Save edits? - Enregistrer les modifications ? + None + Aucun - Cancel - Annuler + Long side + Côté long - Confirm - Confirmer + Short side + Côté court - Cancel your edits? - Annuler vos modifications ? + Current Page + Page courante - QSslSocket + QPrintWidget - Unable to write data: %1 - Impossible d'écrire les données : %1 + Form + Formulaire - Error while reading: %1 - Erreur lors de la lecture : %1 + Printer + Imprimante - Error during SSL handshake: %1 - Erreur lors de la poignée de main SSL : %1 + &Name: + &Nom : - Error creating SSL context (%1) - Erreur lors de la création du contexte SSL (%1) + P&roperties + P&ropriétés - Invalid or empty cipher list (%1) - La list de chiffrements est invalide ou vide (%1) + Location: + Emplacement : - Error creating SSL session, %1 - Erreur lors de la création de la session SSL, %1 + Preview + Prévisualisation - Error creating SSL session: %1 - Erreur lors de la création de la session SSL : %1 + Type: + Type : - Cannot provide a certificate with no key, %1 - Impossible de fournir un certificat sans clé, %1 + Output &file: + &Fichier de sortie: - Error loading local certificate, %1 - Erreur lors du chargement du certificat local, %1 + ... + + + + QProcess - Error loading private key, %1 - Erreur lors du chargement de la clé privée, %1 + Could not open input redirection for reading + Impossible d'ouvrir la redirection d'entrée en lecture - Private key do not certificate public key, %1 - La clé privée ne certifie pas la clé publique, %1 + Could not open output redirection for writing + Impossible d'ouvrir la redirection de sortie pour écriture - - Private key does not certificate public key, %1 - La clé privée ne certifie pas la clé publique, %1 + Resource error (fork failure): %1 + Erreur de ressouce (fork) : %1 - Unable to decrypt data: %1 - Impossible de décrypter les données: %1 + Process operation timed out + Operation de processus a expiré - Private key does not certify public key, %1 - La clé privée ne certifie pas la clé publique, %1 + Error reading from process + Erreur de lecture du processus - No error - Aucune erreur + Error writing to process + Erreur d"écriture vers le processus - The issuer certificate could not be found - Le certificat de l'émetteur est introuvable + Process crashed + Le processus à planté - The certificate signature could not be decrypted - La signature du certificat n'a pas pu être vérifiée + No program defined + Aucun programme défini - The public key in the certificate could not be read - La clé publique du certificat n'a pas pu être lue + Process failed to start + Le processus n'a pas démarré - The signature of the certificate is invalid - La signature du certificat n'est pas valide + Process failed to start: %1 + Le démarrage du processus a échoué: %1 + + + QProgressDialog - The certificate is not yet valid - Le certificat n'est pas encore valide + Cancel + Annuler + + + QPushButton - The certificate has expired - Le certificat a expiré + Open + Ouvrir + + + QRadioButton - The certificate's notBefore field contains an invalid time - Le champ pasAvant du certificat inclut une heure non valide + Check + Cocher + + + QRegExp - The certificate's notAfter field contains an invalid time - Le champ pasAprès du certificat inclut une heure non valide + no error occurred + aucune erreur ne s'est produite - The certificate is self-signed, and untrusted - Le certificat n'est pas sécurisé car auto-signé + disabled feature used + option désactivée - The root certificate of the certificate chain is self-signed, and untrusted - Le certificat racine de la chaîne de certificats n'est pas sécurisé car signé automatiquement + bad char class syntax + syntaxe invalide pour classe de caractère - The issuer certificate of a locally looked up certificate could not be found - Le certificat de l'émetteur d'un certificat converti localement est introuvable + bad lookahead syntax + syntaxe invalide pour lookahead - No certificates could be verified - Aucun certificat n'a pu être vérifié + bad repetition syntax + syntaxe invalide pour répétition - One of the CA certificates is invalid - L'un des certificats CA n'est pas valide + invalid octal value + valeur octale invalide - The basicConstraints path length parameter has been exceeded - Le paramètre de longueur du chemin basicConstraints a été dépassé + missing left delim + délémiteur gauche manquant - The supplied certificate is unsuitable for this purpose - Le certificat fourni ne convient pas pour cet objectif + unexpected end + fin impromptue - The root CA certificate is not trusted for this purpose - Le certificat CA racine n'est pas sécurisé pour cet objectif + met internal limit + rencontré limite interne - The root CA certificate is marked to reject the specified purpose - Le certificat CA racine est marqué pour rejeter l'objectif spécifié - - - The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate - Le certificat de l'émetteur candidat actuel a été rejeté car le nom de son sujet ne correspondait pas au nom de l'émetteur du certificat actuel - - - 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 - Le certificat de l'émetteur candidat actuel a été rejeté car le nom de son sujet et son numéro de série étaient présents et ne correspondaient pas à l'identifiant de la clé d'autorité du certificat actuel - - - The peer did not present any certificate - Le poste ne contient aucun certificat - - - The host name did not match any of the valid hosts for this certificate - Le nom d'hôte ne correspondait à aucun des hôtes valides pour ce certificat + invalid interval + intervalle non valide - Unknown error - Erreur inconnue + invalid category + catégorie non valide - QSystemSemaphore + QSQLite2Driver - %1: out of resources - %1: plus de ressources disponibles + Error to open database + Erreur à l'ouverture de la base de données - %1: permission denied - %1: permission refusée + Unable to begin transaction + Impossible de démarrer la transaction - %1: already exists - %1 : existe déjà + Unable to commit transaction + Impossible de soumettre la transaction - %1: does not exist - %1 : n'existe pas + Unable to rollback Transaction + Impossible d'annuler la transaction - %1: unknown error %2 - %1: erreur inconnue %2 + Error opening database + Erreur lors de l'ouverture de la base de données + + + Unable to rollback transaction + Impossible de répéter la transaction - QTDSDriver + QSQLite2Result - Unable to open connection - Impossible d'ouvrir la connexion + Unable to fetch results + Impossible de récupérer les résultats - Unable to use database - Impossible d'utiliser la base de données + Unable to execute statement + Impossible d'exécuter la requête - QTabBar + QSQLiteDriver - Scroll Left - Défiler vers la gauche + Error opening database + Erreur lors de l'ouverture de la base de données - Scroll Right - Défiler vers la droite + Error closing database + Erreur lors de la fermeture de la base de données - - - QTcpServer - Socket operation unsupported - Operation socket non supportée + Unable to begin transaction + Impossible de démarrer la transaction - Operation on socket is not supported - Opération sur le socket non supportée + Unable to commit transaction + Incapable de soumettre la transaction - - - QTextControl - &Undo - &Annuler + Unable to roll back transaction + Impossible d'annuler la transaction - &Redo - &Répéter + Unable to rollback transaction + Impossible d'annuler la transaction + + + QSQLiteResult - Cu&t - Co&uper + Unable to fetch row + Impossible de récupérer la rangée - &Copy - Cop&ier + Unable to execute statement + Impossible d'exécuter la requête - Copy &Link Location - Copier l'adresse du &lien + Unable to reset statement + Impossible de réinitialiser la requête - &Paste - Co&ller + Unable to bind parameters + Impossible d'attacher les paramètres - Delete - Supprimer + Parameter count mismatch + Nombre de paramètres incorrect - Select All - Tout sélectionner + No query + Pas de requête - QToolButton + QScriptBreakpointsModel - Press - Presser + ID + Identifiant - Open - Ouvrir + Location + Lieu - - - QUdpSocket - This platform does not support IPv6 - Cette plateforme ne supporte pas IPv6 + Condition + Condition - - - QUndoGroup - Undo - Annuler + Ignore-count + Comptes d'ignorés - Redo - Répéter + Single-shot + Un seul tir - - - QUndoModel - <empty> - <vide> + Hit-count + Compte de coups - QUndoStack + QScriptBreakpointsWidget - Undo - Annuler + New + Créer - Redo - Répéter + Delete + Supprimer - QUnicodeControlCharacterMenu + QScriptDebugger - LRM Left-to-right mark - LRM Left-to-right mark + Go to Line + Aller à la ligne - RLM Right-to-left mark - RLM Right-to-left mark + Line: + Ligne: - ZWJ Zero width joiner - ZWJ Zero width joiner + Interrupt + Interrompre - ZWNJ Zero width non-joiner - ZWNJ Zero width non-joiner + Shift+F5 + Shift+F5 - ZWSP Zero width space - ZWSP Zero width space + Continue + Continuer - LRE Start of left-to-right embedding - LRE Start of left-to-right embedding + F5 + F5 - RLE Start of right-to-left embedding - RLE Start of right-to-left embedding + Step Into + Pas à pas détaillé - LRO Start of left-to-right override - LRO Start of left-to-right override + F11 + F11 - RLO Start of right-to-left override - RLO Start of right-to-left override + Step Over + Pas à pas principal - PDF Pop directional formatting - PDF Pop directional formatting + F10 + F10 - Insert Unicode control character - Insérer caractère de contrôle Unicode + Step Out + Pas à pas sortant - - - QWebFrame - Request cancelled - Requête annulée + Shift+F11 + Shift+F11 - Request blocked - Requête bloquée + Run to Cursor + Exécuter au curseur - Cannot show URL - Impossible d'afficher l'URL + Ctrl+F10 + Ctrl+F10 - - Frame load interruped by policy change - Chargement de la frame interrompu par un changement de configuration + Run to New Script + Exécuter au nouveau script - Cannot show mimetype - Impossible d'afficher le mimetype + Toggle Breakpoint + Basculer le point d'arrêt - File does not exist - Le fichier n'existe pas + F9 + F9 - Frame load interrupted by policy change - Chargement du cadre interrompue par le changement de stratégie + Clear Debug Output + Effacer les résultats du débogage - - - QWebPage - - Submit - default label for Submit buttons in forms on web pages - Soumettre + Clear Error Log + Effacer le journal d'erreurs - - Submit - Submit (input element) alt text for <input> elements with no alt, title, or value - Soumettre + Clear Console + Effacer la console - - Reset - default label for Reset buttons in forms on web pages - Réinitialiser + &Find in Script... + &Chercher dans le script... - Searchable Index - text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' - Index recherchable + Ctrl+F + Ctrl+F - - Choose File - title for file button used in HTML forms - Choisir le fichier + Find &Next + Résultat &suivant + + + F3 + F3 + + + Find &Previous + Chercher &précédent + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + Déboguer + + + + QScriptDebuggerCodeFinderWidget + + Close + Fermer + + + Previous + Précédent + + + Next + Suivant + + + Case Sensitive + Sensible à la casse + + + Whole words + Mots complets + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;La recherche est revenue au début + + + + QScriptDebuggerLocalsModel + + Name + Nom + + + Value + Valeur + + + + QScriptDebuggerStackModel + + Level + Niveau + + + Name + Nom + + + Location + Lieu + + + + QScriptEdit + + Toggle Breakpoint + Basculer le point d'arrêt + + + Disable Breakpoint + Désactiver le point d'arrêt + + + Enable Breakpoint + Activer le point d'arrêt + + + Breakpoint Condition: + Condition du point d'arrêt: + + + + QScriptEngineDebugger + + Loaded Scripts + Scripts chargés + + + Breakpoints + Points d'arrêt + + + Stack + Empiler + + + Locals + Locaux + + + Console + Console + + + Debug Output + Résultats du débogage + + + Error Log + Journal d'erreurs + + + Search + Chercher + + + View + Affichage + + + Qt Script Debugger + Débogueur de script Qt + + + + QScriptNewBreakpointWidget + + Close + Fermer + + + + QScrollBar + + Scroll here + Défiler jusqu'ici + + + Left edge + Extrême gauche + + + Top + En haut + + + Right edge + Extrême droite + + + Bottom + En bas + + + Page left + Page précédente + + + Page up + Page précédente + + + Page right + Page suivante + + + Page down + Page suivante + + + Scroll left + Défiler vers la gauche + + + Scroll up + Défiler vers le haut + + + Scroll right + Défiler vers la droite + + + Scroll down + Défiler vers le bas + + + Line up + Aligner + + + Position + Position + + + Line down + Aligner en-bas + + + + QSharedMemory + + %1: unable to set key on lock + %1 : impossible d'affecter la clé au verrou + + + %1: create size is less then 0 + %1 : taille de création est inférieur à 0 + + + %1: unable to lock + %1 : impossible de vérrouiller + + + %1: unable to unlock + %1 : impossible de déverrouiller + + + %1: permission denied + %1 : permission refusée + + + %1: already exists + %1 : existe déjà + + + %1: doesn't exists + %1 : n'existe pas + + + %1: out of resources + %1 : plus de ressources disponibles + + + %1: unknown error %2 + %1 : erreur inconnue %2 + + + %1: key is empty + %1 : clé vide + + + %1: unix key file doesn't exists + %1 : le fichier de clé unix n'existe pas + + + %1: ftok failed + %1 : ftok a échoué + + + %1: unable to make key + %1 : impossible de créer la clé + + + %1: system-imposed size restrictions + %1 : le système impose des restrictions sur la taille + + + %1: not attached + %1 : non attaché + + + %1: invalid size + %1 : taille invalide + + + %1: key error + %1 : erreur de clé + + + %1: size query failed + %1 : la requête de taille a échoué + + + %1: doesn't exist + %1: n'existe pas + + + %1: UNIX key file doesn't exist + %1: le fichier de clés UNIX n'existe pas + + + + QShortcut + + Space + 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. + Espace + + + Esc + Échap + + + Tab + Tab + + + Backtab + Tab arr + + + Backspace + Effacement + + + Return + Retour + + + Enter + Entrée + + + Ins + Inser + + + Del + Suppr + + + Pause + Pause + + + Print + Imprimer + + + SysReq + Syst + + + Home + Début + + + End + Fin + + + Left + Gauche + + + Up + Haut + + + Right + Droite + + + Down + Bas + + + PgUp + Page préc + + + PgDown + Page suiv + + + CapsLock + Verr maj + + + NumLock + Verr num + + + ScrollLock + Arrêt défil + + + Menu + Menu + + + Help + Aide + + + Back + Précédent (historique) + + + Forward + Successeur (historique) + + + Stop + Arrêter + + + Refresh + Rafraîchir + + + Volume Down + Volume bas + + + Volume Mute + Volume muet + + + Volume Up + Volume haut + + + + Bass Boost + Graves fort + + + Bass Up + Graves haut + + + Bass Down + Graves bas + + + Treble Up + Aigus haut + + + Treble Down + Aigus bas + + + Media Play + Média démarrer + + + Media Stop + Média arrêt + + + Media Previous + Média précédent + + + Media Next + Média suivant + + + Media Record + Média enregistrer + + + Favorites + Préférés + + + Search + Recherche + + + Standby + Attente + + + Open URL + Ouvrir URL + + + Launch Mail + Lancer courrier + + + Launch Media + Lancer média + + + Launch (0) + Lancer (0) + + + Launch (1) + Lancer (1) + + + Launch (2) + Lancer (2) + + + Launch (3) + Lancer (3) + + + Launch (4) + Lancer (4) + + + Launch (5) + Lancer (5) + + + Launch (6) + Lancer (6) + + + Launch (7) + Lancer (7) + + + Launch (8) + Lancer (8) + + + Launch (9) + Lancer (9) + + + Launch (A) + Lancer (A) + + + Launch (B) + Lancer (B) + + + Launch (C) + Lancer (C) + + + Launch (D) + Lancer (D) + + + Launch (E) + Lancer (E) + + + Launch (F) + Lancer (F) + + + Print Screen + Capture d'écran + + + Page Up + Page haut + + + Page Down + Page bas + + + Caps Lock + Verr Maj + + + Num Lock + Verr num + + + Number Lock + Verrouillage numérique + + + Scroll Lock + Arrêt défilement + + + Insert + Insérer + + + Delete + Supprimer + + + Escape + Échapement + + + System Request + Système + + + Select + Sélectionner + + + Yes + Oui + + + No + Non + + + Context1 + Contexte1 + + + Context2 + Contexte2 + + + Context3 + Contexte3 + + + Context4 + Contexte4 + + + Call + Button to start a call (note: a separate button is used to end the call) + Appeler + + + Hangup + Button to end a call (note: a separate button is used to start the call) + Raccrocher + + + Toggle Call/Hangup + Button that will hang up if we're in call, or make a call if we're not. + Décrocher/Raccrocher + + + Flip + Retourner + + + Voice Dial + Button to trigger voice dialling + Commande vocale + + + Last Number Redial + Button to redial the last number called + Bis + + + Camera Shutter + Button to trigger the camera shutter (take a picture) + Déclencheur appareil photo + + + Camera Focus + Button to focus the camera + Focus appareil photo + + + Kanji + + + + Muhenkan + + + + Henkan + + + + Romaji + + + + Hiragana + + + + Katakana + + + + Hiragana Katakana + + + + Zenkaku + + + + Hankaku + + + + Zenkaku Hankaku + + + + Touroku + + + + Massyo + + + + Kana Lock + + + + Kana Shift + + + + Eisu Shift + + + + Eisu toggle + + + + Code input + + + + Multiple Candidate + Candidat multiple + + + Previous Candidate + Candidat précédent + + + Hangul + + + + Hangul Start + Hangul début + + + Hangul End + Hangul Fin + + + Hangul Hanja + + + + Hangul Jamo + + + + Hangul Romaja + + + + Hangul Jeonja + + + + Hangul Banja + + + + Hangul PreHanja + + + + Hangul PostHanja + + + + Hangul Special + + + + Ctrl + Ctrl + + + Shift + Maj + + + Alt + Alt + + + Meta + Méta + + + + + + + + + F%1 + F%1 + + + Home Page + Page d'accueil + + + Media Pause + Media player pause button + Média pause + + + Toggle Media Play/Pause + Media player button to toggle between playing and paused + Média Lecture/Pause + + + Monitor Brightness Up + Augmenter la luminosité du moniteur + + + Monitor Brightness Down + Baisser la luminosité du moniteur + + + Keyboard Light On/Off + Avec/sans lumière clavier + + + Keyboard Brightness Up + Augmenter la luminosité du clavier + + + Keyboard Brightness Down + Baisser la luminosité du clavier + + + Power Off + Couper l'alimentation + + + Wake Up + Réveiller + + + Eject + Éjecter + + + Screensaver + Économiseur d'écran + + + WWW + WWW + + + Sleep + Dormir + + + LightBulb + Ampoule + + + Shop + Magasin + + + History + Historique + + + Add Favorite + Ajouter favori + + + Hot Links + Liens chauds + + + Adjust Brightness + Régler la luminosité + + + Finance + Finances + + + Community + Communauté + + + Audio Rewind + Audio arrière + + + Back Forward + Retour avant + + + Application Left + Application gauche + + + Application Right + Application droite + + + Book + Livre + + + CD + CD + + + Calculator + Calculatrice + + + Clear + Effacer + + + Clear Grab + Effacer la prise + + + Close + Fermer + + + Copy + Copier + + + Cut + Couper + + + Display + Affichage + + + DOS + DOS + + + Documents + Documents + + + Spreadsheet + Feuille de calcul + + + Browser + Navigateur + + + Game + Jeu + + + Go + Aller + + + iTouch + iTouch + + + Logoff + Fermer une session + + + Market + Marché + + + Meeting + Réunion + + + Keyboard Menu + Menu du clavier + + + Menu PB + Menu PB + + + My Sites + Mes sites + + + News + Actualités + + + Home Office + Bureau à domicile + + + Option + Option + + + Paste + Coller + + + Phone + Téléphone + + + Reply + Répondre + + + Reload + Recharger + + + Rotate Windows + Faire tourner la fenêtre + + + Rotation PB + Rotation PB + + + Rotation KB + Rotation KB + + + Save + Enregistrer + + + Send + Envoyer + + + Spellchecker + Correcteur orthographique + + + Split Screen + Partager l'écran + + + Support + Supporter + + + Task Panel + Panneau de tâches + + + Terminal + Terminal + + + Tools + Outils + + + Travel + Voyager + + + Video + Vidéo + + + Word Processor + Traitement de texte + + + XFer + XFer + + + Zoom In + Agrandir + + + Zoom Out + Rétrécir + + + Away + Absent + + + Messenger + Messagerie instantanée + + + WebCam + Webcaméra + + + Mail Forward + Faire suivre l'e-mail + + + Pictures + Images + + + Music + Musique + + + Battery + Batterie + + + Bluetooth + Bluetooth + + + Wireless + Sans fil + + + Ultra Wide Band + Bande ultralarge + + + Audio Forward + Audio avant + + + Audio Repeat + Audio répéter + + + Audio Random Play + Audio lecture aléatoire + + + Subtitle + Sous-titre + + + Audio Cycle Track + Audio répéter la piste + + + Time + Heure + + + View + Affichage + + + Top Menu + Haut du menu + + + Suspend + Suspendre + + + Hibernate + Hiberner + + + + QSlider + + Page left + Page précédente + + + Page up + Page précédente + + + Position + Position + + + Page right + Page suivante + + + Page down + Page suivante + + + + QSocks5SocketEngine + + Connection to proxy refused + Connexion au proxy refusée + + + Connection to proxy closed prematurely + connexion au proxy fermée prématurément + + + Proxy host not found + Hôte proxy introuvable + + + Connection to proxy timed out + Connexion au proxy expirée + + + Proxy authentication failed + L'authentification proxy a échoué + + + Proxy authentication failed: %1 + L'authentification proxy a échoué : %1 + + + SOCKS version 5 protocol error + Erreur de protocole SOCKS version 5 + + + General SOCKSv5 server failure + Erreur générale du serveur SOCKSv5 + + + Connection not allowed by SOCKSv5 server + Connexion refusée par le serveur SOCKSv5 + + + TTL expired + TTL expiré + + + SOCKSv5 command not supported + Commande SOCKSv5 non supportée + + + Address type not supported + Type d'adresse non supporté + + + Unknown SOCKSv5 proxy error code 0x%1 + Erreur proxy SOCKSv5 inconnue : 0x%1 + + + Socks5 timeout error connecting to socks server + Erreur d'expiration socks5 lors de l'établissement d'une connexion au serveur socks + + + Network operation timed out + L'opération réseau a expiré + + + + QSoftKeyManager + + Ok + OK + + + Select + Sélectionner + + + Done + Terminer + + + Options + Options + + + Cancel + Annuler - - No file selected - text to display in file button used in HTML forms when no file is selected - Pas de fichier sélectionné + Exit + Quitter + + + QSpinBox - - Open in New Window - Open in New Window context menu item - Ouvrir dans une Nouvelle Fenêtre + More + Plus - - Save Link... - Download Linked File context menu item - Enregistrer le lien... + Less + Moins + + + QSql - - Copy Link - Copy Link context menu item - Copier le lien + Delete + Supprimer - - Open Image - Open Image in New Window context menu item - Ouvrir l'image + Delete this record? + Supprimer cet enregistrement ? - - Save Image - Download Image context menu item - Enregistrer l'image + Yes + Oui - - Copy Image - Copy Link context menu item - Copier l'image + No + Non - - Open Frame - Open Frame in New Window context menu item - Ouvrir le cadre + Insert + Insérer - - Copy - Copy context menu item - Copier + Update + Actualiser - - Go Back - Back context menu item - Précédent + Save edits? + Enregistrer les modifications ? - - Go Forward - Forward context menu item - Suivant + Cancel + Annuler - - Stop - Stop context menu item - Stop + Confirm + Confirmer - - Reload - Reload context menu item - Recharger + Cancel your edits? + Annuler vos modifications ? + + + QSslSocket - - Cut - Cut context menu item - Couper + Unable to write data: %1 + Impossible d'écrire les données : %1 - - Paste - Paste context menu item - Coller + Error while reading: %1 + Erreur lors de la lecture : %1 - - No Guesses Found - No Guesses Found context menu item - Pas de candidat trouvés + Error during SSL handshake: %1 + Erreur lors de la poignée de main SSL : %1 - - Ignore - Ignore Spelling context menu item - Ignorer + Error creating SSL context (%1) + Erreur lors de la création du contexte SSL (%1) - - Add To Dictionary - Learn Spelling context menu item - Ajouter au dictionnaire + Invalid or empty cipher list (%1) + La list de chiffrements est invalide ou vide (%1) - - Search The Web - Search The Web context menu item - Chercher sur le Web + Error creating SSL session, %1 + Erreur lors de la création de la session SSL, %1 - - Look Up In Dictionary - Look Up in Dictionary context menu item - Chercher dans le dictionnaire + Error creating SSL session: %1 + Erreur lors de la création de la session SSL : %1 - - Open Link - Open Link context menu item - Ouvrir le lien + Cannot provide a certificate with no key, %1 + Impossible de fournir un certificat sans clé, %1 - - Ignore - Ignore Grammar context menu item - Ignorer + Error loading local certificate, %1 + Erreur lors du chargement du certificat local, %1 - - Spelling - Spelling and Grammar context sub-menu item - Orthographe + Error loading private key, %1 + Erreur lors du chargement de la clé privée, %1 - - Show Spelling and Grammar - menu item title - Afficher Orthographe et Grammaire + Private key do not certificate public key, %1 + La clé privée ne certifie pas la clé publique, %1 - - Hide Spelling and Grammar - menu item title - Cacher Orthographe et Grammaire + Private key does not certificate public key, %1 + La clé privée ne certifie pas la clé publique, %1 - - Check Spelling - Check spelling context menu item - Vérifier l'orthographe + Unable to decrypt data: %1 + Impossible de décrypter les données: %1 - - Check Spelling While Typing - Check spelling while typing context menu item - Vérifier l'orthographe pendant la saisie + Private key does not certify public key, %1 + La clé privée ne certifie pas la clé publique, %1 - - Check Grammar With Spelling - Check grammar with spelling context menu item - Vérifier la grammaire en même temps que l'orthographe + No error + Aucune erreur - - Fonts - Font context sub-menu item - Polices + The issuer certificate could not be found + Le certificat de l'émetteur est introuvable - - Bold - Bold context menu item - Gras + The certificate signature could not be decrypted + La signature du certificat n'a pas pu être vérifiée - - Italic - Italic context menu item - Italique + The public key in the certificate could not be read + La clé publique du certificat n'a pas pu être lue - - Underline - Underline context menu item - Souligné + The signature of the certificate is invalid + La signature du certificat n'est pas valide - - Outline - Outline context menu item - Contour + The certificate is not yet valid + Le certificat n'est pas encore valide - - Direction - Writing direction context sub-menu item - + The certificate has expired + Le certificat a expiré - - Text Direction - Text direction context sub-menu item - Orientation du texte + The certificate's notBefore field contains an invalid time + Le champ pasAvant du certificat inclut une heure non valide - - Default - Default writing direction context menu item - Défaut + The certificate's notAfter field contains an invalid time + Le champ pasAprès du certificat inclut une heure non valide - - LTR - Left to Right context menu item - De la gauche vers la droite + The certificate is self-signed, and untrusted + Le certificat n'est pas sécurisé car auto-signé - - RTL - Right to Left context menu item - De la droite vers la gauche + The root certificate of the certificate chain is self-signed, and untrusted + Le certificat racine de la chaîne de certificats n'est pas sécurisé car signé automatiquement - - Inspect - Inspect Element context menu item - Inspecter + The issuer certificate of a locally looked up certificate could not be found + Le certificat de l'émetteur d'un certificat converti localement est introuvable - - No recent searches - Label for only item in menu that appears when clicking on the search field image, when no searches have been performed - Pas de recherche récente + No certificates could be verified + Aucun certificat n'a pu être vérifié - - Recent searches - label for first item in the menu that appears when clicking on the search field image, used as embedded menu title - Recherches récentes + One of the CA certificates is invalid + L'un des certificats CA n'est pas valide - - Clear recent searches - menu item in Recent Searches menu that empties menu's contents - Effacer les recherches récentes + The basicConstraints path length parameter has been exceeded + Le paramètre de longueur du chemin basicConstraints a été dépassé - - Unknown - Unknown filesize FTP directory listing item - Inconnu + The supplied certificate is unsuitable for this purpose + Le certificat fourni ne convient pas pour cet objectif - - %1 (%2x%3 pixels) - Title string for images - %1 (%2x%3 pixels) + The root CA certificate is not trusted for this purpose + Le certificat CA racine n'est pas sécurisé pour cet objectif + + + The root CA certificate is marked to reject the specified purpose + Le certificat CA racine est marqué pour rejeter l'objectif spécifié + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + Le certificat de l'émetteur candidat actuel a été rejeté car le nom de son sujet ne correspondait pas au nom de l'émetteur du certificat actuel + + + 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 + Le certificat de l'émetteur candidat actuel a été rejeté car le nom de son sujet et son numéro de série étaient présents et ne correspondaient pas à l'identifiant de la clé d'autorité du certificat actuel + + + The peer did not present any certificate + Le poste ne contient aucun certificat + + + The host name did not match any of the valid hosts for this certificate + Le nom d'hôte ne correspondait à aucun des hôtes valides pour ce certificat + + + Unknown error + Erreur inconnue + + + + QStateMachine + + Missing initial state in compound state '%1' + État initial manquant dans l'état composé '%1' - Web Inspector - %2 - Inspecteur Web - %2 + Missing default state in history state '%1' + État par défaut manquant dans l'état de l'historique '%1' - Bad HTTP request - Requête HTTP erronée + No common ancestor for targets and source of transition from state '%1' + Aucun ancêtre commun pour les cibles et la source de transition de l'état '%1' - - This is a searchable index. Enter search keywords: - text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' - Ceci est un index. Veuillez saisir les mots-clé : + Unknown error + Erreur inconnue + + + QSystemSemaphore - Scroll here - Défiler jusqu'ici + %1: out of resources + %1: plus de ressources disponibles - Left edge - À gauche + %1: permission denied + %1: permission refusée - Top - Haut + %1: already exists + %1 : existe déjà - Right edge - À droite + %1: does not exist + %1 : n'existe pas - Bottom - En bas + %1: unknown error %2 + %1: erreur inconnue %2 + + + QTDSDriver - Page left - Page gauche + Unable to open connection + Impossible d'ouvrir la connexion - Page up - Page haut + Unable to use database + Impossible d'utiliser la base de données + + + QTabBar - Page right - Page droite + Scroll Left + Défiler vers la gauche - Page down - Page bas + Scroll Right + Défiler vers la droite + + + QTcpServer - Scroll left - Défiler vers la gauche + Socket operation unsupported + Operation socket non supportée - Scroll up - Défiler vers le haut + Operation on socket is not supported + Opération sur le socket non supportée + + + QTextControl - Scroll right - Défiler vers la droite + &Undo + &Annuler - Scroll down - Défiler vers le bas + &Redo + &Rétablir - - - %n file(s) - number of chosen file - - %n fichier - %n fichiers - + + Cu&t + Co&uper - JavaScript Alert - %1 - Alerte JavaScript - %1 + &Copy + Cop&ier - JavaScript Confirm - %1 - Confirmation JavaScript - %1 + Copy &Link Location + Copier l'adresse du &lien - JavaScript Prompt - %1 - Invite JavaScript - %1 + &Paste + Co&ller - Move the cursor to the next character - Déplacer le curseur au caractère suivant + Delete + Supprimer - Move the cursor to the previous character - Déplacer le curseur au caractère précédent + Select All + Tout sélectionner + + + QToolButton - Move the cursor to the next word - Déplacer le curseur au mot suivant + Press + Appuyer - Move the cursor to the previous word - Déplacer le curseur au mot précédent + Open + Ouvrir + + + QUdpSocket - Move the cursor to the next line - Déplacer le curseur à la ligne suivante + This platform does not support IPv6 + Cette plateforme ne supporte pas IPv6 + + + QUndoGroup - Move the cursor to the previous line - Déplacer le curseur à la ligne précédente + Undo + Annuler - Move the cursor to the start of the line - Déplacer le curseur en début de ligne + Redo + Rétablir + + + QUndoModel - Move the cursor to the end of the line - Déplacer le curseur en fin de ligne + <empty> + <vide> + + + QUndoStack - Move the cursor to the start of the block - Déplacer le curseur au début du paragraphe + Undo + Annuler - Move the cursor to the end of the block - Déplacer le curseur à la fin du paragraphe + Redo + Rétablir + + + QUnicodeControlCharacterMenu - Move the cursor to the start of the document - Déplacer le curseur en début de document + LRM Left-to-right mark + LRM Left-to-right mark - Move the cursor to the end of the document - Déplacer le curseur en fin de document + RLM Right-to-left mark + RLM Right-to-left mark - Select all - Tout sélectionner + ZWJ Zero width joiner + ZWJ Zero width joiner - Select to the next character - Sélectionner jusqu'au caractère suivant + ZWNJ Zero width non-joiner + ZWNJ Zero width non-joiner - Select to the previous character - Sélectionner jusqu'au caractère précédent + ZWSP Zero width space + ZWSP Zero width space - Select to the next word - Sélectionner jusqu'au mot suivant + LRE Start of left-to-right embedding + LRE Start of left-to-right embedding - Select to the previous word - Sélectionner jusqu'au mot précédent + RLE Start of right-to-left embedding + RLE Start of right-to-left embedding - Select to the next line - Sélectionner jusqu'à la ligne suivante + LRO Start of left-to-right override + LRO Start of left-to-right override - Select to the previous line - Sélectionner jusqu'à la ligne précédente + RLO Start of right-to-left override + RLO Start of right-to-left override - Select to the start of the line - Sélectionner jusqu'en début de ligne + PDF Pop directional formatting + PDF Pop directional formatting - Select to the end of the line - Sélectionner jusqu'en fin de ligne + Insert Unicode control character + Insérer caractère de contrôle Unicode + + + QWebFrame - Select to the start of the block - Sélectionner jusqu'au début du paragraphe + Request cancelled + Requête annulée - Select to the end of the block - Sélectionner jusqu'à la fin du paragraphe + Request blocked + Requête bloquée - Select to the start of the document - Sélectionner jusqu'au début du document + Cannot show URL + Impossible d'afficher l'URL - Select to the end of the document - Sélectionner jusqu'à la fin du document + Frame load interruped by policy change + Chargement de la frame interrompu par un changement de configuration - Delete to the start of the word - Supprimer jusqu'au début du mot + Cannot show mimetype + Impossible d'afficher le mimetype - Delete to the end of the word - Supprimer jusqu'à la fin du mot + File does not exist + Le fichier n'existe pas - Insert a new paragraph - Insérer un nouveau paragraphe + Frame load interrupted by policy change + Chargement du cadre interrompue par le changement de stratégie + + + QWebPage - Insert a new line - Insérer une nouvelle ligne + Submit + default label for Submit buttons in forms on web pages + Soumettre Submit + Submit (input element) alt text for <input> elements with no alt, title, or value Soumettre Reset + default label for Reset buttons in forms on web pages Réinitialiser + Searchable Index + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Index recherchable + + Choose File + title for file button used in HTML forms Choisir le fichier No file selected + text to display in file button used in HTML forms when no file is selected Pas de fichier sélectionné Open in New Window + Open in New Window context menu item Ouvrir dans une Nouvelle Fenêtre Save Link... - Enregistrer la cible du lien... + Download Linked File context menu item + Enregistrer le lien... Copy Link + Copy Link context menu item Copier le lien Open Image + Open Image in New Window context menu item Ouvrir l'image Save Image + Download Image context menu item Enregistrer l'image Copy Image + Copy Link context menu item Copier l'image Open Frame + Open Frame in New Window context menu item Ouvrir le cadre Copy + Copy context menu item Copier Go Back + Back context menu item Précédent Go Forward + Forward context menu item Suivant Stop - Stop + Stop context menu item + Arrêter Reload + Reload context menu item Recharger Cut + Cut context menu item Couper Paste + Paste context menu item Coller No Guesses Found + No Guesses Found context menu item Pas de candidat trouvés Ignore + Ignore Spelling context menu item Ignorer Add To Dictionary + Learn Spelling context menu item Ajouter au dictionnaire Search The Web + Search The Web context menu item Chercher sur le Web Look Up In Dictionary + Look Up in Dictionary context menu item Chercher dans le dictionnaire Open Link + Open Link context menu item Ouvrir le lien + Ignore + Ignore Grammar context menu item + Ignorer + + Spelling + Spelling and Grammar context sub-menu item Orthographe Show Spelling and Grammar + menu item title Afficher Orthographe et Grammaire Hide Spelling and Grammar + menu item title Cacher Orthographe et Grammaire Check Spelling + Check spelling context menu item Vérifier l'orthographe Check Spelling While Typing + Check spelling while typing context menu item Vérifier l'orthographe pendant la saisie Check Grammar With Spelling + Check grammar with spelling context menu item Vérifier la grammaire en même temps que l'orthographe Fonts + Font context sub-menu item Polices Bold + Bold context menu item Gras Italic + Italic context menu item Italique Underline + Underline context menu item Souligné Outline + Outline context menu item Contour Direction - Direction + Writing direction context sub-menu item + Text Direction + Text direction context sub-menu item Orientation du texte Default - Défaut + Default writing direction context menu item + Par défaut Left to Right + Left to Right context menu item Gauche à droite Right to Left + Right to Left context menu item Droite à gauche Loading... + Media controller status message when the media is loading Chargement... Live Broadcast + Media controller status message when watching a live broadcast Diffusion en direct Audio Element + Media controller element Élément audio Video Element + Media controller element Élément vidéo Mute Button + Media controller element Bouton de désactivation du son Unmute Button + Media controller element Bouton de réactivation du son Play Button + Media controller element Bouton de lecture Pause Button + Media controller element Bouton de pause Slider + Media controller element Barre de défilement Slider Thumb + Media controller element Curseur de la barre de défilement Rewind Button + Media controller element Bouton de retour en arrière Return to Real-time Button + Media controller element Bouton de retour au temps réel Elapsed Time + Media controller element Temps écoulé Remaining Time + Media controller element Durée restante Status Display + Media controller element Affichage de l'état Fullscreen Button + Media controller element Bouton de plein écran Seek Forward Button + Media controller element Bouton de recherche avant Seek Back Button + Media controller element Bouton de recherche arrière Audio element playback controls and status display + Media controller element Commandes de lecture et affichage de l'état de l'élément audio Video element playback controls and status display + Media controller element Commandes de lecture et affichage de l'état de l'élément vidéo Mute audio tracks + Media controller element Couper le son des pistes audio Unmute audio tracks + Media controller element Réactiver le son des pistes audio Begin playback + Media controller element Commencer la lecture Pause playback + Media controller element Pause lecture Movie time scrubber - Épurateur de la durée du film + Media controller element + Balayeur de durée du film Movie time scrubber thumb - Case de défilement de l'épurateur de la durée du film + Media controller element + Case de défilement du balayeur de la durée du film Rewind movie + Media controller element Rembobiner le film Return streaming movie to real-time + Media controller element Ramener le film en streaming en temps réel Current movie time - Durée du film actuel + Media controller element + Durée du film en cours Remaining movie time + Media controller element Durée de film restante Current movie status + Media controller element État du film actuel Play movie in full-screen mode + Media controller element Regarder le film en mode plein écran Seek quickly back + Media controller element Recherche rapide arrière Seek quickly forward + Media controller element Recherche rapide avant Indefinite time + Media time description Durée indéfinie %1 days %2 hours %3 minutes %4 seconds + Media time description %1 jours %2 heures %3 minutes %4 secondes %1 hours %2 minutes %3 seconds + Media time description %1 heures %2 minutes %3 secondes %1 minutes %2 seconds + Media time description %1 minutes %2 secondes %1 seconds + Media time description %1 secondes + LTR + Left to Right context menu item + De la gauche vers la droite + + + RTL + Right to Left context menu item + De la droite vers la gauche + + Inspect + Inspect Element context menu item Inspecter No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed Pas de recherche récente Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title Recherches récentes Clear recent searches + menu item in Recent Searches menu that empties menu's contents Effacer les recherches récentes + Missing Plug-in + Label text to be used when a plug-in is missing + Plug-in manquant + + Unknown + Unknown filesize FTP directory listing item Inconnu %1 (%2x%3 pixels) + Title string for images %1 (%2x%3 pixels) - This is a searchable index. Enter search keywords: - Ceci est un index. Veuillez saisir les mots-clé : - - - %n file(s) - - - - - - JavaScript Problem - %1 - Problème de JavaScript - %1 - - - The script on this page appears to have a problem. Do you want to stop the script? - Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script? - - - Paste and Match Style - Coller et suivre le style - - - Remove formatting - Retirer la mise en forme - - - Strikethrough - Barré - - - Subscript - Indice + Web Inspector - %2 + Inspecteur Web - %2 - Superscript - Exposant + Redirection limit reached + Limite de redirection atteinte - Insert Bulleted List - Insérer une liste à puces + Bad HTTP request + Requête HTTP erronée - Insert Numbered List - Insérer une liste numérotée + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Ceci est un index. Veuillez saisir les mots-clé : - Indent - Retrait + Scroll here + Défiler jusqu'ici - Outdent - Retrait négatif + Left edge + À gauche - Center - Centré + Top + Haut - Justify - Justifié + Right edge + À droite - Align Left - Aligner à gauche + Bottom + En bas - Align Right - Aligner à droite + Page left + Page gauche - - - QWhatsThisAction - What's This? - Qu'est-ce que c'est ? + Page up + Page haut - - - QWidget - * - + Page right + Page droite - - - QWizard - Go Back - Précédent + Page down + Page bas - Continue - Continuer + Scroll left + Défiler vers la gauche - Commit - si il s'agit de commit au même sens que git... (en même temps se marier en cliquant... ?!!?!) - Soumettre + Scroll up + Défiler vers le haut - Done - Terminer + Scroll right + Défiler vers la droite - Quit - Quitter + Scroll down + Défiler vers le bas - - Help - Aide + + %n file(s) + number of chosen file + + %n fichier + %n fichiers + - < &Back - < &Précédent + JavaScript Alert - %1 + Alerte JavaScript - %1 - &Finish - &Terminer + JavaScript Confirm - %1 + Confirmation JavaScript - %1 - Cancel - Annuler + JavaScript Prompt - %1 + Invite JavaScript - %1 - &Help - &Aide + Move the cursor to the next character + Déplacer le curseur au caractère suivant - &Next - &Suivant > + Move the cursor to the previous character + Déplacer le curseur au caractère précédent - &Next > - &Suivant > + Move the cursor to the next word + Déplacer le curseur au mot suivant - - - QWorkspace - &Restore - &Restaurer + Move the cursor to the previous word + Déplacer le curseur au mot précédent - &Move - &Déplacer + Move the cursor to the next line + Déplacer le curseur à la ligne suivante - &Size - &Taille + Move the cursor to the previous line + Déplacer le curseur à la ligne précédente - Mi&nimize - Réd&uire + Move the cursor to the start of the line + Déplacer le curseur en début de ligne - Ma&ximize - Ma&ximiser + Move the cursor to the end of the line + Déplacer le curseur en fin de ligne - &Close - &Fermer + Move the cursor to the start of the block + Déplacer le curseur au début du paragraphe - Stay on &Top - Rester au &premier plan + Move the cursor to the end of the block + Déplacer le curseur à la fin du paragraphe - Minimize - Réduire + Move the cursor to the start of the document + Déplacer le curseur en début de document - Restore Down - Restaurer en bas + Move the cursor to the end of the document + Déplacer le curseur en fin de document - Close - Fermer + Select all + Tout sélectionner - Sh&ade - Enrou&ler + Select to the next character + Sélectionner jusqu'au caractère suivant - %1 - [%2] - %1 - [%2] + Select to the previous character + Sélectionner jusqu'au caractère précédent - &Unshade - Dér&ouler + Select to the next word + Sélectionner jusqu'au mot suivant - - - QXml - no error occurred - aucune erreur ne s'est produite + Select to the previous word + Sélectionner jusqu'au mot précédent - error triggered by consumer - + Select to the next line + Sélectionner jusqu'à la ligne suivante - unexpected end of file - + Select to the previous line + Sélectionner jusqu'à la ligne précédente - more than one document type definition - + Select to the start of the line + Sélectionner jusqu'en début de ligne - error occurred while parsing element - + Select to the end of the line + Sélectionner jusqu'en fin de ligne - tag mismatch - + Select to the start of the block + Sélectionner jusqu'au début du paragraphe - error occurred while parsing content - + Select to the end of the block + Sélectionner jusqu'à la fin du paragraphe - unexpected character - + Select to the start of the document + Sélectionner jusqu'au début du document - invalid name for processing instruction - + Select to the end of the document + Sélectionner jusqu'à la fin du document - version expected while reading the XML declaration - + Delete to the start of the word + Supprimer jusqu'au début du mot - wrong value for standalone declaration - + Delete to the end of the word + Supprimer jusqu'à la fin du mot - error occurred while parsing document type definition - + Insert a new paragraph + Insérer un nouveau paragraphe - letter is expected - + Insert a new line + Insérer une nouvelle ligne - error occurred while parsing comment - + Submit + Soumettre - error occurred while parsing reference - + Reset + Réinitialiser - internal general entity reference not allowed in DTD - + Choose File + Choisir le fichier - external parsed general entity reference not allowed in attribute value - + No file selected + Pas de fichier sélectionné - external parsed general entity reference not allowed in DTD - + Open in New Window + Ouvrir dans une Nouvelle Fenêtre - unparsed entity reference in wrong context - + Save Link... + Enregistrer la cible du lien... - recursive entities - + Copy Link + Copier le lien - error in the text declaration of an external entity - + Open Image + Ouvrir l'image - encoding declaration or standalone declaration expected while reading the XML declaration - + Save Image + Enregistrer l'image - standalone declaration expected while reading the XML declaration - + Copy Image + Copier l'image - - - QXmlStream - Extra content at end of document. - + Open Frame + Ouvrir le cadre - Invalid entity value. - + Copy + Copier - Invalid XML character. - + Go Back + Précédent - Sequence ']]>' not allowed in content. - + Go Forward + Suivant - Namespace prefix '%1' not declared - + Stop + Stop - Attribute redefined. - + Reload + Recharger - Unexpected character '%1' in public id literal. - + Cut + Couper - Invalid XML version string. - + Paste + Coller - Unsupported XML version. - + No Guesses Found + Pas de candidat trouvés - %1 is an invalid encoding name. - + Ignore + Ignorer - Encoding %1 is unsupported - + Add To Dictionary + Ajouter au dictionnaire - Invalid XML encoding name. - Encodage XML invalide. + Search The Web + Chercher sur le Web - Standalone accepts only yes or no. - + Look Up In Dictionary + Chercher dans le dictionnaire - Invalid attribute in XML declaration. - + Open Link + Ouvrir le lien - Premature end of document. - + Spelling + Orthographe - Invalid document. - + Show Spelling and Grammar + Afficher Orthographe et Grammaire - Expected - + Hide Spelling and Grammar + Cacher Orthographe et Grammaire - , but got ' - + Check Spelling + Vérifier l'orthographe - Unexpected ' - + Check Spelling While Typing + Vérifier l'orthographe pendant la saisie - Expected character data. - + Check Grammar With Spelling + Vérifier la grammaire en même temps que l'orthographe - Recursive entity detected. - + Fonts + Polices - Start tag expected. - + Bold + Gras - XML declaration not at start of document. - + Italic + Italique - NDATA in parameter entity declaration. - + Underline + Souligné - %1 is an invalid processing instruction name. - + Outline + Contour - Invalid processing instruction name. - + Direction + Direction - Illegal namespace declaration. - + Text Direction + Orientation du texte - Invalid XML name. - + Default + Défaut - Opening and ending tag mismatch. - + Left to Right + Gauche à droite - Reference to unparsed entity '%1'. - + Right to Left + Droite à gauche - Entity '%1' not declared. - + Loading... + Chargement... - Reference to external entity '%1' in attribute value. - + Live Broadcast + Diffusion en direct - Invalid character reference. - + Audio Element + Élément audio - Encountered incorrectly encoded content. - + Video Element + Élément vidéo - The standalone pseudo attribute must appear after the encoding. - + Mute Button + Bouton de désactivation du son - %1 is an invalid PUBLIC identifier. - + Unmute Button + Bouton de réactivation du son - - - QtXmlPatterns - - An %1-attribute with value %2 has already been declared. - Un attribute %1 avec la valeur %2 est déjà déclaré. + Play Button + Bouton de lecture - - An %1-attribute must have a valid %2 as value, which %3 isn't. - Un attribute %1 doit avoir un %2 valide, %3 ne l'a pas. + Pause Button + Bouton de pause - Network timeout. - Le réseau ne répond pas. + Slider + Barre de défilement - Element %1 can't be serialized because it appears outside the document element. - L'élément %1 ne peut pas être sérialisé parce qu'il est hors de l'élément document. + Slider Thumb + Curseur de la barre de défilement - Attribute element %1 can't be serialized because it appears at the top level. - L'élément attribute %1 ne peut pas être sérialisé parce qu'il apparaît comme racine. + Rewind Button + Bouton de retour en arrière - Year %1 is invalid because it begins with %2. - L'année %1 est invalide parce qu'elle commence par %2. + Return to Real-time Button + Bouton de retour au temps réel - Day %1 is outside the range %2..%3. - Le jour %1 est hors de l'intervalle %2..%3. + Elapsed Time + Temps écoulé - Month %1 is outside the range %2..%3. - Le mois %1 est hors de l'intervalle %2..%3. + Remaining Time + Durée restante - Overflow: Can't represent date %1. - Overflow: ne peut pas représenter la date %1. + Status Display + Affichage de l'état - Day %1 is invalid for month %2. - Jour %1 est invalide pour le mois %2. + Fullscreen Button + Bouton de plein écran - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; - L'heure 24:%1:%2.%3 est invalide. L'heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0; + Seek Forward Button + Bouton de recherche avant - Time %1:%2:%3.%4 is invalid. - L'heure %1:%2:%3.%4 est invalide. + Seek Back Button + Bouton de recherche arrière - Overflow: Date can't be represented. - Overflow : la date ne peut pas être représentée. + Audio element playback controls and status display + Commandes de lecture et affichage de l'état de l'élément audio - At least one component must be present. - Au moins un composant doit être présent. + Video element playback controls and status display + Commandes de lecture et affichage de l'état de l'élément vidéo - At least one time component must appear after the %1-delimiter. - Au moins un composant doit apparaître après le délimiteur %1. + Mute audio tracks + Couper le son des pistes audio - - No operand in an integer division, %1, can be %2. - Pas d'opérande dans une division entière, %1, peut être %2. + Unmute audio tracks + Réactiver le son des pistes audio - - The first operand in an integer division, %1, cannot be infinity (%2). - Le premier opérande dans une division entière, %1, ne peut être infini (%2). + Begin playback + Commencer la lecture - - The second operand in a division, %1, cannot be zero (%2). - Le second opérande dans une division, %1, ne peut être nul (%2). + Pause playback + Pause lecture - %1 is not a valid value of type %2. - %1 n'est pas une valeur valide du type %2. + Movie time scrubber + Épurateur de la durée du film - When casting to %1 from %2, the source value cannot be %3. - En castant de %2 vers %1, la valeur source ne peut pas être %3. + Movie time scrubber thumb + Case de défilement de l'épurateur de la durée du film - Integer division (%1) by zero (%2) is undefined. - Division entière (%1) par zéro (%2) indéfinie. + Rewind movie + Rembobiner le film - Division (%1) by zero (%2) is undefined. - Division (%1) par zéro (%2) indéfinie. + Return streaming movie to real-time + Ramener le film en streaming en temps réel - Modulus division (%1) by zero (%2) is undefined. - Module division (%1) par zéro (%2) indéfinie. + Current movie time + Durée du film actuel - Dividing a value of type %1 by %2 (not-a-number) is not allowed. - Diviser une valeur du type %1 par %2 (not-a-number) est interdit. + Remaining movie time + Durée de film restante - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. - Diviser une valeur de type %1 par %2 ou %3 (plus ou moins zéro) est interdit. + Current movie status + État du film actuel - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. - La multiplication d'une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite. + Play movie in full-screen mode + Regarder le film en mode plein écran - A value of type %1 cannot have an Effective Boolean Value. - Une valeur de type %1 ne peut pas avoir une Effective Boolean Value. + Seek quickly back + Recherche rapide arrière - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. - Effective Boolean Value ne peut être calculée pour une séquence contenant deux ou plus valeurs atomiques. + Seek quickly forward + Recherche rapide avant - Value %1 of type %2 exceeds maximum (%3). - La valeur %1 de type %2 excède le maximum (%3). + Indefinite time + Durée indéfinie - Value %1 of type %2 is below minimum (%3). - La valeur %1 de type %2 est inférieur au minimum (%3). + %1 days %2 hours %3 minutes %4 seconds + %1 jours %2 heures %3 minutes %4 secondes - A value of type %1 must contain an even number of digits. The value %2 does not. - Une valeur de type %1 doit contenir un nombre pair de chiffre. La valeur %2 n'est pas conforme. + %1 hours %2 minutes %3 seconds + %1 heures %2 minutes %3 secondes - %1 is not valid as a value of type %2. - %1 n'est pas une valeur valide de type %2. + %1 minutes %2 seconds + %1 minutes %2 secondes - Operator %1 cannot be used on type %2. - L'opérateur %1 ne peut pas être utilisé pour le type %2. + %1 seconds + %1 secondes - Operator %1 cannot be used on atomic values of type %2 and %3. - L'opérateur %1 ne peut pas être utilisé pour des valeurs atomiques de type %2 ou %3. + Inspect + Inspecter - The namespace URI in the name for a computed attribute cannot be %1. - L'URI de namespace dans le nom d'un attribut calculé ne peut pas être %1. + No recent searches + Pas de recherche récente - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. - Le nom d'un attribut calculé ne peut pas avoir l'URI de namespace %1 avec le nom local %2. + Recent searches + Recherches récentes - Type error in cast, expected %1, received %2. - Erreur de type lors du cast, attendu %1 mais reçu %2. + Clear recent searches + Effacer les recherches récentes - 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. - En castant vers %1 ou des types dérivés, la valeur source doit être du même type ou une chaîne. Le type %2 n'est pas autorisé. + Unknown + Inconnu - - No casting is possible with %1 as the target type. - Aucun cast n'est possible avec %1 comme type de destination. + %1 (%2x%3 pixels) + %1 (%2x%3 pixels) - - It is not possible to cast from %1 to %2. - Il est impossible de caster de %1 en %2. + This is a searchable index. Enter search keywords: + Ceci est un index. Veuillez saisir les mots-clé : - - Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. - Caster vers %1 est impossible parce que c'est un type abstrait qui ne peut donc être instancié. + JavaScript Problem - %1 + Problème de JavaScript - %1 - - It's not possible to cast the value %1 of type %2 to %3 - I lest impossible de caster la valeur %1 de type %2 en %3 + The script on this page appears to have a problem. Do you want to stop the script? + Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script? - - Failure when casting from %1 to %2: %3 - Echec en castant de %1 ver %2 : %3 + Paste and Match Style + Coller et suivre le style - A comment cannot contain %1 - Un commentaire ne peut pas contenir %1 + Remove formatting + Retirer la mise en forme - A comment cannot end with a %1. - Un commentaire ne peut pas finir par %1. + Strikethrough + Barré - - No comparisons can be done involving the type %1. - Aucune comparaison ne peut être faite avec le type %1. + Subscript + Indice - - Operator %1 is not available between atomic values of type %2 and %3. - L'opérateur %1 n'est pas disponible entre valeurs atomiques de type %2 et %3. + Superscript + Exposant - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. - Un noeuds attribut ne peut être un fils d'un noeuds document. C'est pourquoi l'attribut %1 est mal placé. + Insert Bulleted List + Insérer une liste à puces - A library module cannot be evaluated directly. It must be imported from a main module. - Un module de bibliothèque ne peut pas être évalué directement. Il doit être importé d'un module principal. + Insert Numbered List + Insérer une liste numérotée - No template by name %1 exists. - Aucun template nommé %1 n'existe. + Indent + Retrait - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. - Une valeur de type %1 ne peut être un prédicat. Un prédicat doit être de type numérique ou un Effective Boolean Value. + Outdent + Retrait négatif - A positional predicate must evaluate to a single numeric value. - Un prédicat de position doit être évalué en une unique valeur numérique. + Center + Centré - - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. - Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide. + Justify + Justifié - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. - %1 n'est pas un nom de destination valide dans une instruction de traitement. Ce doit être une valeur %2, par ex. %3. + Align Left + Aligner à gauche - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. - La dernière étape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas être un mélange des deux. + Align Right + Aligner à droite + + + QWhatsThisAction - The data of a processing instruction cannot contain the string %1 - Les données d'une instruction de traitement ne peut contenir la chaîne %1 + What's This? + Qu'est-ce que c'est ? + + + QWidget - No namespace binding exists for the prefix %1 - Aucun lien de namespace n'existe pour le préfixe %1 + * + + + + QWizard - No namespace binding exists for the prefix %1 in %2 - Aucun lien de namespace n'existe pour le préfixe %1 dans %2 + Go Back + Précédent - %1 is an invalid %2 - %1 est un ivalide %2 + Continue + Continuer - - %1 takes at most %n argument(s). %2 is therefore invalid. - - %1 prend au maximum %n argument. %2 est donc invalide. - %1 prend au maximum %n arguments. %2 est donc invalide. - + + Commit + si il s'agit de commit au même sens que git... (en même temps se marier en cliquant... ?!!?!) + Soumettre - - %1 requires at least %n argument(s). %2 is therefore invalid. - - %1 requiert au moins %n argument. %2 est donc invalide. - %1 requiert au moins %n arguments. %2 est donc invalide. - + + Done + Terminer - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. - Le premier argument de %1 ne peut être du type %2. Il doit être de type numérique, xs:yearMonthDuration ou xs:dayTimeDuration. + Quit + Quitter - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - Le premier argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. + Help + Aide - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - Le deuxième argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. + < &Back + < &Précédent - %1 is not a valid XML 1.0 character. - %1 n'est pas un caractère XML 1.0 valide. + &Finish + &Terminer - - The first argument to %1 cannot be of type %2. - Le premier argument de %1 ne peut être du type %2. + Cancel + Annuler - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. - Si les deux valeurs ont des décalages de zone, elle doivent avoir le même. %1 et %2 sont différents. + &Help + &Aide - %1 was called. - %1 a été appelé. + &Next + &Suivant > - %1 must be followed by %2 or %3, not at the end of the replacement string. - %1 doit être suivi par %2 ou %3, et non à la fin de la chaîne de remplacement. + &Next > + &Suivant > + + + QWorkspace - In the replacement string, %1 must be followed by at least one digit when not escaped. - Dans la chaîne de remplacement, %1 doit être suivi par au moins un chiffre s'il n'est pas échappé. + &Restore + &Restaurer - In the replacement string, %1 can only be used to escape itself or %2, not %3 - Dans la chaîne de remplacement, %1 peut seulement être utilisé pour échapper lui-même ou %2 mais pas %3 + &Move + &Déplacer - %1 matches newline characters - %1 correspond à des caractères de saut de ligne + &Size + &Taille - %1 and %2 match the start and end of a line. - %1 et %2 correspondent au début et à la fin d'une ligne. + Mi&nimize + Réd&uire - Matches are case insensitive - Les correspondances ne sont pas sensibles à la casse + Ma&ximize + Ma&ximiser - Whitespace characters are removed, except when they appear in character classes - Les blancs sont supprimés excepté quand ils apparaissent dans les classes de caractère + &Close + &Fermer - %1 is an invalid regular expression pattern: %2 - %1 est un modèle d'expression régulière invalide: %2 + Stay on &Top + Rester au &premier plan - %1 is an invalid flag for regular expressions. Valid flags are: - %1 est un flag invalide pour des expressions régulières. Les flags valides sont : + Minimize + Réduire - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. - Si le premier argument est une sequence vide ou un chaîne vide (sans namespace), un préfixe ne peut être spécifié. Le préfixe %1 a été spécifié. + Restore Down + Restaurer en bas - It will not be possible to retrieve %1. - Il sera impossible de récupérer %1. + Close + Fermer - The root node of the second argument to function %1 must be a document node. %2 is not a document node. - Le noeuds racine du deuxième argument à la fonction %1 doit être un noeuds document. %2 n'est pas un document. + Sh&ade + Enrou&ler - The default collection is undefined - I'l n'y a pas de collection par défaut + %1 - [%2] + %1 - [%2] - %1 cannot be retrieved - %1 ne peut pas être récupéré + &Unshade + Dér&ouler + + + QXml - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). - Le forme de normalisation %1 n'est pas supportée. Les formes supportées sont %2, %3, %4 et %5, et aucun, ie. une chaîne vide (pas de normalisation). + no error occurred + aucune erreur ne s'est produite - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - Un décalage de zone doit être dans l'intervalle %1..%2 inclus. %3 est hors de l'intervalle. + error triggered by consumer + Erreur déclenchée par le consommateur - %1 is not an whole number of minutes. - %1 n'est pas un nombre complet de minutes. + unexpected end of file + Fin de fichier inattendue - Required cardinality is %1; got cardinality %2. - La cardinalité requise est %1; reçu %2. + more than one document type definition + plus d'une définition de type de docuement - The item %1 did not match the required type %2. - L'item %1 ne correspond pas au type requis %2. + error occurred while parsing element + une erreur s'est produite pendant l'analyse syntaxique de l'élement - %1 is an unknown schema type. - %1 est un type de schema inconnu. + tag mismatch + tag incongru - Only one %1 declaration can occur in the query prolog. - Seulement une déclaration %1 peut intervenir lors du prologue de la requête. + error occurred while parsing content + une erreur s'est produite pendant l'analyse syntaxique du contenu - The initialization of variable %1 depends on itself - L'initialisation de la variable %1 dépend d'elle-même + unexpected character + caractère inattendu - - No variable by name %1 exists - Aucun variable nommée %1 existe + invalid name for processing instruction + nom d'instruction invalide - The variable %1 is unused - La variable %1 est inutilisée + version expected while reading the XML declaration + Une version est attendue dans la déclaration XML - Version %1 is not supported. The supported XQuery version is 1.0. - La version %1 n'est pas supportée. La version de XQuery supportée est 1.0. + wrong value for standalone declaration + Valeur incorrecte pour une déclaration autonome - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. - L'encodage %1 est invalide. Il doit contenir uniquement des caractères latins, sans blanc et doit être conforme à l'expression régulière %2. + error occurred while parsing document type definition + une erreur s'est produite pendant l'analyse syntaxique de la définition du type de document - No function with signature %1 is available - Aucune fonction avec la signature %1 n'est disponible + letter is expected + une lettre est attendue - A default namespace declaration must occur before function, variable, and option declarations. - Un déclaration de namespace par défaut doit être placée avant toute fonction, variable ou declaration d'option. + error occurred while parsing comment + une erreur s'est produite pendant l'analyse syntaxique du commentaire - Namespace declarations must occur before function, variable, and option declarations. - Les declarations de namespace doivent être placées avant tout fonction, variable ou déclaration d'option. + error occurred while parsing reference + une erreur s'est produite pendant l'analyse syntaxique d'une référence - Module imports must occur before function, variable, and option declarations. - Les imports de module doivent être placés avant tout fonction, variable ou déclaration d'option. + internal general entity reference not allowed in DTD + - It is not possible to redeclare prefix %1. - Il est impossible de redéclarer le préfixe %1. + external parsed general entity reference not allowed in attribute value + - Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. - Seul le préfixe %1 peut être déclaré pour lié le namespace %2. Par défaut, il est déjà lié au préfixe %1. + external parsed general entity reference not allowed in DTD + - Prefix %1 is already declared in the prolog. - Le préfixe %1 est déjà déclaré dans le prologue. + unparsed entity reference in wrong context + - The name of an option must have a prefix. There is no default namespace for options. - Le nom d'une option doit avoir un préfixe. Il n'y a pas de namespace par défaut pour les options. + recursive entities + - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - La fonctionnalité "Schema Import" n'est pas supportée et les déclarations %1 ne peuvent donc intervenir. + error in the text declaration of an external entity + - The target namespace of a %1 cannot be empty. - Le namespace cible d'un %1 ne peut être vide. + encoding declaration or standalone declaration expected while reading the XML declaration + - The module import feature is not supported - La fonctionnalité "module import" n'est pas supportée + standalone declaration expected while reading the XML declaration + + + + QXmlPatternistCLI - A variable by name %1 has already been declared in the prolog. - Une variable du nom %1 a déjà été déclarée dans le prologue. + Warning in %1, at line %2, column %3: %4 + Avertissement dans %1, à la ligne %2, colonne %3: %4 - - No value is available for the external variable by name %1. - Aucune valeur n'est disponible pour la variable externe %1. + Warning in %1: %2 + Avertissement dans %1: %2 - The namespace for a user defined function cannot be empty(try the predefined prefix %1 which exists for cases like this) - Le namespace d'une fonction définie par l'utilisateur ne peut être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas) + Unknown location + Lieu inconnu - - A construct was encountered which only is allowed in XQuery. - Construct n'est autorisé que dans XQuery. + Error %1 in %2, at line %3, column %4: %5 + Erreur %1 dans %2, à la ligne %3, colonne %4: %5 - - A template by name %1 has already been declared. - Un template nommé %1 a déjà été déclaré. + Error %1 in %2: %3 + Erreur %1 dans %2: %3 + + + QXmlStream - The keyword %1 cannot occur with any other mode name. - Le mot-clé %1 ne peut pas apparaître avec un autre nom de mode. + Extra content at end of document. + - - The value of attribute %1 must of type %2, which %3 isn't. - La valeur de l'attribut %1 doit être du type %2, %3 n'en est pas. + Invalid entity value. + - - The prefix %1 can not be bound. By default, it is already bound to the namespace %2. - Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2. + Invalid XML character. + - - A variable by name %1 has already been declared. - Une variable nommée %1 a déjà été déclarée. + Sequence ']]>' not allowed in content. + - A stylesheet function must have a prefixed name. - Une fonction de feuille de style doit avoir un nom préfixé. + Namespace prefix '%1' not declared + - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) - Le namespace d'une fonction utilisateur ne peut pas être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas) + Attribute redefined. + - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. - Le namespace %1 est réservé; c'est pourquoi les fonctions définies par l'utilisateur ne peuvent l'utiliser. Essayez le préfixe prédéfini %2 qui existe pour ces cas. + Unexpected character '%1' in public id literal. + - 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 - Le namespace d'une fonction utilisateur dans un module de bibliothèque doit être équivalent au namespace du module. En d'autres mots, il devrait être %1 au lieu de %2 + Invalid XML version string. + - A function already exists with the signature %1. - Une fonction avec la signature %1 existe déjà. + Unsupported XML version. + - No external functions are supported. All supported functions can be used directly, without first declaring them as external - Les fonctions externes ne sont pas supportées. Toutes les fonctions supportées peuvent êter utilisées directement sans les déclarer préalablement comme externes + %1 is an invalid encoding name. + - - An argument by name %1 has already been declared. Every argument name must be unique. - Un argument nommé %1 a déjà été déclaré. Chaque nom d'argument doit être unique. + Encoding %1 is unsupported + - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. - Quand la fonction %1 est utilisée pour vérifier la correspondance dans un pattern, l'argument doit être une référence de variable ou une chaîne de caractères. + Invalid XML encoding name. + Encodage XML invalide. - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. - Dans un pattern XSL-T, le premier argument à la fonction %1 doit être une chaîne de caractères quand utilisé pour correspondance. + Standalone accepts only yes or no. + - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. - Dans un pattern XSL-T, le premier argument à la fonction %1 doit être un litéral ou une référence de variable. + Invalid attribute in XML declaration. + - In an XSL-T pattern, function %1 cannot have a third argument. - Dans un pattern XSL-T, la fonction %1 ne peut pas avoir de 3e argument. + Premature end of document. + - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. - Dans un pattern XSL-T, seules les fonctions %1 et %2 (pas %3) peuvent être utilisées pour le matching. + Invalid document. + - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. - Dans un pattern XSL-T, l'axe %1 ne peut pas être utilisé, seulement %2 ou %3 le peuvent. + Expected + - %1 is an invalid template mode name. - %1 est un nom de mode de template invalide. + , but got ' + - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. - Le nom d'une variable liée dans un expression for doit être different de la variable positionnelle. Les deux variables appelées %1 sont en conflit. + Unexpected ' + - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. - La fonctionnalité "Schema Validation" n'est pas supportée. Les expressions %1 ne seront pas utilisées. + Expected character data. + - None of the pragma expressions are supported. Therefore, a fallback expression must be present - Aucune des expressions pragma n'est supportée. Une expression par défault doit être présente + Recursive entity detected. + - Each name of a template parameter must be unique; %1 is duplicated. - Chaque nom d'un paramètre ede template doit être unique; %1 est dupliqué. + Start tag expected. + - The %1-axis is unsupported in XQuery - L'axe %1 n'est pas supporté dans XQuery + XML declaration not at start of document. + - %1 is not a valid name for a processing-instruction. - %1 n'est pas un nom valide pour une instruction de traitement. + NDATA in parameter entity declaration. + - %1 is not a valid numeric literal. - %1 n'est pas une valeur numérique valide. + %1 is an invalid processing instruction name. + - - No function by name %1 is available. - La fonction %1 n'est pas disponible. + Invalid processing instruction name. + - The namespace URI cannot be the empty string when binding to a prefix, %1. - L'URI de namespace ne peut être une chaîne vide quand on le lie à un préfixe, %1. + Illegal namespace declaration. + - %1 is an invalid namespace URI. - %1 est un URI de namespace invalide. + Invalid XML name. + - It is not possible to bind to the prefix %1 - Il est impossible de se lier au préfixe %1 + Opening and ending tag mismatch. + - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). - Le namespace %1 peut seulement être lié à %2 (et doit être pré-déclaré). + Reference to unparsed entity '%1'. + - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). - Le préfixe %1 peut seulement être lié à %2 (et doit être prédéclaré). + Entity '%1' not declared. + - Two namespace declaration attributes have the same name: %1. - Deux attributs de déclarations de namespace ont le même nom : %1. + Reference to external entity '%1' in attribute value. + - The namespace URI must be a constant and cannot use enclosed expressions. - L'URI de namespace doit être une constante et ne peut contenir d'expressions. + Invalid character reference. + - - An attribute by name %1 has already appeared on this element. - Un attribute nommé %1 existe déjà pour cet élément. + Encountered incorrectly encoded content. + - A direct element constructor is not well-formed. %1 is ended with %2. - Un constructeur direct d'élément est mal-formé. %1 est terminé par %2. + The standalone pseudo attribute must appear after the encoding. + - The name %1 does not refer to any schema type. - Le nom %1 ne se réfère à aucun type de schema. + %1 is an invalid PUBLIC identifier. + + + + QtXmlPatterns - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - %1 est une type complexe. Caster vers des types complexes n'est pas possible. Cependant, caster vers des types atomiques comme %2 marche. + An %1-attribute with value %2 has already been declared. + Un attribute %1 avec la valeur %2 est déjà déclaré. - %1 is not an atomic type. Casting is only possible to atomic types. - %1 n'est pas un type atomique. Il est uniquement possible de caster vers des types atomiques. + An %1-attribute must have a valid %2 as value, which %3 isn't. + Un attribute %1 doit avoir un %2 valide, %3 ne l'a pas. - %1 is not a valid name for a processing-instruction. Therefore this name test will never match. - %1 n'est pas un nom valide pour une instruction de traitement. C'est pourquoi ce test de nom ne réussira jamais. + Network timeout. + Le réseau ne répond pas. - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - %1 n'est pas dans les déclaration d'attribut in-scope. La fonctionnalité d'inport de schéma n'est pas supportée. + Element %1 can't be serialized because it appears outside the document element. + L'élément %1 ne peut pas être sérialisé parce qu'il est hors de l'élément document. - The name of an extension expression must be in a namespace. - Le nom d'une expression d'extension doit être dans un namespace. + Attribute element %1 can't be serialized because it appears at the top level. + L'élément attribute %1 ne peut pas être sérialisé parce qu'il apparaît comme racine. - empty - vide + Year %1 is invalid because it begins with %2. + L'année %1 est invalide parce qu'elle commence par %2. - zero or one - zéro ou un + Day %1 is outside the range %2..%3. + Le jour %1 est hors de l'intervalle %2..%3. - exactly one - exactement un + Month %1 is outside the range %2..%3. + Le mois %1 est hors de l'intervalle %2..%3. - one or more - un ou plus + Overflow: Can't represent date %1. + Overflow: ne peut pas représenter la date %1. - zero or more - zéro ou plus + Day %1 is invalid for month %2. + Jour %1 est invalide pour le mois %2. - Required type is %1, but %2 was found. - Le type requis est %1, mais %2 a été reçu. + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + L'heure 24:%1:%2.%3 est invalide. L'heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0; - Promoting %1 to %2 may cause loss of precision. - La Promotion de %1 vers %2 peut causer un perte de précision. + Time %1:%2:%3.%4 is invalid. + L'heure %1:%2:%3.%4 est invalide. - The focus is undefined. - Le focus est indéfini. + Overflow: Date can't be represented. + Overflow : la date ne peut pas être représentée. - It's not possible to add attributes after any other kind of node. - Il est impossible d'ajouter des attributs après un autre type de noeuds. + At least one component must be present. + Au moins un composant doit être présent. - An attribute by name %1 has already been created. - Un attribute de nom %1 a déjà été créé. + At least one time component must appear after the %1-delimiter. + Au moins un composant doit apparaître après le délimiteur %1. - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. - Seule le Unicode CodepointCollation est supporté (%1), %2 n'est pas supporté. + No operand in an integer division, %1, can be %2. + Pas d'opérande dans une division entière, %1, peut être %2. - %1 is not a whole number of minutes. - %1 n'est pas un nombre entier de minutes. + The first operand in an integer division, %1, cannot be infinity (%2). + Le premier opérande dans une division entière, %1, ne peut être infini (%2). - Attribute %1 can't be serialized because it appears at the top level. - L'attribut %1 ne peut pas être sérialisé car il apparaît à la racine. + The second operand in a division, %1, cannot be zero (%2). + Le second opérande dans une division, %1, ne peut être nul (%2). - %1 is an unsupported encoding. - %1 est un encodage non supporté. + %1 is not a valid value of type %2. + %1 n'est pas une valeur valide du type %2. - %1 contains octets which are disallowed in the requested encoding %2. - %1 contient 'octets', qui n'est pas autorisé pour l'encodage %2. + When casting to %1 from %2, the source value cannot be %3. + En castant de %2 vers %1, la valeur source ne peut pas être %3. - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. - Le codepoint %1 dans %2 et utilisant l'encodage %3 est un caractère XML invalide. + Integer division (%1) by zero (%2) is undefined. + Division entière (%1) par zéro (%2) indéfinie. - Ambiguous rule match. - Corresonpdance aux règles ambigüe. + Division (%1) by zero (%2) is undefined. + Division (%1) par zéro (%2) indéfinie. - In a namespace constructor, the value for a namespace value cannot be an empty string. - Dans un cosntructeur de namespace, la valeur pour un namespace ne peut pas être une chaîne vide. + Modulus division (%1) by zero (%2) is undefined. + Module division (%1) par zéro (%2) indéfinie. - In a namespace constructor, the value for a namespace cannot be an empty string. - Dans un constructeur d'espace de noms, la valeur pour un espace de noms ne peut pas être une chaîne vide. + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Diviser une valeur du type %1 par %2 (not-a-number) est interdit. - The prefix must be a valid %1, which %2 is not. - Le préfixe doit être un valide %1; %2 n'e l'est pas. + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Diviser une valeur de type %1 par %2 ou %3 (plus ou moins zéro) est interdit. - The prefix %1 cannot be bound. - Le préfixe %1 ne peut être lié. + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + La multiplication d'une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite. - Only the prefix %1 can be bound to %2 and vice versa. - Seul le préfixe %1 peut être lié à %2, et vice versa. + A value of type %1 cannot have an Effective Boolean Value. + Une valeur de type %1 ne peut pas avoir une valeur booléene effective. - - Circularity detected - Circularité détectée + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Effective Boolean Value ne peut être calculée pour une séquence contenant deux ou plus valeurs atomiques. - The parameter %1 is required, but no corresponding %2 is supplied. - Le paramètre %1 est requis, mais aucun %2 correspondant n'est fourni. + Value %1 of type %2 exceeds maximum (%3). + La valeur %1 de type %2 excède le maximum (%3). - The parameter %1 is passed, but no corresponding %2 exists. - Le paramètre %1 est passé mais aucun %2 correspondant n'existe. + Value %1 of type %2 is below minimum (%3). + La valeur %1 de type %2 est inférieur au minimum (%3). - The URI cannot have a fragment - L'URI ne peut pas avoir de fragments + A value of type %1 must contain an even number of digits. The value %2 does not. + Une valeur de type %1 doit contenir un nombre pair de chiffre. La valeur %2 n'est pas conforme. - Element %1 is not allowed at this location. - L'élément %1 n'est pas autorisé à cet emplacement. + %1 is not valid as a value of type %2. + %1 n'est pas une valeur valide de type %2. - Text nodes are not allowed at this location. - Les noeuds de texte ne sont pas autorisés à cet emplacement. + Operator %1 cannot be used on type %2. + L'opérateur %1 ne peut pas être utilisé pour le type %2. - Parse error: %1 - Erreur: %1 + Operator %1 cannot be used on atomic values of type %2 and %3. + L'opérateur %1 ne peut pas être utilisé pour des valeurs atomiques de type %2 ou %3. - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. - La valeur de l'attribut de version XSL-T doit être du type %1, et non %2. + The namespace URI in the name for a computed attribute cannot be %1. + L'URI de namespace dans le nom d'un attribut calculé ne peut pas être %1. - Running an XSL-T 1.0 stylesheet with a 2.0 processor. - Lancement d'une feuille de style XSL-T 1.0 avec un processeur 2.0. + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Le nom d'un attribut calculé ne peut pas avoir l'URI de namespace %1 avec le nom local %2. - Unknown XSL-T attribute %1. - Attribut XSL-T inconnu : %1. + Type error in cast, expected %1, received %2. + Erreur de type lors du cast, attendu %1 mais reçu %2. - Attribute %1 and %2 are mutually exclusive. - Les attributs %1 et %2 sont mutuellement exclusifs. + 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. + En castant vers %1 ou des types dérivés, la valeur source doit être du même type ou une chaîne. Le type %2 n'est pas autorisé. - In a simplified stylesheet module, attribute %1 must be present. - Dans un module de feuille de style simplifié, l'attribut %1 doit être présent. + No casting is possible with %1 as the target type. + Aucun cast n'est possible avec %1 comme type de destination. - If element %1 has no attribute %2, it cannot have attribute %3 or %4. - Si l'élément %1 n'a pas d'attribut %2, il ne peut pas avoir d'attribut %3 ou %4. + It is not possible to cast from %1 to %2. + Il est impossible de caster de %1 en %2. - Element %1 must have at least one of the attributes %2 or %3. - L'élement %1 doit avoir au moins un des attributs %2 ou %3. + Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + Caster vers %1 est impossible parce que c'est un type abstrait qui ne peut donc être instancié. - At least one mode must be specified in the %1-attribute on element %2. - Au moins un mode doit être spécifié dans l'attribut %1 sur l'élément %2. + It's not possible to cast the value %1 of type %2 to %3 + I lest impossible de caster la valeur %1 de type %2 en %3 - - Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. - L'attribut %1 ne peut pas apparaître sur l'élément %2. Seuls les attributs standard le peuvent. + Failure when casting from %1 to %2: %3 + Echec en castant de %1 ver %2 : %3 - - Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. - L'attribut %1 ne peut pas apparaître sur l'élément %2. Seul %3 est autorisé, ainsi que les attributs standard. + A comment cannot contain %1 + Un commentaire ne peut pas contenir %1 - - Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. - L'attribut %1 ne peut pas apparaître sur l'élément %2. Seuls %3, %4 et les attributs standard le sont. + A comment cannot end with a %1. + Un commentaire ne peut pas finir par %1. - - Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. - L'attribut %1 ne peut pas apparaître sur l'élément %2. Seul %3 et les attributs standard le sont. + No comparisons can be done involving the type %1. + Aucune comparaison ne peut être faite avec le type %1. - - XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. - Les attributs XSL-T sur des éléments XSL-T doivent être dans le namespace null, et pas dans %1. + Operator %1 is not available between atomic values of type %2 and %3. + L'opérateur %1 n'est pas disponible entre valeurs atomiques de type %2 et %3. - - The attribute %1 must appear on element %2. - L'attribut %1 doit apparaître sur l'élément %2. + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + Un noeuds attribut ne peut être un fils d'un noeuds document. C'est pourquoi l'attribut %1 est mal placé. - - The element with local name %1 does not exist in XSL-T. - L'élément avec le nom local %1 n'existe pas dans XSL-T. + A library module cannot be evaluated directly. It must be imported from a main module. + Un module de bibliothèque ne peut pas être évalué directement. Il doit être importé d'un module principal. - Element %1 must come last. - L'élément %1 doit être le dernier. + No template by name %1 exists. + Aucun template nommé %1 n'existe. - At least one %1-element must occur before %2. - Au moins un élément %1 doit être placé avant %2. + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + Une valeur de type %1 ne peut être un prédicat. Un prédicat doit être de type numérique ou un Effective Boolean Value. - Only one %1-element can appear. - Seulement un élément %1 peut apparaître. + A positional predicate must evaluate to a single numeric value. + Un prédicat de position doit être évalué en une unique valeur numérique. - At least one %1-element must occur inside %2. - Au moins un élément %1 doit apparaître dans %2. + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide. - When attribute %1 is present on %2, a sequence constructor cannot be used. - Quand l'attribut %1 est présent sur %2, un constructeur de séquence ne peut pas être utilisé. + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 n'est pas un nom de destination valide dans une instruction de traitement. Ce doit être une valeur %2, par ex. %3. - Element %1 must have either a %2-attribute or a sequence constructor. - L'élément %1 doit avoir un attribut %2 ou un constructeur de séquence. + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + La dernière étape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas être un mélange des deux. - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. - Quand un paramètre est requis, un valeur par défault ne peut pas être fournie par un attribute %1 ou un constructeur de séquence. + The data of a processing instruction cannot contain the string %1 + Les données d'une instruction de traitement ne peut contenir la chaîne %1 - Element %1 cannot have children. - L'élément %1 ne peut pas avoir de fils. + No namespace binding exists for the prefix %1 + Aucun lien de namespace n'existe pour le préfixe %1 - Element %1 cannot have a sequence constructor. - L'élément %1 ne peut pas avoir un constructuer de séquence. + No namespace binding exists for the prefix %1 in %2 + Aucun lien de namespace n'existe pour le préfixe %1 dans %2 - The attribute %1 cannot appear on %2, when it is a child of %3. - L'attribut %1 ne peut pas apparaître sur %2 quand il est fils de %3. + %1 is an invalid %2 + %1 est un ivalide %2 - - A parameter in a function cannot be declared to be a tunnel. - Un paramètre de fonction ne peut pas être déclaré comme un tunnel. + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 prend au maximum %n argument. %2 est donc invalide. + %1 prend au maximum %n arguments. %2 est donc invalide. + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 requiert au moins %n argument. %2 est donc invalide. + %1 requiert au moins %n arguments. %2 est donc invalide. + - This processor is not Schema-aware and therefore %1 cannot be used. - Ce processeur ne comprend pas les Schemas. C'est pourquoi %1 ne peut pas être utilisé. + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Le premier argument de %1 ne peut être du type %2. Il doit être de type numérique, xs:yearMonthDuration ou xs:dayTimeDuration. - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. - Les élément d'une feuille de style de haut niveau doivent être dans un namespace non nul; %1 ne l'est pas. + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Le premier argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. - The value for attribute %1 on element %2 must either be %3 or %4, not %5. - La valeur de l'attribut %1 de l'élement %2 doit être %3 ou %4, et pas %5. + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Le deuxième argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. - Attribute %1 cannot have the value %2. - L'attribut %1 ne peut avoir la valeur %2. + %1 is not a valid XML 1.0 character. + %1 n'est pas un caractère XML 1.0 valide. - The attribute %1 can only appear on the first %2 element. - L'attribute %1 peut seulement apparaître sur le premier élément %2. + The first argument to %1 cannot be of type %2. + Le premier argument de %1 ne peut être du type %2. - At least one %1 element must appear as child of %2. - Au moins un élément %1 doit apparaître comme fils de %2. + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Si les deux valeurs ont des décalages de zone, elle doivent avoir le même. %1 et %2 sont différents. - A template with name %1 has already been declared. - Un template nommé %1 a déjà été déclaré. + %1 was called. + %1 a été appelé. - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. - Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide. + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 doit être suivi par %2 ou %3, et non à la fin de la chaîne de remplacement. - No variable with name %1 exists - Aucune variable nommée %1 n'existe + In the replacement string, %1 must be followed by at least one digit when not escaped. + Dans la chaîne de remplacement, %1 doit être suivi par au moins un chiffre s'il n'est pas échappé. - The value of attribute %1 must be of type %2, which %3 isn't. - La valeur de l'attribut %1 doit être du type %2, %3 n'en est pas. + In the replacement string, %1 can only be used to escape itself or %2, not %3 + Dans la chaîne de remplacement, %1 peut seulement être utilisé pour échapper lui-même ou %2 mais pas %3 - The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. - Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2. + %1 matches newline characters + %1 correspond à des caractères de saut de ligne - A variable with name %1 has already been declared. - Une variable nommée %1 a déjà été déclarée. + %1 and %2 match the start and end of a line. + %1 et %2 correspondent au début et à la fin d'une ligne. - No value is available for the external variable with name %1. - Aucune valeur n'est disponible pour la variable externe %1. + Matches are case insensitive + Les correspondances ne sont pas sensibles à la casse - An argument with name %1 has already been declared. Every argument name must be unique. - Un argument nommé %1 a déjà été déclaré. Chaque nom d'argument doit être unique. + Whitespace characters are removed, except when they appear in character classes + Les blancs sont supprimés excepté quand ils apparaissent dans les classes de caractère + + + %1 is an invalid regular expression pattern: %2 + %1 est un modèle d'expression régulière invalide: %2 - No function with name %1 is available. - Aucune fonction nommée %1 n'est disponible. + %1 is an invalid flag for regular expressions. Valid flags are: + %1 est un flag invalide pour des expressions régulières. Les flags valides sont : - W3C XML Schema identity constraint selector - + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Si le premier argument est une sequence vide ou un chaîne vide (sans namespace), un préfixe ne peut être spécifié. Le préfixe %1 a été spécifié. - W3C XML Schema identity constraint field - + It will not be possible to retrieve %1. + Il sera impossible de récupérer %1. - A construct was encountered which is disallowed in the current language(%1). - + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + Le noeuds racine du deuxième argument à la fonction %1 doit être un noeuds document. %2 n'est pas un document. - An attribute with name %1 has already appeared on this element. - Un attribute nommé %1 existe déjà pour cet élément. + The default collection is undefined + I'l n'y a pas de collection par défaut - %1 has inheritance loop in its base type %2. - + %1 cannot be retrieved + %1 ne peut pas être récupéré - Circular inheritance of base type %1. - + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + Le forme de normalisation %1 n'est pas supportée. Les formes supportées sont %2, %3, %4 et %5, et aucun, ie. une chaîne vide (pas de normalisation). - Circular inheritance of union %1. - + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + Un décalage de zone doit être dans l'intervalle %1..%2 inclus. %3 est hors de l'intervalle. - %1 is not allowed to derive from %2 by restriction as the latter defines it as final. - + %1 is not an whole number of minutes. + %1 n'est pas un nombre complet de minutes. - %1 is not allowed to derive from %2 by extension as the latter defines it as final. - + Required cardinality is %1; got cardinality %2. + La cardinalité requise est %1; reçu %2. - Base type of simple type %1 cannot be complex type %2. - + The item %1 did not match the required type %2. + L'item %1 ne correspond pas au type requis %2. - Simple type %1 cannot have direct base type %2. - + %1 is an unknown schema type. + %1 est un type de schema inconnu. - Simple type %1 is not allowed to have base type %2. - + Only one %1 declaration can occur in the query prolog. + Seulement une déclaration %1 peut intervenir lors du prologue de la requête. - Simple type %1 can only have simple atomic type as base type. - + The initialization of variable %1 depends on itself + L'initialisation de la variable %1 dépend d'elle-même - Simple type %1 cannot derive from %2 as the latter defines restriction as final. - + No variable by name %1 exists + Aucun variable nommée %1 existe - Variety of item type of %1 must be either atomic or union. - + The variable %1 is unused + La variable %1 est inutilisée - Variety of member types of %1 must be atomic. - + Version %1 is not supported. The supported XQuery version is 1.0. + La version %1 n'est pas supportée. La version de XQuery supportée est 1.0. - %1 is not allowed to derive from %2 by list as the latter defines it as final. - + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + L'encodage %1 est invalide. Il doit contenir uniquement des caractères latins, sans blanc et doit être conforme à l'expression régulière %2. - Simple type %1 is only allowed to have %2 facet. - + No function with signature %1 is available + Aucune fonction avec la signature %1 n'est disponible - Base type of simple type %1 must have variety of type list. - + A default namespace declaration must occur before function, variable, and option declarations. + Un déclaration de namespace par défaut doit être placée avant toute fonction, variable ou declaration d'option. - Base type of simple type %1 has defined derivation by restriction as final. - + Namespace declarations must occur before function, variable, and option declarations. + Les declarations de namespace doivent être placées avant tout fonction, variable ou déclaration d'option. - Item type of base type does not match item type of %1. - + Module imports must occur before function, variable, and option declarations. + Les imports de module doivent être placés avant tout fonction, variable ou déclaration d'option. - Simple type %1 contains not allowed facet type %2. - + It is not possible to redeclare prefix %1. + Il est impossible de redéclarer le préfixe %1. - %1 is not allowed to derive from %2 by union as the latter defines it as final. - + Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. + Seul le préfixe %1 peut être déclaré pour lié le namespace %2. Par défaut, il est déjà lié au préfixe %1. - %1 is not allowed to have any facets. - + Prefix %1 is already declared in the prolog. + Le préfixe %1 est déjà déclaré dans le prologue. - Base type %1 of simple type %2 must have variety of union. - + The name of an option must have a prefix. There is no default namespace for options. + Le nom d'une option doit avoir un préfixe. Il n'y a pas de namespace par défaut pour les options. - Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. - + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + La fonctionnalité "Schema Import" n'est pas supportée et les déclarations %1 ne peuvent donc intervenir. - Member type %1 cannot be derived from member type %2 of %3's base type %4. - + The target namespace of a %1 cannot be empty. + Le namespace cible d'un %1 ne peut être vide. - Derivation method of %1 must be extension because the base type %2 is a simple type. - + The module import feature is not supported + La fonctionnalité "module import" n'est pas supportée - Complex type %1 has duplicated element %2 in its content model. - + A variable by name %1 has already been declared in the prolog. + Une variable du nom %1 a déjà été déclarée dans le prologue. - Complex type %1 has non-deterministic content. - + No value is available for the external variable by name %1. + Aucune valeur n'est disponible pour la variable externe %1. - Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. - + The namespace for a user defined function cannot be empty(try the predefined prefix %1 which exists for cases like this) + Le namespace d'une fonction définie par l'utilisateur ne peut être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas) - Content model of complex type %1 is not a valid extension of content model of %2. - + A construct was encountered which only is allowed in XQuery. + Construct n'est autorisé que dans XQuery. - Complex type %1 must have simple content. - + A template by name %1 has already been declared. + Un template nommé %1 a déjà été déclaré. - Complex type %1 must have the same simple type as its base class %2. - + The keyword %1 cannot occur with any other mode name. + Le mot-clé %1 ne peut pas apparaître avec un autre nom de mode. - Complex type %1 cannot be derived from base type %2%3. - + The value of attribute %1 must of type %2, which %3 isn't. + La valeur de l'attribut %1 doit être du type %2, %3 n'en est pas. - Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. - + The prefix %1 can not be bound. By default, it is already bound to the namespace %2. + Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2. - Complex type %1 with simple content cannot be derived from complex base type %2. - + A variable by name %1 has already been declared. + Une variable nommée %1 a déjà été déclarée. - Item type of simple type %1 cannot be a complex type. - + A stylesheet function must have a prefixed name. + Une fonction de feuille de style doit avoir un nom préfixé. - Member type of simple type %1 cannot be a complex type. - + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + Le namespace d'une fonction utilisateur ne peut pas être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas) - %1 is not allowed to have a member type with the same name as itself. - + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Le namespace %1 est réservé; c'est pourquoi les fonctions définies par l'utilisateur ne peuvent l'utiliser. Essayez le préfixe prédéfini %2 qui existe pour ces cas. - %1 facet collides with %2 facet. - + 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 + Le namespace d'une fonction utilisateur dans un module de bibliothèque doit être équivalent au namespace du module. En d'autres mots, il devrait être %1 au lieu de %2 - %1 facet must have the same value as %2 facet of base type. - + A function already exists with the signature %1. + Une fonction avec la signature %1 existe déjà. - %1 facet must be equal or greater than %2 facet of base type. - + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Les fonctions externes ne sont pas supportées. Toutes les fonctions supportées peuvent êter utilisées directement sans les déclarer préalablement comme externes - %1 facet must be less than or equal to %2 facet of base type. - + An argument by name %1 has already been declared. Every argument name must be unique. + Un argument nommé %1 a déjà été déclaré. Chaque nom d'argument doit être unique. - %1 facet contains invalid regular expression - + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + Quand la fonction %1 est utilisée pour vérifier la correspondance dans un pattern, l'argument doit être une référence de variable ou une chaîne de caractères. - Unknown notation %1 used in %2 facet. - + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + Dans un pattern XSL-T, le premier argument à la fonction %1 doit être une chaîne de caractères quand utilisé pour correspondance. - %1 facet contains invalid value %2: %3. - + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + Dans un pattern XSL-T, le premier argument à la fonction %1 doit être un litéral ou une référence de variable. - %1 facet cannot be %2 or %3 if %4 facet of base type is %5. - + In an XSL-T pattern, function %1 cannot have a third argument. + Dans un pattern XSL-T, la fonction %1 ne peut pas avoir de 3e argument. - %1 facet cannot be %2 if %3 facet of base type is %4. - + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + Dans un pattern XSL-T, seules les fonctions %1 et %2 (pas %3) peuvent être utilisées pour le matching. - %1 facet must be less than or equal to %2 facet. - + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + Dans un pattern XSL-T, l'axe %1 ne peut pas être utilisé, seulement %2 ou %3 le peuvent. - %1 facet must be less than %2 facet of base type. - + %1 is an invalid template mode name. + %1 est un nom de mode de template invalide. - %1 facet and %2 facet cannot appear together. - + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Le nom d'une variable liée dans un expression for doit être different de la variable positionnelle. Les deux variables appelées %1 sont en conflit. - %1 facet must be greater than %2 facet of base type. - + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + La fonctionnalité "Schema Validation" n'est pas supportée. Les expressions %1 ne seront pas utilisées. - %1 facet must be less than %2 facet. - + None of the pragma expressions are supported. Therefore, a fallback expression must be present + Aucune des expressions pragma n'est supportée. Une expression par défault doit être présente - %1 facet must be greater than or equal to %2 facet of base type. - + Each name of a template parameter must be unique; %1 is duplicated. + Chaque nom d'un paramètre ede template doit être unique; %1 est dupliqué. - Simple type contains not allowed facet %1. - + The %1-axis is unsupported in XQuery + L'axe %1 n'est pas supporté dans XQuery - %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. - + %1 is not a valid name for a processing-instruction. + %1 n'est pas un nom valide pour une instruction de traitement. - Only %1 and %2 facets are allowed when derived by union. - + %1 is not a valid numeric literal. + %1 n'est pas une valeur numérique valide. - %1 contains %2 facet with invalid data: %3. - + No function by name %1 is available. + La fonction %1 n'est pas disponible. - Attribute group %1 contains attribute %2 twice. - + The namespace URI cannot be the empty string when binding to a prefix, %1. + L'URI de namespace ne peut être une chaîne vide quand on le lie à un préfixe, %1. - Attribute group %1 contains two different attributes that both have types derived from %2. - + %1 is an invalid namespace URI. + %1 est un URI de namespace invalide. - Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. - + It is not possible to bind to the prefix %1 + Il est impossible de se lier au préfixe %1 - Complex type %1 contains attribute %2 twice. - + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Le namespace %1 peut seulement être lié à %2 (et doit être pré-déclaré). - Complex type %1 contains two different attributes that both have types derived from %2. - + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Le préfixe %1 peut seulement être lié à %2 (et doit être prédéclaré). - Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. - + Two namespace declaration attributes have the same name: %1. + Deux attributs de déclarations de namespace ont le même nom : %1. - Element %1 is not allowed to have a value constraint if its base type is complex. - + The namespace URI must be a constant and cannot use enclosed expressions. + L'URI de namespace doit être une constante et ne peut contenir d'expressions. - Element %1 is not allowed to have a value constraint if its type is derived from %2. - + An attribute by name %1 has already appeared on this element. + Un attribute nommé %1 existe déjà pour cet élément. - Value constraint of element %1 is not of elements type: %2. - + A direct element constructor is not well-formed. %1 is ended with %2. + Un constructeur direct d'élément est mal-formé. %1 est terminé par %2. - Element %1 is not allowed to have substitution group affiliation as it is no global element. - + The name %1 does not refer to any schema type. + Le nom %1 ne se réfère à aucun type de schema. - Type of element %1 cannot be derived from type of substitution group affiliation. - + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 est une type complexe. Caster vers des types complexes n'est pas possible. Cependant, caster vers des types atomiques comme %2 marche. - Value constraint of attribute %1 is not of attributes type: %2. - + %1 is not an atomic type. Casting is only possible to atomic types. + %1 n'est pas un type atomique. Il est uniquement possible de caster vers des types atomiques. - Attribute %1 has value constraint but has type derived from %2. - + %1 is not a valid name for a processing-instruction. Therefore this name test will never match. + %1 n'est pas un nom valide pour une instruction de traitement. C'est pourquoi ce test de nom ne réussira jamais. - %1 attribute in derived complex type must be %2 like in base type. - + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 n'est pas dans les déclaration d'attribut in-scope. La fonctionnalité d'inport de schéma n'est pas supportée. - Attribute %1 in derived complex type must have %2 value constraint like in base type. - + The name of an extension expression must be in a namespace. + Le nom d'une expression d'extension doit être dans un namespace. - Attribute %1 in derived complex type must have the same %2 value constraint like in base type. - + empty + vide - Attribute %1 in derived complex type must have %2 value constraint. - + zero or one + zéro ou un - processContent of base wildcard must be weaker than derived wildcard. - + exactly one + exactement un - Element %1 exists twice with different types. - + one or more + un ou plus - Particle contains non-deterministic wildcards. - + zero or more + zéro ou plus - Base attribute %1 is required but derived attribute is not. - + Required type is %1, but %2 was found. + Le type requis est %1, mais %2 a été reçu. - Type of derived attribute %1 cannot be validly derived from type of base attribute. - + Promoting %1 to %2 may cause loss of precision. + La Promotion de %1 vers %2 peut causer un perte de précision. - Value constraint of derived attribute %1 does not match value constraint of base attribute. - + The focus is undefined. + Le focus est indéfini. - Derived attribute %1 does not exist in the base definition. - + It's not possible to add attributes after any other kind of node. + Il est impossible d'ajouter des attributs après un autre type de noeuds. - Derived attribute %1 does not match the wildcard in the base definition. - + An attribute by name %1 has already been created. + Un attribute de nom %1 a déjà été créé. - Base attribute %1 is required but missing in derived definition. - + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + Seule le Unicode CodepointCollation est supporté (%1), %2 n'est pas supporté. - Derived definition contains an %1 element that does not exists in the base definition - + %1 is not a whole number of minutes. + %1 n'est pas un nombre entier de minutes. - Derived wildcard is not a subset of the base wildcard. - + Attribute %1 can't be serialized because it appears at the top level. + L'attribut %1 ne peut pas être sérialisé car il apparaît à la racine. - %1 of derived wildcard is not a valid restriction of %2 of base wildcard - + %1 is an unsupported encoding. + %1 est un encodage non supporté. - Attribute %1 from base type is missing in derived type. - + %1 contains octets which are disallowed in the requested encoding %2. + %1 contient 'octets', qui n'est pas autorisé pour l'encodage %2. - Type of derived attribute %1 differs from type of base attribute. - + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + Le codepoint %1 dans %2 et utilisant l'encodage %3 est un caractère XML invalide. - Base definition contains an %1 element that is missing in the derived definition - + Ambiguous rule match. + Corresonpdance aux règles ambigüe. - %1 references unknown %2 or %3 element %4. - + In a namespace constructor, the value for a namespace value cannot be an empty string. + Dans un cosntructeur de namespace, la valeur pour un namespace ne peut pas être une chaîne vide. - %1 references identity constraint %2 that is no %3 or %4 element. - + In a namespace constructor, the value for a namespace cannot be an empty string. + Dans un constructeur d'espace de noms, la valeur pour un espace de noms ne peut pas être une chaîne vide. - %1 has a different number of fields from the identity constraint %2 that it references. - + The prefix must be a valid %1, which %2 is not. + Le préfixe doit être un valide %1; %2 n'e l'est pas. - Base type %1 of %2 element cannot be resolved. - + The prefix %1 cannot be bound. + Le préfixe %1 ne peut être lié. - Item type %1 of %2 element cannot be resolved. - + Only the prefix %1 can be bound to %2 and vice versa. + Seul le préfixe %1 peut être lié à %2, et vice versa. - Member type %1 of %2 element cannot be resolved. - + Circularity detected + Circularité détectée - Type %1 of %2 element cannot be resolved. - + The parameter %1 is required, but no corresponding %2 is supplied. + Le paramètre %1 est requis, mais aucun %2 correspondant n'est fourni. - Base type %1 of complex type cannot be resolved. - + The parameter %1 is passed, but no corresponding %2 exists. + Le paramètre %1 est passé mais aucun %2 correspondant n'existe. - %1 cannot have complex base type that has a %2. - + The URI cannot have a fragment + L'URI ne peut pas avoir de fragments - Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. - + Element %1 is not allowed at this location. + L'élément %1 n'est pas autorisé à cet emplacement. - Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. - + Text nodes are not allowed at this location. + Les noeuds de texte ne sont pas autorisés à cet emplacement. - Type of %1 element must be a simple type, %2 is not. - + Parse error: %1 + Erreur: %1 - Substitution group %1 of %2 element cannot be resolved. - + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + La valeur de l'attribut de version XSL-T doit être du type %1, et non %2. - Substitution group %1 has circular definition. - + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Lancement d'une feuille de style XSL-T 1.0 avec un processeur 2.0. - Duplicated element names %1 in %2 element. - + Unknown XSL-T attribute %1. + Attribut XSL-T inconnu : %1. - Reference %1 of %2 element cannot be resolved. - + Attribute %1 and %2 are mutually exclusive. + Les attributs %1 et %2 sont mutuellement exclusifs. - Circular group reference for %1. - + In a simplified stylesheet module, attribute %1 must be present. + Dans un module de feuille de style simplifié, l'attribut %1 doit être présent. - %1 element is not allowed in this scope - + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + Si l'élément %1 n'a pas d'attribut %2, il ne peut pas avoir d'attribut %3 ou %4. - %1 element cannot have %2 attribute with value other than %3. - + Element %1 must have at least one of the attributes %2 or %3. + L'élement %1 doit avoir au moins un des attributs %2 ou %3. - %1 element cannot have %2 attribute with value other than %3 or %4. - + At least one mode must be specified in the %1-attribute on element %2. + Au moins un mode doit être spécifié dans l'attribut %1 sur l'élément %2. - %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. - + Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. + L'attribut %1 ne peut pas apparaître sur l'élément %2. Seuls les attributs standard le peuvent. - Attribute group %1 has circular reference. - + Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. + L'attribut %1 ne peut pas apparaître sur l'élément %2. Seul %3 est autorisé, ainsi que les attributs standard. - %1 attribute in %2 must have %3 use like in base type %4. - + Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. + L'attribut %1 ne peut pas apparaître sur l'élément %2. Seuls %3, %4 et les attributs standard le sont. - Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. - + Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. + L'attribut %1 ne peut pas apparaître sur l'élément %2. Seul %3 et les attributs standard le sont. - %1 has attribute wildcard but its base type %2 has not. - + XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. + Les attributs XSL-T sur des éléments XSL-T doivent être dans le namespace null, et pas dans %1. - Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. - + The attribute %1 must appear on element %2. + L'attribut %1 doit apparaître sur l'élément %2. - Enumeration facet contains invalid content: {%1} is not a value of type %2. - + The element with local name %1 does not exist in XSL-T. + L'élément avec le nom local %1 n'existe pas dans XSL-T. - Namespace prefix of qualified name %1 is not defined. - + Element %1 must come last. + L'élément %1 doit être le dernier. - %1 element %2 is not a valid restriction of the %3 element it redefines: %4. - + At least one %1-element must occur before %2. + Au moins un élément %1 doit être placé avant %2. - Empty particle cannot be derived from non-empty particle. - + Only one %1-element can appear. + Seulement un élément %1 peut apparaître. - Derived particle is missing element %1. - + At least one %1-element must occur inside %2. + Au moins un élément %1 doit apparaître dans %2. - Derived element %1 is missing value constraint as defined in base particle. - + When attribute %1 is present on %2, a sequence constructor cannot be used. + Quand l'attribut %1 est présent sur %2, un constructeur de séquence ne peut pas être utilisé. - Derived element %1 has weaker value constraint than base particle. - + Element %1 must have either a %2-attribute or a sequence constructor. + L'élément %1 doit avoir un attribut %2 ou un constructeur de séquence. - Fixed value constraint of element %1 differs from value constraint in base particle. - + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + Quand un paramètre est requis, un valeur par défault ne peut pas être fournie par un attribute %1 ou un constructeur de séquence. - Derived element %1 cannot be nillable as base element is not nillable. - + Element %1 cannot have children. + L'élément %1 ne peut pas avoir de fils. - Block constraints of derived element %1 must not be more weaker than in the base element. - + Element %1 cannot have a sequence constructor. + L'élément %1 ne peut pas avoir un constructuer de séquence. - Simple type of derived element %1 cannot be validly derived from base element. - + The attribute %1 cannot appear on %2, when it is a child of %3. + L'attribut %1 ne peut pas apparaître sur %2 quand il est fils de %3. - Complex type of derived element %1 cannot be validly derived from base element. - + A parameter in a function cannot be declared to be a tunnel. + Un paramètre de fonction ne peut pas être déclaré comme un tunnel. - Element %1 is missing in derived particle. - + This processor is not Schema-aware and therefore %1 cannot be used. + Ce processeur ne comprend pas les Schemas. C'est pourquoi %1 ne peut pas être utilisé. - Element %1 does not match namespace constraint of wildcard in base particle. - + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + Les élément d'une feuille de style de haut niveau doivent être dans un namespace non nul; %1 ne l'est pas. - Wildcard in derived particle is not a valid subset of wildcard in base particle. - + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + La valeur de l'attribut %1 de l'élement %2 doit être %3 ou %4, et pas %5. - processContent of wildcard in derived particle is weaker than wildcard in base particle. - + Attribute %1 cannot have the value %2. + L'attribut %1 ne peut avoir la valeur %2. - Derived particle allows content that is not allowed in the base particle. - + The attribute %1 can only appear on the first %2 element. + L'attribute %1 peut seulement apparaître sur le premier élément %2. - Can not process unknown element %1, expected elements are: %2. - + At least one %1 element must appear as child of %2. + Au moins un élément %1 doit apparaître comme fils de %2. - Element %1 is not allowed in this scope, possible elements are: %2. - + A template with name %1 has already been declared. + Un template nommé %1 a déjà été déclaré. - Child element is missing in that scope, possible child elements are: %1. - + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide. - Document is not a XML schema. - + No variable with name %1 exists + Aucune variable nommée %1 n'existe - %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. - + The value of attribute %1 must be of type %2, which %3 isn't. + La valeur de l'attribut %1 doit être du type %2, %3 n'en est pas. - %1 attribute of %2 element contains invalid content: {%3}. - + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2. - Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. - + A variable with name %1 has already been declared. + Une variable nommée %1 a déjà été déclarée. - Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. - + No value is available for the external variable with name %1. + Aucune valeur n'est disponible pour la variable externe %1. - %1 element is not allowed to have the same %2 attribute value as the target namespace %3. - + An argument with name %1 has already been declared. Every argument name must be unique. + Un argument nommé %1 a déjà été déclaré. Chaque nom d'argument doit être unique. - %1 element without %2 attribute is not allowed inside schema without target namespace. - + No function with name %1 is available. + Aucune fonction nommée %1 n'est disponible. - %1 element is not allowed inside %2 element if %3 attribute is present. + W3C XML Schema identity constraint selector - %1 element has neither %2 attribute nor %3 child element. + W3C XML Schema identity constraint field - %1 element with %2 child element must not have a %3 attribute. + A construct was encountered which is disallowed in the current language(%1). - %1 attribute of %2 element must be %3 or %4. - + An attribute with name %1 has already appeared on this element. + Un attribute nommé %1 existe déjà pour cet élément. - %1 attribute of %2 element must have a value of %3. + %1 has inheritance loop in its base type %2. - %1 attribute of %2 element must have a value of %3 or %4. + Circular inheritance of base type %1. - %1 element must not have %2 and %3 attribute together. + Circular inheritance of union %1. - Content of %1 attribute of %2 element must not be from namespace %3. + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. - %1 attribute of %2 element must not be %3. + %1 is not allowed to derive from %2 by extension as the latter defines it as final. - %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + Base type of simple type %1 cannot be complex type %2. - Specifying use='prohibited' inside an attribute group has no effect. + Simple type %1 cannot have direct base type %2. - %1 element must have either %2 or %3 attribute. + Simple type %1 is not allowed to have base type %2. - %1 element must have either %2 attribute or %3 or %4 as child element. + Simple type %1 can only have simple atomic type as base type. - %1 element requires either %2 or %3 attribute. + Simple type %1 cannot derive from %2 as the latter defines restriction as final. - Text or entity references not allowed inside %1 element + Variety of item type of %1 must be either atomic or union. - %1 attribute of %2 element must contain %3, %4 or a list of URIs. + Variety of member types of %1 must be atomic. - %1 element is not allowed in this context. + %1 is not allowed to derive from %2 by list as the latter defines it as final. - %1 attribute of %2 element has larger value than %3 attribute. + Simple type %1 is only allowed to have %2 facet. - Prefix of qualified name %1 is not defined. + Base type of simple type %1 must have variety of type list. - %1 attribute of %2 element must either contain %3 or the other values. + Base type of simple type %1 has defined derivation by restriction as final. - Component with ID %1 has been defined previously. + Item type of base type does not match item type of %1. - Element %1 already defined. + Simple type %1 contains not allowed facet type %2. - Attribute %1 already defined. + %1 is not allowed to derive from %2 by union as the latter defines it as final. - Type %1 already defined. + %1 is not allowed to have any facets. - Attribute group %1 already defined. + Base type %1 of simple type %2 must have variety of union. - Element group %1 already defined. + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. - Notation %1 already defined. + Member type %1 cannot be derived from member type %2 of %3's base type %4. - Identity constraint %1 already defined. + Derivation method of %1 must be extension because the base type %2 is a simple type. - Duplicated facets in simple type %1. + Complex type %1 has duplicated element %2 in its content model. - %1 is not valid according to %2. + Complex type %1 has non-deterministic content. - String content does not match the length facet. + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. - String content does not match the minLength facet. + Content model of complex type %1 is not a valid extension of content model of %2. - String content does not match the maxLength facet. + Complex type %1 must have simple content. - String content does not match pattern facet. + Complex type %1 must have the same simple type as its base class %2. - String content is not listed in the enumeration facet. + Complex type %1 cannot be derived from base type %2%3. - Signed integer content does not match the maxInclusive facet. + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. - Signed integer content does not match the maxExclusive facet. + Complex type %1 with simple content cannot be derived from complex base type %2. - Signed integer content does not match the minInclusive facet. + Item type of simple type %1 cannot be a complex type. - Signed integer content does not match the minExclusive facet. + Member type of simple type %1 cannot be a complex type. - Signed integer content is not listed in the enumeration facet. + %1 is not allowed to have a member type with the same name as itself. - Signed integer content does not match pattern facet. + %1 facet collides with %2 facet. - Signed integer content does not match in the totalDigits facet. + %1 facet must have the same value as %2 facet of base type. - Unsigned integer content does not match the maxInclusive facet. + %1 facet must be equal or greater than %2 facet of base type. - Unsigned integer content does not match the maxExclusive facet. + %1 facet must be less than or equal to %2 facet of base type. - Unsigned integer content does not match the minInclusive facet. + %1 facet contains invalid regular expression - Unsigned integer content does not match the minExclusive facet. + Unknown notation %1 used in %2 facet. - Unsigned integer content is not listed in the enumeration facet. + %1 facet contains invalid value %2: %3. - Unsigned integer content does not match pattern facet. + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. - Unsigned integer content does not match in the totalDigits facet. + %1 facet cannot be %2 if %3 facet of base type is %4. - Double content does not match the maxInclusive facet. + %1 facet must be less than or equal to %2 facet. - Double content does not match the maxExclusive facet. + %1 facet must be less than %2 facet of base type. - Double content does not match the minInclusive facet. + %1 facet and %2 facet cannot appear together. - Double content does not match the minExclusive facet. + %1 facet must be greater than %2 facet of base type. - Double content is not listed in the enumeration facet. + %1 facet must be less than %2 facet. - Double content does not match pattern facet. + %1 facet must be greater than or equal to %2 facet of base type. - Decimal content does not match in the fractionDigits facet. + Simple type contains not allowed facet %1. - Decimal content does not match in the totalDigits facet. + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. - Date time content does not match the maxInclusive facet. + Only %1 and %2 facets are allowed when derived by union. - Date time content does not match the maxExclusive facet. + %1 contains %2 facet with invalid data: %3. - Date time content does not match the minInclusive facet. + Attribute group %1 contains attribute %2 twice. - Date time content does not match the minExclusive facet. + Attribute group %1 contains two different attributes that both have types derived from %2. - Date time content is not listed in the enumeration facet. + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. - Date time content does not match pattern facet. + Complex type %1 contains attribute %2 twice. - Duration content does not match the maxInclusive facet. + Complex type %1 contains two different attributes that both have types derived from %2. - Duration content does not match the maxExclusive facet. + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. - Duration content does not match the minInclusive facet. + Element %1 is not allowed to have a value constraint if its base type is complex. - Duration content does not match the minExclusive facet. + Element %1 is not allowed to have a value constraint if its type is derived from %2. - Duration content is not listed in the enumeration facet. + Value constraint of element %1 is not of elements type: %2. - Duration content does not match pattern facet. + Element %1 is not allowed to have substitution group affiliation as it is no global element. - Boolean content does not match pattern facet. + Type of element %1 cannot be derived from type of substitution group affiliation. - Binary content does not match the length facet. + Value constraint of attribute %1 is not of attributes type: %2. - Binary content does not match the minLength facet. + Attribute %1 has value constraint but has type derived from %2. - Binary content does not match the maxLength facet. + %1 attribute in derived complex type must be %2 like in base type. - Binary content is not listed in the enumeration facet. + Attribute %1 in derived complex type must have %2 value constraint like in base type. - Invalid QName content: %1. + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. - QName content is not listed in the enumeration facet. + Attribute %1 in derived complex type must have %2 value constraint. - QName content does not match pattern facet. + processContent of base wildcard must be weaker than derived wildcard. - Notation content is not listed in the enumeration facet. + Element %1 exists twice with different types. - List content does not match length facet. + Particle contains non-deterministic wildcards. - List content does not match minLength facet. + Base attribute %1 is required but derived attribute is not. - List content does not match maxLength facet. + Type of derived attribute %1 cannot be validly derived from type of base attribute. - List content is not listed in the enumeration facet. + Value constraint of derived attribute %1 does not match value constraint of base attribute. - List content does not match pattern facet. + Derived attribute %1 does not exist in the base definition. - Union content is not listed in the enumeration facet. + Derived attribute %1 does not match the wildcard in the base definition. - Union content does not match pattern facet. + Base attribute %1 is required but missing in derived definition. - Data of type %1 are not allowed to be empty. + Derived definition contains an %1 element that does not exists in the base definition - Element %1 is missing child element. + Derived wildcard is not a subset of the base wildcard. - There is one IDREF value with no corresponding ID: %1. + %1 of derived wildcard is not a valid restriction of %2 of base wildcard - Loaded schema file is invalid. + Attribute %1 from base type is missing in derived type. - %1 contains invalid data. + Type of derived attribute %1 differs from type of base attribute. - xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + Base definition contains an %1 element that is missing in the derived definition - xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + %1 references unknown %2 or %3 element %4. - No schema defined for validation. + %1 references identity constraint %2 that is no %3 or %4 element. - No definition for element %1 available. + %1 has a different number of fields from the identity constraint %2 that it references. - Specified type %1 is not known to the schema. + Base type %1 of %2 element cannot be resolved. - Element %1 is not defined in this scope. + Item type %1 of %2 element cannot be resolved. - Declaration for element %1 does not exist. + Member type %1 of %2 element cannot be resolved. - Element %1 contains invalid content. + Type %1 of %2 element cannot be resolved. - Element %1 is declared as abstract. + Base type %1 of complex type cannot be resolved. - Element %1 is not nillable. + %1 cannot have complex base type that has a %2. - Attribute %1 contains invalid data: %2 + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. - Element contains content although it is nillable. + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. - Fixed value constraint not allowed if element is nillable. + Type of %1 element must be a simple type, %2 is not. - Element %1 cannot contain other elements, as it has a fixed content. + Substitution group %1 of %2 element cannot be resolved. - Specified type %1 is not validly substitutable with element type %2. + Substitution group %1 has circular definition. - Complex type %1 is not allowed to be abstract. + Duplicated element names %1 in %2 element. - Element %1 contains not allowed attributes. + Reference %1 of %2 element cannot be resolved. - Element %1 contains not allowed child element. + Circular group reference for %1. - Content of element %1 does not match its type definition: %2. + %1 element is not allowed in this scope - Content of element %1 does not match defined value constraint. + %1 element cannot have %2 attribute with value other than %3. - Element %1 contains not allowed child content. + %1 element cannot have %2 attribute with value other than %3 or %4. - Element %1 contains not allowed text content. + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. - Element %1 is missing required attribute %2. + Attribute group %1 has circular reference. - Attribute %1 does not match the attribute wildcard. + %1 attribute in %2 must have %3 use like in base type %4. - Declaration for attribute %1 does not exist. + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. - Element %1 contains two attributes of type %2. + %1 has attribute wildcard but its base type %2 has not. - Attribute %1 contains invalid content. + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. - Element %1 contains unknown attribute %2. + Enumeration facet contains invalid content: {%1} is not a value of type %2. - Content of attribute %1 does not match its type definition: %2. + Namespace prefix of qualified name %1 is not defined. - Content of attribute %1 does not match defined value constraint. + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. - Non-unique value found for constraint %1. + Empty particle cannot be derived from non-empty particle. - Key constraint %1 contains absent fields. + Derived particle is missing element %1. - Key constraint %1 contains references nillable element %2. + Derived element %1 is missing value constraint as defined in base particle. - No referenced value found for key reference %1. + Derived element %1 has weaker value constraint than base particle. - More than one value found for field %1. + Fixed value constraint of element %1 differs from value constraint in base particle. - Field %1 has no simple type. + Derived element %1 cannot be nillable as base element is not nillable. - ID value '%1' is not unique. + Block constraints of derived element %1 must not be more weaker than in the base element. - '%1' attribute contains invalid QName content: %2. + Simple type of derived element %1 cannot be validly derived from base element. - - - VolumeSlider - - Muted - Muet + Complex type of derived element %1 cannot be validly derived from base element. + - - - Volume: %1% - Volume : %1% + Element %1 is missing in derived particle. + - - - WebCore::PlatformScrollbar - Scroll here - Défiler jusqu'ici + Element %1 does not match namespace constraint of wildcard in base particle. + - Left edge - Extrême gauche + Wildcard in derived particle is not a valid subset of wildcard in base particle. + - Top - En haut + processContent of wildcard in derived particle is weaker than wildcard in base particle. + - Right edge - Extrême droite + Derived particle allows content that is not allowed in the base particle. + - Bottom - En bas + Can not process unknown element %1, expected elements are: %2. + - Page left - Page précédente + Element %1 is not allowed in this scope, possible elements are: %2. + - Page up - Page précédente + Child element is missing in that scope, possible child elements are: %1. + - Page right - Page suivante + Document is not a XML schema. + - Page down - Page suivante + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + - Scroll left - Défiler vers la gauche + %1 attribute of %2 element contains invalid content: {%3}. + - Scroll up - Défiler vers le haut + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + - Scroll right - Défiler vers la droite + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + - Scroll down - Défiler vers le bas + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + - - - FakeReply - Fake error ! - Fausse erreur! + %1 element without %2 attribute is not allowed inside schema without target namespace. + - Invalid URL - URL non valide + %1 element is not allowed inside %2 element if %3 attribute is present. + - - - Phonon::AudioOutput - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> - <html>Le périphérique audio <b>%1</b> ne fonctionne pas.<br/>Repli sur <b>%2</b>.</html> + %1 element has neither %2 attribute nor %3 child element. + - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> - <html>Basculement vers le périphérique audio <b>%1</b><br/>qui vient juste d'être disponible et dont le niveau de préférence est plus élevé.</html> + %1 element with %2 child element must not have a %3 attribute. + - Revert back to device '%1' - Revenir au périphérique '%1' + %1 attribute of %2 element must be %3 or %4. + - - - Phonon::MMF - Audio Output - Sortie audio + %1 attribute of %2 element must have a value of %3. + - The audio output device - Périphérique audio de sortie + %1 attribute of %2 element must have a value of %3 or %4. + - No error - Aucune erreur + %1 element must not have %2 and %3 attribute together. + - Not found - Introuvable + Content of %1 attribute of %2 element must not be from namespace %3. + - Out of memory - Mémoire insuffisante + %1 attribute of %2 element must not be %3. + - Not supported - Non supporté + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + - Overflow - Dépassement + Specifying use='prohibited' inside an attribute group has no effect. + - Underflow - Soupassement + %1 element must have either %2 or %3 attribute. + - Already exists - Existe déjà + %1 element must have either %2 attribute or %3 or %4 as child element. + - Path not found - Chemin introuvable + %1 element requires either %2 or %3 attribute. + - In use - Utilisé + Text or entity references not allowed inside %1 element + - Not ready - Pas prêt + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + - Access denied - Accès refusé + %1 element is not allowed in this context. + - Could not connect - Connexion impossible + %1 attribute of %2 element has larger value than %3 attribute. + - Disconnected - Déconnecté + Prefix of qualified name %1 is not defined. + - Permission denied - Autorisation refusée + %1 attribute of %2 element must either contain %3 or the other values. + - Insufficient bandwidth - Bande passante insuffisante + Component with ID %1 has been defined previously. + - Network unavailable - Réseau non disponible + Element %1 already defined. + - Network communication error - Erreur de communication réseau + Attribute %1 already defined. + - Streaming not supported - Streaming non supporté + Type %1 already defined. + - Server alert - Alerte serveur + Attribute group %1 already defined. + - Invalid protocol - Protocole non valide + Element group %1 already defined. + - Invalid URL - URL non valide + Notation %1 already defined. + - Multicast error - Erreur multicast + Identity constraint %1 already defined. + - Proxy server error - Erreur du serveur proxy + Duplicated facets in simple type %1. + - Proxy server not supported - Serveur proxy non supporté + %1 is not valid according to %2. + - Audio output error - Erreur de sortie audio + String content does not match the length facet. + - Video output error - Erreur de sortie vidéo + String content does not match the minLength facet. + - Decoder error - Erreur du décodeur + String content does not match the maxLength facet. + - Audio or video components could not be played - Les composants audio ou vidéo n'ont pas pu être lus + String content does not match pattern facet. + - DRM error - Erreur GDN + String content is not listed in the enumeration facet. + - Unknown error (%1) - Erreur inconnue (%1) + Signed integer content does not match the maxInclusive facet. + - - - Phonon::MMF::AbstractMediaPlayer - Not ready to play - Pas prêt pour lecture + Signed integer content does not match the maxExclusive facet. + - Error opening file - Erreur lors de l'ouverture du fichier + Signed integer content does not match the minInclusive facet. + - Error opening URL - Erreur lors de l'ouverture de l'URL + Signed integer content does not match the minExclusive facet. + - Setting volume failed - Le réglage du volume a échoué + Signed integer content is not listed in the enumeration facet. + - Playback complete - Lecture terminée + Signed integer content does not match pattern facet. + - - - Phonon::MMF::AudioEqualizer - %1 Hz - %1 Hz + Signed integer content does not match in the totalDigits facet. + - - - Phonon::MMF::AudioPlayer - Getting position failed - L'obtention de la position a échoué + Unsigned integer content does not match the maxInclusive facet. + - Opening clip failed - L'ouverture du clip a échoué + Unsigned integer content does not match the maxExclusive facet. + - - - Phonon::MMF::EffectFactory - Enabled - Activé + Unsigned integer content does not match the minInclusive facet. + - - - Phonon::MMF::EnvironmentalReverb - Decay HF ratio (%) - Ratio HF du déclin (%) + Unsigned integer content does not match the minExclusive facet. + - Decay time (ms) - Temps de déclin (ms) + Unsigned integer content is not listed in the enumeration facet. + - Density (%) - Densité (%) + Unsigned integer content does not match pattern facet. + - Diffusion (%) - Diffusion (%) + Unsigned integer content does not match in the totalDigits facet. + - Reflections delay (ms) - Délai réflexions (ms) + Double content does not match the maxInclusive facet. + - Reflections level (mB) - Niveau réflexions (mB) + Double content does not match the maxExclusive facet. + - Reverb delay (ms) - Délai de réverbération (ms) + Double content does not match the minInclusive facet. + - Reverb level (mB) - Niveau de réverbération (mB) + Double content does not match the minExclusive facet. + - Room HF level - Niveau HF pièce + Double content is not listed in the enumeration facet. + - Room level (mB) - Niveau pièce (mB) + Double content does not match pattern facet. + - - - Phonon::MMF::MediaObject - Error opening source: type not supported - Erreur lors de l'ouverture de la source: type non supporté + Decimal content does not match in the fractionDigits facet. + - Error opening source: media type could not be determined - Erreur lors de l'ouverture de la source: type de média non déterminé + Decimal content does not match in the totalDigits facet. + - - - Phonon::MMF::StereoWidening - Level (%) - Niveau (%) + Date time content does not match the maxInclusive facet. + - - - Phonon::MMF::VideoPlayer - Pause failed - La mise en pause a échoué + Date time content does not match the maxExclusive facet. + - Seek failed - La recherche a échoué + Date time content does not match the minInclusive facet. + - Getting position failed - L'obtention de la position a échoué + Date time content does not match the minExclusive facet. + - Opening clip failed - L'ouverture du clip a échoué + Date time content is not listed in the enumeration facet. + - Buffering clip failed - La mise en mémoire tampon du clip a échoué + Date time content does not match pattern facet. + - Video display error - Erreur de l'affichage vidéo + Duration content does not match the maxInclusive facet. + - - - QAccessibleButton - Press - Appuyer + Duration content does not match the maxExclusive facet. + - - - QNetworkAccessDebugPipeBackend - Write error writing to %1: %2 - Erreur lors de l'écriture dans %1: %2 + Duration content does not match the minInclusive facet. + - - - QScriptBreakpointsModel - ID - Identifiant + Duration content does not match the minExclusive facet. + - Location - Lieu + Duration content is not listed in the enumeration facet. + - Condition - Condition + Duration content does not match pattern facet. + - Ignore-count - Comptes d'ignorés + Boolean content does not match pattern facet. + - Single-shot - Un seul tir + Binary content does not match the length facet. + - Hit-count - Compte de coups + Binary content does not match the minLength facet. + - - - QScriptBreakpointsWidget - New - Créer + Binary content does not match the maxLength facet. + - Delete - Supprimer + Binary content is not listed in the enumeration facet. + - - - QScriptDebugger - Go to Line - Aller à la ligne + Invalid QName content: %1. + - Line: - Ligne: + QName content is not listed in the enumeration facet. + - Interrupt - Interrompre + QName content does not match pattern facet. + - Shift+F5 - Shift+F5 + Notation content is not listed in the enumeration facet. + - Continue - Continuer + List content does not match length facet. + - F5 - F5 + List content does not match minLength facet. + - Step Into - Pas à pas détaillé + List content does not match maxLength facet. + - F11 - F11 + List content is not listed in the enumeration facet. + - Step Over - Pas à pas principal + List content does not match pattern facet. + - F10 - F10 + Union content is not listed in the enumeration facet. + - Step Out - Pas à pas sortant + Union content does not match pattern facet. + - Shift+F11 - Shift+F11 + Data of type %1 are not allowed to be empty. + - Run to Cursor - Exécuter au curseur + Element %1 is missing child element. + - Ctrl+F10 - Ctrl+F10 + There is one IDREF value with no corresponding ID: %1. + - Run to New Script - Exécuter au nouveau script + Loaded schema file is invalid. + - Toggle Breakpoint - Basculer le point d'arrêt + %1 contains invalid data. + - F9 - F9 + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + - Clear Debug Output - Effacer les résultats du débogage + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + - Clear Error Log - Effacer le journal d'erreurs + No schema defined for validation. + - Clear Console - Effacer la console + No definition for element %1 available. + - &Find in Script... - &Chercher dans le script... + Specified type %1 is not known to the schema. + - Ctrl+F - Ctrl+F + Element %1 is not defined in this scope. + - Find &Next - Résultat &suivant + Declaration for element %1 does not exist. + - F3 - F3 + Element %1 contains invalid content. + - Find &Previous - Chercher &précédent + Element %1 is declared as abstract. + - Shift+F3 - Shift+F3 + Element %1 is not nillable. + - Ctrl+G - Ctrl+G + Attribute %1 contains invalid data: %2 + - Debug - Déboguer + Element contains content although it is nillable. + - - - QScriptDebuggerCodeFinderWidget - Close - Fermer + Fixed value constraint not allowed if element is nillable. + - Previous - Précédent + Element %1 cannot contain other elements, as it has a fixed content. + - Next - Suivant + Specified type %1 is not validly substitutable with element type %2. + - Case Sensitive - Sensible à la casse + Complex type %1 is not allowed to be abstract. + - Whole words - Mots entiers + Element %1 contains not allowed attributes. + - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;La recherche est revenue au début + Element %1 contains not allowed child element. + - - - QScriptDebuggerLocalsModel - Name - Nom + Content of element %1 does not match its type definition: %2. + - Value - Valeur + Content of element %1 does not match defined value constraint. + - - - QScriptDebuggerStackModel - Level - Niveau + Element %1 contains not allowed child content. + - Name - Nom + Element %1 contains not allowed text content. + - Location - Lieu + Element %1 is missing required attribute %2. + - - - QScriptEdit - Toggle Breakpoint - Basculer le point d'arrêt + Attribute %1 does not match the attribute wildcard. + - Disable Breakpoint - Désactiver le point d'arrêt + Declaration for attribute %1 does not exist. + - Enable Breakpoint - Activer le point d'arrêt + Element %1 contains two attributes of type %2. + - Breakpoint Condition: - Condition du point d'arrêt: + Attribute %1 contains invalid content. + - - - QScriptEngineDebugger - Loaded Scripts - Scripts chargés + Element %1 contains unknown attribute %2. + - Breakpoints - Points d'arrêt + Content of attribute %1 does not match its type definition: %2. + - Stack - Empiler + Content of attribute %1 does not match defined value constraint. + - Locals - Locaux + Non-unique value found for constraint %1. + - Console - Console + Key constraint %1 contains absent fields. + - Debug Output - Résultats du débogage + Key constraint %1 contains references nillable element %2. + - Error Log - Journal d'erreurs + No referenced value found for key reference %1. + - Search - Chercher + More than one value found for field %1. + - View - Afficher + Field %1 has no simple type. + - Qt Script Debugger - Débogueur de script Qt + ID value '%1' is not unique. + - - - QScriptNewBreakpointWidget - Close - Fermer + '%1' attribute contains invalid QName content: %2. + - QSoftKeyManager + VolumeSlider - Ok - OK + Muted + Muet - Select - Sélectionner + Volume: %1% + Volume : %1% + + + WebCore::PlatformScrollbar - Done - Terminer + Scroll here + Défiler jusqu'ici - Options - Options + Left edge + Extrême gauche - Cancel - Annuler + Top + En haut - Exit - Quitter + Right edge + Extrême droite - - - QStateMachine - Missing initial state in compound state '%1' - État initial manquant dans l'état composé '%1' + Bottom + En bas - Missing default state in history state '%1' - État par défaut manquant dans l'état de l'historique '%1' + Page left + Page précédente - No common ancestor for targets and source of transition from state '%1' - Aucun ancêtre commun pour les cibles et la source de transition de l'état '%1' + Page up + Page précédente - Unknown error - Erreur inconnue + Page right + Page suivante - - - QXmlPatternistCLI - Warning in %1, at line %2, column %3: %4 - Avertissement dans %1, à la ligne %2, colonne %3: %4 + Page down + Page suivante - Warning in %1: %2 - Avertissement dans %1: %2 + Scroll left + Défiler vers la gauche - Unknown location - Lieu inconnu + Scroll up + Défiler vers le haut - Error %1 in %2, at line %3, column %4: %5 - Erreur %1 dans %2, à la ligne %3, colonne %4: %5 + Scroll right + Défiler vers la droite - Error %1 in %2: %3 - Erreur %1 dans %2: %3 + Scroll down + Défiler vers le bas diff --git a/translations/qt_help_fr.ts b/translations/qt_help_fr.ts index 3835d10..f0cabc2 100644 --- a/translations/qt_help_fr.ts +++ b/translations/qt_help_fr.ts @@ -4,27 +4,22 @@ QCLuceneResultWidget - Search Results Résultats de la recherche - Note: Note : - The search results may not be complete since the documentation is still being indexed! Les résultats de la recherche risquent d'être incomplets car l'indexation de la documentation est en cours ! - Your search did not match any documents. Votre recherche ne correspond à aucun document. - (The reason for this might be that the documentation is still being indexed.) (Il est possible que cela soit dû au fait que la documentation est en cours d'indexation.) @@ -32,80 +27,64 @@ QHelpCollectionHandler - The collection file '%1' is not set up yet! Le fichier de collection '%1' n'est pas encore chargé ! - Cannot load sqlite database driver! driver ? Chargement du pilote de base de données sqlite impossible ! - - Cannot open collection file: %1 collection ? Impossible d'ouvrir le fichier collection : %1 - Cannot create tables in file %1! Impossible de créer les tables dans le fichier : %1 ! - The collection file '%1' already exists! Le fichier collection '%1' existe déjà ! - Cannot create directory: %1 Impossible de créer le répertoire : %1 - Cannot copy collection file: %1 Impossible de copier le fichier collection : %1 - Unknown filter '%1'! Filtre '%1' inconnu ! - Cannot register filter %1! Impossible d'enregistrer le filtre %1 ! - Cannot open documentation file %1! Impossible d'ouvrir le fichier de documentation %1 ! - Invalid documentation file '%1'! Fichier de documentation invalide : '%1' ! - The namespace %1 was not registered! L'espace de noms '%1' n'était pas référencé ! - Namespace %1 already exists! L'espace de noms %1 existe déjà ! - Cannot register namespace '%1'! Impossible d'enregistrer l'espace de noms '%1' ! - Cannot open database '%1' to optimize! Impossible d'ouvrir la base de données à optimiser '%1' ! @@ -113,7 +92,6 @@ QHelpDBReader - Cannot open database '%1' '%2': %3 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 Impossible d'ouvrir la base de données '%1' '%2' : %3 @@ -122,7 +100,10 @@ QHelpEngineCore - + Cannot open documentation file %1: %2! + Impossible d'ouvrir le fichier de documentation %1 : %2 ! + + The specified namespace does not exist! L'espace de noms spécifié n'existe pas ! @@ -130,182 +111,210 @@ QHelpEngineCorePrivate - Cannot open documentation file %1: %2! - Impossible d'ouvrir le fichier de documentation %1 : %2 ! + Impossible d'ouvrir le fichier de documentation %1 : %2 ! QHelpGenerator - Invalid help data! Données d'aide invalides ! - No output file name specified! Aucun nom de fichier de sortie spécifié ! - The file %1 cannot be overwritten! Le fichier %1 ne peut être écrasé ! - Building up file structure... Construction de la structure de fichiers en cours… - Cannot open data base file %1! Impossible d'ouvrir le fichier de base de données %1 ! - Cannot register namespace %1! Impossible d'enregistrer l'espace de noms %1 ! - Insert custom filters... Insértion des filtres personnalisés… - Insert help data for filter section (%1 of %2)... ??? Insertion des données d'aide pour la section filtre (%1 de %2)… - Documentation successfully generated. Documentation générée avec succès. - Some tables already exist! Certaines tables existent déjà ! - Cannot create tables! Impossible de créer les tables ! - Cannot register virtual folder! Impossible d'enregistrer le dossier virtuel ! - Insert files... Insertion des fichiers... - The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. Le fichier référencé %1 doit être dans le dossier (%2) ou un de ses sous-dossiers. Fichier non pris en compte. - The file %1 does not exist! Skipping it. Le fichier %1 n'existe pas ! Fichier non pris en compte. - Cannot open file %1! Skipping it. Impossible d'ouvrir le fichier %1 ! Fichier non pris en compte. - The filter %1 is already registered! Le filtre %1 est déjà enregistré ! - Cannot register filter %1! Impossible d'enregistrer le filtre %1 ! - Insert indices... Insertion des index… - Insert contents... insertion du contenu… - Cannot insert contents! Impossible d'insérer le contenu ! - Cannot register contents! Impossible de référencer le contenu ! + + File '%1' does not exist. + Le fichier '%1' n'existe pas. + + + File '%1' cannot be opened. + Le fichier '%1' ne peut être ouvert. + + + File '%1' contains an invalid link to file '%2' + Le fichier '%1' contient un lien invalide vers le fichier '%2' + + + Invalid links in HTML files. + Liens invalides dans les fichiers HTML. + + + + QHelpProject + + Unknown token. + Identificateur inconnu. + + + Unknown token. Expected "QtHelpProject"! + Identificateur inconnu. "QtHelpProject" attendu ! + + + Error in line %1: %2 + Erreur à la ligne %1 : %2 + + + Virtual folder has invalid syntax. + Syntaxe invalide pour le dossier virtuel. + + + Namespace has invalid syntax. + Syntaxe invalide pour l'espace de noms. + + + Missing namespace in QtHelpProject. + Espace de noms manquant dans QtHelpProject. + + + Missing virtual folder in QtHelpProject + Dossier virtuel manquant dans QtHelpProject + + + Missing attribute in keyword at line %1. + Attribut manquant pour le mot clé à la ligne %1. + + + The input file %1 could not be opened! + Le fichier source %1 n'a pas pu être ouvert ! + QHelpSearchQueryWidget - Search for: Rechercher : - Previous search Recherche précédente - Next search Recherche suivante - Search Recherche - Advanced search Recherche avancée - words <B>similar</B> to: mots <B>semblables</B> à : - <B>without</B> the words: <B>sans</B> les mots : - with <B>exact phrase</B>: avec la <B>phrase exacte</B> : - with <B>all</B> of the words: avec <B>tous</B> les mots : - with <B>at least one</B> of the words: avec <B>au moins un</B> des mots : QHelpSearchResultWidget + + %1 - %2 of %n Hits + + %1 - %2 de %n résultat + %1 - %2 de %n résultats + + - 0 - 0 of 0 Hits 0 - 0 de 0 résultats @@ -313,63 +322,52 @@ QHelpSearchResultWidgetPrivate - %1 - %2 of %3 Hits - %1 - %2 de %3 résultats + %1 - %2 de %3 résultats QObject - Untitled - Sans titre + Sans titre - Unknown token. contexte peu clair... - Identificateur inconnu. + Identificateur inconnu. - Unknown token. Expected "QtHelpProject"! - Identificateur inconnu. "QtHelpProject" attendu ! + Identificateur inconnu. "QtHelpProject" attendu ! - Error in line %1: %2 - Erreur à la ligne %1 : %2 + Erreur à la ligne %1 : %2 - A virtual folder must not contain a '/' character! - Un dossier virtuel ne doit pas contenir le caractère '/' ! + Un dossier virtuel ne doit pas contenir le caractère '/' ! - A namespace must not contain a '/' character! - Un espace de noms ne doit pas contenir le caractère '/' ! + Un espace de noms ne doit pas contenir le caractère '/' ! - Missing namespace in QtHelpProject. - Espace de noms manquant dans QtHelpProject. + Espace de noms manquant dans QtHelpProject. - Missing virtual folder in QtHelpProject - Dossier virtuel manquant dans QtHelpProject + Dossier virtuel manquant dans QtHelpProject - Missing attribute in keyword at line %1. - Attribut manquant pour le mot clé à la ligne %1. + Attribut manquant pour le mot clé à la ligne %1. - The input file %1 could not be opened! - Le fichier source %1 n'a pas pu être ouvert ! + Le fichier source %1 n'a pas pu être ouvert ! -- cgit v0.12 From 4fd04190ab3800fde261293acd4bcf11cf449dee Mon Sep 17 00:00:00 2001 From: qCaro Date: Thu, 1 Jul 2010 14:50:18 +0200 Subject: Some more french translations. Reviewed-by: Pierre --- translations/qt_fr.ts | 307 +++++++++++++++++++++++++------------------------- 1 file changed, 156 insertions(+), 151 deletions(-) diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts index 2a4135b..56a9e0e 100644 --- a/translations/qt_fr.ts +++ b/translations/qt_fr.ts @@ -1706,7 +1706,7 @@ en Component elements may not contain properties other than id - + Les éléments du composant ne peuvent pas contenir des propriétés autres que id Invalid component id specification @@ -1718,167 +1718,167 @@ en Invalid component body specification - + Le corps de la spécification du composant n'est pas valide Component objects cannot declare new properties. - + Les objets composants ne peuvent pas déclarer de nouvelles propriétés. Component objects cannot declare new signals. - + Les objets composants ne peuvent pas déclarer de nouveaux signaux. Component objects cannot declare new functions. - + Les objets composants ne peuvent pas déclarer de nouvelles fonctions. Cannot create empty component specification - + Impossible de créer une spécification du composant vide Incorrectly specified signal assignment - + L'affectation du signal est ncorrectement spécifiée Cannot assign a value to a signal (expecting a script to be run) - + Impossible d'assigner une valeur à un signal (celà exige d'éxécuter un script) Empty signal assignment - + Signal d'affectation vide Empty property assignment - + Propriété d'affectation vide Attached properties cannot be used here - + La configuration spécifiée ne peut être utilisée.ici Non-existent attached object - + Objet attaché non existant Invalid attached object assignment - + L'affectation de l'objet attaché est invalide Cannot assign to non-existent default property - + Impossible d'attacher à une propriété par défaut non existante Cannot assign to non-existent property "%1" - + Impossible d'attacher à une propriété non existante "%1" Invalid use of namespace - + Utilisation invalide d'espace de noms Not an attached property name - + Ce n'est pas un nom de propriété attachée Invalid use of id property - + Utilisation invalide de la propriété id Property has already been assigned a value - + Une valeur a déjà été attribuée à la propriété Invalid grouped property access - + Accès invalide à une propriété groupée Cannot assign a value directly to a grouped property - + Impossible d'assigner directement une valeur à une propriété groupée Invalid property use - + La propriété utilisée est invalide Property assignment expected - + Propriété d'affectation attendue Single property assignment expected - + Une seule propriété d'affectation est attendue Unexpected object assignment - + Affectation d'objet innatendue Cannot assign object to list - + Impossible d'assigner un objet à une liste Can only assign one binding to lists - + Un seul lien peut être assigné à des listes Cannot assign primitives to lists - + Impossible d'assigner des primitives à des listes Cannot assign multiple values to a script property - + Impossible d'assigner plusieurs valeurs à une propriété de script Invalid property assignment: script expected - + Propriété d'affectation invalide: script attendu Cannot assign object to property - + Impossible d'assigner un objet à une propriété "%1" cannot operate on "%2" - + "%1" ne peut pas fonctionner sur "%2" Duplicate default property - + Propriété par défaut en double Duplicate property name - + Nom de propriété en double Property names cannot begin with an upper case letter - + Les noms des propriétés ne peuvent pas commencer par une majuscule Duplicate signal name - + Nom de signal en double Signal names cannot begin with an upper case letter - + Les noms de signaux ne peuvent pas commencer par une majuscule Duplicate method name - + Nom de méthode en double Method names cannot begin with an upper case letter - + Les noms des méthodes ne peuvent pas commencer par une majuscule Property value set multiple times - + Valeur de propriété attribuée plusieurs fois Invalid property nesting - + Propriété d'emboîtement invalide Cannot override FINAL property - + Impossible de remplacer la propriété FINAL Invalid property type @@ -1890,177 +1890,178 @@ en IDs cannot start with an uppercase letter - + Les IDs ne peuvent pas commencer par une majuscule IDs must start with a letter or underscore - + Les IDs doivent commencer par une lettre ou un souligné IDs must contain only letters, numbers, and underscores - + Les IDs ne peuvent contenir que des lettres, des nombres ou des soulignés ID illegally masks global JavaScript property - + ID masque illégalement la propriété JavaScript globale No property alias location - + ?? + La propriété de l'alias n'a pas d'emplacement Invalid alias location - + Emplacement d'alias invalide Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> - + Référence d'alias invalide. La référence d'alias doit être spécifiée comme <id> ou <id>.<property> Invalid alias reference. Unable to find id "%1" - + Référence d'alias invalide. Impossible de trouver l'id "%1" QDeclarativeComponent Invalid empty URL - + URL vide non valide QDeclarativeCompositeTypeManager Resource %1 unavailable - + La ressource %1 n'est pas disponible Namespace %1 cannot be used as a type - + L'espace de noms %1 ne peut pas être utilisé comme un type %1 %2 - %1% {1 %2?} + %1 %2 Type %1 unavailable - + Le type %1 n'est pas disponible QDeclarativeConnections Cannot assign to non-existent property "%1" - + Imposible d'assigner à la propriété inexistante "%1" Connections: nested objects not allowed - + Connexions: les éléments imbriqués ne sont pas autorisés Connections: syntax error - + Connexions: erreur de syntaxe Connections: script expected - + Connexions: script attendu QDeclarativeEngine executeSql called outside transaction() - + executeSql a été 1.appelé en dehors de transaction() Read-only Transaction - + Transaction en lecture seule Version mismatch: expected %1, found %2 - + Version incompatible:%1 attendue, %2 trouvée SQL transaction failed - + la transaction SQL a échouée transaction: missing callback - + transaction: le rappel est absent SQL: database version mismatch - + SQL: la version de la base de données est incompatible QDeclarativeFlipable front is a write-once property - + avant est une propriété à écriture unique back is a write-once property - + arrière est une propriété à écriture unique QDeclarativeImportDatabase module "%1" definition "%2" not readable - + La définition "%2" du module "%1% n'est pas lisible plugin cannot be loaded for module "%1": %2 - + Impossible de charger le plugin pour le module "%1": %2 module "%1" plugin "%2" not found - + Le plugin "%2" du module "%1" n'a pas été trouvé module "%1" version %2.%3 is not installed - + la version %2.%3 du module "%1" n'est pas installée module "%1" is not installed - + le module "%1" n'est pas installé "%1": no such directory - + "%1": le répertoire n'existe pas import "%1" has no qmldir and no namespace - + l'importation "%1" n'a pas de qmldir ni d'espace de noms - %1 is not a namespace - + - %1 n'est pas un espace de noms - nested namespaces not allowed - + - les espaces de noms imbriqués ne sont pas autorisés local directory - + répertoire local is ambiguous. Found in %1 and in %2 - + est ambigu. Trouvé dans %1 et dans %2 is ambiguous. Found in %1 in version %2.%3 and %4.%5 - + est ambigu. Trouvé dans %1 dans les versions %2.%3 et %4.%5 is instantiated recursively - + est instancié récursivement is not a type - + n'est pas un type @@ -2074,328 +2075,332 @@ en QDeclarativeKeysAttached Keys is only available via attached properties - + Keys, a verifier + Keys est disponible uniquement via les propriétés attachées QDeclarativeListModel remove: index %1 out of range - + supprimer: l'inder %1 est hors de la plage de valeurs admissible insert: value is not an object - + insérer: une valeur n'est pas un objet insert: index %1 out of range - + insérer: l'inder %1 est hors de la plage de valeurs admissible move: out of range - + Déplacer: hors de la plage de valeurs admissible append: value is not an object - + ajouter: une valeur n'est pas un objet set: value is not an object - + attribuer: une valeur n'est pas un objet set: index %1 out of range - + attribuer: l'index %1 est hors de la plage de valeurs admissible ListElement: cannot contain nested elements - + ListElement: ne peut pas contenir des éléments imbriqués ListElement: cannot use reserved "id" property - + ListElement: ne peut pas utiliser la propriété réservée "id" ListElement: cannot use script for property value - + ListElement: ne peut pas utiliser script comme valeur pour une propriété ListModel: undefined property '%1' - + ListModel: propriété indéfinie '%1' QDeclarativeLoader Loader does not support loading non-visual elements. - + Le chargeur n'est pas compatible avec le chargement d'éléments non-visuels. QDeclarativeParentAnimation Unable to preserve appearance under complex transform - + Impossible de conserver l'aspect lors d'une transformation complexe Unable to preserve appearance under non-uniform scale - + Impossible de conserver l'aspect lors d'une mise à l'échelle non uniforme Unable to preserve appearance under scale of 0 - + Impossible de conserver l'aspect lors d'une mise à l'échelle égale à 0 QDeclarativeParentChange Unable to preserve appearance under complex transform - + Impossible de conserver l'aspect lors d'une transformation complexe Unable to preserve appearance under non-uniform scale - + Impossible de conserver l'aspect lors d'une mise à l'échelle non uniforme Unable to preserve appearance under scale of 0 - + Impossible de conserver l'aspect lors d'une mise à l'échelle égale à 0 QDeclarativeParser Illegal unicode escape sequence - + séquence d'échappement unicode illégale Illegal character - + caractère illégal Unclosed string at end of line - + chaîne de caractères non fermée en fin de ligne Illegal escape squence - + séquence d'échappement illégale Unclosed comment at end of file - + commentaire non fermé en fin de ligne Illegal syntax for exponential number - + syntaxe illégale pour un nombre exponentiel Identifier cannot start with numeric literal - + ??? + impossible de commencer un identifiant par un littéral numérique Unterminated regular expression literal - + littéral non terminé pour l'expression régulière Invalid regular expression flag '%0' - + drapeau '%0' invalid pour l'expression régulière Unterminated regular expression backslash sequence - + séquence antislash non terminée pour l'expression régulière Unterminated regular expression class - + class non terminé pour l'expression régulière Syntax error - + Erreur de syntaxe Unexpected token `%1' - + jeton inattendu '%1' Expected token `%1' - + jeton attendu '%1' Property value set multiple times - + valeur de propriété attribuée à plusieurs reprises Expected type name - + Nom de type attendu Invalid import qualifier ID - + qualificatif ID d'importation invalide Reserved name "Qt" cannot be used as an qualifier - + "Qt" est un nom réservé et ne peut pas être utilisé comme qualificatif Script import qualifiers must be unique. - + ?? + Les qualificatifs d'importation de script doivent être uniques. Script import requires a qualifier - + L'importation de script exige un qualificatif Library import requires a version - + L'importation de bibliothèque exige une version Expected parameter type - + Type de paramètre attendu Invalid property type modifier - + Modificateur invalide pour le type de propriété Unexpected property type modifier - + Modificateur innatendu pour le type de propriété Expected property type - + Type de propriété attendue Readonly not yet supported - + La lecture seule n'est pas encore implémentée JavaScript declaration outside Script element - + Déclaration JavaScript en edhors de l'élément Script QDeclarativePauseAnimation Cannot set a duration of < 0 - + Impossible d'attribuer une durée < 0 QDeclarativePixmapCache Error decoding: %1: %2 - + Erreur de décodage: %1: %2 Failed to get image from provider: %1 - + Impossible d'obtenir l'image du fournisseur: %1 Cannot open: %1 - + Impossible d'ouvrir: %1 Unknown Error loading %1 - + Erreur de chargement inconnue: %1 QDeclarativePropertyAnimation Cannot set a duration of < 0 - + Impossible d'attribuer une durée < 0 QDeclarativePropertyChanges PropertyChanges does not support creating state-specific objects. - + PropertyChanges n'est pas compatible avec la création d'objets spécifiques à un état. Cannot assign to non-existent property "%1" - + Ne peut pas assigner à la propriété inexistante "%1" Cannot assign to read-only property "%1" - + Ne peut pas assigner à la propriété en lecture seule "%1" QDeclarativeTextInput Could not load cursor delegate - + Impossible de charger le curseur délégué Could not instantiate cursor delegate - + Impossible d'instancier le curseur délégué QDeclarativeVME Unable to create object of type %1 - + Impossible de créer un objet de type %1 Cannot assign value %1 to property %2 - + Impossible d'assigner la valeur %1 à la propriété %2 Cannot assign object type %1 with no default method - + Impossible d'assigner un objet de type %1 sans méthode défaut Cannot connect mismatched signal/slot %1 %vs. %2 - + le vs a confirmer + Impossible de connecter le signal/slot %1 %vs. %2 pour cause d'incompatibilité Cannot assign an object to signal property %1 - + NImpossible d'assigner un objet à la propriété %1 d'un signal Cannot assign object to list - + Impossible d'assigner un objet à une liste Cannot assign object to interface property - + Impossible d'assigner un objet à la propriété d'une interface Unable to create attached object - + Impossible de créer un object attaché Cannot set properties on %1 as it is null - + Impossible d'attribuer les propriétés à %1 car ce dernier est nul QDeclarativeVisualDataModel Delegate component must be Item type. - + Un composant délégué doit être de type Item. QDeclarativeXmlListModel Qt was built without support for xmlpatterns - + Qt a été généré sans support pour xmlpatterns QDeclarativeXmlListModelRole An XmlRole query must not start with '/' - + Une requête XmlRole ne doit pas commencer par '/' QDeclarativeXmlRoleList An XmlListModel query must start with '/' or "//" - + Une requête XmlListModel doit commencer par '/' ou "//" -- cgit v0.12 From 209c017333fea9827fd20c7f8d23721bd8a6ee43 Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Tue, 13 Jul 2010 11:22:38 +0200 Subject: Translation work for 4.7 validating and adding some french translations. Plus all the fixes from Gabriel's extensive review. Doc: Fix a typo Reviewed-by: gabi --- src/gui/widgets/qcombobox.cpp | 2 +- tools/linguist/phrasebooks/french.qph | 40 + translations/assistant_fr.ts | 577 +++++++++++++- translations/designer_fr.ts | 1397 ++++++++++++++++++++++++++++++++- translations/linguist_fr.ts | 619 +++++++++++++-- translations/qt_fr.ts | 793 ++++++++++--------- translations/qt_help_fr.ts | 89 ++- 7 files changed, 3003 insertions(+), 514 deletions(-) diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index dcc328f..917a325 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -910,7 +910,7 @@ QComboBox::QComboBox(bool rw, QWidget *parent, const char *name) interaction. The highlighted() signal is emitted when the user highlights an item in the combobox popup list. All three signals exist in two versions, one with a QString argument and one with an - \c int argument. If the user selectes or highlights a pixmap, only + \c int argument. If the user selects or highlights a pixmap, only the \c int signals are emitted. Whenever the text of an editable combobox is changed the editTextChanged() signal is emitted. diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph index 47cb306..1884ed3 100644 --- a/tools/linguist/phrasebooks/french.qph +++ b/tools/linguist/phrasebooks/french.qph @@ -1450,4 +1450,44 @@ New Créer + + Play + Lecture + + + Slider + Barre de défilement + + + &Restore + &Restaurer + + + &Move + &Déplacer + + + New + Créer + + + Play + Lecture + + + &Redo + &Refaire + + + Raised + Bombé + + + Sunken + Enfoncé + + + Run: + Exécution : + diff --git a/translations/assistant_fr.ts b/translations/assistant_fr.ts index e8f5fd1..e117663 100644 --- a/translations/assistant_fr.ts +++ b/translations/assistant_fr.ts @@ -4,6 +4,7 @@ AboutDialog + &Close &Fermer @@ -11,51 +12,129 @@ AboutLabel + Warning Avertissement + Unable to launch external application. Impossible d'ouvrir l'application externe. + OK OK + Assistant + + + Error registering documentation file '%1': %2 + Erreur lors de l'enregistrement du fichier de documentation '%1' : %2 + + + + Error: %1 + Erreur : %1 + + + + Could not register documentation file +%1 + +Reason: +%2 + Impossible d'enregistrer le fichier de documentation +%1 + +Raison : +%2 + + + + Documentation successfully registered. + Documentation enregistrée avec succès. + + + + Could not unregister documentation file +%1 + +Reason: +%2 + Impossible de retirer le fichier de documentation +%1 + +Raison : +%2 + + + + Documentation successfully unregistered. + Documentation retirée avec succès. + + + + Error reading collection file '%1': %2. + Erreur lors de la lecture du fichier de collection '%1' : %2. + + + + Error creating collection file '%1': %2. + Erreur lors de la création du fichier de collection '%1' : %2. + + + + Error reading collection file '%1': %2 + Erreur lors de la lecture du fichier de collection '%1' : %2 + + + + Cannot load sqlite database driver! + Impossible de charger le driver de la base de données sqlite ! + + + BookmarkDialog + Add Bookmark Ajouter un signet + Bookmark: Signet : + Add in Folder: Ajouter dans le dossier : + + + + New Folder Nouveau dossier Bookmarks - Signets + Signets Delete Folder - Supprimer le dossier + Supprimer le dossier + Rename Folder Renommer le dossier @@ -64,106 +143,360 @@ BookmarkManager Bookmarks - Signets + Signets + + + + Untitled + Sans titre + Remove Suppression + You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? Vous allez supprimer un dossier, ceci va aussi<br>supprimer son contenu. Voulez-vous continuer ? + + Manage Bookmarks... + Gestion des signets... + + + + Add Bookmark... + Ajouter un signet... + + + + Ctrl+D + Ctrl+D + + + + Delete Folder + Supprimer le dossier + + + + Rename Folder + Renommer le dossier + + + + Show Bookmark + Afficher le signet + + + + Show Bookmark in New Tab + Afficher le signet dans un nouvel onglet + + + + Delete Bookmark + Supprimer le signet + + + + Rename Bookmark + Renommer le signet + + New Folder - Nouveau dossier + Nouveau dossier - BookmarkWidget + BookmarkManagerWidget + + + Manage Bookmarks + Gestion des signets + + + + Search: + Recherche : + + + + + Remove + Supprimer + + + + Import and Backup + Importation et sauvegarde + + + + + OK + OK + + + + Import... + Importer... + + + + Export... + Exporter... + + + + Open File + Ouvrir un fichier + + + + Files (*.xbel) + Fichiers (*.xbel) + + + + Save File + Enregistrer le fichier + + + + Qt Assistant + Qt Assistant + + + + Unable to save bookmarks. + Impossible de sauvegarder les signets. + + + + You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue? + Vous êtes sur le point de supprimer un dossier, ceci supprimera<br> également son contenu. Voulez-vous continuer ? + + + Delete Folder Supprimer le dossier + Rename Folder Renommer le dossier + Show Bookmark Afficher le signet + Show Bookmark in New Tab Afficher le signet dans un nouvel onglet + Delete Bookmark Supprimer le signet + Rename Bookmark Renommer le signet + + + BookmarkModel + + + Name + Nom + + + + Address + Adresse + + + Bookmarks Menu + Menu signets + + + + BookmarkWidget + + Delete Folder + Supprimer le dossier + + + Rename Folder + Renommer le dossier + + + Show Bookmark + Afficher le signet + + + Show Bookmark in New Tab + Afficher le signet dans un nouvel onglet + + + Delete Bookmark + Supprimer le signet + + + Rename Bookmark + Renommer le signet + + + Filter: Filtre : + Add Ajouter + Remove Retirer + + + Bookmarks + Signets + CentralWidget + Add new page Créer une nouvelle page + Close current page Fermer la page courante + Print Document Imprimer le document + + unknown inconnu + Add New Page Créer une nouvelle page + Close This Page Fermer cette page + Close Other Pages Fermer les autres pages + Add Bookmark for this Page... Ajouter un signet pour cette page... + Search Recherche + CmdLineParser + + + Unknown option: %1 + Option inconnue : %1 + + + + The collection file '%1' does not exist. + Le fichier de collection '%1' n'existe pas. + + + + Missing collection file. + Fichier de collection manquant. + + + + Invalid URL '%1'. + URL invalide '%1'. + + + + Missing URL. + URL manquante. + + + + Unknown widget: %1 + Widget inconnu : %1 + + + + Missing widget. + Widget manquant. + + + + The Qt help file '%1' does not exist. + Le fichier d'aide Qt '%1' n'existe pas. + + + + Missing help file. + Fichier d'aide manquant. + + + + Missing filter argument. + Argument de filtre manquant. + + + + Error + Erreur + + + + Notice + Avertissement + + + ContentWindow + Open Link Ouvrir le lien + Open Link in New Tab Ouvrir le lien dans un nouvel onglet @@ -171,10 +504,12 @@ FilterNameDialogClass + Add Filter Name Ajouter un filtre + Filter Name: Nom du filtre : @@ -182,22 +517,26 @@ FindWidget + Previous Précédent + Next Suivant + Case Sensitive Sensible à la casse Whole words - Mots complets + Mots complets + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Recherche à partir du début @@ -205,22 +544,27 @@ FontPanel + Font Police + &Writing system &Système d'écriture + &Family &Famille + &Style &Style + &Point size &Taille en points @@ -228,32 +572,42 @@ HelpViewer + Open Link in New Tab Ouvrir le lien dans un nouvel onglet + + <title>about:blank</title> + y'a t'il une autre traduction dans Firefox & cie ? + <title>about:blank</title> + + + <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> <title>Erreur 404...</title><div align="center"><br><br><h1>La page n'a pas pu être trouvée</h1><br><h3>'%1'</h3></div> Help - Aide + Aide Unable to launch external application. - Impossible de lancer l'application externe. + Impossible de lancer l'application externe. OK - OK + OK + Copy &Link Location Copier l'&adresse cible + Open Link in New Tab Ctrl+LMB LMB? ← ouais exactement pareil... Ouvrir dans un nouvel onglet Ctrl+clic gauche @@ -262,14 +616,17 @@ IndexWindow + &Look for: &Rechercher : + Open Link Ouvrir le lien + Open Link in New Tab Ouvrir le lien dans un nouvel onglet @@ -277,74 +634,97 @@ InstallDialog + + Install Documentation Installer la documentation + Available Documentation: Documentation disponible : + Install Installer + Cancel Annuler + Close Fermer + Installation Path: Chemin d'installation : + ... - + ... + Downloading documentation info... - Téléchargement des informations de la documentation… + Téléchargement des informations de la documentation... + Download canceled. Téléchargement annulé. + + + Done. Terminé. + The file %1 already exists. Do you want to overwrite it? Le fichier %1 existe déjà. Voulez-vous l'écraser ? + Unable to save the file %1: %2. Impossible de sauver le fichier %1 : %2. + Downloading %1... - Téléchargement de %1 en cours… + Téléchargement de %1 en cours... + + + Download failed: %1. Échec du téléchargement : %1. + Documentation info file is corrupt! Le fichier d'information de documentation est corrompu ! + Download failed: Downloaded file is corrupted. Échec du téléchargement : le fichier téléchargé est corrompu. + Installing documentation %1... - Installation de la documentation %1… + Installation de la documentation %1... + Error while installing documentation: %1 Erreur durant l'installation de la documentation : @@ -354,239 +734,310 @@ MainWindow + + Index Index + + Contents Sommaire + + Bookmarks Signets + + + Qt Assistant Qt Assistant Unfiltered - Non-filtré + Non-filtré + Looking for Qt Documentation... - Recherche la documentation de Qt… + Recherche la documentation de Qt... + &File &Fichier + Page Set&up... - &Mise en page… + &Mise en page... + Print Preview... - Aperçu avant impression… + Aperçu avant impression... + &Print... - &Imprimer… + &Imprimer... + New &Tab Nouvel ongle&t + &Close Tab &Fermer l'onglet + &Quit &Quitter + + CTRL+Q + CTRL+Q + + + &Edit &Édition + &Copy selected Text &Copier le texte selectionné + &Find in Text... - &Rechercher dans le texte… + &Rechercher dans le texte... + &Find &Rechercher + Find &Next Rechercher le suiva&nt + Find &Previous Rechercher le &précédent + Preferences... - Préférences… + Préférences... + &View &Affichage + Zoom &in Zoom &avant + Zoom &out Zoom a&rrière + Normal &Size &Taille normale + Ctrl+0 Ctrl+0 + ALT+C ALT+C + ALT+I ALT+I + ALT+O ALT+O + Search Recherche + ALT+S ALT+S + &Go A&ller + &Home &Accueil + ALT+Home ALT+Home + &Back &Précédent + &Forward &Suivant + Sync with Table of Contents Synchroniser la table des matières + Sync Rafraîchir + Next Page Page suivante + Ctrl+Alt+Right Ctrl+Alt+Right + Previous Page Page précédente + Ctrl+Alt+Left Ctrl+Alt+Left + &Bookmarks Si&gnets + + Could not register file '%1': %2 + Impossible d'enregistrer le fichier '%1' : %2 + + Add Bookmark... - Ajouter un signet… + Ajouter un signet... CTRL+D - CTRL+D + CTRL+D + &Help Ai&de + About... - À propos… + À propos... + Navigation Toolbar Barre d'outils de navigation + &Window &Fenêtre + Zoom Zoom + Minimize Minimiser + Ctrl+M Ctrl+M + Toolbars Barres d'outils + Filter Toolbar Barre d'outils de filtrage + Filtered by: Filtre : + Address Toolbar Barre d'outils d'adresse + Address: Adresse : + Could not find the associated content item. what is item in this context? ← same question here Impossible de trouver l'élément de contenu associé. + About %1 À propos de %1 + Updating search index Mise à jour de l'index de recherche @@ -594,38 +1045,48 @@ PreferencesDialog + + Add Documentation Ajouter de la documentation + Qt Compressed Help Files (*.qch) Fichiers d'aide Qt compressés (*.qch) + The namespace %1 is already registered! L'espace de nom %1 existe déjà ! + The specified file is not a valid Qt Help File! Le fichier spécifié n'est pas un fichier d'aide Qt valide ! + Remove Documentation Supprimer la documentation + Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. Certains documents ouverts dans Assistant ont des références vers la documentation que vous allez supprimer. Supprimer la documentation fermera ces documents. + Cancel Annuler + OK OK + Use custom settings Utiliser des paramètres personnalisés @@ -633,95 +1094,118 @@ PreferencesDialogClass + Preferences Préférences + Fonts Polices + Font settings: Configuration des polices : + Browser Navigateur + Application Application + Filters Filtres + Filter: Filtre : + Attributes: Attributs : + 1 1 + Add Ajouter + Remove Supprimer + Documentation Documentation + Registered Documentation: documentation enregistrée ? ← je préfère référencée pour les deux... Documentation référencée : + Add... - Ajouter… + Ajouter... + Options Options + On help start: Au démarrage : + Show my home page Afficher ma page d'accueil + Show a blank page Afficher une page blanche + Show my tabs from last session Afficher mes onglets de la dernière session + Homepage Page d'accueil + Current Page Page courante + Blank Page Page blanche + Restore to default Restaurer les valeurs par défaut @@ -730,47 +1214,47 @@ QObject The specified collection file does not exist! - Le fichier de collection spécifié n'existe pas ! + Le fichier de collection spécifié n'existe pas ! Missing collection file! - Fichier de collection manquant ! + Fichier de collection manquant ! Invalid URL! - URL invalide ! + URL invalide ! Missing URL! - URL manquante ! + URL manquante ! Unknown widget: %1 - Widget inconnu : %1 + Widget inconnu : %1 Missing widget! - Widget manquant ! + Widget manquant ! The specified Qt help file does not exist! - Le fichier d'aide Qt spécifié n'existe pas ! + Le fichier d'aide Qt spécifié n'existe pas ! Missing help file! - Fichier d'aide manquant ! + Fichier d'aide manquant ! Missing filter argument! - Argument de filtre manquant ! + Argument de filtre manquant ! Unknown option: %1 - Option inconnue : %1 + Option inconnue : %1 Qt Assistant - Qt Assistant + Qt Assistant Could not register documentation file @@ -778,7 +1262,7 @@ Reason: %2 - Impossible d'enregistrer le fichier de documentation + Impossible d'enregistrer le fichier de documentation %1 Raison : @@ -786,11 +1270,11 @@ Raison : Documentation successfully registered. - Documentation enregistrée avec succès. + Documentation enregistrée avec succès. Documentation successfully unregistered. - Documentation retirée avec succès. + Documentation retirée avec succès. Could not unregister documentation file @@ -798,7 +1282,7 @@ Raison : Reason: %2 - Impossible d'enregistrer le fichier de documentation + Impossible d'enregistrer le fichier de documentation %1 Raison : @@ -806,20 +1290,22 @@ Raison : Cannot load sqlite database driver! - Impossible de charger le driver de la base de données sqlite ! + Impossible de charger le driver de la base de données sqlite ! The specified collection file could not be read! - Le fichier de collection spécifié ne peut pas être lu ! + Le fichier de collection spécifié ne peut pas être lu ! RemoteControl + Debugging Remote Control Débogage du contrôle à distance + Received Command: %1 %2 Commande reçue : %1 %2 @@ -827,18 +1313,22 @@ Raison : SearchWidget + &Copy &Copier + Copy &Link Location Copier &l'adresse du lien + Open Link in New Tab Ouvrir le lien dans un nouvel onglet + Select All Sélectionner tout @@ -846,22 +1336,27 @@ Raison : TopicChooser + Choose Topic Choisir le domaine + &Topics &Domaines + &Display &Afficher + &Close &Fermer + Choose a topic for <b>%1</b>: Choisir le domaine pour <b>%1</b> : diff --git a/translations/designer_fr.ts b/translations/designer_fr.ts index 175d5c5..9bf3810 100644 --- a/translations/designer_fr.ts +++ b/translations/designer_fr.ts @@ -4,22 +4,27 @@ AbstractFindWidget + &Previous &Précédent + &Next &Suivant + &Case sensitive &Sensible à la casse + Whole &words M&ots complets + <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/shared/images/wrap.png">&nbsp;Recherche à partir du début @@ -27,14 +32,17 @@ AddLinkDialog + Insert Link Insérer lien + Title: Titre : + URL: URL : @@ -42,6 +50,7 @@ AppFontDialog + Additional Fonts Polices additionnelles @@ -49,31 +58,38 @@ AppFontManager + '%1' is not a file. '%1' n'est pas un fichier. + The font file '%1' does not have read permissions. Le fichier de la police '%1' n'a pas les permissions de lecture. + The font file '%1' is already loaded. Le fichier de la police '%1' est déjà chargé. + The font file '%1' could not be loaded. passé composé plutôt Le fichier de la police '%1' n'a pas pu chargé. + '%1' is not a valid font id. '%1' n'est pas un identifiant de police valide. + There is no loaded font matching the id '%1'. Il n'y a pas de police chargée correspondant à l'identifiant '%1'. + The font '%1' (%2) could not be unloaded. La police '%1' (%2) ne peut pas être déchargée. @@ -81,43 +97,53 @@ AppFontWidget + Fonts Polices + Add font files Ajouter des fichiers de polices + Remove current font file Retirer le fichier de police courant + Remove all font files Retirer tous les fichiers de polices + Add Font Files Ajouter des fichiers de polices + Font files (*.ttf) Fichier de polices (*.ttf) + Error Adding Fonts Erreur dans l'ajout de polices + Error Removing Fonts s/de/des/ pour être cohérent avec le suivant... Erreur lors de la suppression des polices + Remove Fonts Retirer les polices + Would you like to remove all fonts? Voulez-vous supprimer toutes les polices ? @@ -125,10 +151,12 @@ AppearanceOptionsWidget + Form Formulaire + User Interface Mode Mode de l'interface utilisateur @@ -136,14 +164,17 @@ AssistantClient + Unable to send request: Assistant is not responding. Impossible d'envoyer la requête : Assistant ne répond pas. + The binary '%1' does not exist. Le binaire '%1' n'existe pas. + Unable to launch assistant (%1). Impossible de démarrer Assistant (%1). @@ -151,75 +182,93 @@ BrushPropertyManager + No brush Pas de pinceau + Solid c'est plutôt continu ou "trait continu" pour moi Trait continu + Dense 1 Dense 1 + Dense 2 Dense 2 + Dense 3 Dense 3 + Dense 4 Dense 4 + Dense 5 Dense 5 + Dense 6 Dense 6 + Dense 7 Dense 7 + Horizontal Horizontal + Vertical Vertical + Cross Croix + Backward diagonal Diagonale arrière + Forward diagonal Diagonale avant + Crossing diagonal Diagonale croisée + Style Style + Color Couleur + [%1, %2] [%1, %2] @@ -227,120 +276,151 @@ Command + + Change signal Modifier le signal + + Change slot Modifier le slot + Change signal-slot connection Modfier la connection signal-slot + Change sender expéditeur/source Modifier l'envoyeur + Change receiver destinataire++/cible? Modifier le destinataire + Create button group Créer un groupe de boutons + Break button group Dissocier le groupe de bouton + Break button group '%1' Dissossier le groupe de bouton '%1' + Add buttons to group Ajouter les boutons au groupe + + Add '%1' to '%2' Command description for adding buttons to a QButtonGroup Ajouter '%1' à '%2' + Remove buttons from group Retirer les boutons du groupe + Remove '%1' from '%2' Command description for removing buttons from a QButtonGroup Retirer '%1' de '%2' + Add connection Ajouter une connexion + Adjust connection Réajuster les connexions + Delete connections Supprimer les connexions + Change source Modifier la source + Change target Modifier la cible + Morph %1/'%2' into %3 MorphWidgetCommand description Transformer %1/'%2' en %3 + Insert '%1' Insérer '%1' + Change Z-order of '%1' l'ordre de '%1' sur l'axe z? profondeur ? Modifier la profondeur de '%1' + Raise '%1' Élever '%1' + Lower '%1' Abaisser '%1' + Delete '%1' Supprimer '%1' + Reparent '%1' Reparenter '%1' + Promote to custom widget Promouvoir en widget personnalisé + Demote from custom widget Annuler la promotion en widget personnalisé + Lay out using grid Mettre en page à l'aide d'une grille + Lay out vertically Mettre en page verticalement @@ -349,154 +429,204 @@ Mettre en page horizontalement + Lay out horizontally Mettre en page horizontalement + Break layout Casser la mise en page + Simplify Grid Layout Simplifier la mise en page en grille + + + Move Page Déplacer la page + + + + Delete Page Supprimer la page + + Page Page + + + + Insert Page Insérer une page + Change Tab order Modifier l'ordre des tabulations + Create Menu Bar Créer une barre de menu + Delete Menu Bar Supprimer la barre de menu + Create Status Bar Créer une barre d'état + Delete Status Bar Supprimer la barre d'état + Add Tool Bar Ajouter une barre d'outil + Add Dock Window Ajouter une fenêtre ancrable + Adjust Size of '%1' Ajuster les dimensions de '%1' + Change Form Layout Item Geometry Modifier la géométrie de l'élément de formulaire + Change Layout Item Geometry Modifier la géométrie de l'élément de mise en page + Delete Subwindow Supprimer la sous-fenêtre + page page + Insert Subwindow Insérer une sous-fenêtre + subwindow sous-fenêtre + Subwindow Sous fenêtre + Change Table Contents Modifier le contenu de la table + Change Tree Contents Modifier le contenu de l'arbre + + Add action Ajouter une action + + Remove action Supprimer l'action + Add menu Ajouter un menu + Remove menu Supprimer le menu + Create submenu Créer une sous-fenêtre + Delete Tool Bar Supprimer la barre d'outils + Change layout of '%1' from %2 to %3 Modifier la mise en page de '%1' de %2 à %3 + Set action text Définir le texte de l'action + Insert action Insérer action + + Move action Déplacer action + Change Title Modifier le titre + Insert Menu Insérer menu + Changed '%1' of '%2' Modifier '%1' de '%2' + Changed '%1' of %n objects Modifier '%1' de %n objet @@ -504,10 +634,12 @@ + Reset '%1' of '%2' Réinitialiser '%1' de '%2' + Reset '%1' of %n objects Réinitialiser '%1' de %n objet @@ -515,10 +647,12 @@ + Add dynamic property '%1' to '%2' Ajouter la propriété dynamique '%1' à '%2' + Add dynamic property '%1' to %n objects Ajouter la propriété dynamique '%1' à %n objet @@ -526,10 +660,12 @@ + Remove dynamic property '%1' from '%2' Supprimer la propriété dynamique '%1' de '%2' + Remove dynamic property '%1' from %n objects Supprimer la propriété dynamique '%1' de %n objet @@ -537,10 +673,12 @@ + Change script Modifier le script + Change signals/slots Modifier signaux/slots @@ -548,18 +686,22 @@ ConnectDialog + Configure Connection Configurer connexion + GroupBox GroupBox + Edit... Éditer... + Show signals and slots inherited from QWidget Afficher les signaux et slots hérités de QWidget @@ -567,14 +709,17 @@ ConnectionDelegate + <object> <objet> + <signal> <signal> + <slot> <slot> @@ -582,16 +727,19 @@ DPI_Chooser + Standard (96 x 96) Embedded device standard screen resolution Standard (96 x 96) + Greenphone (179 x 185) Embedded device screen resolution Greenphone (179 x 185) + High (192 x 192) Embedded device high definition screen resolution "haute resolution" would be missleading @@ -601,72 +749,89 @@ Designer + Qt Designer Qt Designer + This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. Ce fichier contient des ressorts de premier niveau. <br>Ils ne sont <b>PAS</b> sauvegardé dans le formulaire. + Perhaps you forgot to create a layout? Peut-être avez-vous oublié de créer un layout ? + Invalid UI file: The root element <ui> is missing. Fichier UI invalide. L'élément racine <ui> est manquant. + An error has occurred while reading the UI file at line %1, column %2: %3 - Une erreur est survenue lors de la lecture du fichier UI à la ligne %1, colonne %2: %3 + Une erreur est survenue lors de la lecture du fichier UI à la ligne %1, colonne %2 : %3 + This file cannot be read because it was created using %1. Ce fichier ne peut pas être lu car il a été créé à l'aide de %1. + This file was created using Designer from Qt-%1 and cannot be read. Ce fichier a été créé à l'aide du Designer de Qt-%1 et ne peut être lu. + The converted file could not be read. Le fichier converti ne peut pas être lu. + This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. Ce fichier a été créé par le Designer de Qt-%1 et sera converti au nouveau format par Qt Designer. + The old form has not been touched, but you will have to save the form under a new name. L'ancienne interface n'a pas été modifiée, vous devez sauvergarder l'interface sous un nouveau nom. + This file was created using Designer from Qt-%1 and could not be read: %2 Le fichier a été créé à l'aide de Designer de Qt-%1 et ne peut pas être lu : %2 + Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. Veuillez le faire passer par <b>uic3&nbsp;-convert</b> pour le convertir au format de fichier de Qt 4. + This file cannot be read because the extra info extension failed to load. Ce fichier ne peut pas être lu car les informations d'extension n'ont pu être chargées. + Unable to launch %1. Impossible de lancer %1. + %1 timed out. %1 est arrivé à échéance. + Custom Widgets Widgets personnalisés + Promoted Widgets Widgets promus @@ -674,10 +839,12 @@ DesignerMetaEnum + %1 is not a valid enumeration value of '%2'. %1 n'est pas une valeur d'énumeration valide de '%2'. + '%1' could not be converted to an enumeration value of type '%2'. '%1' ne peut pas être converti en une valeur d'énumération de type '%2'. @@ -685,6 +852,7 @@ DesignerMetaFlags + '%1' could not be converted to a flag value of type '%2'. '%1' ne peut pas être converti en un drapeau de type '%2'. @@ -692,11 +860,13 @@ DeviceProfile + '%1' is not a number. Reading a number for an embedded device profile '%1' n'est pas un nombre. + An invalid tag <%1> was encountered. La balise invalide <%1> a été rencontré. @@ -704,22 +874,27 @@ DeviceProfileDialog + &Family &Famille + &Point Size &Taille en points + Style Style + Device DPI PPP/DPI de l'appareil + Name Nom @@ -727,46 +902,57 @@ DeviceSkin + The image file '%1' could not be loaded. Le fichier image '%1' n'a pas pu être chargé. + The skin directory '%1' does not contain a configuration file. Le repertoire de revêtement '%1' ne contient pas un fichier de configuration. + The skin configuration file '%1' could not be opened. Le fichier de configuration de revêtement '%1' ne peut pas être ouvert. + The skin configuration file '%1' could not be read: %2 - Le fichier de configuration de revêtement '%1' ne peut pas être lu: %2 + Le fichier de configuration de revêtement '%1' ne peut pas être lu : %2 + Syntax error: %1 Erreur de syntaxe : %1 + The skin "up" image file '%1' does not exist. Le fichier image "up" de revêtement '%1' n'existe pas. + The skin "down" image file '%1' does not exist. Le fichier image "down" de revêtement '%1' n'existe pas. + The skin "closed" image file '%1' does not exist. Le fichier image "closed" de revêtement '%1' n'existe pas. + The skin cursor image file '%1' does not exist. Le fichier image de revêtement '%1' n'existe pas. + Syntax error in area definition: %1 Erreur de syntaxe dans la zone de définition : %1 + Mismatch in number of areas, expected %1, got %2. Incohérence dans le nombre de zones, %1 attendu, %2 reçu. @@ -774,6 +960,7 @@ EmbeddedOptionsControl + <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> Format embedded device profile description <html><table><tr><td><b>Police</b></td><td>%1, %2</td></tr><tr><td><b>Style</b></td><td>%3</td></tr><tr><td><b>Résolution</b></td><td>%4 x %5</td></tr></table></html> @@ -782,11 +969,13 @@ EmbeddedOptionsPage + Embedded Design Tab in preferences dialog Design pour appareil mobile + Device Profiles EmbeddedOptionsControl group box" Profils des appareils @@ -795,22 +984,27 @@ FontPanel + Font Police + &Writing system &Système d'écriture + &Family &Famille + &Style &Style + &Point size &Taille en points @@ -818,18 +1012,22 @@ FontPropertyManager + PreferDefault PreferDefault + NoAntialias NoAntialias + PreferAntialias PreferAntialias + Antialiasing Antialiasing @@ -837,36 +1035,51 @@ FormBuilder + Invalid stretch value for '%1': '%2' - Parsing layout stretch values + Parsing layout stretch values +---------- +Parsing layout stretch values +---------- +Parsing layout stretch values Valeur d'extension invalide pour '%1' : '%2' + Invalid minimum size for '%1': '%2' - Parsing grid layout minimum size values + Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values Taille minimum invalide pour '%1' : '%2' FormEditorOptionsPage + %1 % %1 % + Preview Zoom Zoom de visualisation + Default Zoom Zoom par défaut + Forms Tab in preferences dialog Formulaires + Default Grid Grille par défaut @@ -874,31 +1087,38 @@ FormLayoutRowDialog + Add Form Layout Row Ajouter une ligne de mise en page au formulaire + &Label text: &Texte du label : + Field &type: &Type du champ : + &Field name: &Nom du champ : + &Buddy: copain c'est un peu beaucoup ptet &Copain : + &Row: &Ligne : + Label &name: &Nom du label : @@ -906,10 +1126,12 @@ FormWindow + Unexpected element <%1> Element inattendu : <%1> + Error while pasting clipboard contents at line %1, column %2: %3 Erreur lors du collage du contenu du presse-papier à la ligne %1, colonne %2 : %3 @@ -917,50 +1139,62 @@ FormWindowSettings + Form Settings Configuration du formulaire + Layout &Default Mise en page par &défaut + &Spacing: &Espacements : + &Margin: &Marge : + &Layout Function &Fonction de mise en page + Ma&rgin: Ma&rge : + Spa&cing: Espa&cement : + &Pixmap Function Fonction de &pixmap + &Include Hints Indication d'&include + Grid Grille + Embedded Design Design pour appareil mobile + &Author &Auteur @@ -968,6 +1202,7 @@ IconSelector + All Pixmaps ( Tous les pixmaps ( @@ -975,6 +1210,7 @@ ItemPropertyBrowser + XX Icon Selected off Sample string to determinate the width for the first column of the list item property browser XX Icon Selected off @@ -983,27 +1219,33 @@ MainWindowBase + Main Not currently used (main tool bar) Principal + File Fichier + Edit Édition + Tools Outils + Form Formulaire + Qt Designer Qt Designer @@ -1011,42 +1253,52 @@ NewForm + Show this Dialog on Startup Afficher cette boîte de dialogue au démarrage + C&reate C&réer + Recent Récent + New Form Nouveau formulaire + &Close &Fermer + &Open... &Ouvrir... + &Recent Forms &Formulaires récents + Read error Erreur de lecture + A temporary form file could not be created in %1. Un fichier temporaire de formulaire n'a pas pu être créé dans %1. + The temporary form file %1 could not be written. Le fichier temporaire de formulaire %1 n'a pas pu être écrit. @@ -1054,18 +1306,22 @@ ObjectInspectorModel + Object Objet + Class Classe + separator séparateur + <noname> <sans nom> @@ -1073,10 +1329,12 @@ ObjectNameDialog + Change Object Name Modifier le nom de l'objet + Object Name Nom de l'objet @@ -1084,10 +1342,12 @@ PluginDialog + Plugin Information Information du plugin + 1 1 @@ -1095,6 +1355,7 @@ PreferencesDialog + Preferences Préférences @@ -1102,26 +1363,32 @@ PreviewConfigurationWidget + Form Formulaire + Print/Preview Configuration Configuration d'impression/prévisualisation + Style Style + Style sheet Feuille de style + ... ... + Device skin Revêtement de l'appareil @@ -1129,6 +1396,7 @@ PromotionModel + Not used Usage of promoted widgets Non utilisé @@ -1137,6 +1405,8 @@ Q3WizardContainer + + Page Page @@ -1144,48 +1414,59 @@ QAbstractFormBuilder + Unexpected element <%1> Élément imprévu <%1> + An error has occurred while reading the UI file at line %1, column %2: %3 Une erreur s'est produite lors de la lecture du fichier UI à la ligne %1, colonne %2 : %3 + Invalid UI file: The root element <ui> is missing. Fichier UI invalide : l'élément racine <ui> est manquant. + The creation of a widget of the class '%1' failed. La création d'un widget de la classe '%1' a échoué. + Attempt to add child that is not of class QWizardPage to QWizard. Tentative d'ajout d'enfant qui n'est pas de la classe QWizardPage à QWizard. + 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. Tentative d'ajout d'un layout au widget '%1' (%2) qui a déjà un layout dont le type n'est pas boîte %3. Ceci indique une incohérence dans le fichier ui. + Empty widget item in %1 '%2'. Widget vide dans %1 '%2'. + Flags property are not supported yet. Les propriétés de type drapeau ne sont pas supportées. + While applying tab stops: The widget '%1' could not be found. Lors de l'application des arrêts de tabulation : le widget '%1' ne peut pas être trouvé. + Invalid QButtonGroup reference '%1' referenced by '%2'. Référence invalide '%1' à QButtonGroup, référencé par '%2'. + This version of the uitools library is linked without script support. Cette version de la bibliothèque uitools n'a pas le support des scripts. @@ -1193,10 +1474,12 @@ Ceci indique une incohérence dans le fichier ui. QAxWidgetPlugin + ActiveX control Control ActiveX + ActiveX control widget Widget control ActiveX @@ -1204,18 +1487,22 @@ Ceci indique une incohérence dans le fichier ui. QAxWidgetTaskMenu + Set Control Définir le contrôle + Reset Control Réinitialiser le contrôle + Licensed Control Contrôle licencié + The control requires a design-time license Le contrôle requiert une license par interface @@ -1223,54 +1510,67 @@ Ceci indique une incohérence dans le fichier ui. QCoreApplication + %1 is not a promoted class. %1 n'est pas une classe promue. + The base class %1 is invalid. La classe de base %1 est invalide. + The class %1 already exists. La classe %1 existe déjà. + Promoted Widgets Widgets promus + The class %1 cannot be removed La classe %1 ne peut pas être retirée + The class %1 cannot be removed because it is still referenced. La classe %1 ne peut pas être retirée car elle est toujours référencée. + The class %1 cannot be renamed La classe %1 ne peut pas être renommée + The class %1 cannot be renamed to an empty name. La classe %1 ne peut pas être renommé avec un nom vide. + There is already a class named %1. Une classe existe déjà avec le nom %1. + Cannot set an empty include file. Impossible de créer un fichier include vide. + Exception at line %1: %2 Exception à la ligne %1 : %2 + Unknown error Erreur inconnue + An error occurred while running the script for %1: %2 Script: %3 Une erreur s'est produite lors de l'exécution du script de %1 : %2 @@ -1280,14 +1580,17 @@ Script : %3 QDesigner + %1 - warning Avertissement - %1 + Qt Designer Qt Designer + This application cannot be used for the Console edition of Qt Cette application ne peut pas être utilisée avec l'édition console de Qt @@ -1295,178 +1598,228 @@ Script : %3 QDesignerActions + Saved %1. %1 sauvé. + %1 already exists. Do you want to replace it? %1 existe déjà. Voulez-vous le remplacer ? + Edit Widgets Éditer les widgets + &New... &Nouveau... + &Open... &Ouvrir... + &Save &Enregistrer + Save &As... Enregistrer &sous... + Save A&ll Enregistrer &tout + Save As &Template... Sauver comme &modèle... + + &Close &Fermer + Save &Image... Enregistrer &image... + &Print... Im&primer... + &Quit &Quitter + View &Code... &Visualizer le code... + &Minimize &Minimiser + Bring All to Front Amener tout au premier plan + Preferences... Préférences... + Additional Fonts... Polices additionnelles... + ALT+CTRL+S ALT+CTRL+S + CTRL+SHIFT+S CTRL+SHIFT+S + CTRL+R CTRL+R + CTRL+M CTRL+M + Qt Designer &Help &Aide de Qt Designer + Current Widget Help Aide du widget courant + What's New in Qt Designer? Quoi de neuf dans Qt Designer ? + About Plugins À propos des plugins + + About Qt Designer À propos de Qt Designer + About Qt À propos de Qt + Clear &Menu Réinitialiser le &menu + &Recent Forms Formulaires &récents + + Open Form Ouvrir le formulaire + + + Designer UI files (*.%1);;All Files (*) Fichier UI de Qt Designer (*.%1);;Tous les fichiers(*) + + Save Form As Enregistrer le formulaire sous + Designer Designer + Feature not implemented yet! Cette fonctionnalité n'est pas encore implémentée ! + Code generation failed La génération du code à échoué + Read error Erreur de lecture + %1 Do you want to update the file location or generate a new form? %1 Voulez vous mettre à jour l'emplacement du fichier ou générer un nouveau formulaire ? + &Update &Mettre à jour + &New Form &Nouveau formulaire + + Save Form? Sauver le formulaire ? + Could not open file Impossible d'ouvrir le fichier + The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? @@ -1475,14 +1828,17 @@ Raison : %2 Voulez-vous réessayer ou sélectionner un fichier différent ? + Select New File Sélectionner un nouveau fichier + Could not write file Impossible d'écrire le fichier + It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? @@ -1491,50 +1847,65 @@ Raison : %2 Voulez-vous réessayer ? + + Assistant Assistant + &Close Preview &Fermer la prévisualisation + + The backup file %1 could not be written. Le fichier de backup %1 n'a pas pu être écrit. + The backup directory %1 could not be created. Le dossier de backup %1 n'a pas pu être créé. + The temporary backup directory %1 could not be created. Le dossier temporaire de backup %1 n'a pas pu être créé. + Preview failed La prévisualisation a échoué + Image files (*.%1) Fichiers image (*.%1) + + Save Image Sauver image + Saved image %1. Image %1 sauvée. + The file %1 could not be written. Le fichier %1 n'a pas pu être écrit. + Please close all forms to enable the loading of additional fonts. Veuillez fermer tous les formulaires pour activer le chargement de polices additionnelles. + Printed %1. Impression de %1 terminée. @@ -1542,6 +1913,7 @@ Voulez-vous réessayer ? QDesignerAppearanceOptionsPage + Appearance Tab in preferences dialog Apparence @@ -1550,14 +1922,17 @@ Voulez-vous réessayer ? QDesignerAppearanceOptionsWidget + Docked Window Fenêtre ancrable + Multiple Top-Level Windows Fenêtres multiples + Toolwindow Font Police des fenêtre d'outils @@ -1565,18 +1940,22 @@ Voulez-vous réessayer ? QDesignerAxWidget + Reset control Réinitialiser les contrôles + Set control Définir les contrôles + Control loaded Contrôle chargé + A COM exception occurred when executing a meta call of type %1, index %2 of "%3". Une exception COM a été levée lors de l'execution du meta-appel de type %1, indice %2 de "%3". @@ -1584,14 +1963,17 @@ Voulez-vous réessayer ? QDesignerFormBuilder + Script errors occurred: Erreurs du script : + The preview failed to build. La construction de la prévisualisation a échoué. + Designer Designer @@ -1599,18 +1981,22 @@ Voulez-vous réessayer ? QDesignerFormWindow + %1 - %2[*] %1 - %2[*] + Save Form? Enregistrer le formulaire ? + Do you want to save the changes to this document before closing? Voulez-vous enregistrer les changements de ce document avant de le fermer ? + If you don't save, your changes will be lost. Si vous ne sauvegardez pas, les changements seront perdus. @@ -1618,30 +2004,38 @@ Voulez-vous réessayer ? QDesignerMenu + Type Here Taper ici + Add Separator Ajouter séparateur + Insert separator Insérer séparateur + Remove separator Retirer séparateur + Remove action '%1' Supprimer l'action '%1' + + Add separator Ajouter séparateur + Insert action Insérer action @@ -1649,18 +2043,22 @@ Voulez-vous réessayer ? QDesignerMenuBar + Type Here Taper ici + Remove Menu '%1' Supprimer menu '%1' + Remove Menu Bar Supprimer barre de menu + Menu Menu @@ -1668,30 +2066,37 @@ Voulez-vous réessayer ? QDesignerPluginManager + An XML error was encountered when parsing the XML of the custom widget %1: %2 Une erreur XML a été rencontrée lors de l'analyse grammaticale du XML provenant du widget personnalisé %1 : %2 + A required attribute ('%1') is missing. Un attribut obligatoire ('%1') est manquant. + An invalid property specification ('%1') was encountered. Supported types: %2 Une spécification invalide de propriété ('%1') a été rencontrée. Types supportés : %2 + '%1' is not a valid string property specification. '%1' n'est pas une spécification valide de propriété chaîne de caractères. + The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. Le XML du widget personnalisé %1 ne contient aucun des éléments <widget> ou <ui>. + The class attribute for the class %1 is missing. L'attribut de classe est manquant pour la classe %1. + The class attribute for the class %1 does not match the class name %2. L'attribut de classe pour la classe %1 ne correspond pas au nom de la classe %2. @@ -1699,6 +2104,7 @@ Voulez-vous réessayer ? QDesignerPropertySheet + Dynamic Properties Propriétés dynamiques @@ -1706,26 +2112,31 @@ Voulez-vous réessayer ? QDesignerResource + The layout type '%1' is not supported, defaulting to grid. Le type de layout '%1' n'est pas supporté, replacement par une grille. + 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. L'extension du widget '%1' (%2) a retourné un widget non géré par Designer '%3' (%4) lors de la requête pour la page #%5. Les pages du conteneur ne devraient être ajoutées que par spécification dans le XML retourné par la méthode domXml() du widget personnalisé. + Unexpected element <%1> Parsing clipboard contents Élément inattendu <%1> + Error while pasting clipboard contents at line %1, column %2: %3 Parsing clipboard contents Erreur lors du collage du contenu du presse-papier à la ligne %1, colonne %2 : %3 + Error while pasting clipboard contents: The root element <ui> is missing. Parsing clipboard contents Erreur lors du collage du contenu du presse-papier. L'élément racine <ui> est manquant. @@ -1734,10 +2145,12 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QDesignerSharedSettings + The template path %1 could not be created. Le chemin du modèle %1 n'a pas pu être créé. + An error has been encountered while parsing device profile XML: %1 Une erreur a été rencontrée lors de l'analyse grammaticale du XML du profil de l'appareil : %1 @@ -1745,27 +2158,33 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QDesignerToolWindow + Property Editor Éditeur de propriétés + Action Editor Éditeur d'actions + Object Inspector Inspecteur d'objet + Resource Browser plural Explorateur de ressources + Signal/Slot Editor Éditeur de signaux et slots + Widget Box Boîte de widget @@ -1773,50 +2192,62 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QDesignerWorkbench + &File &Fichier + Edit Édition + F&orm F&ormulaire + Preview in Prévisualisation avec + &View Afficha&ge + &Settings &Configuration + &Window Fe&nêtre + &Help &Aide + Toolbars Barre d'outils + Widget Box Boîte de widget + Save Forms? Enregistrer les formulaires ? + There are %n forms with unsaved changes. Do you want to review these changes before quitting? Il y a %n formulaire avec des changements non-enregistrés. Voulez-vous vérifier les changements avant de quitter? @@ -1824,30 +2255,37 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans + If you do not review your documents, all your changes will be lost. Si vous ne vérifiez pas vos documents, tous les changements seront perdus. + Discard Changes Abandonner les changements + Review Changes Vérifier les changements + Backup Information Informations de sauvegarde + The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? La dernière session de Designer n'a pas été fermée correctement. Des fichiers de sauvegarde existent. Voulez-vous les charger ? + The file <b>%1</b> could not be opened. Le fichier <b>%1</b> n'a pas pu être ouvert. + The file <b>%1</b> is not a valid Designer UI file. Le fichier <b>%1</b> n'est pas un fichier valide d'UI de Designer. @@ -1855,43 +2293,57 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QFormBuilder + An empty class name was passed on to %1 (object name: '%2'). - Empty class name passed to widget factory method + Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method Un nom de classe vide a été passé à %1 (nom d'objet '%2'). + QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. QFormBuilder n'a pas pu créer le widget personnalisé de classe '%1'; passage à la classe de base '%2'. + QFormBuilder was unable to create a widget of the class '%1'. QFormBuilder n'a pas pu créer un widget de classe '%1'. + The layout type `%1' is not supported. Le type de layout '%1' n'est pas supporté. + The set-type property %1 could not be read. Le type du setteur de propriété %1 n'a pas pu être lu. + The enumeration-type property %1 could not be read. Le type d'énumeration de propriété %1 n'a pas pu être lu. + Reading properties of the type %1 is not supported yet. La lecture des propriétés de type %1 n'est pas supporté. + The property %1 could not be written. The type %2 is not supported yet. La propriété %1 ne peut pas être écrite. Le type %2 n'est pas encore supporté. + The enumeration-value '%1' is invalid. The default value '%2' will be used instead. la valeur d'énumération '%1' est invalide. La valeur par défaut '%2' sera utilisée à la place. + The flag-value '%1' is invalid. Zero will be used instead. Le drapeau '%1' est invalide. Zero sera utilisé à la place. @@ -1899,38 +2351,48 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QStackedWidgetEventFilter + Previous Page Page précédente + Next Page Page suivante + Delete Supprimer + Before Current Page Avant la page courante + After Current Page Après la page courante + Change Page Order... Modifier l'ordre des pages... + Change Page Order Modifier l'ordre des pages + Page %1 of %2 Page %1 de %2 + + Insert Page Insérer page @@ -1938,10 +2400,12 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QStackedWidgetPreviewEventFilter + Go to previous page of %1 '%2' (%3/%4). Aller à la page précédente de %1 '%2' (%3/%4). + Go to next page of %1 '%2' (%3/%4). Aller à la page suivante de %1 '%2' (%3/%4). @@ -1949,22 +2413,28 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QTabWidgetEventFilter + Delete Supprimer + Before Current Page Avant la page courante + After Current Page Après la page courante + Page %1 of %2 Page %1 de %2 + + Insert Page Insérer page @@ -1972,30 +2442,37 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QToolBoxHelper + Delete Page Supprimer page + Before Current Page Avant la page courante + After Current Page Après la page courante + Change Page Order... Modifier l'ordre des pages... + Change Page Order Modifier l'ordre de pages + Page %1 of %2 Page %1 de %2 + Insert Page Insérer page @@ -2003,10 +2480,15 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtBoolEdit + + + True Vrai + + False Faux @@ -2014,10 +2496,12 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtBoolPropertyManager + True Vrai + False Faux @@ -2025,6 +2509,7 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtCharEdit + Clear Char Effacer caractère @@ -2032,6 +2517,7 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtColorEditWidget + ... ... @@ -2039,18 +2525,22 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtColorPropertyManager + Red Rouge + Green Vert + Blue Bleu + Alpha Alpha @@ -2058,78 +2548,97 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtCursorDatabase + Arrow Flèche + Up Arrow Flèche vers le haut + Cross Croix + Wait Attendre + IBeam IBeam + Size Vertical Redimensionner verticalement + Size Horizontal Redimensionner horizontalement + Size Backslash Redimensionner diagonale droite + Size Slash Redimensionner diagonale gauche + Size All Redimensionner + Blank Vide + Split Vertical Scinder verticalement + Split Horizontal Scinder horizontalement + Pointing Hand Pointeur index + Forbidden Interdit + Open Hand Main ouverte + Closed Hand Main fermée + What's This Qu'est-ce que c'est ? + Busy Occupé @@ -2137,10 +2646,12 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtFontEditWidget + ... ... + Select Font Selectionner police @@ -2148,30 +2659,37 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtFontPropertyManager + Family Famille + Point Size Taille en points + Bold Gras + Italic Italique + Underline Souligné + Strikeout Barré + Kerning Crénage @@ -2179,6 +2697,7 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientDialog + Edit Gradient Modifier le gradient @@ -2186,242 +2705,304 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientEditor + Form Formulaire + Gradient Editor Éditeur de gradient + 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. Cette zone montre une prévisualisation du gradient édité. Elle permet aussi d'éditer les paramètres spécifiques au type de gradient tel que les points de départ et d'arrivée, le rayon, etc. par glisser-déposer. + 1 1 + 2 2 + 3 3 + 4 4 + 5 5 + Gradient Stops Editor Éditeur de point d'arrêt du gradient + 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. Cette zone vous permet d'éditer les points d'arrêt du gardient. Double-cliquez sur un point d'arrêt existant pour le dupliquer. Double-cliquez à l'exterieur d'un point d'arrêt pour en créer un nouveau. Glissez-déposez un point pour le repositionner. Utilisez le bouton droit de la souris pour afficher le menu contextuel avec des actions supplémentaires. + Zoom Zoom + Reset Zoom Réinitialiser le zoom + Position Position + Hue Teinte + H T + Saturation Saturation + S S + Sat Sat + Value Valeur + V V + Val Val + Alpha Alpha + A A + Type Type + Spread Étendue + Color Couleur + Current stop's color Couleur du point d'arrêt courant + Show HSV specification Montrer les spécifications TSV/HSV + HSV TSV/HSV + Show RGB specification Affichier les spécifications RGB + RGB RGB + Current stop's position Position du point d'arrêt courant + % % + Zoom In Zoomer + Zoom Out Dézoomer + Toggle details extension Inverser les détails d'exention + > > + Linear Type Type linéaire + ... ... + Radial Type Type radial + Conical Type Type conique + Pad Spread Étendue par remplissage + Repeat Spread Étendue par répétition + Reflect Spread Étendue par réflexion + Start X X de départ + Start Y Y de départ + Final X X de fin + Final Y Y de fin + + Central X X central + + Central Y Y central + Focal X X focal + Focal Y Y focal + Radius Rayon + Angle Angle + Linear Linéaire + Radial Radial + Conical Conique + Pad Remplissage + Repeat Répéter + Reflect Réflexion @@ -2429,30 +3010,37 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientStopsWidget + New Stop Nouveau point d'arrêt + Delete Supprimer + Flip All Tout renverser + Select All Tout sélectionner + Zoom In Zoomer + Zoom Out Dézoomer + Reset Zoom Réinitialiser le zoom @@ -2460,34 +3048,46 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientView + Gradient View Vue du gradient + + New... Nouveau... + + Edit... Éditer... + + Rename Renommer + + Remove Retirer + Grad Gradient + Remove Gradient Retirer gradient + Are you sure you want to remove the selected gradient? Êtes-vous sûr de vouloir supprimer le gradient sélectionné ? @@ -2495,6 +3095,8 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtGradientViewDialog + + Select Gradient Sélectionner gradient @@ -2502,6 +3104,7 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtKeySequenceEdit + Clear Shortcut Effacer les racourcis @@ -2509,14 +3112,17 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtLocalePropertyManager + %1, %2 %1, %2 + Language Langue + Country Pays @@ -2524,14 +3130,17 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtPointFPropertyManager + (%1, %2) (%1, %2) + X X + Y Y @@ -2539,14 +3148,17 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtPointPropertyManager + (%1, %2) (%1, %2) + X X + Y Y @@ -2554,10 +3166,12 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtPropertyBrowserUtils + [%1, %2, %3] (%4) [%1, %2, %3] (%4) + [%1, %2] [%1, %2] @@ -2565,22 +3179,27 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtRectFPropertyManager + [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] + X X + Y Y + Width Largeur + Height Hauteur @@ -2588,22 +3207,27 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtRectPropertyManager + [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] + X X + Y Y + Width Largeur + Height Hauteur @@ -2611,134 +3235,173 @@ Les pages du conteneur ne devraient être ajoutées que par spécification dans QtResourceEditorDialog + Dialog Dialogue + New File Nouveau fichier + N N + Remove File Supprimer fichier + R S + I + New Resource Nouvelle ressource + A A + Remove Resource or File Supprimer ressource ou fichier + %1 already exists. Do you want to replace it? %1 existe déjà. Voulez-vous le remplacer ? + The file does not appear to be a resource file; element '%1' was found where '%2' was expected. Le fichier n'est pas un fichier ressource; l'élément '%1' a été trouvé à la place de %2. + %1 [read-only] %1 [lecture seule] + + %1 [missing] %1 [manquant] + <no prefix> <pas de préfixe> + + New Resource File Nouveau fichier de ressource + + Resource files (*.qrc) Fichier de ressource (*.qrc) + Import Resource File Importer fichier de ressource + newPrefix newPrefix + <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> <p><b>Avertissement :</b> le fichier</p><p>%1</p><p>est en dehors du répertoire parent du fichier de ressource courant.</p> + <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> <p>Pour résoudre le problème, appuyez sur :</p><table><tr><th align="left">Copier</th><td>Pour copier le fichier dans le répertoire parent du fichier de ressource.</td></tr><tr><th align="left">Copier sous...</th><td>Pour copier le fichier ressource dans un sous-répertoire du répertoire parent du fichier de ressource.</td></tr><tr><th align="left">Conserver</th><td>pour conserver l'emplacement courant.</td></tr></table> + Add Files Ajouter fichiers + Incorrect Path Chemin incorrect + + + + Copy Copier + Copy As... Copier sous... + Keep Conserver + Skip Passer + Clone Prefix Cloner le préfixe + 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". Entrez le suffixe que vous voulez ajouter aux noms des fichiers clonés. Ceci peut être une extension de langue par exemple, comme "_fr'. + + Copy As Copier sous + <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> <p>Le fichier sélectionné</p><p>%1</p><p>est en dehors du répertoire du fichier de ressource courant :</p><p>%2</p><p>Veuillez sélectionner un chemin dans le répertoire courant.</p> + Could not overwrite %1. Impossible d'écraser %1. + Could not copy %1 to @@ -2749,84 +3412,108 @@ vers %2 + A parse error occurred at line %1, column %2 of %3: %4 Une erreur d'analyse grammaticale est apparue à la ligne %1, colonne %2 de %3 : %4 + Save Resource File Enregistrer le fichier de ressource + Could not write %1: %2 Impossible d'écrire %1 : %2 + Edit Resources Éditer les ressources + New... Nouveau... + Open... Ouvrir... + Open Resource File Ouvrir fichier de ressource + + Remove Retirer + + Move Up Vers le Haut + + Move Down Vers le Bas + + Add Prefix Ajouter préfixe + Add Files... Ajouter fichiers... + Change Prefix Modifier le préfixe + Change Language Modifier la langue + Change Alias Modifier l'alias + Clone Prefix... Cloner le préfixe... + Prefix / Path Préfixe / chemin + Language / Alias Langue / Alias + <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> <html><p><b>Avertissement:</b> Des problèmes sont apparus lors du rafraichissement des données des ressources :</p><pre>%1</pre></html> + Resource Warning Avertissement relatif aux ressources @@ -2834,20 +3521,24 @@ vers QtResourceView + Size: %1 x %2 %3 Taille : %1 x %2 %3 + Edit Resources... Éditer ressources... + Reload Recharger + Copy Path Copier le chemin @@ -2855,6 +3546,7 @@ vers QtResourceViewDialog + Select Resource Séléctionner ressource @@ -2862,14 +3554,17 @@ vers QtSizeFPropertyManager + %1 x %2 %1 x %2 + Width Largeur + Height Hauteur @@ -2877,26 +3572,33 @@ vers QtSizePolicyPropertyManager + + <Invalid> <Invalide> + [%1, %2, %3, %4] [%1, %2, %3, %4] + Horizontal Policy Politique horizontale + Vertical Policy Politique verticale + Horizontal Stretch Étirement horizontal + Vertical Stretch Étirement vertical @@ -2904,14 +3606,17 @@ vers QtSizePropertyManager + %1 x %2 %1 x %2 + Width Largeur + Height Hauteur @@ -2919,86 +3624,107 @@ vers QtToolBarDialog + Customize Toolbars Personnaliser les barres d'outils + 1 1 + Actions Actions + Toolbars Barres d'outils + Add new toolbar Ajouter une nouvelle barre d'outils + New Nouveau + Remove selected toolbar Supprimer la barre d'outils sélectionnée + Remove Supprimer + Rename toolbar Renommer la barre d'outils + Rename Renommer + Move action up Déplacer l'action vers le haut + Up Monter + Remove action from toolbar Retirer l'action de la barre d'outils + <- <- + Add action to toolbar Ajouter l'action à la barre d'outil + -> -> + Move action down Déplacer l'action vers le bas + Down Descendre + Current Toolbar Actions Actions de la barre d'outils courante + Custom Toolbar Barre d'outils personnalisée + < S E P A R A T O R > < S É P A R A T E U R > @@ -3006,10 +3732,12 @@ vers QtTreePropertyBrowser + Property Propriété + Value Valeur @@ -3017,52 +3745,64 @@ vers SaveFormAsTemplate + Save Form As Template Enregistrer le formulaire comme un modèle + &Name: &Nom : + &Category: &Catégorie : + Add path... Ajouter chemin... + Template Exists Le modèle existe + A template with the name %1 already exists. Do you want overwrite the template? Un modèle existe déjà avec le nom %1. Voulez-vous le remplacer ? + Overwrite Template Remplacer modèle + Open Error Erreur d'ouverture + There was an error opening template %1 for writing. Reason: %2 Une erreur s'est produite à l'ouverture du modèle %1 en écriture. Raison : %2 + Write Error Erreur d'écriture + There was an error writing the template %1 to disk. Reason: %2 Une erreur s'est produite lors de l'écriture du modèle %1 sur le disque. Raison : %2 + Pick a directory to save templates in Sélectionner le dossier dans lequel le modèle sera enregistré @@ -3070,6 +3810,7 @@ Voulez-vous le remplacer ? ScriptErrorDialog + An error occurred while running the scripts for "%1": Une erreur est apparue lors de l'execution des scripts de "%1" : @@ -3079,18 +3820,22 @@ Voulez-vous le remplacer ? SelectSignalDialog + Go to slot Aller au slot + Select signal Sélectionner signal + signal signal + class classe @@ -3098,6 +3843,7 @@ Voulez-vous le remplacer ? SignalSlotConnection + SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) ENVOYER(%1), SIGNAL(%2), RECEVEUR(%3), SLOT(%4) @@ -3105,26 +3851,32 @@ Voulez-vous le remplacer ? SignalSlotDialogClass + Signals and slots Signaux et slots + Slots Slots + Add Ajouter + ... ... + Delete Supprimer + Signals Signaux @@ -3132,10 +3884,12 @@ Voulez-vous le remplacer ? Spacer + Horizontal Spacer '%1', %2 x %3 Ressort horizontal '%1', %2 x %3 + Vertical Spacer '%1', %2 x %3 Ressort vertical '%1', %2 x %3 @@ -3143,6 +3897,7 @@ Voulez-vous le remplacer ? TemplateOptionsPage + Template Paths Tab in preferences dialog Chemins des modèles @@ -3151,42 +3906,52 @@ Voulez-vous le remplacer ? ToolBarManager + Configure Toolbars... Configurer les barres d'outils... + Window Fenêtre + Help Aide + Style Style + Dock views Ancrer les vues + File Fichier + Edit Édition + Tools Outils + Form Formulaire + Toolbars Barres d'outils @@ -3194,25 +3959,78 @@ Voulez-vous le remplacer ? VersionDialog + <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>Version %2 + Qt Designer Qt Designer + <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> <br/>Qt Designer est une interface de création d'interface graphique pour les applications Qt.<br/> + %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). %1<br/>Copyright (C) 2010 Nokia Corporation et/ou ses filiales. + VideoPlayerTaskMenu + + + Available Mime Types + Types MIME disponibles + + + + Display supported mime types... + Afficher les types MIME supportés... + + + + Load... + Ouvrir... + + + + Play + Lecture + + + + Pause + Pause + + + + Stop + Arrêter + + + + Choose Video Player Media Source + Choisir une source de média pour le lecteur video + + + + An error has occurred in '%1': %2 + Une erreur s'est produite dans '%1' : %2 + + + + Video Player Error + Erreur du lecteur video + + + WidgetDataBase + 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. Le fichier contient un widget personnalisé '%1' dont la classe de base (%2) est différente de l'entrée dans la base de données de widget (%3). La base de données de widget n'a pas été modifiée. @@ -3220,70 +4038,87 @@ Voulez-vous le remplacer ? qdesigner_internal::ActionEditor + New... Nouveau... + Edit... Éditer... + Go to slot... Aller au slot... + Copy Copier + Cut Couper + Paste Coller + Select all Tout sélectionner + Delete Supprimer + Actions Actions + Configure Action Editor Configurer l'éditeur d'action + Icon View Vue en icônes + Detailed View Vue détaillée + New action Nouvelle action + Edit action Editer action + Remove action '%1' Supprimer action '%1' + Remove actions Supprimer les actions + Used In Utilisé dans @@ -3291,26 +4126,32 @@ Voulez-vous le remplacer ? qdesigner_internal::ActionModel + Name Nom + Used Utilisé + Text Texte + Shortcut Raccourci + Checkable Vérifiable + ToolTip Info-bulle @@ -3318,22 +4159,27 @@ Voulez-vous le remplacer ? qdesigner_internal::BrushManagerProxy + The element '%1' is missing the required attribute '%2'. L'attribut requis '%2' est manquant pour l'élément '%1'. + Empty brush name encountered. Un nom vide de pinceau a été rencontré. + An unexpected element '%1' was encountered. L'élément inattendu '%1' a été rencontré. + An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 - Une erreur est apparue lors de la lecture du fichier '%1' de définition des pinceaux à la ligne %2, colonne %3: %4 + Une erreur est apparue lors de la lecture du fichier '%1' de définition des pinceaux à la ligne %2, colonne %3 : %4 + An error occurred when reading the resource file '%1' at line %2, column %3: %4 Une erreur est survenue lors de la lecture du fichier de ressource '%1' à la ligne %2, colonne %3 : %4 @@ -3341,14 +4187,17 @@ Voulez-vous le remplacer ? qdesigner_internal::BuddyEditor + Add buddy Ajouter un copain + Remove buddies Supprimer les copains + Remove %n buddies Supprimer %n copain @@ -3356,6 +4205,7 @@ Voulez-vous le remplacer ? + Add %n buddies Ajouter %n copain @@ -3363,6 +4213,7 @@ Voulez-vous le remplacer ? + Set automatically Définir automatiquement @@ -3370,6 +4221,7 @@ Voulez-vous le remplacer ? qdesigner_internal::BuddyEditorPlugin + Edit Buddies Éditer les copains @@ -3377,6 +4229,7 @@ Voulez-vous le remplacer ? qdesigner_internal::BuddyEditorTool + Edit Buddies Éditer les copains @@ -3384,10 +4237,12 @@ Voulez-vous le remplacer ? qdesigner_internal::ButtonGroupMenu + Select members Sélectionner les membres + Break Casser @@ -3395,26 +4250,32 @@ Voulez-vous le remplacer ? qdesigner_internal::ButtonTaskMenu + Assign to button group Assigner au groupe de boutons + Button group Groupe de boutons + New button group Nouveau groupe de boutons + Change text... Modifier le texte... + None Aucun + Button group '%1' Groupe de boutons '%1' @@ -3422,46 +4283,57 @@ Voulez-vous le remplacer ? qdesigner_internal::CodeDialog + Save... Enregistrer... + Copy All Tout copier + &Find in Text... &Rechercher dans le texte... + A temporary form file could not be created in %1. Un fichier temporaire de formulaire n'a pas pu être créé dans %1. + The temporary form file %1 could not be written. Le fichier temporaire de formulaire %1 n'a pas pu être écrit. + %1 - [Code] %1 - [Code] + Save Code Enregistrer le code + Header Files (*.%1) Fichiers headers (*.%1) + The file %1 could not be opened: %2 Le fichier %1 ne peut pas être ouvert : %2 + The file %1 could not be written: %2 Le fichier %1 ne peut pas être écrit : %2 + %1 - Error %1 - Erreur @@ -3469,6 +4341,7 @@ Voulez-vous le remplacer ? qdesigner_internal::ColorAction + Text Color Couleur du texte @@ -3476,10 +4349,12 @@ Voulez-vous le remplacer ? qdesigner_internal::ComboBoxTaskMenu + Edit Items... Éditer les éléments... + Change Combobox Contents Modifier le contenu du Combobox @@ -3487,6 +4362,7 @@ Voulez-vous le remplacer ? qdesigner_internal::CommandLinkButtonTaskMenu + Change description... Modifier la description... @@ -3494,14 +4370,17 @@ Voulez-vous le remplacer ? qdesigner_internal::ConnectionEdit + Select All Tout sélectionner + Deselect All Désélectionner tout + Delete Supprimer @@ -3509,42 +4388,52 @@ Voulez-vous le remplacer ? qdesigner_internal::ConnectionModel + Sender Émetteur + Signal Signal + Receiver Receveur + Slot Slot + <sender> <émetteur> + <signal> <signal> + <receiver> <receveur> + <slot> <slot> + The connection already exists!<br>%1 La connexion existe déjà !<br>%1 + Signal and Slot Editor Éditeur de signaux et slots @@ -3552,34 +4441,42 @@ Voulez-vous le remplacer ? qdesigner_internal::ContainerWidgetTaskMenu + Delete Supprimer + Insert Insérer + Insert Page Before Current Page Insérer la page avant la page courante + Insert Page After Current Page Insérer la page après la page courante + Add Subwindow Ajouter sous-fenêtre + Subwindow Sous fenêtre + Page Page + Page %1 of %2 Page %1 de %2 @@ -3587,15 +4484,18 @@ Voulez-vous le remplacer ? qdesigner_internal::DPI_Chooser + System (%1 x %2) System resolution Système (%1 x %2) + User defined Défini par l'utilisateur + x DPI X/Y separator x @@ -3604,38 +4504,49 @@ Voulez-vous le remplacer ? qdesigner_internal::DesignerPropertyManager + + AlignLeft AlignementGauche + AlignHCenter AlignementCentreH + AlignRight AlignementDroite + AlignJustify AlignementJustifié + AlignTop AlignementSommet + + AlignVCenter AlignementCentreV + AlignBottom AlignementDessous + %1, %2 %1, %2 + Customized (%n roles) Personnalisé (%n rôle) @@ -3643,59 +4554,76 @@ Voulez-vous le remplacer ? + Inherited pour la palette Héritée + Horizontal Horizontal + Vertical Vertical + Normal Off Arrêt normal + Normal On Marche normal + Disabled Off Arrêt désactivé + Disabled On Marche désactivé + Active Off Arrêt activé + Active On Marche activé + Selected Off Arrêt sélectionné + Selected On Marche sélectionné + + translatable Traduisible + + disambiguation désambiguation + + comment commentaire @@ -3703,38 +4631,48 @@ Voulez-vous le remplacer ? qdesigner_internal::DeviceProfileDialog + Device Profiles (*.%1) Profils d'appareil (*.%1) + Default Par défaut + Save Profile Enregistrer le profil + Save Profile - Error Enregistrer le profile - Erreur + Unable to open the file '%1' for writing: %2 Impossible d'ouvrir le fichier '%1' en écriture : %2 + Open profile Ouvrir profil + + Open Profile - Error Ouvrir profil - Erreur + Unable to open the file '%1' for reading: %2 Impossible d'ouvrir le fichier '%1' en lecture : %2 + '%1' is not a valid profile: %2 '%1' n'est pas un profil valide : %2 @@ -3742,46 +4680,57 @@ Voulez-vous le remplacer ? qdesigner_internal::Dialog + Dialog Boîte de dialogue + StringList Liste de chaîne de caractères + New String Nouvelle chaîne de caractères + &New &Nouveau + Delete String Supprimer la chaîne de caractères + &Delete &Supprimer + &Value: &Valeur : + Move String Up Déplacer la chaîne de caractères vers le haut + Up Vers le haut + Move String Down Déplacer la chaîne de caractères vers le bas + Down Vers le bas @@ -3789,42 +4738,52 @@ Voulez-vous le remplacer ? qdesigner_internal::EmbeddedOptionsControl + None Aucun + Add a profile Ajouter un profil + Edit the selected profile Éditer le profile sélectionné + Delete the selected profile Supprimer le profil sélectionné + Add Profile Ajouter profil + New profile Nouveau profil + Edit Profile Éditer profil + Delete Profile Supprimer profil + Would you like to delete the profile '%1'? Voulez-vous supprimer le profil '%1' ? + Default Par défaut @@ -3836,10 +4795,12 @@ Voulez-vous le remplacer ? <Filtre> + Filter Filtre + Clear text Effacer le texte @@ -3847,10 +4808,12 @@ Voulez-vous le remplacer ? qdesigner_internal::FormEditor + Resource File Changed Fichier de ressource modifié + The file "%1" has changed outside Designer. Do you want to reload it? Le fichier "%1" a été modifié en dehors de Designer. Voulez-vous le recharger ? @@ -3858,6 +4821,7 @@ Voulez-vous le remplacer ? qdesigner_internal::FormLayoutMenu + Add form layout row... Ajouter une ligne au layout du formulaire... @@ -3865,30 +4829,37 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindow + Edit contents Éditer le contenu + F2 F2 + Insert widget '%1' Insérer le widget '%1' + Resize Redimensionner + Key Move Déplacement au clavier + Key Resize Redimensionnement au clavier + Paste %n action(s) Coller %n action @@ -3896,6 +4867,7 @@ Voulez-vous le remplacer ? + Paste %n widget(s) Coller %n widget @@ -3903,42 +4875,53 @@ Voulez-vous le remplacer ? + Paste (%1 widgets, %2 actions) Coller (%1 widgets, %2 actions) + Cannot paste widgets. Designer could not find a container without a layout to paste into. Impossible de coller les widgets. Designer n'a pas trouvé de conteneur sans layout pour coller. + Break the layout of the container you want to paste into, select this container and then paste again. Retirez le layout du conteneur dans lequel vous voulez coller, sélectionnez ce conteneur et collez à nouveau. + Paste error Erreur de collage + Raise widgets Élever widgets + Lower widgets Descendre widgets + Select Ancestor Sélectionner les ancêtres + Lay out Mettre en page + + Drop widget Supprimer widget + A QMainWindow-based form does not contain a central widget. Un formulaire basé sur QMainWindow ne contenant pas de widget central. @@ -3946,10 +4929,12 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindowBase + Delete '%1' Supprimer '%1' + Delete Supprimer @@ -3957,78 +4942,99 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindowManager + Cu&t Co&uper + Cuts the selected widgets and puts them on the clipboard Coupe les widgets sélectionnés et les place dans le presse-papiers + &Copy Cop&ier + Copies the selected widgets to the clipboard Copie les widgets sélectionnés dans le presse-papiers + &Paste C&oller + Pastes the clipboard's contents Colle le contenu du presse-papiers + &Delete &Supprimer + Deletes the selected widgets Supprime les widgets sélectionnés + Select &All Tout &sélectionner + Selects all widgets Sélectionne tous les widgets + Bring to &Front Amener au premier &plan + + Raises the selected widgets Élève les widgets sélectionnés + Send to &Back Placer en &arrière plan + + Lowers the selected widgets Descend les widgets sélectionnés + Adjust &Size Ajuster les &dimensions + Adjusts the size of the selected widget Ajuster les dimensions du widget sélectionné + Lay Out &Horizontally Mettre en page &horizontalement + Lays out the selected widgets horizontally Mettre en page horizontalement les widgets sélectionnés + Lays out the selected widgets horizontally in a splitter Met en page les widgets sélectionnés horizontalement à l'aide d'un séparateur @@ -4037,30 +5043,37 @@ Voulez-vous le remplacer ? Mettre en page horizontalement les widgets sélectionnés + Lay Out &Vertically Mettre en page &verticalement + Lays out the selected widgets vertically Mettre en page verticalement les widgets sélectionnés + Lay Out in a &Form Layout Mettre en page dans un layout de &formulaire + Lays out the selected widgets in a form layout Mettre en page les widgets sélectionnés dans un layout de formulaire + Lay Out in a &Grid Mettre en page dans une &grille + Lays out the selected widgets in a grid Mettre en page les widgets sélectionnés dans une grille + Lay Out Horizontally in S&plitter Mettre en page horizontalement avec un sé&parateur @@ -4069,55 +5082,68 @@ Voulez-vous le remplacer ? Met en page les widgets sélectionnés horizontalement à l'aide d'un séparateur + Lay Out Vertically in Sp&litter Mettre en page verticalement avec un sépa&rateur + Lays out the selected widgets vertically in a splitter Met en page les widgets sélectionnés verticalement à l'aide d'un séparateur + &Break Layout &Casser la mise en page + Breaks the selected layout Retire le layout sélectionné + Si&mplify Grid Layout Si&mplifier le layout de grille + Removes empty columns and rows Supprime les lignes et colonnes vides + &Preview... &Prévisualisation... + Preview current form Prévisualise le formulaire courant + Form &Settings... Paramètres du &formulaire... + Break Layout Casser la mise en page + Adjust Size Ajuster les dimensions + Could not create form preview Title of warning message box Impossible de créer la prévisualisation du formulaire + Form Settings - %1 Paramètres du formulaire - %1 @@ -4125,10 +5151,12 @@ Voulez-vous le remplacer ? qdesigner_internal::FormWindowSettings + None Aucun + Device Profile: %1 Profil de périphérique : %1 @@ -4136,30 +5164,37 @@ Voulez-vous le remplacer ? qdesigner_internal::GridPanel + Form Formulaire + Grid Grille + Visible Visible + Grid &X Grille &X + Snap Grille aimantée + Reset Réinitialisé + Grid &Y Grille &Y @@ -4167,6 +5202,7 @@ Voulez-vous le remplacer ? qdesigner_internal::GroupBoxTaskMenu + Change title... Modifier le titre... @@ -4174,6 +5210,7 @@ Voulez-vous le remplacer ? qdesigner_internal::HtmlTextEdit + Insert HTML entity Insérer une entité HTML @@ -4181,74 +5218,92 @@ Voulez-vous le remplacer ? qdesigner_internal::IconSelector + The pixmap file '%1' cannot be read. Le fichier pixmap '%1' ne peut pas être lu. + The file '%1' does not appear to be a valid pixmap file: %2 Le fichier '%1' n'est pas un fichier de pixmap valide : %2 + The file '%1' could not be read: %2 Le fichier '%1' ne peut pas être lu : %2 + Choose a Pixmap Choisissez un pixmap + Pixmap Read Error Erreur de lecture de pixmap + ... ... + Normal Off Arrêt normal + Normal On Marche normal + Disabled Off Arrêt désactivé + Disabled On Marche désactivé + Active Off Arrêt activé + Active On Marche activé + Selected Off Arrêt sélectionné + Selected On Marche sélectionné + Choose Resource... Choisir ressource... + Choose File... Choisir un fichier... + Reset Réinitialiser + Reset All Réinitialisé tout @@ -4256,46 +5311,58 @@ Voulez-vous le remplacer ? qdesigner_internal::ItemListEditor + Items List Liste d'éléments + New Item Nouvel élément + &New &Nouveau + Delete Item Supprimer élément + &Delete &Supprimer + Move Item Up Déplacer l'élément vers le haut + U Monter + Move Item Down Déplacer l'élément vers le bas + D Descendre + + Properties &>> Propriétés &>> + Properties &<< Propriétés &<< @@ -4303,10 +5370,12 @@ Voulez-vous le remplacer ? qdesigner_internal::LabelTaskMenu + Change rich text... Modifier texte riche... + Change plain text... Modifier texte simple... @@ -4314,6 +5383,7 @@ Voulez-vous le remplacer ? qdesigner_internal::LanguageResourceDialog + Choose Resource Choisir ressource @@ -4321,6 +5391,7 @@ Voulez-vous le remplacer ? qdesigner_internal::LineEditTaskMenu + Change text... Modifier texte... @@ -4328,14 +5399,17 @@ Voulez-vous le remplacer ? qdesigner_internal::ListWidgetEditor + New Item Nouvel élément + Edit List Widget Éditer le widget de liste + Edit Combobox Éditer le Combobox @@ -4343,10 +5417,12 @@ Voulez-vous le remplacer ? qdesigner_internal::ListWidgetTaskMenu + Edit Items... Éditer les éléments... + Change List Contents Modifier le contenu de la liste @@ -4354,18 +5430,22 @@ Voulez-vous le remplacer ? qdesigner_internal::MdiContainerWidgetTaskMenu + Next Subwindow Sous-fenêtre suivante + Previous Subwindow Sous-fenêtre précédente + Tile Côte à côte + Cascade Cascade @@ -4373,6 +5453,7 @@ Voulez-vous le remplacer ? qdesigner_internal::MenuTaskMenu + Remove Supprimer @@ -4380,6 +5461,7 @@ Voulez-vous le remplacer ? qdesigner_internal::MorphMenu + Morph into Transformer en @@ -4387,34 +5469,42 @@ Voulez-vous le remplacer ? qdesigner_internal::NewActionDialog + New Action... Nouvelle action... + &Text: &Texte : + Object &name: &Nom de l'objet : + &Icon: &Icône : + Shortcut: Raccourci : + Checkable: Peut être cochée : + ToolTip: Info-bulle : + ... ... @@ -4422,32 +5512,39 @@ Voulez-vous le remplacer ? qdesigner_internal::NewDynamicPropertyDialog + Create Dynamic Property Créer une propriété dynamique + Property Name Nom de la propriété + horizontalSpacer Espaceur horizontal + Property Type Type de la propriété + Set Property Name Définir le nom de la propriété + The current object already has a property named '%1'. Please select another, unique one. L'objet courant possède déjà une propriété nommée '%1'. Veuillez-sélectionner un autre nom. + The '_q_' prefix is reserved for the Qt library. Please select another name. Le préfixe «_q_» est réservé pour la bibliothèque Qt. @@ -4457,67 +5554,83 @@ Veuillez sélectionner un autre nom. qdesigner_internal::NewFormWidget + 0 0 + Choose a template for a preview Choisir un modèle pour la prévisualisation + Embedded Design Design pour appareil mobile + Device: Appareil : + Screen Size: Dimensions de l'écran : + Default size Dimensions par défaut + QVGA portrait (240x320) QVGA portrait (240x320) + QVGA landscape (320x240) QVGA paysage (320x240) + VGA portrait (480x640) VGA portrait (480x640) + VGA landscape (640x480) VGA paysage (640x480) + Widgets New Form Dialog Categories Widgets + Custom Widgets Widgets personnalisé + None Aucun + Error loading form Erreur de chargement du formulaire + Unable to open the form template file '%1': %2 Impossible d'ouvrir le fichier de modèle de formulaire '%1' : %2 + Internal error: No template selected. Erreur interne : aucun modèle sélectionné. @@ -4525,30 +5638,37 @@ Veuillez sélectionner un autre nom. qdesigner_internal::NewPromotedClassPanel + Add Ajouter + New Promoted Class Nouvelle classe promue + Base class name: Nom de la classe de base : + Promoted class name: Nom de la classe promue : + Header file: Fichier d'en-tête : + Global include En-tête global + Reset Réinitialiser @@ -4556,10 +5676,12 @@ Veuillez sélectionner un autre nom. qdesigner_internal::ObjectInspector + Change Current Page Modifier la page courante + &Find in Text... &Rechercher dans le texte... @@ -4574,26 +5696,32 @@ Veuillez sélectionner un autre nom. qdesigner_internal::OrderDialog + Change Page Order Modifier l'ordre des pages + Page Order Ordre des pages + Move page up Déplacer la page vers le haut + Move page down Déplacer la page vers le bas + Index %1 (%2) Indice %1 (%2) + %1 %2 %1 %2 @@ -4601,38 +5729,47 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PaletteEditor + Edit Palette Éditer la palette + Tune Palette Ajuster la palette + Show Details Afficher les détails + Compute Details Calculer les détails + Quick Rapide + Preview Prévisualisation + Disabled Désactivé + Inactive Inactif + Active Actif @@ -4640,6 +5777,7 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PaletteEditorButton + Change Palette Modifier la palette @@ -4647,18 +5785,22 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PaletteModel + Color Role Rôle de la couleur + Active Actif + Inactive Inactif + Disabled Désactivé @@ -4666,22 +5808,28 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PixmapEditor + Choose Resource... Choisir ressource... + Choose File... Choisir fichier... + Copy Path Chemin de copie + Paste Path Chemin de collage + + ... ... @@ -4689,6 +5837,7 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PlainTextEditorDialog + Edit text Éditer le texte @@ -4696,30 +5845,37 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PluginDialog + Components Composants + Plugin Information Information sur les plugins + Refresh Rafraîchir + Scan for newly installed custom widget plugins. Recherche des plugins personnalisés récemment installés. + Qt Designer couldn't find any plugins Qt Designer n'a trouvé aucun plugin + Qt Designer found the following plugins Qt Designer a trouvé les plugins suivants + New custom widget plugins have been found. De nouveaux plugins de widgets ont été trouvés. @@ -4727,6 +5883,7 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewActionGroup + %1 Style Style %1 @@ -4734,38 +5891,47 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewConfigurationWidget + Default Par défaut + None Aucun + Browse... Parcourir... + Load Custom Device Skin Charger le revêtement d'appareil personnalisé + All QVFB Skins (*.%1) Tous les revêtements QVFB (*.%1) + %1 - Duplicate Skin %1 - Revêtement doublon + The skin '%1' already exists. Le revêtement '%1' existe déjà. + %1 - Error %1 - Erreur + %1 is not a valid skin directory: %2 %1 n'est pas un répertoire de revêtements valide : @@ -4804,20 +5970,24 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewDeviceSkin + &Portrait &Portrait + Landscape (&CCW) Rotate form preview counter-clockwise Paysage (&dans le sens horaire) + &Landscape (CW) Rotate form preview clockwise Paysage (&dans le sens anti-horaire) + &Close &Fermer @@ -4825,6 +5995,7 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewManager + %1 - [Preview] %1 - [prévisualisation] @@ -4832,6 +6003,7 @@ Veuillez sélectionner un autre nom. qdesigner_internal::PreviewMdiArea + The moose in the noose ate the goose who was loose. Palette editor background @@ -4842,46 +6014,57 @@ je préfère les mines de Pompéi. qdesigner_internal::PreviewWidget + Preview Window Fenêtre de prévisualisation + LineEdit LineEdit + ComboBox ComboBox + PushButton PushButton + ButtonGroup2 ButtonGroup2 + CheckBox1 CheckBox1 + CheckBox2 CheckBox2 + ButtonGroup ButtonGroup + RadioButton1 RadioButton1 + RadioButton2 RadioButton2 + RadioButton3 BoutonRadio1 @@ -4889,18 +6072,22 @@ je préfère les mines de Pompéi. qdesigner_internal::PromotionModel + Name Nom + Header file Fichier d'en-tête + Global include En-tête global + Usage Usage @@ -4908,22 +6095,27 @@ je préfère les mines de Pompéi. qdesigner_internal::PromotionTaskMenu + Promoted widgets... Widgets promus... + Promote to ... Promouvoir en... + Change signals/slots... Modifier signaux/slots... + Promote to Promouvoir en + Demote to %1 Rétrograder en %1 @@ -4931,46 +6123,57 @@ je préfère les mines de Pompéi. qdesigner_internal::PropertyEditor + Add Dynamic Property... Ajouter une propriété dynamique... + Remove Dynamic Property Supprimer la propriété dynamique + Sorting Tri + Color Groups Groupes de couleur + Tree View Vue arborescente + Drop Down Button View Liste déroulante + String... Chaîne de caractères... + Bool... Booléen... + Other... Autre... + Configure Property Editor Configurer l'éditeur de propriétés + Object: %1 Class: %2 Objet : %1 @@ -4980,6 +6183,7 @@ Classe : %2 qdesigner_internal::PropertyLineEdit + Insert line break Insérer saut de ligne @@ -4987,22 +6191,27 @@ Classe : %2 qdesigner_internal::QDesignerPromotionDialog + Promoted Widgets Widgets promus + Promoted Classes Classes promues + Promote Promouvoir + Change signals/slots... Modifier signaux/slots... + %1 - Error %1 - Erreur @@ -5010,18 +6219,22 @@ Classe : %2 qdesigner_internal::QDesignerResource + Loading qrc file Chargement du fichier qrc + The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> - Le fichier qrc spécifié <p><b>%1</b></p><p>n'a pas pu être trouvé. Voulez-vous mettre à jour l'emplacement du fichier?</p> + Le fichier qrc spécifié <p><b>%1</b></p><p>n'a pas pu être trouvé. Voulez-vous mettre à jour l'emplacement du fichier ?</p> + New location for %1 Nouvel emplacement pour %1 + Resource files (*.qrc) Fichier de ressource (*.qrc) @@ -5029,90 +6242,112 @@ Classe : %2 qdesigner_internal::QDesignerTaskMenu + Change objectName... Modifier objectName... + Change toolTip... Modifier toolTip... + Change whatsThis... Modifier whatsThis... + Change styleSheet... Modifier la feuille de style... + Create Menu Bar Créer une barre de menus + Add Tool Bar Ajouter une barre d'outils + Create Status Bar Créer une barre de status + Remove Status Bar Supprimer la barre de status + Change script... Modifier le script... + Change signals/slots... Modifier signaux/slots... + Go to slot... Aller au slot... + Size Constraints Contrainte de taille + Set Minimum Width Définir la largeur minimum + Set Minimum Height Définir la hauteur minimum + Set Minimum Size Définir la taille minimum + Set Maximum Width Définir la largeur maximum + Set Maximum Height Définir la hauteur maximum + Set Maximum Size Définir la taille maximum + Edit ToolTip Éditer l'info-bulle + Edit WhatsThis Éditer «Qu'est-ce» + no signals available Aucun signal disponible + Set size constraint on %n widget(s) Définir les contraintes de dimensions sur %n widget @@ -5123,32 +6358,40 @@ Classe : %2 qdesigner_internal::QDesignerWidgetBox + An error has been encountered at line %1 of %2: %3 Une erreur a été rencontrée à la ligne %1 de %2 : %3 + Unexpected element <%1> encountered when parsing for <widget> or <ui> L'élément inattendu <%1> a été rencontré lors de l'analyse des élements <widget> et <ui> + Unexpected end of file encountered when parsing widgets. Fin de fichier inattendue lors de l'analyse grammaticale des widgets. + A widget element could not be found. Un élement de widget n'a pas pu être trouvé. + + Unexpected element <%1> Élément <%1> inattendu + A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 %5 Une erreur d'analyse grammaticale est apparue à la ligne %1, colonne %2 du code XML spécifiant le widget %3 : %4 %5 + The XML code specified for the widget %1 does not contain any widget elements. %2 Le code XML spécifié pour le widget %1 ne contient aucun élément widget. @@ -5158,58 +6401,73 @@ Classe : %2 qdesigner_internal::QtGradientStopsController + H T + S S + V V + + Hue Teinte + Sat Sat + Val Val + Saturation Saturation + Value Valeur + R R + G V + B B + Red Rouge + Green Vert + Blue Bleu @@ -5217,22 +6475,27 @@ Classe : %2 qdesigner_internal::RichTextEditorDialog + Edit text Éditer le texte + Rich Text Texte riche + Source Source + &OK &OK + &Cancel &Annuler @@ -5240,58 +6503,72 @@ Classe : %2 qdesigner_internal::RichTextEditorToolBar + Bold Gras + CTRL+B CTRL+B + Italic Italique + CTRL+I CTRL+I + Underline Souligné + CTRL+U CTRL+U + Left Align Aligner à gauche + Center Centrer + Right Align Aligner à droite + Justify Justifier + Superscript Exposant + Subscript Indice + Insert &Link Insérer &lien + Insert &Image Insérer &image @@ -5299,14 +6576,17 @@ Classe : %2 qdesigner_internal::ScriptDialog + Edit script Éditer le script + <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>Entrez un snippet de code Qt Script à exécuter lors du chargement du formulaire.<br>Le widget et ses enfants sont accessibles via les variables <i>widget</i> et <i>childWidgets</i>, respectivement. + Syntax error Erreur de syntaxe @@ -5314,6 +6594,7 @@ Classe : %2 qdesigner_internal::ScriptErrorDialog + Script errors Erreurs de script @@ -5321,18 +6602,23 @@ Classe : %2 qdesigner_internal::SignalSlotDialog + There is already a slot with the signature '%1'. Un slot existe déjà avec la signature '%1'. + There is already a signal with the signature '%1'. Un signal existe déjà avec la signature '%1'. + %1 - Duplicate Signature %1 - Signature double + + Signals/Slots of %1 Signaux/slots de %1 @@ -5340,10 +6626,12 @@ Classe : %2 qdesigner_internal::SignalSlotEditorPlugin + Edit Signals/Slots Éditer signaux/slots + F4 F4 @@ -5351,6 +6639,7 @@ Classe : %2 qdesigner_internal::SignalSlotEditorTool + Edit Signals/Slots Éditer signaux/slots @@ -5358,6 +6647,7 @@ Classe : %2 qdesigner_internal::StatusBarTaskMenu + Remove Supprimer @@ -5365,6 +6655,7 @@ Classe : %2 qdesigner_internal::StringListEditorButton + Change String List Modifier la liste de chaîne de caractères @@ -5372,30 +6663,38 @@ Classe : %2 qdesigner_internal::StyleSheetEditorDialog + + Valid Style Sheet Feuille de style valide + Add Resource... Ajouter ressource... + Add Gradient... Ajouter gradient... + Add Color... Ajouter couleur... + Add Font... Ajouter police... + Edit Style Sheet Éditer feuille de style + Invalid Style Sheet Feuille de style invalide @@ -5403,22 +6702,27 @@ Classe : %2 qdesigner_internal::TabOrderEditor + Start from Here Démarrer à partir d'ici + Restart Redémarrer + Tab Order List... Ordre de la liste de tabulation... + Tab Order List Ordre de la liste de tabulation + Tab Order Ordre des tabulations @@ -5426,6 +6730,7 @@ Classe : %2 qdesigner_internal::TabOrderEditorPlugin + Edit Tab Order Éditer l'ordre des tabulations @@ -5433,6 +6738,7 @@ Classe : %2 qdesigner_internal::TabOrderEditorTool + Edit Tab Order Éditer l'ordre des tabulations @@ -5440,38 +6746,48 @@ Classe : %2 qdesigner_internal::TableWidgetEditor + Edit Table Widget Éditer le widget de table + &Items &Éléments + Table Items Éléments de la table + + Properties &>> Propriétés &>> + New Column Nouvelle colonne + New Row Nouvelle ligne + &Columns &Colonne + &Rows &Lignes + Properties &<< Propriétés &<< @@ -5479,6 +6795,7 @@ Classe : %2 qdesigner_internal::TableWidgetTaskMenu + Edit Items... Éditer les éléments... @@ -5486,18 +6803,22 @@ Classe : %2 qdesigner_internal::TemplateOptionsWidget + Form Formulaire + Additional Template Paths Chemins de modèles additionnels + ... ... + Pick a directory to save templates in Choisir un répertoire où enregistrer les modèles @@ -5505,18 +6826,22 @@ Classe : %2 qdesigner_internal::TextEditTaskMenu + Edit HTML Éditer le HTML + Change HTML... Modifier le HTML... + Edit Text Éditer le texte + Change Plain Text... Modifier le texte simple... @@ -5524,18 +6849,22 @@ Classe : %2 qdesigner_internal::TextEditor + Choose Resource... Choisir ressource... + Choose File... Choisir fichier... + ... ... + Choose a File Choisir un fichier @@ -5543,22 +6872,27 @@ Classe : %2 qdesigner_internal::ToolBarEventFilter + Insert Separator before '%1' Insérer un séparateur avant '%1' + Append Separator Ajouter un séparateur à la fin + Remove action '%1' Supprimer l'action '%1' + Remove Toolbar '%1' Supprimer la barre d'outils '%1' + Insert Separator Insérer un séparateur @@ -5566,98 +6900,125 @@ Classe : %2 qdesigner_internal::TreeWidgetEditor + Edit Tree Widget Éditer un widget d'arborescence + &Items &Éléments + Tree Items Élément de l'arbre + 1 1 + + New Item Nouvel élément + &New &Nouveau + + New Subitem Nouveau sous-élément + New &Subitem Nouveau &sous-élément + Delete Item Supprimer l'élément + &Delete &Supprimer + Move Item Left (before Parent Item) Déplacer l'élément à gauche (avant l'élément parent) + L G + Move Item Right (as a First Subitem of the Next Sibling Item) Déplacer l'élément sur la droite (comme un premier sous-élément de l'élément à droite) + R D + Move Item Up Déplacer l'élément vers le haut + U H + Move Item Down Déplacer l'élément vers le bas + D B + + Properties &>> Propriétés &>> + New Column Nouvelle colonne + &Columns &Colonnes + Per column properties Propriétés par colonnes + Common properties Propritétés de colonnes + Properties &<< Propriétés &<< @@ -5665,6 +7026,7 @@ Classe : %2 qdesigner_internal::TreeWidgetTaskMenu + Edit Items... Éditer les éléments... @@ -5672,6 +7034,7 @@ Classe : %2 qdesigner_internal::WidgetBox + Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. Avertissement : La création du widget a échoué dans la boîte de widget. Ceci peut être causé par un code XML invalide d'un widget personnalisé. @@ -5679,34 +7042,42 @@ Classe : %2 qdesigner_internal::WidgetBoxTreeWidget + Scratchpad bloc-notes + Custom Widgets Widgets personnalisés + Expand all Tout étendre + Collapse all Tout replier + List View Vue de liste + Icon View Vue en icônes + Remove Supprimer + Edit name Éditer le nom @@ -5714,6 +7085,7 @@ Classe : %2 qdesigner_internal::WidgetDataBase + A custom widget plugin whose class name (%1) matches that of an existing class has been found. Un plugin de widgets personnalisés dont un nom de classe (%1) correspond à une classe existante à été trouvé. @@ -5721,6 +7093,7 @@ Classe : %2 qdesigner_internal::WidgetEditorTool + Edit Widgets Éditer les widgets @@ -5728,28 +7101,34 @@ Classe : %2 qdesigner_internal::WidgetFactory + The custom widget factory registered for widgets of class %1 returned 0. La fabrique (factory) de widget personnalisé, enregistrée pour les widgets de classe %1, a retourné 0. + A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. Une discordance de nom de classe est apparue lors de la création d'un nouveau widget à l'aide de la fabrique de widget personnalisé enregistrée pour la classe %1. La fabrique a retourné un widget de classe %2. + %1 Widget %1 Widget + The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. Le conteneur '%1' de la page courante (%2) n'a pas pu être déterminé lors de la création du layout. Ceci indique une incohérence dans le fichier ui, probablement un layout étant construit sur un widget conteneur. + Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. Temptative d'ajout d'un layout sur le widget '%1' (%2) qui a déjà un layout non pris en charge de type %3. Ceci indique une inconsistance dans le fichier ui. + Cannot create style '%1'. Impossible de créer le style '%1'. @@ -5757,10 +7136,12 @@ Ceci indique une inconsistance dans le fichier ui. qdesigner_internal::WizardContainerWidgetTaskMenu + Next Suivant + Back Précédent @@ -5768,6 +7149,7 @@ Ceci indique une inconsistance dans le fichier ui. qdesigner_internal::ZoomMenu + %1 % Zoom factor %1 % @@ -5776,6 +7158,7 @@ Ceci indique une inconsistance dans le fichier ui. qdesigner_internal::ZoomablePreviewDeviceSkin + &Zoom &Zoom diff --git a/translations/linguist_fr.ts b/translations/linguist_fr.ts index 5b98904..c186adc 100644 --- a/translations/linguist_fr.ts +++ b/translations/linguist_fr.ts @@ -2,15 +2,9 @@ - - - (New Entry) - - - - AboutDialog + Qt Linguist @@ -18,104 +12,134 @@ BatchTranslationDialog + Batch Translation of '%1' - Qt Linguist + Searching, please wait... + &Cancel + Linguist batch translator + Batch translated %n entries + Qt Linguist - Batch Translation + Options + Set translated entries to finished + Retranslate entries with existing translation - Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked. - - - + Translate also finished entries + Phrase book preference + Move up + Move down - The batch translator will search through the selected phrase books in the order given above. + + &Run - &Run + + Cancel - Cancel + + Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked + + + + + The batch translator will search through the selected phrase books in the order given above DataModel + <qt>Duplicate messages found in '%1': + + <p>[more duplicates omitted] + + <p>* ID: %1 + + + + <p>* Context: %1<br>* Source: %2 + <br>* Comment: %3 + Linguist does not know the plural rules for '%1'. Will assume a single universal form. + Cannot create '%2': %1 + Universal Form @@ -123,30 +147,37 @@ Will assume a single universal form. ErrorsView + Accelerator possibly superfluous in translation. + Accelerator possibly missing in translation. + Translation does not end with the same punctuation as the source text. + A phrase book suggestion for '%1' was ignored. + Translation does not refer to the same place markers as in the source text. + Translation does not contain the necessary %n place marker. + Unknown error @@ -154,95 +185,159 @@ Will assume a single universal form. FindDialog + Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog + This window allows you to search for some text in the translation source file. + Type in the text to search for. + Options + Source texts are searched when checked. + Translations are searched when checked. + Texts such as 'TeX' and 'tex' are considered as different when checked. + Comments and contexts are searched when checked. + Find + &Find what: + &Source texts + &Translations + &Match case + &Comments + Ignore &accelerators + Click here to find the next occurrence of the text you typed in. + Find Next + Click here to close this window. + Cancel + FormMultiWidget + + + Alt+Delete + translate, but don't change + + + + + Shift+Alt+Insert + translate, but don't change + + + + + Alt+Insert + translate, but don't change + + + + + Confirmation - Qt Linguist + + + + + Delete non-empty length variant? + + + + LRelease - Generated %n translation(s) (%1 finished and %2 unfinished) - + + Dropped %n message(s) which had no ID. - Ignored %n untranslated source text(s) - + + Excess context/disambiguation dropped from %n message(s). + + + + + + + Generated %n translation(s) (%1 finished and %2 unfinished) + + + + + + + Ignored %n untranslated source text(s) @@ -251,943 +346,1235 @@ Will assume a single universal form. MainWindow + MainWindow + &Phrases + &Close Phrase Book + &Edit Phrase Book + &Print Phrase Book + V&alidation + &View + Vie&ws + &Toolbars + &Help + &Translation + &File + &Edit + &Open... + Open a Qt translation source file (TS file) for editing + Ctrl+O + E&xit + Close this window and exit. + Ctrl+Q + + &Save + Save changes made to this Qt translation source file - Previous unfinished item. - - - + Move to the previous unfinished item. - Next unfinished item. - - - + Move to the next unfinished item. - Move to previous item. - - - + Move to the previous item. - Next item. - - - + Move to the next item. - Mark item as done and move to the next unfinished item. - - - + Mark this item as done and move to the next unfinished item. + Copy from source text - Toggle the validity check of accelerators. - - - + 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. - Toggle the validity check of ending punctuation. - - - + Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. + Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. - Toggle the validity check of place markers. - - - + 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. + Open Read-O&nly... + &Save All + Ctrl+S + + + Save &As... + Save As... + Save changes made to this Qt translation source file into a new file. + &Release + Create a Qt message file suitable for released applications from the current message file. + &Print... + Ctrl+P + &Undo + Recently Opened &Files + Save + Print a list of all the translation units in the current translation source file. + Undo the last editing operation performed on the current translation. + Ctrl+Z + &Redo + Redo an undone editing operation performed on the translation. + Ctrl+Y + Cu&t + Copy the selected translation text to the clipboard and deletes it. + Ctrl+X + &Copy + Copy the selected translation text to the clipboard. + Ctrl+C + &Paste + Paste the clipboard text into the translation. + Ctrl+V + Select &All + Select the whole translation text. + Ctrl+A + &Find... + Search for some text in the translation source file. + Ctrl+F + Find &Next + Continue the search where it was left. + F3 + &Prev Unfinished + Close + &Close All + Ctrl+W + Ctrl+K + &Next Unfinished + P&rev + Ctrl+Shift+K + Ne&xt + &Done and Next + Copies the source text into the translation field. + Ctrl+B + &Accelerators + &Ending Punctuation + &Phrase matches - Toggle checking that phrase suggestions are used. - - - + Place &Marker Matches + &New Phrase Book... + Create a new phrase book. + Ctrl+N + &Open Phrase Book... + Open a phrase book to assist translation. + Ctrl+H + &Reset Sorting + Sort the items back in the same order as in the message file. + &Display guesses + Set whether or not to display translation guesses. + &Statistics + Display translation statistics. + &Manual + F1 + About Qt Linguist + About Qt - Display information about the Qt toolkit by Trolltech. - - - + &What's This? + What's This? + Enter What's This? mode. + Shift+F1 + &Search And Translate... + Replace the translation on all entries that matches the search source text. + + &Batch Translation... + Batch translate all entries using the information in the phrase books. + + + Release As... - 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. - - - + This is the application's main window. + Source text + + Index + + Context + Items + This panel lists the source contexts. + Strings + Phrases and guesses + Sources and Forms + Warnings + MOD status bar: file(s) modified + Loading... + + Loading File - Qt Linguist + The file '%1' does not seem to be related to the currently open file(s) '%2'. Close the open file(s) first? + 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? + %n translation unit(s) loaded. + Related files (%1);; + Open Translation Files + + File saved. + + + Release + Qt message files for released applications (*.qm) All files (*) + + File created. + + Printing... + Context: %1 + finished + unresolved + obsolete + + Printing... (page %1) + + Printing completed + + Printing aborted + Search wrapped. + + + + + + + + + + Qt Linguist + + Cannot find the string '%1'. + Search And Translate in '%1' - Qt Linguist + + + Translate - Qt Linguist + Translated %n entry(s) + No more occurrences of '%1'. Start over? + Create New Phrase Book + Qt phrase books (*.qph) All files (*) + Phrase book created. + Open Phrase Book + Qt phrase books (*.qph);;All files (*) + %n phrase(s) loaded. + + + Add to phrase book + No appropriate phrasebook found. + Adding entry to phrasebook %1 + Select phrase book to add to + Unable to launch Qt Assistant (%1) + Version %1 - <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) 2010 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> + + <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). + Do you want to save the modified files? + Do you want to save '%1'? + Qt Linguist[*] + %1[*] - Qt Linguist + + No untranslated translation units left. + &Window + Minimize + Ctrl+M + Display the manual for %1. + Display information about %1. + &Save '%1' + Save '%1' &As... + Release '%1' + Release '%1' As... + &Close '%1' + + &Close + Save All + + &Release All + Close All + Translation File &Settings for '%1'... + &Batch Translation of '%1'... + Search And &Translate in '%1'... + Search And &Translate... + + File + + Edit + + Translation + + Validation + + Help + Cannot read from phrase book '%1'. + Close this phrase book. + Enables you to add, modify, or delete entries in this phrase book. + Print the entries in this phrase book. + Cannot create phrase book '%1'. + Do you want to save phrase book '%1'? + All + Open/Refresh Form &Preview + Form Preview Tool + F5 + + Translation File &Settings... + &Add to Phrase Book + Ctrl+T + Ctrl+J + Ctrl+Shift+J + + + Previous unfinished item + + + + + Next unfinished item + + + + + Move to previous item + + + + + Next item + + + + + Mark item as done and move to the next unfinished item + + + + + Copies the source text into the translation field + + + + + Toggle the validity check of accelerators + + + + + Toggle the validity check of ending punctuation + + + + + Toggle checking that phrase suggestions are used + + + + + Toggle the validity check of place markers + + + + + Display information about the Qt toolkit by Nokia. + + + + + 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. + + + + + Length Variants + + MessageEditor + + + This is the right panel of the main window. + + + + + Russian + + + + German + Japanese + French + Polish + Chinese + This whole panel allows you to view and edit the translation of some source text. + Source text + This area shows the source text. + Source text (Plural) + This area shows the plural form of the source text. + Developer comments + This area shows a comment that may guide you, and the context in which the text occurs. + Here you can enter comments for your own use. They have no effect on the translated applications. + %1 translation (%2) + This is where you can enter or modify the translation of the above source text. + %1 translation + %1 translator comments + '%1' Line: %2 @@ -1196,18 +1583,22 @@ Line: %2 MessageModel + Completion status for %1 + <file header> + <context comment> + <unnamed context> @@ -1215,6 +1606,7 @@ Line: %2 MsgEdit + This is the right panel of the main window. @@ -1223,87 +1615,113 @@ Line: %2 PhraseBookBox + Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox. + + (New Entry) + + + + %1[*] - Qt Linguist + Qt Linguist + Cannot save phrase book '%1'. + Edit Phrase Book + This window allows you to add, modify, or delete entries in a phrase book. + &Translation: + This is the phrase in the target language corresponding to the source phrase. + S&ource phrase: + This is a definition for the source phrase. + This is the phrase in the source language. + &Definition: + Click here to add the phrase to the phrase book. + &New Entry + Click here to remove the entry from the phrase book. + &Remove Entry + Settin&gs... + Click here to save the changes made. + &Save + Click here to close this window. + Close @@ -1311,14 +1729,17 @@ Line: %2 PhraseModel + Source phrase + Translation + Definition @@ -1326,18 +1747,22 @@ Line: %2 PhraseView + Insert + Edit + Guess (%1) + Guess @@ -1345,62 +1770,63 @@ Line: %2 QObject + Compiled Qt translations + Translation files (%1);; + All files (*) + + + + + + + Qt Linguist - C++ source files - - - - Java source files - - - + GNU Gettext localization files - Qt Script source files + + GNU Gettext localization template files + Qt translation sources (format 1.1) + Qt translation sources (format 2.0) + Qt translation sources (latest format) - Qt Designer form files - - - - Qt Jambi form files - - - + XLIFF localization files + Qt Linguist 'Phrase Book' @@ -1408,14 +1834,17 @@ Line: %2 SourceCodeView + <i>Source code not available</i> + <i>File %1 not available</i> + <i>File %1 not readable</i> @@ -1423,34 +1852,42 @@ Line: %2 Statistics + Statistics + Translation + Source + 0 + Words: + Characters: + Characters (with spaces): + Close @@ -1458,6 +1895,7 @@ Line: %2 TrWindow + This is the application's main window. @@ -1466,58 +1904,72 @@ Line: %2 TranslateDialog + This window allows you to search for some text in the translation source file. + Type in the text to search for. + Find &source text: + &Translate to: + Search options + Texts such as 'TeX' and 'tex' are considered as different when checked. + Match &case + Mark new translation as &finished + Click here to find the next occurrence of the text you typed in. + Find Next + Translate + Translate All + Click here to close this window. + Cancel @@ -1525,26 +1977,33 @@ Line: %2 TranslationSettingsDialog + Any Country + + Settings for '%1' - Qt Linguist + Source language + Language + Country/Region + Target language diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts index 56a9e0e..1dd80be 100644 --- a/translations/qt_fr.ts +++ b/translations/qt_fr.ts @@ -39,15 +39,15 @@ local audio file: - Fichier audio local: + Fichier audio local : local video file: - Fichier vidéo local: + Fichier vidéo local : remote media URL: - URL distante : + URL distante : run tests @@ -69,11 +69,11 @@ FakeReply Fake error ! - Fausse erreur! + Fausse erreur ! Invalid URL - URL non valide + URL invalide @@ -96,7 +96,7 @@ Preferences... - Préférences… + Préférences... Quit %1 @@ -115,7 +115,7 @@ Location: - Emplacement: + Emplacement : @@ -224,13 +224,13 @@ so on. Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. - Attention: Vous n'avez apparemment pas installé le paquet gstreamer0.10-plugins-good. + Attention : Vous n'avez apparemment pas installé le paquet gstreamer0.10-plugins-good. Des fonctionnalités vidéo ont été desactivées. Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled - Attention: Vous n'avez apparemment pas installées les plugins de base de GStreamer. + Attention : Vous n'avez apparemment pas installées les plugins de base de GStreamer. Le support audio et vidéo est désactivé @@ -286,7 +286,7 @@ have libgstreamer-plugins-base installed. A required codec is missing. You need to install the following codec(s) to play this content: %0 - Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0 + Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu : %0 Could not open media source. @@ -371,7 +371,7 @@ d'avoir installé libgstreamer-plugins-base. Access denied - Accès refusé + Autorisation refusée Could not connect @@ -407,11 +407,11 @@ d'avoir installé libgstreamer-plugins-base. Invalid protocol - Protocole non valide + Protocole invalide Invalid URL - URL non valide + URL invalide Multicast error @@ -465,6 +465,14 @@ d'avoir installé libgstreamer-plugins-base. Erreur lors de l'ouverture de l'URL + Error opening resource + erreur lors de l'ouverture de la ressource + + + Error opening source: resource not opened + erreur lors de l'ouverture de la source : ressource non ouverte + + Setting volume failed Le réglage du volume a échoué @@ -585,11 +593,19 @@ d'avoir installé libgstreamer-plugins-base. Phonon::MMF::MediaObject Error opening source: type not supported - Erreur lors de l'ouverture de la source: type non supporté + Erreur lors de l'ouverture de la source : type non supporté + + + Error opening source: resource is compressed + Erreur lors de l'ouverture de la source : ressource compressée + + + Error opening source: resource not valid + Erreur lors de l'ouverture de la source : ressource invalide Error opening source: media type could not be determined - Erreur lors de l'ouverture de la source: type de média non déterminé + Erreur lors de l'ouverture de la source : type de média non déterminé @@ -637,7 +653,7 @@ d'avoir installé libgstreamer-plugins-base. Phonon::VolumeSlider Volume: %1% - Volume: %1% + Volume : %1% Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% @@ -730,15 +746,15 @@ d'avoir installé libgstreamer-plugins-base. Look &in: - Chercher &dans : + Chercher &dans : File &name: - &Nom de fichier : + &Nom de fichier : File &type: - &Type de fichier : + &Type de fichier : Back @@ -910,7 +926,7 @@ d'avoir installé libgstreamer-plugins-base. Directory: - Dossier : + Dossier : Error @@ -922,7 +938,7 @@ File not found. Check path and filename. %1 Impossible de trouver le fichier. -Vérifier le chemin et le nom du fichier. +Vérifiez le chemin et le nom du fichier. All Files (*.*) @@ -1122,7 +1138,7 @@ en Q3ToolBar More... - Reste... + Plus... @@ -1284,7 +1300,7 @@ en COM &Object: - &Objet COM : + &Objet COM : @@ -1306,31 +1322,31 @@ en QColorDialog Hu&e: - &Teinte : + &Teinte : &Sat: - &Saturation : + &Saturation : &Val: - &Valeur : + &Valeur : &Red: - &Rouge : + &Rouge : &Green: - &Vert : + &Vert : Bl&ue: - Ble&u : + Ble&u : A&lpha channel: - Canal a&lpha : + Canal a&lpha : Select Color @@ -1389,7 +1405,7 @@ en %1: permission denied QSystemSemaphore - %1: permission refusée + %1 : permission refusée %1: already exists @@ -1399,7 +1415,7 @@ en %1: doesn't exists QSystemSemaphore - %1: n'existe pas + %1 : n'existe pas %1: does not exist @@ -1433,31 +1449,31 @@ en %1: key is empty - %1: clé vide + %1 : clé vide %1: unable to make key - %1: impossible de créer la clé + %1 : impossible de créer la clé %1: ftok failed - %1: ftok a échoué + %1 : ftok a échoué %1: already exists - %1: existe déjà + %1 : existe déjà %1: does not exist - %1: n'existe pas + %1 : n'existe pas %1: out of resources - %1: plus de ressources disponibles + %1 : plus de ressources disponibles %1: unknown error %2 - %1: erreur inconnue %2 + %1 : erreur inconnue %2 @@ -1487,7 +1503,7 @@ en Unable to prepare statement - Impossible de prépare la requête + Impossible de préparer la requête Unable to bind variable @@ -1575,7 +1591,7 @@ en Cannot anchor to a null item. - impossible d'ancrer à un élément nul. + Impossible d'ancrer à un élément nul. Cannot anchor a horizontal edge to a vertical edge. @@ -1620,10 +1636,10 @@ en - QDeclarativeCompiledBindings + QDeclarativeBindings Binding loop detected for property "%1" - + Boucle détectée dans l'affectation pour la propriété "%1" @@ -1654,11 +1670,15 @@ en Invalid property assignment: float expected - Affectation de propriété invalide : float attendu + Affectation de propriété invalide : float attendu Invalid property assignment: double expected - Affectation de propriété invalide : double attendu + Affectation de propriété invalide : double attendu + + + Invalid property assignment: number expected + Affectation de propriété invalide : nombre attendu Invalid property assignment: color expected @@ -1706,238 +1726,245 @@ en Component elements may not contain properties other than id - Les éléments du composant ne peuvent pas contenir des propriétés autres que id + Les éléments du composant ne peuvent pas contenir des propriétés autres que id Invalid component id specification - L'ID de composant spécifiée n'est pas valide + L'id de composant spécifiée n'est pas valide id is not unique - l'ID n'est pas unique + l'id n'est pas unique Invalid component body specification - Le corps de la spécification du composant n'est pas valide + Le corps de la spécification du composant n'est pas valide Component objects cannot declare new properties. - Les objets composants ne peuvent pas déclarer de nouvelles propriétés. + Les objets composants ne peuvent pas déclarer de nouvelles propriétés. Component objects cannot declare new signals. - Les objets composants ne peuvent pas déclarer de nouveaux signaux. + Les objets composants ne peuvent pas déclarer de nouveaux signaux. Component objects cannot declare new functions. - Les objets composants ne peuvent pas déclarer de nouvelles fonctions. + Les objets composants ne peuvent pas déclarer de nouvelles fonctions. Cannot create empty component specification - Impossible de créer une spécification du composant vide + Impossible de créer une spécification du composant vide Incorrectly specified signal assignment - L'affectation du signal est ncorrectement spécifiée + L'affectation du signal est incorrectement spécifiée Cannot assign a value to a signal (expecting a script to be run) - Impossible d'assigner une valeur à un signal (celà exige d'éxécuter un script) + Impossible d'assigner une valeur à un signal (un script à exécuter est attendu) Empty signal assignment - Signal d'affectation vide + Affectation de signal vide Empty property assignment - Propriété d'affectation vide + Affectation de propriété vide Attached properties cannot be used here - La configuration spécifiée ne peut être utilisée.ici + La configuration spécifiée ne peut être utilisée ici. Non-existent attached object - Objet attaché non existant + Objet attaché inexistant Invalid attached object assignment - L'affectation de l'objet attaché est invalide + L'affectation de l'objet attaché est invalide Cannot assign to non-existent default property - Impossible d'attacher à une propriété par défaut non existante + Impossible d'attacher à une propriété par défaut inexistante Cannot assign to non-existent property "%1" - Impossible d'attacher à une propriété non existante "%1" + Impossible d'attacher à une propriété inexistante "%1" Invalid use of namespace - Utilisation invalide d'espace de noms + Utilisation invalide d'espace de noms Not an attached property name - Ce n'est pas un nom de propriété attachée + Ce n'est pas un nom de propriété attachée Invalid use of id property - Utilisation invalide de la propriété id + Utilisation invalide de la propriété id Property has already been assigned a value - Une valeur a déjà été attribuée à la propriété + Une valeur a déjà été attribuée à la propriété Invalid grouped property access - Accès invalide à une propriété groupée + Accès invalide à une propriété groupée Cannot assign a value directly to a grouped property - Impossible d'assigner directement une valeur à une propriété groupée + Impossible d'assigner directement une valeur à une propriété groupée Invalid property use - La propriété utilisée est invalide + La propriété utilisée est invalide Property assignment expected - Propriété d'affectation attendue + Affectation de propriété attendue Single property assignment expected - Une seule propriété d'affectation est attendue + Une seule affectation de propriété est attendue Unexpected object assignment - Affectation d'objet innatendue + Affectation d'objet inattendue Cannot assign object to list - Impossible d'assigner un objet à une liste + Impossible d'assigner un objet à une liste Can only assign one binding to lists - Un seul lien peut être assigné à des listes + Un seul lien peut être assigné à des listes Cannot assign primitives to lists - Impossible d'assigner des primitives à des listes + Impossible d'assigner des primitives à des listes Cannot assign multiple values to a script property - Impossible d'assigner plusieurs valeurs à une propriété de script + Impossible d'assigner plusieurs valeurs à une propriété de script Invalid property assignment: script expected - Propriété d'affectation invalide: script attendu + Affectation de propriété invalide : script attendu Cannot assign object to property - Impossible d'assigner un objet à une propriété + Impossible d'assigner un objet à une propriété "%1" cannot operate on "%2" - "%1" ne peut pas fonctionner sur "%2" + "%1" ne peut pas opérer sur "%2" Duplicate default property - Propriété par défaut en double + Propriété par défaut en double Duplicate property name - Nom de propriété en double + Nom de propriété en double Property names cannot begin with an upper case letter - Les noms des propriétés ne peuvent pas commencer par une majuscule + Les noms des propriétés ne peuvent pas commencer par une majuscule + + + Illegal property name + Nom de propriété invalide Duplicate signal name - Nom de signal en double + Nom de signal en double Signal names cannot begin with an upper case letter - Les noms de signaux ne peuvent pas commencer par une majuscule + Les noms de signaux ne peuvent pas commencer par une majuscule + + + Illegal signal name + Nom de signal invalide Duplicate method name - Nom de méthode en double + Nom de méthode en double Method names cannot begin with an upper case letter - Les noms des méthodes ne peuvent pas commencer par une majuscule + Les noms des méthodes ne peuvent pas commencer par une majuscule + + + Illegal method name + Nom de méthode invalide Property value set multiple times - Valeur de propriété attribuée plusieurs fois + Valeur de propriété attribuée plusieurs fois Invalid property nesting - Propriété d'emboîtement invalide + Imbrication de propriété invalide Cannot override FINAL property - Impossible de remplacer la propriété FINAL + Impossible de remplacer la propriété FINAL Invalid property type - Type de propriété invalide + Type de propriété invalide Invalid empty ID - ID vide non valide + id vide invalide IDs cannot start with an uppercase letter - Les IDs ne peuvent pas commencer par une majuscule + Les ids ne peuvent pas commencer par une majuscule IDs must start with a letter or underscore - Les IDs doivent commencer par une lettre ou un souligné + Les ids doivent commencer par une lettre ou un tiret bas IDs must contain only letters, numbers, and underscores - Les IDs ne peuvent contenir que des lettres, des nombres ou des soulignés + Les ids ne peuvent contenir que des lettres, des nombres ou des tirets bas ID illegally masks global JavaScript property - ID masque illégalement la propriété JavaScript globale - - - No property alias location - ?? - La propriété de l'alias n'a pas d'emplacement + id masque illégalement la propriété JavaScript globale - Invalid alias location - Emplacement d'alias invalide + + L'alias de propriété n'a pas d'emplacement Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> - Référence d'alias invalide. La référence d'alias doit être spécifiée comme <id> ou <id>.<property> + Référence d'alias invalide. Les références d'alias doivent être spécifiées comme <id> ou <id>.<property> Invalid alias reference. Unable to find id "%1" - Référence d'alias invalide. Impossible de trouver l'id "%1" + Référence d'alias invalide. Impossible de trouver l'id "%1" QDeclarativeComponent Invalid empty URL - URL vide non valide + URL vide invalide QDeclarativeCompositeTypeManager Resource %1 unavailable - La ressource %1 n'est pas disponible + La ressource %1 n'est pas disponible Namespace %1 cannot be used as a type - L'espace de noms %1 ne peut pas être utilisé comme un type + L'espace de noms %1 ne peut pas être utilisé comme un type %1 %2 @@ -1945,130 +1972,130 @@ en Type %1 unavailable - Le type %1 n'est pas disponible + Le type %1 n'est pas disponible QDeclarativeConnections Cannot assign to non-existent property "%1" - Imposible d'assigner à la propriété inexistante "%1" + Imposible d'assigner à la propriété inexistante "%1" Connections: nested objects not allowed - Connexions: les éléments imbriqués ne sont pas autorisés + Connexions : les éléments imbriqués ne sont pas autorisés Connections: syntax error - Connexions: erreur de syntaxe + Connexions : erreur de syntaxe Connections: script expected - Connexions: script attendu + Connexions : script attendu QDeclarativeEngine executeSql called outside transaction() - executeSql a été 1.appelé en dehors de transaction() + executeSql a été appelé en dehors de transaction() Read-only Transaction - Transaction en lecture seule + Transaction en lecture seule Version mismatch: expected %1, found %2 - Version incompatible:%1 attendue, %2 trouvée + Version incompatible : %1 attendue, %2 trouvée SQL transaction failed - la transaction SQL a échouée + la transaction SQL a échouée transaction: missing callback - transaction: le rappel est absent + transaction : la fonction de rappel est absente SQL: database version mismatch - SQL: la version de la base de données est incompatible + SQL : la version de la base de données est incompatible QDeclarativeFlipable front is a write-once property - avant est une propriété à écriture unique + front est une propriété à écriture unique back is a write-once property - arrière est une propriété à écriture unique + back est une propriété à écriture unique QDeclarativeImportDatabase module "%1" definition "%2" not readable - La définition "%2" du module "%1% n'est pas lisible + la définition "%2" du module "%1% n'est pas lisible plugin cannot be loaded for module "%1": %2 - Impossible de charger le plugin pour le module "%1": %2 + impossible de charger le plugin pour le module "%1" : %2 module "%1" plugin "%2" not found - Le plugin "%2" du module "%1" n'a pas été trouvé + le plugin "%2" du module "%1" n'a pas été trouvé module "%1" version %2.%3 is not installed - la version %2.%3 du module "%1" n'est pas installée + la version %2.%3 du module "%1" n'est pas installée module "%1" is not installed - le module "%1" n'est pas installé + le module "%1" n'est pas installé "%1": no such directory - "%1": le répertoire n'existe pas + "%1" : le répertoire n'existe pas import "%1" has no qmldir and no namespace - l'importation "%1" n'a pas de qmldir ni d'espace de noms + l'importation "%1" n'a pas de qmldir ni d'espace de noms - %1 is not a namespace - - %1 n'est pas un espace de noms + - %1 n'est pas un espace de noms - nested namespaces not allowed - - les espaces de noms imbriqués ne sont pas autorisés + - les espaces de noms imbriqués ne sont pas autorisés local directory - répertoire local + répertoire local is ambiguous. Found in %1 and in %2 - est ambigu. Trouvé dans %1 et dans %2 + est ambigu. Trouvé dans %1 et dans %2 is ambiguous. Found in %1 in version %2.%3 and %4.%5 - est ambigu. Trouvé dans %1 dans les versions %2.%3 et %4.%5 + est ambigu. Trouvé dans %1 dans les versions %2.%3 et %4.%5 is instantiated recursively - est instancié récursivement + est instancié récursivement is not a type - n'est pas un type + n'est pas un type QDeclarativeKeyNavigationAttached KeyNavigation is only available via attached properties - + KeyNavigation est disponible uniquement via les propriétés attachées @@ -2076,331 +2103,345 @@ en Keys is only available via attached properties Keys, a verifier - Keys est disponible uniquement via les propriétés attachées + Keys est disponible uniquement via les propriétés attachées QDeclarativeListModel remove: index %1 out of range - supprimer: l'inder %1 est hors de la plage de valeurs admissible + remove : l'index %1 est hors de la plage de valeurs admissibles insert: value is not an object - insérer: une valeur n'est pas un objet + insert : une valeur n'est pas un objet insert: index %1 out of range - insérer: l'inder %1 est hors de la plage de valeurs admissible + insert : l'index %1 est hors de la plage de valeurs admissibles move: out of range - Déplacer: hors de la plage de valeurs admissible + move : hors de la plage de valeurs admissibles append: value is not an object - ajouter: une valeur n'est pas un objet + append : une valeur n'est pas un objet set: value is not an object - attribuer: une valeur n'est pas un objet + set : une valeur n'est pas un objet set: index %1 out of range - attribuer: l'index %1 est hors de la plage de valeurs admissible + set : l'index %1 est hors de la plage de valeurs admissible ListElement: cannot contain nested elements - ListElement: ne peut pas contenir des éléments imbriqués + ListElement : ne peut pas contenir des éléments imbriqués ListElement: cannot use reserved "id" property - ListElement: ne peut pas utiliser la propriété réservée "id" + ListElement : ne peut pas utiliser la propriété réservée "id" ListElement: cannot use script for property value - ListElement: ne peut pas utiliser script comme valeur pour une propriété + ListElement : ne peut pas utiliser script comme valeur pour une propriété ListModel: undefined property '%1' - ListModel: propriété indéfinie '%1' + ListModel : propriété indéfinie '%1' QDeclarativeLoader Loader does not support loading non-visual elements. - Le chargeur n'est pas compatible avec le chargement d'éléments non-visuels. + Le chargeur n'est pas compatible avec le chargement d'éléments non-visuels. QDeclarativeParentAnimation Unable to preserve appearance under complex transform - Impossible de conserver l'aspect lors d'une transformation complexe + Impossible de conserver l'aspect lors d'une transformation complexe Unable to preserve appearance under non-uniform scale - Impossible de conserver l'aspect lors d'une mise à l'échelle non uniforme + Impossible de conserver l'aspect lors d'une mise à l'échelle non uniforme Unable to preserve appearance under scale of 0 - Impossible de conserver l'aspect lors d'une mise à l'échelle égale à 0 + Impossible de conserver l'aspect lors d'une mise à l'échelle égale à 0 QDeclarativeParentChange Unable to preserve appearance under complex transform - Impossible de conserver l'aspect lors d'une transformation complexe + Impossible de conserver l'aspect lors d'une transformation complexe Unable to preserve appearance under non-uniform scale - Impossible de conserver l'aspect lors d'une mise à l'échelle non uniforme + Impossible de conserver l'aspect lors d'une mise à l'échelle non uniforme Unable to preserve appearance under scale of 0 - Impossible de conserver l'aspect lors d'une mise à l'échelle égale à 0 + Impossible de conserver l'aspect lors d'une mise à l'échelle égale à 0 QDeclarativeParser Illegal unicode escape sequence - séquence d'échappement unicode illégale + Séquence d'échappement Unicode illégale Illegal character - caractère illégal + Caractère illégal Unclosed string at end of line - chaîne de caractères non fermée en fin de ligne + Chaîne de caractères non fermée en fin de ligne Illegal escape squence - séquence d'échappement illégale + Séquence d'échappement illégale Unclosed comment at end of file - commentaire non fermé en fin de ligne + Commentaire non fermé en fin de ligne Illegal syntax for exponential number - syntaxe illégale pour un nombre exponentiel + Syntaxe illégale pour un nombre exponentiel Identifier cannot start with numeric literal - ??? - impossible de commencer un identifiant par un littéral numérique + Impossible de commencer un identifiant par un chiffre Unterminated regular expression literal - littéral non terminé pour l'expression régulière + Élément non terminé pour l'expression régulière Invalid regular expression flag '%0' - drapeau '%0' invalid pour l'expression régulière + Drapeau '%0' invalid pour l'expression régulière Unterminated regular expression backslash sequence - séquence antislash non terminée pour l'expression régulière + Séquence antislash non terminée pour l'expression régulière Unterminated regular expression class - class non terminé pour l'expression régulière + Classe non terminée pour l'expression régulière Syntax error - Erreur de syntaxe + Erreur de syntaxe Unexpected token `%1' - jeton inattendu '%1' + jeton inattendu '%1' Expected token `%1' - jeton attendu '%1' + jeton attendu '%1' Property value set multiple times - valeur de propriété attribuée à plusieurs reprises + valeur de propriété attribuée à plusieurs reprises Expected type name - Nom de type attendu + Nom de type attendu Invalid import qualifier ID - qualificatif ID d'importation invalide + qualificatif id d'importation invalide Reserved name "Qt" cannot be used as an qualifier - "Qt" est un nom réservé et ne peut pas être utilisé comme qualificatif + "Qt" est un nom réservé et ne peut pas être utilisé comme qualificatif Script import qualifiers must be unique. ?? - Les qualificatifs d'importation de script doivent être uniques. + Les qualificatifs d'importation de script doivent être uniques. Script import requires a qualifier - L'importation de script exige un qualificatif + L'importation de script exige un qualificatif Library import requires a version - L'importation de bibliothèque exige une version + L'importation de bibliothèque exige une version Expected parameter type - Type de paramètre attendu + Type de paramètre attendu Invalid property type modifier - Modificateur invalide pour le type de propriété + Modificateur invalide pour le type de propriété Unexpected property type modifier - Modificateur innatendu pour le type de propriété + Modificateur inattendu pour le type de propriété Expected property type - Type de propriété attendue + Type de propriété attendu Readonly not yet supported - La lecture seule n'est pas encore implémentée + La lecture seule n'est pas encore implémentée JavaScript declaration outside Script element - Déclaration JavaScript en edhors de l'élément Script + Déclaration JavaScript en dehors de l'élément Script QDeclarativePauseAnimation Cannot set a duration of < 0 - Impossible d'attribuer une durée < 0 + Impossible d'attribuer une durée < 0 + + + + QDeclarativePixmap + + Error decoding: %1: %2 + Erreur de décodage : %1 : %2 + + + Failed to get image from provider: %1 + Impossible d'obtenir l'image du fournisseur : %1 + + + Cannot open: %1 + Impossible d'ouvrir : %1 QDeclarativePixmapCache Error decoding: %1: %2 - Erreur de décodage: %1: %2 + Erreur de décodage : %1 : %2 Failed to get image from provider: %1 - Impossible d'obtenir l'image du fournisseur: %1 + Impossible d'obtenir l'image du fournisseur : %1 Cannot open: %1 - Impossible d'ouvrir: %1 + Impossible d'ouvrir : %1 Unknown Error loading %1 - Erreur de chargement inconnue: %1 + Erreur de chargement inconnue : %1 QDeclarativePropertyAnimation Cannot set a duration of < 0 - Impossible d'attribuer une durée < 0 + Impossible d'attribuer une durée < 0 QDeclarativePropertyChanges PropertyChanges does not support creating state-specific objects. - PropertyChanges n'est pas compatible avec la création d'objets spécifiques à un état. + PropertyChanges n'est pas compatible avec la création d'objets spécifiques à un état. Cannot assign to non-existent property "%1" - Ne peut pas assigner à la propriété inexistante "%1" + Ne peut pas assigner à la propriété inexistante "%1" Cannot assign to read-only property "%1" - Ne peut pas assigner à la propriété en lecture seule "%1" + Ne peut pas assigner à la propriété en lecture seule "%1" QDeclarativeTextInput Could not load cursor delegate - Impossible de charger le curseur délégué + Impossible de charger le délégué de curseur Could not instantiate cursor delegate - Impossible d'instancier le curseur délégué + Impossible d'instancier le délégué de curseur QDeclarativeVME Unable to create object of type %1 - Impossible de créer un objet de type %1 + Impossible de créer un objet de type %1 Cannot assign value %1 to property %2 - Impossible d'assigner la valeur %1 à la propriété %2 + Impossible d'assigner la valeur %1 à la propriété %2 Cannot assign object type %1 with no default method - Impossible d'assigner un objet de type %1 sans méthode défaut + Impossible d'assigner un objet de type %1 sans méthode par défaut Cannot connect mismatched signal/slot %1 %vs. %2 le vs a confirmer - Impossible de connecter le signal/slot %1 %vs. %2 pour cause d'incompatibilité + Impossible de connecter le signal/slot %1 %vs. %2 pour cause d'incompatibilité Cannot assign an object to signal property %1 - NImpossible d'assigner un objet à la propriété %1 d'un signal + Impossible d'assigner un objet à la propriété %1 d'un signal Cannot assign object to list - Impossible d'assigner un objet à une liste + Impossible d'assigner un objet à une liste Cannot assign object to interface property - Impossible d'assigner un objet à la propriété d'une interface + Impossible d'assigner un objet à la propriété d'une interface Unable to create attached object - Impossible de créer un object attaché + Impossible de créer un objet attaché Cannot set properties on %1 as it is null - Impossible d'attribuer les propriétés à %1 car ce dernier est nul + Impossible d'attribuer les propriétés à %1 car ce dernier est nul QDeclarativeVisualDataModel Delegate component must be Item type. - Un composant délégué doit être de type Item. + Un composant délégué doit être de type Item. QDeclarativeXmlListModel Qt was built without support for xmlpatterns - Qt a été généré sans support pour xmlpatterns + Qt a été compilé sans support pour xmlpatterns QDeclarativeXmlListModelRole An XmlRole query must not start with '/' - Une requête XmlRole ne doit pas commencer par '/' + Une requête XmlRole ne doit pas commencer par '/' QDeclarativeXmlRoleList An XmlListModel query must start with '/' or "//" - Une requête XmlListModel doit commencer par '/' ou "//" + Une requête XmlListModel doit commencer par '/' ou "//" @@ -2415,7 +2456,7 @@ en SliderHandle - Poignée + Poignée du slider @@ -2599,15 +2640,15 @@ en Debug Message: - Message de débogage: + Message de débogage : Warning: - Avertissement: + Avertissement : Fatal Error: - Erreur fatale: + Erreur fatale : @@ -2638,7 +2679,7 @@ en Will not rename sequential file using block copy - Ne renommera pas le fichier séquentiel avec la copie bloc + Ne renommera pas le fichier séquentiel avec la copie par blocs @@ -2714,11 +2755,11 @@ Veuillez vérifier que le nom du fichier est correct. Files of type: - Fichiers de type : + Fichiers de type : Directory: - Dossier : + Dossier : @@ -2744,7 +2785,7 @@ Voulez-vous quand même le supprimer ? Are sure you want to delete '%1'? - Etes-vous sûr de vouloir supprimer '%1' ? + Êtes-vous sûr de vouloir supprimer '%1' ? Could not delete directory. @@ -2820,11 +2861,11 @@ Voulez-vous quand même le supprimer ? File &name: - &Nom de fichier : + &Nom de fichier : Look in: - Voir dans: + Voir dans : Create New Folder @@ -2956,11 +2997,11 @@ Voulez-vous quand même le supprimer ? Demi Bold - Semi Gras + Demi-gras Black - Noir + Extra-gras Demi @@ -2968,7 +3009,7 @@ Voulez-vous quand même le supprimer ? Light - Léger + Maigre Italic @@ -3012,11 +3053,11 @@ Voulez-vous quand même le supprimer ? Thaana - Thaana + Thâna Devanagari - Devanagari + Dévanagari Bengali @@ -3036,7 +3077,7 @@ Voulez-vous quand même le supprimer ? Tamil - Tamil + Tamoul Telugu @@ -3176,11 +3217,11 @@ Voulez-vous quand même le supprimer ? Connection to %1 closed - Connexion à %1 arrêtée + Connexion à %1 fermée Connection closed - Connexion arrêtée + Connexion fermée Host %1 not found @@ -3207,7 +3248,7 @@ Voulez-vous quand même le supprimer ? Login failed: %1 - Échec du login: + Échec du login : %1 @@ -3299,7 +3340,7 @@ Voulez-vous quand même le supprimer ? Invalid hostname - Nom d'hôte non valide + Nom d'hôte invalide @@ -3338,11 +3379,11 @@ Voulez-vous quand même le supprimer ? Connection to %1 closed - Connexion à %1 arrêtée + Connexion à %1 fermée Connection closed - Connexion arrêtée + Connexion fermée Unknown error @@ -3402,7 +3443,7 @@ Voulez-vous quand même le supprimer ? SSL handshake failed - le handshake SSL a échoué + La poignée de main SSL a échoué Connection refused (or timed out) @@ -3429,7 +3470,7 @@ Voulez-vous quand même le supprimer ? Proxy denied connection - Le Proxy a rejeté la connexion + Le proxy a rejeté la connexion Error communicating with HTTP proxy @@ -3546,7 +3587,7 @@ Voulez-vous quand même le supprimer ? QIODevice Permission denied - Accès refusé + Autorisation refusée Too many open files @@ -3596,22 +3637,22 @@ Voulez-vous quand même le supprimer ? QInputDialog Enter a value: - Entrer une valeur : + Entrer une valeur : QLibrary QLibrary::load_sys: Cannot load %1 (%2) - QLibrary::load_sys: Impossible de charger %1 (%2) + QLibrary::load_sys : Impossible de charger %1 (%2) QLibrary::unload_sys: Cannot unload %1 (%2) - QLibrary::unload_sys: Impossible de décharger %1 (%2) + QLibrary::unload_sys : Impossible de décharger %1 (%2) QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) - QLibrary::resolve_sys: Symbole "%1" non défini dans %2 (%3) + QLibrary::resolve_sys : Symbole "%1" non défini dans %2 (%3) Could not mmap '%1': %2 @@ -3697,58 +3738,58 @@ Voulez-vous quand même le supprimer ? QLocalServer %1: Name error - %1: Erreur de nom + %1 : Erreur de nom %1: Permission denied - %1: Permission refusée + %1 : Permission refusée %1: Address in use - %1: Address déjà utilisée + %1 : Address déjà utilisée %1: Unknown error %2 - %1: Erreur inconnue %2 + %1 : Erreur inconnue %2 QLocalSocket %1: Connection refused - %1: Connexion refusée + %1 : Connexion refusée %1: Remote closed - %1: Connexion fermée + %1 : Connexion fermée %1: Invalid name - %1: Nom invalide + %1 : Nom invalide %1: Socket access error - %1: Erreur d'accès au socket + %1 : Erreur d'accès au socket %1: Socket resource error - %1: Erreur de ressource du socket + %1 : Erreur de ressource du socket %1: Socket operation timed out - %1: L'opération socket a expiré + %1 : L'opération socket a expiré %1: Datagram too large - %1: Datagramme trop grand + %1 : Datagramme trop grand %1: Connection error - %1: Erreur de connexion + %1 : Erreur de connexion %1: The socket operation is not supported - %1: L'opération n'est pas supportée + %1 : L'opération n'est pas supportée %1: Unknown error @@ -3756,7 +3797,7 @@ Voulez-vous quand même le supprimer ? %1: Unknown error %2 - %1: Erreur inconnue %2 + %1 : Erreur inconnue %2 @@ -3932,10 +3973,6 @@ Voulez-vous quand même le supprimer ? The file could not be accessed. Impossible d'accéder au fichier. - - Playlist format is not supported. - - QMenu @@ -3956,7 +3993,7 @@ Voulez-vous quand même le supprimer ? QMenuBar About - A propos + À propos Config @@ -3988,7 +4025,7 @@ Voulez-vous quand même le supprimer ? About %1 - A propos de %1 + À propos de %1 About Qt @@ -4027,7 +4064,7 @@ Voulez-vous quand même le supprimer ? <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://qt.nokia.com/">qt.nokia.com/</a> for more information.</p> - <h3>A propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'applications multi-platformes.</p><p>Qt fournit la portabilité du code source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et toutes les variantes commerciales majeures d'Unix. Qt est aussi disponible pour les systèmes embarqués sous le nom Qtopia Core.</p><p>Qt est un produit de Trolltech. <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <h3>À propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'applications multi-platformes.</p><p>Qt fournit la portabilité du code source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et toutes les variantes commerciales majeures d'Unix. Qt est aussi disponible pour les systèmes embarqués sous le nom Qtopia Core.</p><p>Qt est un produit de Trolltech. <a href="http : //qt.nokia.com/">qt.nokia.com</a> for more information.</p> Show Details... @@ -4039,19 +4076,19 @@ Voulez-vous quand même le supprimer ? <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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> - <h3>À propos de Qt</h3><p>Ce programme utilise Qt version %1.</p><p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> + <h3>À propos de Qt</h3><p>Ce programme utilise Qt version %1.</p><p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés comme Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http : //qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http : //qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - <h3>A propos de Qt</h3>%1<p>Qt est un framework de développement d'applications multi-plateforme.</p><p>Qt fournit la portabilité du code source surMS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, et toutes les variantes majeures d'Unix. Qt est aussi disponible pour l'embarqué avec Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt est un produit de Nokia. Allez à <a href="http://qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> + <h3>À propos de Qt</h3>%1<p>Qt est un framework de développement d'applications multi-plateforme.</p><p>Qt fournit la portabilité du code source surMS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, et toutes les variantes majeures d'Unix. Qt est aussi disponible pour l'embarqué avec Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt est un produit de Nokia. Allez à <a href="http : //qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> <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://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> for an overview of Qt licensing.</p> - <p>Ce programme utilise Qt Open Source Edition version %1.</p><p>Qt Open Source Edition est prévu pour le développement d'applications Open Source. Vous devez avoir un license commerciale de Qt pour développer des applications propiétaires (Closed Source).</p><p>Vous pouvez aller sur <a href="http://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> pour plus d'informations sur les licenses Qt.</p> + <p>Ce programme utilise Qt Open Source Edition version %1.</p><p>Qt Open Source Edition est prévu pour le développement d'applications Open Source. Vous devez avoir un license commerciale de Qt pour développer des applications propiétaires (Closed Source).</p><p>Vous pouvez aller sur <a href="http : //qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> pour plus d'informations sur les licenses Qt.</p> <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://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - <h3>A propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'application multi-plateforme.</p><p>Qt fournit la portabilité de votre source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, toutes les variantes majeures d'Unix. Qt est aussi disponible pour les périphériques embarqués avec Qt Embedded.</p><p>Qt est un produit de Trolltech. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> + <h3>À propos de Qt</h3>%1<p>Qt est un toolkit C++ pour le développement d'application multi-plateforme.</p><p>Qt fournit la portabilité de votre source pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, toutes les variantes majeures d'Unix. Qt est aussi disponible pour les périphériques embarqués avec Qt Embedded.</p><p>Qt est un produit de Trolltech. Voir <a href="http : //qt.nokia.com/">qt.nokia.com</a> pour plus d'informations.</p> <h3>About Qt</h3><p>This program uses Qt version %1.</p> @@ -4059,7 +4096,7 @@ Voulez-vous quand même le supprimer ? <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> - <p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> + <p>Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés comme Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http : //qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http : //qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> @@ -4112,7 +4149,7 @@ Voulez-vous quand même le supprimer ? Permission denied - Accès refusé + Autorisation refusée Connection timed out @@ -4209,7 +4246,7 @@ Voulez-vous quand même le supprimer ? QNetworkAccessDebugPipeBackend Write error writing to %1: %2 - Erreur lors de l'écriture dans %1: %2 + Erreur lors de l'écriture dans %1 : %2 Socket error on %1: %2 @@ -4284,7 +4321,7 @@ Voulez-vous quand même le supprimer ? QNetworkReply Error downloading %1 - server replied: %2 - Erreur lors du téléchargement de %1 - le serveur a répondu: %2 + Erreur lors du téléchargement de %1 - le serveur a répondu : %2 Protocol "%1" is unknown @@ -4450,7 +4487,7 @@ Voulez-vous quand même le supprimer ? QODBCResult QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC + QODBCResult::reset : Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC Unable to execute statement @@ -4517,7 +4554,7 @@ Voulez-vous quand même le supprimer ? Protocol error: packet of size 0 received - Erreur de protocole: paquet de taille 0 reçu + Erreur de protocole : paquet de taille 0 reçu No host name given @@ -4525,7 +4562,7 @@ Voulez-vous quand même le supprimer ? Invalid hostname - Nom d'hôte non valide + Nom d'hôte invalide PulseAudio Sound Server @@ -4617,19 +4654,19 @@ Voulez-vous quand même le supprimer ? Page size: - Dimensions : + Dimensions : Width: - Largeur : + Largeur : Height: - Hauteur : + Hauteur : Paper source: - Source du papier : + Source du papier : Orientation @@ -4719,7 +4756,7 @@ Voulez-vous quand même le supprimer ? Number of copies: - Nombre de copies : + Nombre de copies : Paper format @@ -4867,15 +4904,15 @@ Voulez-vous quand même le supprimer ? Page size: - Dimensions : + Dimensions : Orientation: - Orientation : + Orientation : Paper source: - Source du papier : + Source du papier : Print @@ -4899,7 +4936,7 @@ Voulez-vous quand même le supprimer ? Size: - Taille : + Taille : Properties @@ -4907,7 +4944,7 @@ Voulez-vous quand même le supprimer ? Printer info: - Informations sur l'imprimante : + Informations sur l'imprimante : Browse @@ -5281,7 +5318,7 @@ Veuillez choisir un nom de fichier différent. Copies: - Copies : + Copies : Collate @@ -5340,7 +5377,7 @@ Veuillez choisir un nom de fichier différent. &Name: - &Nom : + &Nom : P&roperties @@ -5348,7 +5385,7 @@ Veuillez choisir un nom de fichier différent. Location: - Emplacement : + Emplacement : Preview @@ -5356,11 +5393,11 @@ Veuillez choisir un nom de fichier différent. Type: - Type : + Type : Output &file: - &Fichier de sortie: + &Fichier de sortie : ... @@ -5407,7 +5444,7 @@ Veuillez choisir un nom de fichier différent. Process failed to start: %1 - Le démarrage du processus a échoué: %1 + Le démarrage du processus a échoué : %1 @@ -5471,11 +5508,11 @@ Veuillez choisir un nom de fichier différent. invalid interval - intervalle non valide + intervalle invalide invalid category - catégorie non valide + catégorie invalide @@ -5586,15 +5623,15 @@ Veuillez choisir un nom de fichier différent. Ignore-count - Comptes d'ignorés + Nombre d'ignorés Single-shot - Un seul tir + Un seul coup Hit-count - Compte de coups + Nombre de coups @@ -5616,7 +5653,7 @@ Veuillez choisir un nom de fichier différent. Line: - Ligne: + Ligne : Interrupt @@ -5747,7 +5784,7 @@ Veuillez choisir un nom de fichier différent. <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;La recherche est revenue au début + <img src=" : /qt/scripttools/debugging/images/wrap.png">&nbsp;La recherche est revenue au début @@ -5773,7 +5810,7 @@ Veuillez choisir un nom de fichier différent. Location - Lieu + Emplacement @@ -5792,7 +5829,7 @@ Veuillez choisir un nom de fichier différent. Breakpoint Condition: - Condition du point d'arrêt: + Condition du point d'arrêt : @@ -5807,7 +5844,7 @@ Veuillez choisir un nom de fichier différent. Stack - Empiler + Pile Locals @@ -5853,7 +5890,7 @@ Veuillez choisir un nom de fichier différent. Left edge - Extrême gauche + Bord gauche Top @@ -5861,7 +5898,7 @@ Veuillez choisir un nom de fichier différent. Right edge - Extrême droite + Bord droit Bottom @@ -5988,11 +6025,11 @@ Veuillez choisir un nom de fichier différent. %1: doesn't exist - %1: n'existe pas + %1 : n'existe pas %1: UNIX key file doesn't exist - %1: le fichier de clés UNIX n'existe pas + %1 : le fichier de clés UNIX n'existe pas @@ -7100,7 +7137,7 @@ Veuillez choisir un nom de fichier différent. Unable to decrypt data: %1 - Impossible de décrypter les données: %1 + Impossible de décrypter les données : %1 Private key does not certify public key, %1 @@ -7136,11 +7173,11 @@ Veuillez choisir un nom de fichier différent. The certificate's notBefore field contains an invalid time - Le champ pasAvant du certificat inclut une heure non valide + Le champ pasAvant du certificat inclut une heure invalide The certificate's notAfter field contains an invalid time - Le champ pasAprès du certificat inclut une heure non valide + Le champ pasAprès du certificat inclut une heure invalide The certificate is self-signed, and untrusted @@ -7222,11 +7259,11 @@ Veuillez choisir un nom de fichier différent. QSystemSemaphore %1: out of resources - %1: plus de ressources disponibles + %1 : plus de ressources disponibles %1: permission denied - %1: permission refusée + %1 : permission refusée %1: already exists @@ -7238,7 +7275,7 @@ Veuillez choisir un nom de fichier différent. %1: unknown error %2 - %1: erreur inconnue %2 + %1 : erreur inconnue %2 @@ -7694,7 +7731,7 @@ Veuillez choisir un nom de fichier différent. Slider Media controller element - Barre de défilement + Slider Slider Thumb @@ -7906,7 +7943,7 @@ Veuillez choisir un nom de fichier différent. This is a searchable index. Enter search keywords: text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' - Ceci est un index. Veuillez saisir les mots-clé : + Ceci est un index. Veuillez saisir les mots-clé : Scroll here @@ -8438,7 +8475,7 @@ Veuillez choisir un nom de fichier différent. This is a searchable index. Enter search keywords: - Ceci est un index. Veuillez saisir les mots-clé : + Ceci est un index. Veuillez saisir les mots-clé : JavaScript Problem - %1 @@ -8446,7 +8483,7 @@ Veuillez choisir un nom de fichier différent. The script on this page appears to have a problem. Do you want to stop the script? - Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script? + Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script ? Paste and Match Style @@ -8630,161 +8667,161 @@ Veuillez choisir un nom de fichier différent. error triggered by consumer - Erreur déclenchée par le consommateur + Erreur déclenchée par le consommateur unexpected end of file - Fin de fichier inattendue + Fin de fichier inattendue more than one document type definition - plus d'une définition de type de docuement + plus d'une définition de type de document error occurred while parsing element - une erreur s'est produite pendant l'analyse syntaxique de l'élement + une erreur s'est produite pendant l'analyse syntaxique de l'élement tag mismatch - tag incongru + tag incongru error occurred while parsing content - une erreur s'est produite pendant l'analyse syntaxique du contenu + une erreur s'est produite pendant l'analyse syntaxique du contenu unexpected character - caractère inattendu + caractère inattendu invalid name for processing instruction - nom d'instruction invalide + nom d'instruction invalide version expected while reading the XML declaration - Une version est attendue dans la déclaration XML + une version est attendue dans la déclaration XML wrong value for standalone declaration - Valeur incorrecte pour une déclaration autonome + valeur incorrecte pour une déclaration "standalone" error occurred while parsing document type definition - une erreur s'est produite pendant l'analyse syntaxique de la définition du type de document + une erreur s'est produite pendant l'analyse syntaxique de la définition du type de document letter is expected - une lettre est attendue + une lettre est attendue error occurred while parsing comment - une erreur s'est produite pendant l'analyse syntaxique du commentaire + une erreur s'est produite pendant l'analyse syntaxique du commentaire error occurred while parsing reference - une erreur s'est produite pendant l'analyse syntaxique d'une référence + une erreur s'est produite pendant l'analyse syntaxique d'une référence internal general entity reference not allowed in DTD - + référence à une entité générale interne non autorisée dans la DTD external parsed general entity reference not allowed in attribute value - + référence à une entité générale externe non autorisée dans la valeur d'attribut external parsed general entity reference not allowed in DTD - + référence à une entité générale externe non autorisée dans le DTD unparsed entity reference in wrong context - + référence à une entité non analysée dans le mauvais contexte recursive entities - + entités récursives error in the text declaration of an external entity - + erreur dans la déclaration texte d'une entité externe encoding declaration or standalone declaration expected while reading the XML declaration - + déclaration d'encodage ou déclaration "standalone" attendue lors de la lecture de la déclaration XML standalone declaration expected while reading the XML declaration - + déclaration "standalone" attendue lors de la lecture de la déclaration XML QXmlPatternistCLI Warning in %1, at line %2, column %3: %4 - Avertissement dans %1, à la ligne %2, colonne %3: %4 + Avertissement dans %1, à la ligne %2, colonne %3 : %4 Warning in %1: %2 - Avertissement dans %1: %2 + Avertissement dans %1 : %2 - Unknown location + Lieu inconnu Error %1 in %2, at line %3, column %4: %5 - Erreur %1 dans %2, à la ligne %3, colonne %4: %5 + Erreur %1 dans %2, à la ligne %3, colonne %4 : %5 Error %1 in %2: %3 - Erreur %1 dans %2: %3 + Erreur %1 dans %2 : %3 QXmlStream Extra content at end of document. - + Contenu superflu à la fin du document. Invalid entity value. - + Valeur de l'entité invalide. Invalid XML character. - + Caractère XML invalide. Sequence ']]>' not allowed in content. - + séquence ']]>' non autorisée dans le contenu. Namespace prefix '%1' not declared - + Le préfixe d'espace de noms %1 n'a pas été déclaré Attribute redefined. - + Redéfinition d'attribut. Unexpected character '%1' in public id literal. - + Caractère '%1' inattendu pour une valeur d'identifiant public. Invalid XML version string. - + Chaîne de version XML invalide. Unsupported XML version. - + Version XML non supportée. %1 is an invalid encoding name. - + %1 n'est pas un nom d'encodage valide. Encoding %1 is unsupported - + %1 n'est pas un encodage supporté Invalid XML encoding name. @@ -8792,99 +8829,99 @@ Veuillez choisir un nom de fichier différent. Standalone accepts only yes or no. - + Le seules valeurs possibles pour "standalone" sont "yes" ou "no". Invalid attribute in XML declaration. - + Attribut invalide dans une déclaration XML. Premature end of document. - + Fin de document inattendue. Invalid document. - + Document invalide. Expected - + Attendu(e) , but got ' - + , mais trouvé ' Unexpected ' - + Inattendu(e) Expected character data. - + données texte attendues. Recursive entity detected. - + Entité récursive détectée. Start tag expected. - + Tag de départ attendu. XML declaration not at start of document. - + La déclaration XML doit être en début de document. NDATA in parameter entity declaration. - + NDATA dans une déclaration de paramètre d'entité. %1 is an invalid processing instruction name. - + %1 n'est pas un nom d'instruction valide. Invalid processing instruction name. - + nom d'instruction invalide. Illegal namespace declaration. - + Déclaration d'espace de noms non autorisée. Invalid XML name. - + Nom XML invalide. Opening and ending tag mismatch. - + Tags ouvrant et fermants ne correspondent pas. Reference to unparsed entity '%1'. - + Référence à l'entité '%1' non analysée. Entity '%1' not declared. - + Entité '%1' non déclarée. Reference to external entity '%1' in attribute value. - + Référence à l'entité externe '%1' en valeur d'attribut. Invalid character reference. - + Référence à un caractère invalide. Encountered incorrectly encoded content. - + Du contenu avec un encodage incorrect a été rencontré. The standalone pseudo attribute must appear after the encoding. - + Le pseudo-attribut "standalone" doit apparaître après l'encodage. %1 is an invalid PUBLIC identifier. - + %1 n'est pas un identifiant "PUBLIC" valide. @@ -8923,7 +8960,7 @@ Veuillez choisir un nom de fichier différent. Overflow: Can't represent date %1. - Overflow: ne peut pas représenter la date %1. + Overflow : impossible de représenter la date %1. Day %1 is invalid for month %2. @@ -8931,11 +8968,11 @@ Veuillez choisir un nom de fichier différent. Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; - L'heure 24:%1:%2.%3 est invalide. L'heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0; + Heure 24 : %1 : %2.%3 est invalide. L'heure est 24 mais les minutes, secondes et millisecondes ne sont pas à 0; Time %1:%2:%3.%4 is invalid. - L'heure %1:%2:%3.%4 est invalide. + L'heure %1 : %2 : %3.%4 est invalide. Overflow: Date can't be represented. @@ -9197,11 +9234,11 @@ Veuillez choisir un nom de fichier différent. %1 is an invalid regular expression pattern: %2 - %1 est un modèle d'expression régulière invalide: %2 + %1 est un modèle d'expression régulière invalide : %2 %1 is an invalid flag for regular expressions. Valid flags are: - %1 est un flag invalide pour des expressions régulières. Les flags valides sont : + %1 est un flag invalide pour des expressions régulières. Les flags valides sont : If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. @@ -9604,16 +9641,12 @@ Veuillez choisir un nom de fichier différent. L'URI ne peut pas avoir de fragments - Element %1 is not allowed at this location. + L'élément %1 n'est pas autorisé à cet emplacement. - Text nodes are not allowed at this location. - Les noeuds de texte ne sont pas autorisés à cet emplacement. - - Parse error: %1 - Erreur: %1 + Erreur : %1 The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. diff --git a/translations/qt_help_fr.ts b/translations/qt_help_fr.ts index f0cabc2..62bfccc 100644 --- a/translations/qt_help_fr.ts +++ b/translations/qt_help_fr.ts @@ -4,87 +4,116 @@ QCLuceneResultWidget + Search Results Résultats de la recherche + Note: Note : + The search results may not be complete since the documentation is still being indexed! Les résultats de la recherche risquent d'être incomplets car l'indexation de la documentation est en cours ! + Your search did not match any documents. Votre recherche ne correspond à aucun document. + (The reason for this might be that the documentation is still being indexed.) (Il est possible que cela soit dû au fait que la documentation est en cours d'indexation.) + QHelp + + + Untitled + Sans titre + + + QHelpCollectionHandler + The collection file '%1' is not set up yet! Le fichier de collection '%1' n'est pas encore chargé ! + Cannot load sqlite database driver! driver ? Chargement du pilote de base de données sqlite impossible ! + + Cannot open collection file: %1 collection ? Impossible d'ouvrir le fichier collection : %1 + Cannot create tables in file %1! Impossible de créer les tables dans le fichier : %1 ! + The collection file '%1' already exists! Le fichier collection '%1' existe déjà ! + Cannot create directory: %1 Impossible de créer le répertoire : %1 + Cannot copy collection file: %1 Impossible de copier le fichier collection : %1 + Unknown filter '%1'! Filtre '%1' inconnu ! + Cannot register filter %1! Impossible d'enregistrer le filtre %1 ! + Cannot open documentation file %1! Impossible d'ouvrir le fichier de documentation %1 ! + Invalid documentation file '%1'! Fichier de documentation invalide : '%1' ! + The namespace %1 was not registered! L'espace de noms '%1' n'était pas référencé ! + Namespace %1 already exists! L'espace de noms %1 existe déjà ! + Cannot register namespace '%1'! Impossible d'enregistrer l'espace de noms '%1' ! + Cannot open database '%1' to optimize! Impossible d'ouvrir la base de données à optimiser '%1' ! @@ -92,6 +121,7 @@ QHelpDBReader + Cannot open database '%1' '%2': %3 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 Impossible d'ouvrir la base de données '%1' '%2' : %3 @@ -100,10 +130,12 @@ QHelpEngineCore + Cannot open documentation file %1: %2! Impossible d'ouvrir le fichier de documentation %1 : %2 ! + The specified namespace does not exist! L'espace de noms spécifié n'existe pas ! @@ -118,107 +150,133 @@ QHelpGenerator + Invalid help data! Données d'aide invalides ! + No output file name specified! Aucun nom de fichier de sortie spécifié ! + The file %1 cannot be overwritten! Le fichier %1 ne peut être écrasé ! + Building up file structure... - Construction de la structure de fichiers en cours… + Construction de la structure de fichiers en cours... + Cannot open data base file %1! Impossible d'ouvrir le fichier de base de données %1 ! + Cannot register namespace %1! Impossible d'enregistrer l'espace de noms %1 ! + Insert custom filters... - Insértion des filtres personnalisés… + Insértion des filtres personnalisés... + Insert help data for filter section (%1 of %2)... ??? - Insertion des données d'aide pour la section filtre (%1 de %2)… + Insertion des données d'aide pour la section filtre (%1 de %2)... + Documentation successfully generated. Documentation générée avec succès. + Some tables already exist! Certaines tables existent déjà ! + Cannot create tables! Impossible de créer les tables ! + Cannot register virtual folder! Impossible d'enregistrer le dossier virtuel ! + Insert files... Insertion des fichiers... + The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. Le fichier référencé %1 doit être dans le dossier (%2) ou un de ses sous-dossiers. Fichier non pris en compte. + The file %1 does not exist! Skipping it. Le fichier %1 n'existe pas ! Fichier non pris en compte. + Cannot open file %1! Skipping it. Impossible d'ouvrir le fichier %1 ! Fichier non pris en compte. + The filter %1 is already registered! Le filtre %1 est déjà enregistré ! + Cannot register filter %1! Impossible d'enregistrer le filtre %1 ! + Insert indices... - Insertion des index… + Insertion des index... + Insert contents... - insertion du contenu… + insertion du contenu... + Cannot insert contents! Impossible d'insérer le contenu ! + Cannot register contents! Impossible de référencer le contenu ! + File '%1' does not exist. Le fichier '%1' n'existe pas. + File '%1' cannot be opened. Le fichier '%1' ne peut être ouvert. + File '%1' contains an invalid link to file '%2' Le fichier '%1' contient un lien invalide vers le fichier '%2' + Invalid links in HTML files. Liens invalides dans les fichiers HTML. @@ -226,38 +284,47 @@ QHelpProject + Unknown token. Identificateur inconnu. + Unknown token. Expected "QtHelpProject"! Identificateur inconnu. "QtHelpProject" attendu ! + Error in line %1: %2 Erreur à la ligne %1 : %2 + Virtual folder has invalid syntax. Syntaxe invalide pour le dossier virtuel. + Namespace has invalid syntax. Syntaxe invalide pour l'espace de noms. + Missing namespace in QtHelpProject. Espace de noms manquant dans QtHelpProject. + Missing virtual folder in QtHelpProject Dossier virtuel manquant dans QtHelpProject + Missing attribute in keyword at line %1. Attribut manquant pour le mot clé à la ligne %1. + The input file %1 could not be opened! Le fichier source %1 n'a pas pu être ouvert ! @@ -265,42 +332,52 @@ QHelpSearchQueryWidget + Search for: Rechercher : + Previous search Recherche précédente + Next search Recherche suivante + Search Recherche + Advanced search Recherche avancée + words <B>similar</B> to: mots <B>semblables</B> à : + <B>without</B> the words: <B>sans</B> les mots : + with <B>exact phrase</B>: avec la <B>phrase exacte</B> : + with <B>all</B> of the words: avec <B>tous</B> les mots : + with <B>at least one</B> of the words: avec <B>au moins un</B> des mots : @@ -308,6 +385,7 @@ QHelpSearchResultWidget + %1 - %2 of %n Hits %1 - %2 de %n résultat @@ -315,6 +393,7 @@ + 0 - 0 of 0 Hits 0 - 0 de 0 résultats -- cgit v0.12 From ab3ce23e3b5e28389b9f6f9bd5bc69cd42fcae5d Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Fri, 6 Aug 2010 17:07:51 +0200 Subject: Modified descriptions of QBasicTimer class and isActive() function. Reviewed by: David Boddie Task: QTBUG-12313 --- src/corelib/kernel/qbasictimer.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/corelib/kernel/qbasictimer.cpp b/src/corelib/kernel/qbasictimer.cpp index d176170..d595ac1 100644 --- a/src/corelib/kernel/qbasictimer.cpp +++ b/src/corelib/kernel/qbasictimer.cpp @@ -54,7 +54,8 @@ QT_BEGIN_NAMESPACE This is a fast, lightweight, and low-level class used by Qt internally. We recommend using the higher-level QTimer class rather than this class if you want to use timers in your - applications. + applications. Note that this timer is a repeating timer that + will send subsequent timer events unless the stop() function is called. To use this class, create a QBasicTimer, and call its start() function with a timeout interval and with a pointer to a QObject @@ -88,8 +89,8 @@ QT_BEGIN_NAMESPACE /*! \fn bool QBasicTimer::isActive() const - Returns true if the timer is running, has not yet timed - out, and has not been stopped; otherwise returns false. + Returns true if the timer is running and has not been stopped; otherwise + returns false. \sa start() stop() */ -- cgit v0.12 From 6eb7a210eed1b392431fc913d13d205b8ccc1933 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 6 Aug 2010 16:25:15 +0100 Subject: Fixes for combining multiple Qt::ImhXXXOnly with S60 FEP When one restriction is a superset of another (e.g. ImhDigitsOnly | ImhDialableCharactersOnly), the less restrictive one is used When two restrictions are incompatible (e.g. ImhDialableCharactersOnly | ImhFormattedNumbersOnly), fall back to allowing all symbols Note for some combinations additional characters not in the union can be entered, this is a limitation of the API to AVKON FEP. Before this change, some characters in the union could not be entered at all, which is worse. Tested on I8510 (3.2), 5800XM (5.0), N8(symbian^3) Task Number: QTBUG-12726 Reviewed-by: Alessandro Portale --- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 52 ++++++++++++++----------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index ae51b1c..44fe7da 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -359,10 +359,10 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) commitTemporaryPreeditString(); - bool numbersOnly = (hints & ImhDigitsOnly) || (hints & ImhFormattedNumbersOnly) - || (hints & ImhDialableCharactersOnly); - bool noOnlys = !(numbersOnly || (hints & ImhUppercaseOnly) - || (hints & ImhLowercaseOnly)); + const bool anynumbermodes = hints & (ImhDigitsOnly | ImhFormattedNumbersOnly | ImhDialableCharactersOnly); + const bool anytextmodes = hints & (ImhUppercaseOnly | ImhLowercaseOnly | ImhEmailCharactersOnly | ImhUrlCharactersOnly); + const bool numbersOnly = anynumbermodes && !anytextmodes; + const bool noOnlys = !(hints & ImhExclusiveInputMask); TInt flags; Qt::InputMethodHints oldHints = hints; @@ -374,8 +374,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) } if (!noOnlys) { // Make sure that the preference is within the permitted set. - if (hints & ImhPreferNumbers && !(hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly - || hints & ImhDialableCharactersOnly)) { + if (hints & ImhPreferNumbers && !anynumbermodes) { hints &= ~ImhPreferNumbers; } else if (hints & ImhPreferUppercase && !(hints & ImhUppercaseOnly)) { hints &= ~ImhPreferUppercase; @@ -402,18 +401,21 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) m_fepState->SetCurrentInputMode(EAknEditorTextInputMode); } flags = 0; - if (numbersOnly) { - flags |= EAknEditorNumericInputMode; + if (noOnlys || (anynumbermodes && anytextmodes)) { + flags = EAknEditorAllInputModes; } - if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 - && ((hints & ImhFormattedNumbersOnly) || (hints & ImhDialableCharactersOnly))) { - //workaround - the * key does not launch the symbols menu, making it impossible to use these modes unless text mode is enabled. - flags |= EAknEditorTextInputMode; + else if (anynumbermodes) { + flags |= EAknEditorNumericInputMode; + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 + && ((hints & ImhFormattedNumbersOnly) || (hints & ImhDialableCharactersOnly))) { + //workaround - the * key does not launch the symbols menu, making it impossible to use these modes unless text mode is enabled. + flags |= EAknEditorTextInputMode; + } } - if (hints & ImhUppercaseOnly || hints & ImhLowercaseOnly) { + else if (anytextmodes) { flags |= EAknEditorTextInputMode; } - if (flags == 0) { + else { flags = EAknEditorAllInputModes; } m_fepState->SetPermittedInputModes(flags); @@ -460,27 +462,33 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints) if (hints & ImhNoPredictiveText || hints & ImhHiddenText) { flags |= EAknEditorFlagNoT9; } - // if alphanumeric input, then make all symbols available in numeric mode too. - if (!numbersOnly) + // if alphanumeric input, or if multiple incompatible number modes are selected; + // then make all symbols available in numeric mode too. + if (!numbersOnly || ((hints & ImhFormattedNumbersOnly) && (hints & ImhDialableCharactersOnly))) flags |= EAknEditorFlagUseSCTNumericCharmap; m_fepState->SetFlags(flags); ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateFlagsUpdate); - if (hints & ImhFormattedNumbersOnly) { + if (hints & ImhDialableCharactersOnly) { + // This is first, because if (ImhDialableCharactersOnly | ImhFormattedNumbersOnly) + // is specified, this one is more natural (# key enters a #) + flags = EAknEditorStandardNumberModeKeymap; + } else if (hints & ImhFormattedNumbersOnly) { + // # key enters decimal point flags = EAknEditorCalculatorNumberModeKeymap; } else if (hints & ImhDigitsOnly) { + // This is last, because it is most restrictive (# key is inactive) flags = EAknEditorPlainNumberModeKeymap; } else { - // ImhDialableCharactersOnly is the fallback as well, so we don't need to check for - // that flag. flags = EAknEditorStandardNumberModeKeymap; } m_fepState->SetNumericKeymap(static_cast(flags)); - if (hints & ImhEmailCharactersOnly) { - m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_EMAIL_ADDR_SPECIAL_CHARACTER_TABLE_DIALOG); - } else if (hints & ImhUrlCharactersOnly) { + if (hints & ImhUrlCharactersOnly) { + // URL characters is everything except space, so a superset of the other restrictions m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG); + } else if (hints & ImhEmailCharactersOnly) { + m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_EMAIL_ADDR_SPECIAL_CHARACTER_TABLE_DIALOG); } else { m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG); } -- cgit v0.12 From 1b0f790d27cda48137c7114fadc694432a104c90 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 6 Aug 2010 17:48:28 +0200 Subject: QSharedPointer documentation: specify that it is not safe to operate on the same object in different threads Task-number: QTBUG-12700 Reviewed-by: thiago --- src/corelib/tools/qsharedpointer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp index f102598..5fac960 100644 --- a/src/corelib/tools/qsharedpointer.cpp +++ b/src/corelib/tools/qsharedpointer.cpp @@ -67,8 +67,8 @@ QSharedPointer and QWeakPointer are thread-safe and operate atomically on the pointer value. Different threads can also access - the same QSharedPointer or QWeakPointer object at the same time - without need for locking mechanisms. + the QSharedPointer or QWeakPointer pointing to the same object at + the same time without need for locking mechanisms. It should be noted that, while the pointer value can be accessed in this manner, QSharedPointer and QWeakPointer provide no -- cgit v0.12 From d81ab877bc4424d918c400af3f65509f80f22f67 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Thu, 5 Aug 2010 14:45:49 +0200 Subject: Move the build of Neon file from painting.pri to gui.pro Move the build operation of files using Neon from painting.pri to gui.pro. This will make easier to add Neon files in the future. Reviewed-by: Andreas Kling --- src/gui/gui.pro | 18 ++++++++++++++++++ src/gui/painting/painting.pri | 21 +++------------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/gui/gui.pro b/src/gui/gui.pro index 28440cc..89ae06f 100644 --- a/src/gui/gui.pro +++ b/src/gui/gui.pro @@ -77,6 +77,24 @@ symbian { DEPLOYMENT = partial_upgrade $$DEPLOYMENT } +neon: QMAKE_CXXFLAGS *= -mfpu=neon +neon:*-g++* { + HEADERS += $$NEON_HEADERS + SOURCES += $$NEON_SOURCES + + DRAWHELPER_NEON_ASM_FILES = $$NEON_ASM + + neon_compiler.commands = $$QMAKE_CXX -c + neon_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + neon_compiler.dependency_type = TYPE_C + neon_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} + neon_compiler.input = DRAWHELPER_NEON_ASM_FILES + neon_compiler.variable_out = OBJECTS + neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN} + silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands + QMAKE_EXTRA_COMPILERS += neon_compiler +} + contains(QMAKE_MAC_XARCH, no) { DEFINES += QT_NO_MAC_XARCH } else { diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index 4023f65..dfa4a48 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -246,23 +246,8 @@ symbian { QMAKE_CXXFLAGS.ARMCC *= -O3 } -neon:*-g++* { - DEFINES += QT_HAVE_NEON - HEADERS += painting/qdrawhelper_neon_p.h - SOURCES += painting/qdrawhelper_neon.cpp - QMAKE_CXXFLAGS *= -mfpu=neon - - DRAWHELPER_NEON_ASM_FILES = ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S - - neon_compiler.commands = $$QMAKE_CXX -c - neon_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} - neon_compiler.dependency_type = TYPE_C - neon_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} - neon_compiler.input = DRAWHELPER_NEON_ASM_FILES - neon_compiler.variable_out = OBJECTS - neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN} - silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands - QMAKE_EXTRA_COMPILERS += neon_compiler -} +NEON_SOURCES += painting/qdrawhelper_neon.cpp +NEON_HEADERS += painting/qdrawhelper_neon_p.h +NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S include($$PWD/../../3rdparty/zlib_dependency.pri) -- cgit v0.12 From a0f155cdaf641d92acc8b61be89b96319d16ccba Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Thu, 5 Aug 2010 14:47:54 +0200 Subject: Do the conversion from RGB888 to RGB32 using Neon Doing the conversion with Neon is 700% faster. Help by Thiago Macieira on vacation. Reviewed-by: Thiago Macieira --- src/gui/image/image.pri | 1 + src/gui/image/qimage.cpp | 8 +++ src/gui/image/qimage_neon.cpp | 114 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 src/gui/image/qimage_neon.cpp diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri index b20a04f..f89706c 100644 --- a/src/gui/image/image.pri +++ b/src/gui/image/image.pri @@ -94,5 +94,6 @@ contains(QT_CONFIG, tiff):include($$PWD/qtiffhandler.pri) contains(QT_CONFIG, gif):include($$PWD/qgifhandler.pri) # SIMD +NEON_SOURCES += image/qimage_neon.cpp SSE2_SOURCES += image/qimage_sse2.cpp SSSE3_SOURCES += image/qimage_ssse3.cpp diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index cb834c0..ac148ee 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -3769,6 +3769,14 @@ void qInitImageConversions() converter_map[QImage::Format_RGB888][QImage::Format_ARGB32_Premultiplied] = convert_RGB888_to_RGB32_ssse3; } #endif +#ifdef QT_HAVE_NEON + if (features & NEON) { + extern void convert_RGB888_to_RGB32_neon(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags); + converter_map[QImage::Format_RGB888][QImage::Format_RGB32] = convert_RGB888_to_RGB32_neon; + converter_map[QImage::Format_RGB888][QImage::Format_ARGB32] = convert_RGB888_to_RGB32_neon; + converter_map[QImage::Format_RGB888][QImage::Format_ARGB32_Premultiplied] = convert_RGB888_to_RGB32_neon; + } +#endif } /*! diff --git a/src/gui/image/qimage_neon.cpp b/src/gui/image/qimage_neon.cpp new file mode 100644 index 0000000..15bf472 --- /dev/null +++ b/src/gui/image/qimage_neon.cpp @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include + +#ifdef QT_HAVE_NEON + +QT_BEGIN_NAMESPACE + +Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_neon(quint32 *dst, const uchar *src, int len) +{ + if (!len) + return; + + const quint32 *const end = dst + len; + + // align dst on 64 bits + const int offsetToAlignOn8Bytes = (reinterpret_cast(dst) >> 2) & 0x1; + for (int i = 0; i < offsetToAlignOn8Bytes; ++i) { + *dst++ = qRgb(src[0], src[1], src[2]); + src += 3; + } + + if ((len - offsetToAlignOn8Bytes) >= 8) { + const quint32 *const simdEnd = end - 7; + register uint8x8_t fullVector asm ("d3") = vdup_n_u8(0xff); + do { +#if Q_BYTE_ORDER == Q_BIG_ENDIAN + asm volatile ( + "vld3.8 { d4, d5, d6 }, [%[SRC]] !\n\t" + "vst4.8 { d3, d4, d5, d6 }, [%[DST],:64] !\n\t" + : [DST]"+r" (dst), [SRC]"+r" (src) + : "w"(fullVector) + : "memory", "d4", "d5", "d6" + ); +#else + asm volatile ( + "vld3.8 { d0, d1, d2 }, [%[SRC]] !\n\t" + "vswp d0, d2\n\t" + "vst4.8 { d0, d1, d2, d3 }, [%[DST],:64] !\n\t" + : [DST]"+r" (dst), [SRC]"+r" (src) + : "w"(fullVector) + : "memory", "d0", "d1", "d2" + ); +#endif + } while (dst < simdEnd); + } + + while (dst != end) { + *dst++ = qRgb(src[0], src[1], src[2]); + src += 3; + } +} + +void convert_RGB888_to_RGB32_neon(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags) +{ + Q_ASSERT(src->format == QImage::Format_RGB888); + Q_ASSERT(dest->format == QImage::Format_RGB32 || dest->format == QImage::Format_ARGB32 || dest->format == QImage::Format_ARGB32_Premultiplied); + Q_ASSERT(src->width == dest->width); + Q_ASSERT(src->height == dest->height); + + const uchar *src_data = (uchar *) src->data; + quint32 *dest_data = (quint32 *) dest->data; + + for (int i = 0; i < src->height; ++i) { + qt_convert_rgb888_to_rgb32_neon(dest_data, src_data, src->width); + src_data += src->bytes_per_line; + dest_data = (quint32 *)((uchar*)dest_data + dest->bytes_per_line); + } +} + +QT_END_NAMESPACE + +#endif // QT_HAVE_NEON -- cgit v0.12 From 296cf92e1047409a203294e81fb388cc6a0e5c85 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Fri, 6 Aug 2010 15:50:38 +0200 Subject: Use the fast Neon conversion for converting colors of jpeg images. Reviewed-by: Andreas Kling --- src/gui/image/qjpeghandler.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp index d358a5e..eda5efb 100644 --- a/src/gui/image/qjpeghandler.cpp +++ b/src/gui/image/qjpeghandler.cpp @@ -803,9 +803,16 @@ bool QJpegHandlerPrivate::read(QImage *image) QJpegHandler::QJpegHandler() : d(new QJpegHandlerPrivate(this)) { -#if defined(QT_HAVE_SSSE3) const uint features = qDetectCPUFeatures(); - + Q_UNUSED(features); +#if defined(QT_HAVE_NEON) + // from qimage_neon.cpp + Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_neon(quint32 *dst, const uchar *src, int len); + + if (features & NEON) + rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_neon; +#endif // QT_HAVE_NEON +#if defined(QT_HAVE_SSSE3) // from qimage_ssse3.cpp Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, const uchar *src, int len); -- cgit v0.12 From c45516f1f3781dcb504158f730b98897c7f2f2a1 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Fri, 6 Aug 2010 15:52:37 +0200 Subject: Remove the definition of QT_HAVE_NEON from qt.prf Since we cannot use NEON and VFP concurrently, it is better not to force neon all over the place :) Reviewed-by: Andreas Kling Reviewed-by: Thiago Macieira --- mkspecs/features/qt.prf | 1 - src/corelib/corelib.pro | 5 ++++- src/gui/gui.pro | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index aa0f06e..84010a0 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -211,7 +211,6 @@ mac { } #SIMD defines: -neon: DEFINES += QT_HAVE_NEON mmx:DEFINES += QT_HAVE_MMX 3dnow:DEFINES += QT_HAVE_3DNOW sse:DEFINES += QT_HAVE_SSE QT_HAVE_MMXEXT diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index bc8ef9f..728bdf9 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -53,6 +53,9 @@ symbian: { DEPLOYMENT = partial_upgrade $$DEPLOYMENT } -neon: QMAKE_CXXFLAGS *= -mfpu=neon +neon { + DEFINES += QT_HAVE_NEON + QMAKE_CXXFLAGS *= -mfpu=neon +} diff --git a/src/gui/gui.pro b/src/gui/gui.pro index 89ae06f..3943e26 100644 --- a/src/gui/gui.pro +++ b/src/gui/gui.pro @@ -77,8 +77,9 @@ symbian { DEPLOYMENT = partial_upgrade $$DEPLOYMENT } -neon: QMAKE_CXXFLAGS *= -mfpu=neon neon:*-g++* { + DEFINES += QT_HAVE_NEON + QMAKE_CXXFLAGS *= -mfpu=neon HEADERS += $$NEON_HEADERS SOURCES += $$NEON_SOURCES -- cgit v0.12 From 44d5bcde1713a5f51b7140259e9fd4e426a868a8 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 9 Aug 2010 16:11:30 +1000 Subject: PathView required some diagonal movement before a drag was initiated. Any movement beyond the threshold is sufficient. Task-number: 12747 Reviewed-by: Joona Petrell --- src/declarative/graphicsitems/qdeclarativepathview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 06ac275..5771f84 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -1061,7 +1061,7 @@ void QDeclarativePathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) if (!d->stealMouse) { QPointF delta = event->pos() - d->startPoint; - if (qAbs(delta.x()) > QApplication::startDragDistance() && qAbs(delta.y()) > QApplication::startDragDistance()) + if (qAbs(delta.x()) > QApplication::startDragDistance() || qAbs(delta.y()) > QApplication::startDragDistance()) d->stealMouse = true; } -- cgit v0.12 From 8c4de17eb643af324a13b16d20c301772183022b Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 10:58:23 +1000 Subject: Explain Flipable example further --- src/declarative/graphicsitems/qdeclarativeflipable.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp index 8c9d2dd..b266273 100644 --- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp @@ -83,10 +83,16 @@ public: \image flipable.gif - The \l Rotation element is used to specify the angle and axis of the flip, - and the \l State defines the changes in angle which produce the flipping - effect. Finally, the \l Transition creates the animation that changes the - angle over one second. + The \l Rotation element is used to specify the angle and axis of the flip. + When \c flipped is \c true, the item changes to the "back" state, where + the angle is changed to 180 degrees to produce the flipping effect. + Finally, the \l Transition creates the animation that changes the + angle over one second: when the item changes between its "back" and + default states, the NumberAnimation animates the angle between + its old and new values. + + See the \l {QML States} and \l {QML Animation} documentation for more + details on state changes and how animations work within transitions. \sa {declarative/ui-components/flipable}{Flipable example} */ -- cgit v0.12 From 983882f68a8f7463aa4adf6d379fd4ef5dd4f915 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 10:58:43 +1000 Subject: Merge sections about when property and default state --- doc/src/declarative/qdeclarativestates.qdoc | 95 ++++++++++++++++++----------- 1 file changed, 59 insertions(+), 36 deletions(-) diff --git a/doc/src/declarative/qdeclarativestates.qdoc b/doc/src/declarative/qdeclarativestates.qdoc index 0b91756..274040a 100644 --- a/doc/src/declarative/qdeclarativestates.qdoc +++ b/doc/src/declarative/qdeclarativestates.qdoc @@ -84,18 +84,34 @@ Rectangle. \snippet doc/src/snippets/declarative/states.qml 0 -A \l State item defines all the changes to be made in the new state. You +The \l State item defines all the changes to be made in the new state. It could specify additional properties to be changed, or create additional -PropertyChanges for other objects. (Note that a \l State can modify the -properties of other objects, not just the object that owns the state.) +PropertyChanges for other objects. It can also modify the properties of other +objects, not just the object that owns the state. For example: -For example: +\qml +Rectangle { + ... + states: [ + State { + name: "moved" + PropertyChanges { target: myRect; x: 50; y: 50; color: "blue" } + PropertyChanges { target: someOtherItem; width: 1000 } + } + ] +} +\endqml + +As a convenience, if an item only has one state, its \l {Item::}{states} +property can be defined as a single \l State, without the square-brace list +syntax: \qml -State { - name: "moved" - PropertyChanges { target: myRect; x: 50; y: 50; color: "blue" } - PropertyChanges { target: someOtherItem; width: 1000 } +Item { + ... + states: State { + ... + } } \endqml @@ -118,54 +134,61 @@ transitions between them. Of course, the \l Rectangle in the example above could have simply been moved by setting its position to (50, 50) in the mouse area's \c onClicked handler. -However, aside from enabling batched property changes, the use of states allows -an item to revert to its \e {default state}, which contains all of the items' -initial property values before they were modified in a state change. +However, aside from enabling batched property changes, one of the features of +QML states is the ability of an item to revert to its \e {default state}. +The default state contains all of an item's initial property values before +they were modified in a state change. -The default state is specified by an empty string. If the MouseArea in the -above example was changed to this: +For example, suppose the \l Rectangle should move to (50,50) when the mouse is +pressed, and then move back to its original position when the mouse is +released. This can be achieved by using the \l {State::}{when} property, +like this: -\qml -MouseArea { - anchors.fill: parent - onClicked: myRect.state == 'moved' ? myRect.state = "" : myRect.state = 'moved'; -} -\endqml - -This would toggle the \l Rectangle's state between the \e moved and \e default -states when clicked. The properties can be reverted to their initial -values without requiring the definition of another \l State that defines these -value changes. +\qml +Rectangle { + ... + MouseArea { + id: mouseArea + anchors.fill: parent + } + states: State { + name: "moved"; when: mouseArea.pressed + ... + } +} +\endqml -\section1 The "when" property +The \l {State::}{when} property is set to an expression that evaluates to +\c true when the item should be set to that state. When the mouse is pressed, +the state is changed to \e moved. When it is released, the item reverts to its +\e default state, which defines all of the item's original property values. -The \l {State::}{when} property is useful for specifying when a state should be -applied. This can be set to an expression that evaluates to \c true when an -item should change to a particular state. +Alternatively, an item can be explicitly set to its default state by setting its +\l {Item::}{state} property to an empty string (""). For example, instead of +using the \l {State::}{when} property, the above code could be changed to: -If the above example was changed to this: - \qml Rectangle { ... MouseArea { - id: mouseArea anchors.fill: parent + onPressed: myRect.state = 'moved'; + onReleased: myRect.state = ''; } states: State { - name: "moved"; when: mouseArea.pressed + name: "moved" ... } +} \endqml -The \l Rectangle would automatically change to the \e moved state when the -mouse is pressed, and revert to the default state when it is released. This is -simpler (and a better, more declarative method) than creating \c onPressed -and \c onReleased handlers in the MouseArea to set the current state. +Obviously it makes sense to use the \l {State::}{when} property when possible +as it provides a simpler (and a better, more declarative) solution than +assigning the state from signal handlers. \section1 Animating state changes -- cgit v0.12 From db91a8849bbe9581d096aa486708b9a655fc092f Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 11:10:22 +1000 Subject: Mention QML_IMPORT_TRACE in Modules docs --- doc/src/declarative/modules.qdoc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 9e51a40..467b7d0 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -302,5 +302,13 @@ For examples of \c qmldir files for plugins, see the \l {declarative/cppextensions/plugins}{Plugins} example and \l {Tutorial: Writing QML extensions with C++}. + +\section1 Debugging + +The \c QML_IMPORT_TRACE environment variable can be useful for debugging +when there are problems with finding and loading modules. See +\l{Debugging module imports} for more information. + + */ / -- cgit v0.12 From 0d060e71a5a03f21df5b2edbb4f6de1e928b9ada Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 17:08:23 +1000 Subject: XmlListModel doc fixes Task-number: QTBUG-12749 --- src/declarative/util/qdeclarativexmllistmodel.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp index 7c1e1fd..8bd829e 100644 --- a/src/declarative/util/qdeclarativexmllistmodel.cpp +++ b/src/declarative/util/qdeclarativexmllistmodel.cpp @@ -560,7 +560,7 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListPropertyprogress; } +/*! + \qmlmethod void XmlListModel::errorString() + + Returns a string description of the last error that occurred + if \l status is XmlListModel::Error. +*/ QString QDeclarativeXmlListModel::errorString() const { Q_D(const QDeclarativeXmlListModel); -- cgit v0.12 From 7ee7f19502bfd9193c624045bed07bdfdb23d1df Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 9 Aug 2010 09:17:27 +0200 Subject: I18N: Update German translations for 4.7.0. --- translations/assistant_de.ts | 345 +++--- translations/designer_de.ts | 1380 +--------------------- translations/linguist_de.ts | 438 +------ translations/qt_de.ts | 2666 +----------------------------------------- translations/qt_help_de.ts | 78 +- 5 files changed, 278 insertions(+), 4629 deletions(-) diff --git a/translations/assistant_de.ts b/translations/assistant_de.ts index bfafc71..0f4d0d6 100644 --- a/translations/assistant_de.ts +++ b/translations/assistant_de.ts @@ -4,7 +4,6 @@ AboutDialog - &Close &Schließen @@ -12,19 +11,16 @@ AboutLabel - Warning Achtung - Unable to launch external application. Fehler beim Starten der externen Anwendung. - OK OK @@ -32,17 +28,14 @@ Assistant - Error registering documentation file '%1': %2 Beim Registrieren der Dokumentationsdatei '%1' trat ein Fehler auf: %2 - Error: %1 Fehler: %1 - Could not register documentation file %1 @@ -54,12 +47,10 @@ Grund: %2 - Documentation successfully registered. Dokumentation erfolgreich registriert. - Could not unregister documentation file %1 @@ -71,27 +62,22 @@ Grund: %2 - Documentation successfully unregistered. Dokumentation erfolgreich entfernt. - Error reading collection file '%1': %2. Fehler beim Lesen der Katalogdatei '%1': %2 - Error creating collection file '%1': %2. Fehler beim Erstellen der Katalogdatei '%1': %2. - Error reading collection file '%1': %2 Fehler beim Lesen der Katalogdatei '%1': %2 - Cannot load sqlite database driver! Der Datenbanktreiber für SQLite kann nicht geladen werden. @@ -99,139 +85,229 @@ Grund: BookmarkDialog - Add Bookmark Lesezeichen hinzufügen - Bookmark: Lesezeichen: - Add in Folder: Erstellen in: - New Folder Neuer Ordner - + + + + Rename Folder + Ordner umbenennen + BookmarkManager - Untitled Ohne Titel - Remove Entfernen - You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? Wenn Sie diesen Ordner löschen, wird auch<br>dessen kompletter Inhalt gelöscht. Möchten Sie wirklich fortfahren? - Manage Bookmarks... Lesezeichen verwalten... - Add Bookmark... Lesezeichen hinzufügen ... - Ctrl+D Ctrl+D - Delete Folder Ordner löschen - Rename Folder Ordner umbenennen - Show Bookmark Lesezeichen öffnen - Show Bookmark in New Tab Lesezeichen in neuem Reiter öffnen - Delete Bookmark Lesezeichen löschen - Rename Bookmark Lesezeichen umbenennen + BookmarkManagerWidget + + Manage Bookmarks + Lesezeichen verwalten + + + Search: + Suche: + + + Remove + Entfernen + + + Import and Backup + Importieren und Sichern + + + OK + OK + + + Import... + Importieren... + + + Export... + Exportieren... + + + Open File + Datei öffnen + + + Files (*.xbel) + Dateien (*.xbel) + + + Save File + Datei speichern + + + Qt Assistant + Qt Assistant + + + Unable to save bookmarks. + Die Lesezeichen konnten nicht gespeichert werden. + + + You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue? + Beim Löschen des Ordners wird auch dessen Inhalt entfernt.<br>Möchten Sie fortsetzen? + + + Delete Folder + Ordner löschen + + + Rename Folder + Ordner umbenennen + + + Show Bookmark + Lesezeichen anzeigen + + + Show Bookmark in New Tab + Lesezeichen in neuem Reiter öffnen + + + Delete Bookmark + Lesezeichen löschen + + + Rename Bookmark + Lesezeichen umbenennen + + + + BookmarkModel + + Name + Name + + + Address + Adresse + + + Bookmarks Menu + Lesezeichen-Menü + + + + BookmarkWidget + + Bookmarks + Lesezeichen + + + Filter: + Filter: + + + Add + Hinzufügen + + + Remove + Entfernen + + + CentralWidget - Add new page Neue Seite hinzufügen - Close current page Aktuelle Seite schließen - Print Document Drucken - - unknown unbekannt - Add New Page Neue Seite hinzufügen - Close This Page Aktuelle Seite schließen - Close Other Pages Andere Seiten schließen - Add Bookmark for this Page... Lesezeichen für diese Seite hinzufügen ... - Search Suchen @@ -239,62 +315,50 @@ Grund: CmdLineParser - Unknown option: %1 Unbekannte Option: %1 - Unknown widget: %1 Unbekanntes Widget-Objekt: %1 - The collection file '%1' does not exist. Die Katalogdatei '%1' existiert nicht. - Missing collection file. Fehlende Katalogdatei. - Invalid URL '%1'. Ungültige URL '%1'. - Missing URL. Fehlende URL. - Missing widget. Fehlendes Widget-Objekt. - The Qt help file '%1' does not exist. Die Hilfedatei '%1' existiert nicht. - Missing help file. Fehlende Hilfedatei. - Missing filter argument. Das Filter-Argument fehlt. - Error Fehler - Notice Hinweis @@ -302,12 +366,10 @@ Grund: ContentWindow - Open Link Link öffnen - Open Link in New Tab Link in neuem Reiter öffnen @@ -315,40 +377,52 @@ Grund: FilterNameDialogClass - Add Filter Name Filternamen hinzufügen - Filter Name: Filtername: + FindWidget + + Previous + Voriges + + + Next + Nächstes + + + Case Sensitive + Groß/Kleinschreibung beachten + + + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Seitenende erreicht + + + FontPanel - Font Schriftart - &Writing system S&kript - &Family &Schriftart - &Style S&chriftschnitt - &Point size &Schriftgrad @@ -356,30 +430,37 @@ Grund: HelpViewer - <title>about:blank</title> <title>about:blank</title> - <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> <title>Fehler 404 ...</title><div align="center"><br><br><h1>Die Seite kann nicht gefunden werden.</h1><br><h3>'%1'</h3></div> + + Copy &Link Location + &Link-Adresse kopieren + + + Open Link in New Tab Ctrl+LMB + Link in neuem Reiter öffnen (Strg + linke Maustaste) + + + Open Link in New Tab + Link in neuem Reiter öffnen + IndexWindow - &Look for: Suchen &nach: - Open Link Link öffnen - Open Link in New Tab Link in neuem Reiter öffnen @@ -387,99 +468,76 @@ Grund: InstallDialog - - Install Documentation Dokumentation installieren - Downloading documentation info... Dokumentationsinformation herunterladen ... - Download canceled. Herunterladen abgebrochen. - - - Done. Fertig. - The file %1 already exists. Do you want to overwrite it? Die Datei %1 existiert bereits. Möchten Sie sie überschreiben? - Unable to save the file %1: %2. Die Datei %1 kann nicht gespeichert werden: %2. - Downloading %1... Herunterladen der Datei %1 ... - - - Download failed: %1. Herunterladen fehlgeschlagen: %1. - Documentation info file is corrupt! Die Dokumentationsdatei ist beschädigt. - Download failed: Downloaded file is corrupted. Herunterladen fehlgeschlagen: Die Datei ist wahrscheinlich beschädigt. - Installing documentation %1... Dokumentation %1 installieren ... - Error while installing documentation: %1 Fehler bei der Installation von: %1 - Available Documentation: Verfügbare Dokumentation: - Install Installieren - Cancel Abbrechen - Close Schließen - Installation Path: Installationsordner: - ... ... @@ -487,297 +545,234 @@ Grund: MainWindow - - Index Index - - Contents Inhalt - - Bookmarks Lesezeichen - Search Suchen - - - Qt Assistant Qt Assistant - Page Set&up... S&eite einrichten ... - Print Preview... Druckvorschau ... - &Print... &Drucken ... - New &Tab Neuer &Reiter - &Close Tab Reiter &schließen - &Quit &Beenden - CTRL+Q CTRL+Q - &Copy selected Text Ausgewählten Text &kopieren - &Find in Text... &Textsuche ... - &Find &Suchen - Find &Next &Weitersuchen - Find &Previous &Vorheriges suchen - Preferences... Einstellungen ... - Zoom &in &Vergrößern - Zoom &out Ver&kleinern - Normal &Size Standard&größe - Ctrl+0 Ctrl+0 - ALT+C ALT+C - ALT+I ALT+I - ALT+S ALT+S - &Home &Startseite - &Back &Rückwärts - &Forward &Vorwärts - Sync with Table of Contents Seite mit Inhaltsangabe abgleichen - Sync Synchronisieren - Next Page Nächste Seite - Ctrl+Alt+Right Ctrl+Alt+Right - Previous Page Vorherige Seite - Ctrl+Alt+Left Ctrl+Alt+Left - Could not register file '%1': %2 Die Datei '%1' konnte nicht registriert werden: %2 - About... Über ... - Navigation Toolbar Navigationsleiste - Toolbars Werkzeugleisten - Filter Toolbar Filterleiste - Filtered by: Filter: - Address Toolbar Adressleiste - Address: Adresse: - Could not find the associated content item. Der zugehörige Inhaltseintrag konnte nicht gefunden werden. - About %1 Über %1 - Updating search index Suchindex wird aufgebaut - Looking for Qt Documentation... Suche nach Qt-Dokumentation ... - &Window &Fenster - Minimize Minimieren - Ctrl+M Ctrl+M - Zoom Zoom - &File &Datei - &Edit &Bearbeiten - &View &Ansicht - &Go &Gehe zu - ALT+Home ALT+Home - &Bookmarks &Lesezeichen - &Help &Hilfe - ALT+O ALT+O @@ -785,48 +780,38 @@ Grund: PreferencesDialog - - Add Documentation Dokumentation hinzufügen - Qt Compressed Help Files (*.qch) Komprimierte Hilfedateien (*.qch) - The specified file is not a valid Qt Help File! Die angegebene Datei ist keine Qt-Hilfedatei. - The namespace %1 is already registered! Der Namespace %1 ist bereits registriert. - Remove Documentation Dokumentation entfernen - Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. Einige der derzeit geöffneten Dokumente stammen aus der Dokumentation, die Sie gerade zu löschen versuchen. Sie werden beim Löschen geschlossen. - Cancel Abbrechen - OK OK - Use custom settings Benutzerdefinierte Einstellungen verwenden @@ -834,117 +819,94 @@ Grund: PreferencesDialogClass - Preferences Einstellungen - Fonts Schriftart - Font settings: Schriftart: - Browser Browser - Application Anwendung - Filters Filter - Filter: Filter: - Attributes: Attribute: - 1 1 - Add Hinzufügen - Remove Entfernen - Documentation Dokumentation - Registered Documentation: Registrierte Dokumentation: - Add... Hinzufügen ... - Options Einstellungen - Current Page Aktuelle Seite - Restore to default Voreinstellung wiederherstellen - Homepage Startseite - On help start: Zu Beginn: - Show my home page Startseite zeigen - Show a blank page Leere Seite zeigen - Show my tabs from last session Reiter aus letzter Sitzung zeigen - Blank Page Leere Seite @@ -952,12 +914,10 @@ Grund: RemoteControl - Debugging Remote Control Debugging Remote Control - Received Command: %1 %2 Empfangenes Kommando: %1 : %2 @@ -965,22 +925,18 @@ Grund: SearchWidget - &Copy &Kopieren - Copy &Link Location &Link-Adresse kopieren - Open Link in New Tab Link in neuem Reiter öffnen - Select All Alles markieren @@ -988,27 +944,22 @@ Grund: TopicChooser - Choose a topic for <b>%1</b>: Wählen Sie ein Thema für <b>%1</b>: - Choose Topic Thema wählen - &Topics &Themen - &Display &Anzeigen - &Close &Schließen diff --git a/translations/designer_de.ts b/translations/designer_de.ts index b508b7f..9ff5099 100644 --- a/translations/designer_de.ts +++ b/translations/designer_de.ts @@ -4,27 +4,22 @@ AbstractFindWidget - &Previous &Vorige - &Next &Nächste - &Case sensitive &Groß/Kleinschreibung - Whole &words Nur ganze &Worte - <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/shared/images/wrap.png">&nbsp;Die Suche hat das Ende erreicht @@ -32,17 +27,14 @@ AddLinkDialog - Insert Link Link einfügen - Title: Titel: - URL: URL: @@ -50,7 +42,6 @@ AppFontDialog - Additional Fonts Zusätzliche Schriftarten @@ -58,37 +49,30 @@ AppFontManager - '%1' is not a file. '%1' ist keine Datei. - The font file '%1' does not have read permissions. Die Fontdatei '%1' hat keinen Lesezugriff. - The font file '%1' is already loaded. Die Fontdatei ist bereits geladen. - The font file '%1' could not be loaded. Die Fontdatei '%1' konnte nicht geladen werden. - '%1' is not a valid font id. '%1' ist keine gültige Id einer Schriftart. - There is no loaded font matching the id '%1'. Es ist keine Schriftart mit der Id '%1' geladen. - The font '%1' (%2) could not be unloaded. Die Schriftart '%1' (%2) konnte nicht entladen werden. @@ -96,52 +80,42 @@ AppFontWidget - Fonts Schriftarten - Add font files Schriftarten hinzufügen - Remove current font file Schriftart entfernen - Remove all font files Alle Schriftarten entfernen - Add Font Files Schriftarten hinzufügen - Font files (*.ttf) Schriftarten (*.ttf) - Error Adding Fonts Fehler beim Hinzufügen einer Schriftart - Error Removing Fonts Fehler beim Entfernen von Schriftarten - Remove Fonts Schriftarten entfernen - Would you like to remove all fonts? Möchten Sie alle Schriftarten entfernen? @@ -149,12 +123,10 @@ AppearanceOptionsWidget - Form Formular - User Interface Mode Fenstermodus @@ -162,17 +134,14 @@ AssistantClient - Unable to send request: Assistant is not responding. Fehler beim Senden einer Anforderung: Das Programm Assistant antwortet nicht. - The binary '%1' does not exist. Die ausführbare Datei '%1' existiert nicht. - Unable to launch assistant (%1). Das Programm Assistant kann nicht gestartet werden (%1). @@ -180,92 +149,74 @@ BrushPropertyManager - Style Stil - No brush Kein Muster - Solid Voll - Dense 1 Dichte 1 - Dense 2 Dichte 2 - Dense 3 Dichte 3 - Dense 4 Dichte 4 - Dense 5 Dichte 5 - Dense 6 Dichte 6 - Dense 7 Dichte 7 - Horizontal Horizontal - Vertical Vertikal - Cross Kreuzende Linien - Backward diagonal Rückwärtslehnende Diagonalen - Forward diagonal Vorwärtslehnende Diagonalen - Crossing diagonal Kreuzende Diagonalen - Color Farbe - [%1, %2] [%1, %2] @@ -273,360 +224,277 @@ Command - - Change signal Signal ändern - - Change slot Slot ändern - Change signal-slot connection Signale-Slotverbindung ändern - Change sender Sender ändern - Change receiver Empfänger ändern - Add connection Verbindung hinzufügen - Adjust connection Verbindung anpassen - Delete connections Verbindungen löschen - Change source Startpunkt ändern - Change target Endpunkt ändern - Insert '%1' '%1' einfügen - Raise '%1' '%1' nach vorn - Lower '%1' '%1' nach hinten - Delete '%1' '%1' löschen - Reparent '%1' '%1' einem anderen Widget zuordnen - Promote to custom widget Platzhalter für benutzerdefinierte Klasse erzeugen - Demote from custom widget Platzhalter für benutzerdefinierte Klasse entfernen - Lay out using grid Objekte tabellarisch anordnen - Lay out vertically Objekte senkrecht anordnen - Lay out horizontally Objekte waagrecht anordnen - Break layout Layout auflösen - - - Move Page Seite verschieben - - - - Delete Page Seite löschen - - Page Seite - page Seite - - - - Insert Page Seite einfügen - Change Tab order Seite ändern - Create Menu Bar Menü erzeugen - Delete Menu Bar Menüleiste löschen - Create Status Bar Statuszeile erzeugen - Delete Status Bar Statuszeile löschen - Add Tool Bar Werkzeugleiste hinzufügen - Add Dock Window Dockfenster hinzufügen - Adjust Size of '%1' Größe von '%1' anpassen - Change Form Layout Item Geometry Ändern des Formularlayout-Elements - Change Layout Item Geometry Geometrie des Layoutelements ändern - Change Table Contents Tabelleninhalt ändern - Change Tree Contents Bauminhalt ändern - - Add action Aktion hinzufügen - - Remove action Aktion löschen - Add menu Menü hinzufügen - Remove menu Menü löschen - Create submenu Untermenü erzeugen - Delete Tool Bar Werkzeugleiste löschen - Set action text Text der Aktion setzen - Insert action Aktion einfügen - - Move action Aktion verschieben - Change Title Titel ändern - Insert Menu Menü einfügen - Change signals/slots Signale/Slots ändern - Delete Subwindow Subfenster löschen - Insert Subwindow Subfenster einfügen - subwindow subwindow - Subwindow Subwindow - Change Z-order of '%1' Z-Reihenfolge von '%1' ändern - Simplify Grid Layout Tabellarisches Layout vereinfachen - Create button group Buttons gruppieren - Break button group Button-Gruppierung aufheben - Break button group '%1' Gruppierung '%1' aufheben - Add buttons to group Buttons zur Gruppierung hinzufügen - Remove buttons from group Buttons aus Gruppierung entfernen - Morph %1/'%2' into %3 MorphWidgetCommand description %1/'%2' in %3 umwandeln - Change layout of '%1' from %2 to %3 Layout von '%1' von %2 in %3 umwandeln - - Add '%1' to '%2' Command description for adding buttons to a QButtonGroup '%1' zu '%2' hinzufügen - Remove '%1' from '%2' Command description for removing buttons from a QButtonGroup '%1' aus '%2' entfernen - Change script Skript ändern - Changed '%1' of '%2' '%1' von '%2' geändert - Changed '%1' of %n objects Singular will never be shown @@ -635,12 +503,10 @@ - Reset '%1' of '%2' '%1' von '%2' zurücksetzen - Reset '%1' of %n objects Singular will never be shown @@ -649,12 +515,10 @@ - Add dynamic property '%1' to '%2' Dynamische Eigenschaft '%1' zu '%2' hinzufügen - Add dynamic property '%1' to %n objects Singular will never be shown @@ -663,12 +527,10 @@ - Remove dynamic property '%1' from '%2' Dynamische Eigenschaft '%1' von '%2' entfernen - Remove dynamic property '%1' from %n objects Dynamische Eigenschaft '%1' des Objektes entfernen @@ -679,22 +541,18 @@ ConnectDialog - Configure Connection Verbindung bearbeiten - GroupBox GroupBox - Edit... Ändern... - Show signals and slots inherited from QWidget Signale und Slots von QWidget anzeigen @@ -702,17 +560,14 @@ ConnectionDelegate - <object> <Objekt> - <signal> <Signal> - <slot> <Slot> @@ -720,19 +575,16 @@ DPI_Chooser - Standard (96 x 96) Embedded device standard screen resolution Standardauflösung (96 x 96) - Greenphone (179 x 185) Embedded device screen resolution Greenphone (179 x 185) - High (192 x 192) Embedded device high definition screen resolution Hohe Auflösung (192 x 192) @@ -741,89 +593,72 @@ Designer - Qt Designer Qt Designer - Unable to launch %1. %1 konnte nicht gestartet werden. - %1 timed out. Zeitüberschreitung bei der Ausführung von %1. - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. Das Formular enthält freistehende Layoutelemente, die <b>nicht</b> gespeichert wurden. - Perhaps you forgot to create a layout? Haben Sie ein Layout eingefügt? - This file cannot be read because it was created using %1. Die Datei kann nicht gelesen werden, da sie mit %1 erzeugt wurde. - This file was created using Designer from Qt-%1 and cannot be read. Die Datei kann nicht gelesen werden, da sie mit dem Designer der Version %1 erzeugt wurde. - This file cannot be read because the extra info extension failed to load. Die Datei kann nicht gelesen werden (Fehler beim Laden der Daten der ExtraInfoExtension). - The converted file could not be read. Die konvertierte Datei konnte nicht gelesen werden. - Invalid UI file: The root element <ui> is missing. Fehler beim Lesen der ui-Datei: Das Wurzelelement <ui> fehlt. - An error has occurred while reading the UI file at line %1, column %2: %3 Fehler beim Lesen der ui-Datei bei Zeile %1, Spalte %2: %3 - This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. Die Datei wurde mit dem Designer der Version %1 erzeugt und wird zu einem neuen Formular konvertiert. - The old form has not been touched, but you will have to save the form under a new name. Sie bleibt unverändert.Das neue Formular muss unter einem neuen Namen abgespeichert werden. - This file was created using Designer from Qt-%1 and could not be read: %2 Das Lesen der von Designer %1 erzeugten Datei schlug fehl: %2 - Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. Bitte wandeln Sie sie mit dem Befehl <b>uic3&nbsp;-convert</b> zum Format von Qt 4. - Custom Widgets Benutzerdefinierte Widgets - Promoted Widgets Platzhalter für benutzerdefinierte Klassen @@ -831,12 +666,10 @@ DesignerMetaEnum - %1 is not a valid enumeration value of '%2'. %1 ist kein gültiger Wert der Aufzählung '%2'. - '%1' could not be converted to an enumeration value of type '%2'. '%1' konnte nicht in einen Wert der Aufzählung '%2' konvertiert werden. @@ -844,7 +677,6 @@ DesignerMetaFlags - '%1' could not be converted to a flag value of type '%2'. '%1' konnte nicht in einen Wert des Maskentyps '%2' konvertiert werden. @@ -852,13 +684,11 @@ DeviceProfile - '%1' is not a number. Reading a number for an embedded device profile '%1' ist keine gültige Zahl. - An invalid tag <%1> was encountered. Ein ungültiges Element '%1' wurde festgestellt. @@ -866,27 +696,22 @@ DeviceProfileDialog - &Family Schrift&familie - &Point Size Punktgröße - Style Stil - Device DPI Bildschirmauflösung - Name Name @@ -894,57 +719,46 @@ DeviceSkin - The image file '%1' could not be loaded. Die Pixmap-Datei '%1' konnte nicht geladen werden. - The skin directory '%1' does not contain a configuration file. Das Skin-Verzeichnis '%1' enthält keine Konfigurationsdatei. - The skin configuration file '%1' could not be opened. Die Skin-Konfigurationsdatei '%1' konnte nicht geöffnet werden. - Syntax error: %1 Syntaxfehler: %1 - The skin cursor image file '%1' does not exist. Die Skin-Bilddatei '%1' für den Cursor existiert nicht. - Syntax error in area definition: %1 Die Bereichsdefinition enthält einen Syntaxfehler: %1 - Mismatch in number of areas, expected %1, got %2. Die angegebene Anzahl der Bereiche (%1) stimmt nicht; es wurden %2 Bereiche gefunden. - The skin configuration file '%1' could not be read: %2 Die Skin-Konfigurationsdatei '%1' konnte nicht gelesen werden: %2 - The skin "up" image file '%1' does not exist. Die Skin-Konfigurationsdatei '%1' (oben) existiert nicht. - The skin "down" image file '%1' does not exist. Die Skin-Konfigurationsdatei '%1' (unten) existiert nicht. - The skin "closed" image file '%1' does not exist. Die Skin-Konfigurationsdatei '%1' (geschlossen) existiert nicht. @@ -952,7 +766,6 @@ EmbeddedOptionsControl - <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> Format embedded device profile description <html><table><tr><td><b>Font</b></td><td>%1, %2</td></tr><tr><td><b>Stil</b></td><td>%3</td></tr><tr><td><b>Auflösung</b></td><td>%4 x %5</td></tr></table></html> @@ -961,13 +774,11 @@ EmbeddedOptionsPage - Embedded Design Tab in preferences dialog Embedded-Entwurf - Device Profiles EmbeddedOptionsControl group box" Profile @@ -976,27 +787,22 @@ FontPanel - Font Schriftart - &Writing system Schrifts&ystem - &Family Schrift&familie - &Style &Stil - &Point size &Punktgröße @@ -1004,22 +810,18 @@ FontPropertyManager - PreferDefault Voreinstellung bevorzugt - NoAntialias Keine Kantenglättung - PreferAntialias Kantenglättung bevorzugen - Antialiasing Kantenglättung @@ -1027,43 +829,44 @@ FormBuilder - Invalid stretch value for '%1': '%2' - Parsing layout stretch values + Parsing layout stretch values +---------- +Parsing layout stretch values +---------- +Parsing layout stretch values Ungültiger Stretch-Wert für '%1': '%2' - Invalid minimum size for '%1': '%2' - Parsing grid layout minimum size values + Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values FormEditorOptionsPage - %1 % %1 % - Preview Zoom Vergrößerungsfaktor für Vorschau - Default Zoom Vorgabe für Vergrößerungsfaktor - Forms Tab in preferences dialog Formulare - Default Grid Raster für neue Formulare @@ -1071,37 +874,30 @@ FormLayoutRowDialog - Add Form Layout Row Formularlayoutzeile hinzufügen - &Label text: Be&schriftung: - Field &type: &Datentyp: - &Field name: &Feldname: - &Buddy: &Buddy: - &Row: &Zeile: - Label &name: &Label-Name: @@ -1109,12 +905,10 @@ FormWindow - Unexpected element <%1> Ungültiges Element <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Fehler beim Einfügen der Zwischenablage, Zeile %1, Spalte %2: %3 @@ -1122,62 +916,50 @@ FormWindowSettings - Form Settings Formulareinstellungen - Layout &Default &Layout-Standardwerte - &Spacing: A&bstand: - &Margin: &Rand: - &Layout Function Layout&funktion - Ma&rgin: Ra&nd: - Spa&cing: Abstan&d: - Embedded Design Embedded-Entwurf - &Author &Autor - &Include Hints &Include-Dateien - &Pixmap Function &Pixmapfunktion - Grid Raster @@ -1185,7 +967,6 @@ IconSelector - All Pixmaps ( Alle Pixmap-Dateien ( @@ -1193,7 +974,6 @@ ItemPropertyBrowser - XX Icon Selected off Sample string to determinate the width for the first column of the list item property browser Ausgewähltes Icon, aus @@ -1202,33 +982,27 @@ MainWindowBase - Main Not currently used (main tool bar) Haupt-Werkzeugleiste - File Datei - Edit Bearbeiten - Tools Werkzeuge - Form Formular - Qt Designer Qt Designer @@ -1236,52 +1010,42 @@ NewForm - C&reate &Neu von Vorlage - Recent Zuletzt bearbeitet - &Close &Schließen - &Open... &Öffnen... - &Recent Forms &Zuletzt bearbeitete Formulare - Read error Lesefehler - New Form Neues Formular - Show this Dialog on Startup Diesen Dialog zu Beginn anzeigen - A temporary form file could not be created in %1. In dem Verzeichnis %1 konnte keine temporäre Formulardatei angelegt werden. - The temporary form file %1 could not be written. Die temporäre Formulardatei %1 konnte nicht geschrieben werden. @@ -1289,22 +1053,18 @@ ObjectInspectorModel - Object Objekt - Class Klasse - separator Trenner - <noname> <unbenannt> @@ -1312,12 +1072,10 @@ ObjectNameDialog - Change Object Name Objektnamen bearbeiten - Object Name Objektname @@ -1325,12 +1083,10 @@ PluginDialog - Plugin Information Plugins - 1 1 @@ -1338,7 +1094,6 @@ PreferencesDialog - Preferences Einstellungen @@ -1346,32 +1101,26 @@ PreviewConfigurationWidget - Form Formular - Print/Preview Configuration Druck/Vorschau - Style Stil - Style sheet Style sheet - ... ... - Device skin Geräte-Skin @@ -1379,7 +1128,6 @@ PromotionModel - Not used Usage of promoted widgets Nicht verwendet @@ -1388,8 +1136,6 @@ Q3WizardContainer - - Page Seite @@ -1397,58 +1143,47 @@ QAbstractFormBuilder - Unexpected element <%1> Ungültiges Element <%1> - An error has occurred while reading the UI file at line %1, column %2: %3 Fehler beim Lesen der ui-Datei bei Zeile %1, Spalte %2: %3 - Invalid UI file: The root element <ui> is missing. Fehler beim Lesen der ui-Datei: Das Wurzelelement <ui> fehlt. - The creation of a widget of the class '%1' failed. Es konnte kein Widget der Klasse '%1' erzeugt werden. - Attempt to add child that is not of class QWizardPage to QWizard. Es wurde versucht, einem Objekt der Klasse QWizard eine Seite hinzuzufügen, die nicht vom Typ QWizardPage ist. - 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. Es wurde versucht, ein Layout auf das Widget '%1' (%2) zu setzen, welches bereits ein Layout vom Typ %3 hat. Das deutet auf eine Inkonsistenz in der ui-Datei hin. - Empty widget item in %1 '%2'. Leeres Widget-Item in %1 '%2'. - Flags property are not supported yet. Eigenschaften des Typs "Flag" werden nicht unterstützt. - While applying tab stops: The widget '%1' could not be found. Fehler beim Setzen der Tabulatorreihenfolge: Es konnte kein Widget mit dem Namen '%1' gefunden werden. - Invalid QButtonGroup reference '%1' referenced by '%2'. Ungültige Referenz der Buttongruppe '%1', referenziert von '%2'. - This version of the uitools library is linked without script support. Dies Version der uitools-Bibliothek unterstützt keine Skripte. @@ -1456,12 +1191,10 @@ This indicates an inconsistency in the ui-file. QAxWidgetPlugin - ActiveX control ActiveX-Steuerelement - ActiveX control widget ActiveX-Widget @@ -1469,22 +1202,18 @@ This indicates an inconsistency in the ui-file. QAxWidgetTaskMenu - Set Control Steuerelement setzen - Reset Control Steuerelement zurücksetzen - Licensed Control Lizensiertes Steuerelement - The control requires a design-time license Das Steuerelement erfordert eine Lizenz zur Entwurfszeit @@ -1492,67 +1221,54 @@ This indicates an inconsistency in the ui-file. QCoreApplication - %1 is not a promoted class. %1 ist kein Platzhalter für eine benutzerdefinierte Klasse. - The base class %1 is invalid. %1 ist keine gültige Basisklasse. - The class %1 already exists. Es existiert bereits eine Klasse namens %1. - Promoted Widgets Platzhalter für benutzerdefinierte Klassen - The class %1 cannot be removed Die Klasse %1 kann nicht gelöscht werden - The class %1 cannot be removed because it is still referenced. Die Klasse %1 kann nicht gelöscht werden, da sie gegenwärtig verwendet wird. - The class %1 cannot be renamed Die Klasse %1 kann nicht umbenannt werden - The class %1 cannot be renamed to an empty name. Der Klassennamen darf nicht leer sein (%1). - There is already a class named %1. Es existiert bereits eine Klasse namens %1. - Cannot set an empty include file. Der Name der Include-Datei darf nicht leer sein. - Exception at line %1: %2 Ausnahmefehler bei Zeile %1: %2 - Unknown error Unbekannter Fehler - An error occurred while running the script for %1: %2 Script: %3 Bei der Ausführung des Skripts für %1 trat ein Fehler auf: %2Skript: %3 @@ -1561,17 +1277,14 @@ Script: %3 QDesigner - %1 - warning %1 - Warnung - Qt Designer Qt Designer - This application cannot be used for the Console edition of Qt Diese Anwendung kann in der Qt-Konsolen-Edition nicht benutzt werden @@ -1579,207 +1292,162 @@ Script: %3 QDesignerActions - Edit Widgets Widgets bearbeiten - &Quit &Beenden - &Minimize &Minimieren - Bring All to Front Alle Formulare anzeigen - Preferences... Einstellungen... - Clear &Menu Menü &löschen - CTRL+SHIFT+S CTRL+SHIFT+S - CTRL+R CTRL+R - CTRL+M CTRL+M - Qt Designer &Help &Hilfe zum Qt Designer - Current Widget Help Hilfe zum ausgewählten Widget - What's New in Qt Designer? Was gibt es Neues beim Qt Designer? - About Plugins Plugins - - About Qt Designer Über Qt Designer - About Qt Über Qt - - Open Form Formular öffnen - - - Designer UI files (*.%1);;All Files (*) Designer-UI-Dateien (*.%1);;Alle Dateien (*) - %1 already exists. Do you want to replace it? Die Datei %1 existiert bereits. Möchten Sie sie überschreiben? - Saved %1. Das Formular %1 wurde gespeichert... - &Recent Forms &Zuletzt bearbeitete Formulare - Designer Designer - Feature not implemented yet! Diese Funktionalität ist noch nicht implementiert. - Read error Lesefehler - %1 Do you want to update the file location or generate a new form? %1 Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen? - &Update &Anderer Name - &New Form &Neues Formular - - Save Form? Formular speichern? - Could not open file Die Datei konnte nicht geöffnet werden - - The backup file %1 could not be written. Hintergrundsicherung: Die Datei %1 konnte nicht geschrieben werden. - The backup directory %1 could not be created. Hintergrundsicherung: Das Verzeichnis %1 konnte nicht angelegt werden. - The temporary backup directory %1 could not be created. Hintergrundsicherung: Das temporäre Verzeichnis %1 konnte nicht angelegt werden. - Please close all forms to enable the loading of additional fonts. Bitte schließen Sie alle Formulare, um zusätzliche Schriftarten zu laden. - Select New File Andere Datei - Could not write file Die Datei konnte nicht geschrieben werden - &Close Preview Vorschau &schließen - Save &Image... &Vorschaubild speichern... - &Print... &Drucken... - Additional Fonts... &Zusätzliche Schriftarten... - The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? @@ -1788,7 +1456,6 @@ Would you like to retry or select a different file? Möchten Sie es noch einmal versuchen oder eine andere Datei auswählen? - It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? @@ -1797,96 +1464,74 @@ Would you like to retry? Möchten Sie es noch einmal versuchen? - Image files (*.%1) Bilddateien (*.%1) - - Save Image Bild speichern - The file %1 could not be written. Die Datei %1 konnte nicht geschrieben werden. - &New... &Neu... - &Open... &Öffnen... - &Save &Speichern - Save &As... Speichern &unter... - Save A&ll &Alles speichern - Save As &Template... Als Vor&lage abspeichern... - - &Close &Schließen - View &Code... &Code anzeigen... - - Save Form As Formular unter einem anderen Namen speichern - Preview failed Es konnte keine Vorschau erzeugt werden - Code generation failed Es konnte kein Code generiert werden - - Assistant Assistant - Saved image %1. Das Vorschaubild wurde unter %1 gespeichert. - Printed %1. %1 wurde gedruckt. - ALT+CTRL+S ALT+CTRL+S @@ -1894,7 +1539,6 @@ Möchten Sie es noch einmal versuchen? QDesignerAppearanceOptionsPage - Appearance Tab in preferences dialog Ansicht @@ -1903,17 +1547,14 @@ Möchten Sie es noch einmal versuchen? QDesignerAppearanceOptionsWidget - Docked Window Dockfenster-Modus - Multiple Top-Level Windows Multifenster-Modus - Toolwindow Font Font für Dockfenster @@ -1921,22 +1562,18 @@ Möchten Sie es noch einmal versuchen? QDesignerAxWidget - Reset control Steuerelement zurücksetzen - Set control Steuerelement setzen - Control loaded Steuerelement geladen - A COM exception occurred when executing a meta call of type %1, index %2 of "%3". Beim Methodenaufruf des Typs %1, index %2 von "%3" trat eine COM-Ausnahme auf. @@ -1944,17 +1581,14 @@ Möchten Sie es noch einmal versuchen? QDesignerFormBuilder - Script errors occurred: Es sind Skriptfehler aufgetreten: - The preview failed to build. Es konnte keine Vorschau erzeugt werden. - Designer Designer @@ -1962,22 +1596,18 @@ Möchten Sie es noch einmal versuchen? QDesignerFormWindow - %1 - %2[*] %1 - %2[*] - Save Form? Formular speichern? - Do you want to save the changes to this document before closing? Möchten Sie die Änderungen an diesem Formular speichern? - If you don't save, your changes will be lost. Die Änderungen gehen verloren, wenn Sie nicht speichern. @@ -1985,38 +1615,30 @@ Möchten Sie es noch einmal versuchen? QDesignerMenu - Type Here Geben Sie Text ein - Add Separator Trenner hinzufügen - Insert separator Trenner einfügen - Remove action '%1' Aktion '%1' löschen - Remove separator Trenner löschen - - Add separator Trenner hinzufügen - Insert action Aktion einfügen @@ -2024,22 +1646,18 @@ Möchten Sie es noch einmal versuchen? QDesignerMenuBar - Type Here Geben Sie Text ein - Remove Menu '%1' Menü '%1' öschen - Remove Menu Bar Menüleiste löschen - Menu Menü @@ -2047,37 +1665,30 @@ Möchten Sie es noch einmal versuchen? QDesignerPluginManager - An XML error was encountered when parsing the XML of the custom widget %1: %2 Fehler beim Auswerten des XML des benutzerdefinierten Widgets %1: %2 - A required attribute ('%1') is missing. Bei dem Element fehlt ein erforderliches Attribut ('%1'). - An invalid property specification ('%1') was encountered. Supported types: %2 '%1' ist keine gültige Spezifikation einer Eigenschaft. Die folgenden Typen werden unterstützt: %2 - '%1' is not a valid string property specification. '%1' ist keine gültige Spezifikation einer Zeichenketten-Eigenschaft. - The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. Der XML-Code für das Widget %1 enthält kein gültiges Wurzelelement (<widget>, <ui>). - The class attribute for the class %1 is missing. Das Klassenattribut der Klasse %1 fehlt. - The class attribute for the class %1 does not match the class name %2. Das Klassenattribut der Klasse %1 entspricht nicht dem Klassennamen (%2). @@ -2085,7 +1696,6 @@ Möchten Sie es noch einmal versuchen? QDesignerPropertySheet - Dynamic Properties Dynamische Eigenschaften @@ -2093,31 +1703,26 @@ Möchten Sie es noch einmal versuchen? QDesignerResource - The layout type '%1' is not supported, defaulting to grid. Der Layout-Typ '%1' wird nicht unterstützt; es wurde ein Grid-Layout erzeugt. - 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. Die Container-Extension des Widgets '%1' (%2) gab für Seite %5 ein Widget '%3' (%4) zurück, was nicht von Designer verwaltet wird. Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifiziert werden. - Unexpected element <%1> Parsing clipboard contents Ungültiges Element <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Parsing clipboard contents Fehler beim Einfügen der Zwischenablage, Zeile %1, Spalte %2: %3 - Error while pasting clipboard contents: The root element <ui> is missing. Parsing clipboard contents Fehler beim Einfügen der Zwischenablage: Das Wurzelelement <ui> fehlt. @@ -2126,12 +1731,10 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QDesignerSharedSettings - The template path %1 could not be created. Das Vorlagenverzeichnis %1 konnte nicht angelegt werden. - An error has been encountered while parsing device profile XML: %1 Beim Lesen des Profils trat ein Fehler auf: %1 @@ -2139,32 +1742,26 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QDesignerToolWindow - Property Editor Eigenschaften - Action Editor Aktionseditor - Object Inspector Objektanzeige - Resource Browser Ressourcen - Signal/Slot Editor Signale und Slots - Widget Box Widget-Box @@ -2172,97 +1769,78 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QDesignerWorkbench - &File &Datei - F&orm F&ormular - Preview in Vorschau im - &Window &Fenster - &Help &Hilfe - Edit Bearbeiten - Toolbars Werkzeugleisten - Save Forms? Formulare speichern? - &View &Ansicht - &Settings &Einstellungen - Widget Box Widgetbox - If you do not review your documents, all your changes will be lost. Die Änderungen gehen verloren, wenn Sie sich die Formulare nicht noch einmal ansehen. - Discard Changes Änderungen verwerfen - Review Changes Änderungen ansehen - Backup Information Information zur Hintergrundsicherung - The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? Designer wurde offenbar nicht ordnungsgemäß beendet; es existieren noch Dateien von der Hintergrundsicherung. Möchten Sie sie laden? - The file <b>%1</b> could not be opened. Die Datei <b>%1</b> konnte nicht geöffnet werden. - The file <b>%1</b> is not a valid Designer UI file. Die Datei <b>%1</b> ist keine gültige Designer-Datei. - There are %n forms with unsaved changes. Do you want to review these changes before quitting? Das Formular wurde geändert. Möchten Sie sich die Änderungen ansehen, bevor Sie das Programm beenden? @@ -2273,53 +1851,47 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QFormBuilder - An empty class name was passed on to %1 (object name: '%2'). - Empty class name passed to widget factory method + Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method Der Methode %1 wurde ein leerer Klassennamen übergeben (Name '%2'). - QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. QFormBuilder konnte kein benutzerdefiniertes Widget der Klasse '%1' erzeugen; es wurde ein Widget der Basisklasse '%2' erzeugt. - QFormBuilder was unable to create a widget of the class '%1'. QFormBuilder konnte kein Objekt der Klasse '%1' erzeugen. - The layout type `%1' is not supported. Layouts des Typs `%1' werden nicht unterstützt. - The set-type property %1 could not be read. Die Eigenschaft %1 konnte nicht gelesen werden (Typ: Menge). - The enumeration-type property %1 could not be read. Die Eigenschaft %1 konnte nicht gelesen werden (Typ: Aufzählung). - Reading properties of the type %1 is not supported yet. Das Lesen von Eigenschaften des Typs %1 wird nicht unterstützt. - The property %1 could not be written. The type %2 is not supported yet. Die Eigenschaft %1 konnte nicht geschrieben werden, da der Typ %2 nicht unterstützt wird. - The enumeration-value '%1' is invalid. The default value '%2' will be used instead. Der Aufzählungswert '%1' ist ungültig. Es wird der Vorgabewert '%2' verwendet. - The flag-value '%1' is invalid. Zero will be used instead. Der Flag-Wert '%1' ist ungültig. Es wird der Wert 0 verwendet. @@ -2327,48 +1899,38 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QStackedWidgetEventFilter - Previous Page Vorige Seite - Next Page Nächste Seite - Delete Löschen - Before Current Page Davor - After Current Page Danach - Change Page Order... Seiten umordnen.... - Change Page Order Seiten umordnen - Page %1 of %2 Seite %1 von %2 - - Insert Page Seite einfügen @@ -2376,12 +1938,10 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QStackedWidgetPreviewEventFilter - Go to previous page of %1 '%2' (%3/%4). Gehe zur vorigen Seite von %1 '%2' (%3/%4). - Go to next page of %1 '%2' (%3/%4). Gehe zur nächste Seite von %1 '%2' (%3/%4). @@ -2389,28 +1949,22 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QTabWidgetEventFilter - Delete Löschen - Before Current Page Davor - After Current Page Danach - Page %1 of %2 Seite %1 von %2 - - Insert Page Seite einfügen @@ -2418,37 +1972,30 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QToolBoxHelper - Delete Page Seite löschen - Before Current Page Davor - After Current Page Danach - Change Page Order... Seiten umordnen.... - Change Page Order Seiten umordnen - Page %1 of %2 Seite %1 von %2 - Insert Page Seite einfügen @@ -2456,15 +2003,10 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtBoolEdit - - - True Wahr - - False Falsch @@ -2472,12 +2014,10 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtBoolPropertyManager - True Wahr - False Falsch @@ -2485,7 +2025,6 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtCharEdit - Clear Char Zeichen löschen @@ -2493,7 +2032,6 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtColorEditWidget - ... ... @@ -2501,22 +2039,18 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtColorPropertyManager - Red Rot - Green Grün - Blue Blau - Alpha Alpha @@ -2524,97 +2058,78 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtCursorDatabase - Arrow Pfeil - Up Arrow Pfeil hoch - Cross Kreuzende Linien - Wait Sanduhr - IBeam IBeam - Size Vertical Vertikal vergrößern - Size Horizontal Horizontal vergrößern - Size Backslash Vergrößern/Backslash - Size Slash Vergrößern/Slash - Size All Alles vergrößern - Blank Leer - Split Vertical Vertikal aufteilen - Split Horizontal Horizontal aufteilen - Pointing Hand Hand - Forbidden Verboten - Open Hand Geöffnete Hand - Closed Hand Geschlossene Hand - What's This What's This - Busy Beschäftigt @@ -2622,12 +2137,10 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtFontEditWidget - ... ... - Select Font Schriftart auswählen @@ -2635,37 +2148,30 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtFontPropertyManager - Family Familie - Point Size Punktgröße - Bold Fett - Italic Kursiv - Underline Unterstreichen - Strikeout Durchgestrichen - Kerning Kerning @@ -2673,7 +2179,6 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtGradientDialog - Edit Gradient Gradienten bearbeiten @@ -2681,304 +2186,242 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtGradientEditor - Start X Anfangswert X - Start Y Anfangswert Y - Final X Endwert X - Final Y Endwert Y - - Central X Mittelpunkt X - - Central Y Mittelpunkt Y - Focal X Fokus X - Focal Y Fokus Y - Radius Radius - Angle Winkel - Linear Linear - Radial Radial - Conical Konisch - Pad Auffüllen - Repeat Wiederholen - Reflect Spiegeln - Form Form - Gradient Editor Gradienten bearbeiten - 1 1 - 2 2 - 3 3 - 4 4 - 5 5 - Gradient Stops Editor Bezugspunkte - 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. Diese Fläche dient zum Bearbeiten der Bezugspunkte. Doppelklicken Sie auf einen Bezugspunkt, um ihn zu duplizieren. Doppelklicken Sie auf die Fläche, um einen neuen Bezugspunkt zu erzeugen. Benutzen Sie Drag & Drop um einen Punkt zu verschieben. Die rechte Maustaste aktiviert ein Menü mit weiteren Optionen. - Zoom Vergrößern - Position Position - Hue Farbton - H H - Saturation Sättigung - S S - Sat Sättigung - Value Wert - V V - Val Wert - Alpha Alpha - A A - Type Typ - Spread Ausbreitung - Color Farbe - Current stop's color Farbe des Bezugspunkts - HSV HSV - RGB RGB - Current stop's position Position des Bezugspunkts - % % - Zoom In Vergrößern - Zoom Out Verkleinern - Toggle details extension Weiter Optionen einblenden - > > - Linear Type Typ linear - ... ... - Radial Type Typ radial - Conical Type Typ konisch - Pad Spread Auffüllen - Repeat Spread Wiederholen - Reflect Spread Spiegeln - 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. Dieser Bereich zeigt eine Vorschau des in Bearbeitung befindlichen Gradienten. Hier können Gradienttyp-spezifische Parameter, wie Start- und Endpunkt, Radius etc. per Drag & Drop bearbeitet werden. - Show HSV specification HSV-Spezifikation anzeigen - Show RGB specification RGB-Spezifikation anzeigen - Reset Zoom Vergrößerung zurücksetzen @@ -2986,37 +2429,30 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtGradientStopsWidget - New Stop Neuer Bezugspunkt - Delete Löschen - Flip All Alles umkehren - Select All Alles auswählen - Zoom In Vergrößern - Zoom Out Verkleinern - Reset Zoom Vergrößerung zurücksetzen @@ -3024,46 +2460,34 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtGradientView - Grad Grad - Remove Gradient Gradient löschen - Are you sure you want to remove the selected gradient? Möchten Sie den ausgewählten Gradienten löschen? - - New... Neu... - - Edit... Ändern... - - Rename Umbenennen - - Remove Löschen - Gradient View Gradientenanzeige @@ -3071,8 +2495,6 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtGradientViewDialog - - Select Gradient Gradienten auswählen @@ -3080,7 +2502,6 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtKeySequenceEdit - Clear Shortcut Tastenkürzel löschen @@ -3088,17 +2509,14 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtLocalePropertyManager - %1, %2 %1, %2 - Language Sprache - Country Land @@ -3106,17 +2524,14 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtPointFPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3124,17 +2539,14 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtPointPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3142,12 +2554,10 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtPropertyBrowserUtils - [%1, %2, %3] (%4) [%1, %2, %3] (%4) - [%1, %2] [%1, %2] @@ -3155,27 +2565,22 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtRectFPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Breite - Height Höhe @@ -3183,27 +2588,22 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtRectPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Breite - Height Höhe @@ -3211,33 +2611,26 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier QtResourceEditorDialog - Edit Resources Ressourcen bearbeiten - New... Neu... - - New Resource File Neue Ressourcendatei - <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> <p><b>Hinweis:</b><p>Die gewählte Datei: </p><p>%1</p><p>befindet sich außerhalb des Verzeichnisses der Ressourcendatei:</p> - <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> <p>Bitte wählen Sie:</p><table><tr><th align="left">Kopieren</th><td>um die Datei in das Verzeichnis der Ressourcendatei zu kopieren.</td></tr><tr><th align="left">Kopieren nach...</th><td>um die Datei in ein Unterverzeichnis der Ressourcendatei zu kopieren.</td></tr><tr><th align="left">Beibehalten</th><td>um die Datei in ihrem gegenwärtigen Verzeichnis zu verwenden.</td></tr></table> - Could not copy %1 to @@ -3248,248 +2641,192 @@ zu: %2 - A parse error occurred at line %1, column %2 of %3: %4 In der Datei %3 wurde bei Zeile %1, Spalte %2 ein Fehler gefunden: %4 - Open... Öffnen... - - Remove Löschen - - Move Up Nach oben - - Move Down Nach unten - - Add Prefix Präfix hinzufügen - Add Files... Dateien hinzufügen... - Change Prefix Präfix ändern - Change Language Sprache ändern - Change Alias Alias ändern - Clone Prefix... Präfix doppeln... - Prefix / Path Präfix / Pfad - Language / Alias Sprache / Alias - <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> <html><p><b>Warnung:</b> Beim Neuladen der Ressourcen traten Fehler auf:</p><pre>%1</pre></html> - Resource Warning Ressourcen - Warnung - Dialog Dialog - New File Neue Datei - N N - Remove File Datei löschen - R L - I I - New Resource Neue Ressource - A A - Remove Resource or File Datei oder Ressource löschen - %1 already exists. Do you want to replace it? Die Datei %1 existiert bereits. Wollen Sie sie überschreiben? - The file does not appear to be a resource file; element '%1' was found where '%2' was expected. Die Datei ist offenbar keine Ressourcendatei; an Stelle des erwarteten Elements '%2' wurde das Element '%1' gefunden. - %1 [read-only] %1 [schreibgeschützt] - - %1 [missing] %1 [fehlt] - <no prefix> <kein Präfix> - - Resource files (*.qrc) Ressourcendateien (*.qrc) - Import Resource File Ressourcendatei importieren - newPrefix newPrefix - Add Files Dateien hinzufügen - Incorrect Path Fehlerhafte Pfadangabe - - - - Copy Kopieren - Copy As... Kopieren nach... - Keep Beibehalten - Skip Überspringen - Clone Prefix Präfix doppeln - 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". Bitte geben Sie den Suffix ein, der an den Namen der gedoppelten Dateien angehängt werden soll. Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. - - Copy As Kopieren nach - <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> <p>Die gewählte Datei: </p><p>%1</p><p>befindet sich außerhalb des Verzeichnisses der Ressourcendatei:</p><p>%2</p><p>Bitte wählen Sie einen anderen Pfad, der im Verzeichnis der Ressourcendatei enthalten ist.</p> - Could not overwrite %1. %1 konnte nicht überschrieben werden. - Save Resource File Ressourcendatei speichern - Could not write %1: %2 Die Datei %1konnte nicht geschrieben werden: %2 - Open Resource File Ressourcendatei öffnen @@ -3497,24 +2834,20 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtResourceView - Size: %1 x %2 %3 Größe: %1 x %2 %3 - Edit Resources... Ressourcen bearbeiten... - Reload Neu laden - Copy Path Pfad kopieren @@ -3522,7 +2855,6 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtResourceViewDialog - Select Resource Ressource auswählen @@ -3530,17 +2862,14 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtSizeFPropertyManager - %1 x %2 %1 x %2 - Width Breite - Height Höhe @@ -3548,33 +2877,26 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtSizePolicyPropertyManager - - <Invalid> <Ungültig> - [%1, %2, %3, %4] [%1, %2, %3, %4] - Horizontal Policy Horizontale Einstellung - Vertical Policy Vertikale Einstellung - Horizontal Stretch Horizontaler Dehnungsfaktor - Vertical Stretch Vertikaler Dehnungsfaktor @@ -3582,17 +2904,14 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtSizePropertyManager - %1 x %2 %1 x %2 - Width Breite - Height Höhe @@ -3600,107 +2919,86 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtToolBarDialog - < S E P A R A T O R > < T R E N N E R > - Customize Toolbars Werkzeugleisten anpassen - 1 1 - Actions Aktionen - Toolbars Werkzeugleisten - New Neu - Remove Löschen - Rename Umbenennen - Up Nach oben - <- <- - -> -> - Down Nach unten - Current Toolbar Actions Aktionen - Custom Toolbar Benutzerdefinierte Werkzeugleiste - Add new toolbar Neue Werkzeugleiste hinzufügen - Remove selected toolbar Ausgewählte Werkzeugleiste '%1' löschen - Rename toolbar Werkzeugleiste umbenennen - Move action up Aktion eins nach oben - Remove action from toolbar Aktion aus Werkzeugleiste entfernen - Add action to toolbar Aktion zu Werkzeugleiste hinzufügen - Move action down Aktion eins nach unten @@ -3708,12 +3006,10 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. QtTreePropertyBrowser - Property Eigenschaft - Value Wert @@ -3721,64 +3017,52 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein. SaveFormAsTemplate - Add path... Verzeichnis anlegen... - Template Exists Die Vorlage existiert bereits - A template with the name %1 already exists. Do you want overwrite the template? Es existiert bereits eine Vorlage mit dem Namen %1. Möchten Sie sie überschreiben? - Overwrite Template Vorlage überschreiben - Open Error Fehler beim Öffnen - There was an error opening template %1 for writing. Reason: %2 Die Vorlage %1 konnte nicht in eine Datei geschrieben werden: %2 - Write Error Schreibfehler - There was an error writing the template %1 to disk. Reason: %2 Die Vorlage %1 konnte nicht in eine Datei geschrieben werden: %2 - Pick a directory to save templates in Wählen Sie ein Verzeichnis zum Abspeichern der Vorlagen aus - Save Form As Template Formular als Vorlage abspeichern - &Category: &Kategorie: - &Name: &Name: @@ -3786,7 +3070,6 @@ Möchten Sie sie überschreiben? ScriptErrorDialog - An error occurred while running the scripts for "%1": Bei der Ausführung der Skripte für "%1" sind Fehler aufgetreten: @@ -3796,22 +3079,18 @@ Möchten Sie sie überschreiben? SelectSignalDialog - Go to slot - Select signal - signal Signal - class Klasse @@ -3819,7 +3098,6 @@ Möchten Sie sie überschreiben? SignalSlotConnection - SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) SENDER(%1), SIGNAL(%2), EMPFÄNGER(%3), SLOT(%4) @@ -3827,32 +3105,26 @@ Möchten Sie sie überschreiben? SignalSlotDialogClass - Signals and slots Signale und Slots - Slots Slots - ... ... - Signals Signale - Add Hinzufügen - Delete Löschen @@ -3860,12 +3132,10 @@ Möchten Sie sie überschreiben? Spacer - Horizontal Spacer '%1', %2 x %3 Horizontales Füllelement '%1', %2 x %3 - Vertical Spacer '%1', %2 x %3 Vertikales Füllelement '%1', %2 x %3 @@ -3873,7 +3143,6 @@ Möchten Sie sie überschreiben? TemplateOptionsPage - Template Paths Tab in preferences dialog Verzeichnisse für Vorlagen @@ -3882,52 +3151,42 @@ Möchten Sie sie überschreiben? ToolBarManager - Configure Toolbars... Werkzeugleiste konfigurieren... - Window Fenster - Help Hilfe - Style Stil - Dock views Dockfenster - File Datei - Edit Bearbeiten - Tools Werkzeuge - Form Formular - Toolbars Werkzeugleisten @@ -3935,30 +3194,64 @@ Möchten Sie sie überschreiben? VersionDialog - <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>Version %2 - Qt Designer Qt Designer - <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> - %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + VideoPlayerTaskMenu + + Available Mime Types + Verfügbare Mime-Typen + + + Display supported mime types... + Verfügbare Mime-Typen anzeigen... + + + Load... + Laden... + + + Play + Wiedergabe + + + Pause + Pause + + + Stop + Stop + + + Choose Video Player Media Source + Medienquelle wählen + + + An error has occurred in '%1': %2 + In '%1' ist ein Fehler aufgetreten: %2 + + + Video Player Error + Video Player Fehler + + + WidgetDataBase - 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. Die Datei enthält ein benutzerdefiniertes Widget '%1' dessen Basisklasse (%2) nicht mit dem Eintrag in der Widget-Datenbank übereinstimmt. Die Widget-Datenbank wird nicht geändert. @@ -3966,87 +3259,70 @@ Möchten Sie sie überschreiben? qdesigner_internal::ActionEditor - Actions Aktionen - New... Neu... - Delete Löschen - New action Neue Aktion - Edit action Aktion ändern - Edit... Ändern... - Go to slot... Slot anzeigen... - Copy Kopieren - Cut Ausschneiden - Paste Einfügen - Select all Alles auswählen - Icon View Icon-Ansicht - Detailed View Detaillierte Ansicht - Remove actions Aktionen löschen - Remove action '%1' Aktion '%1' löschen - Used In Verwendet in - Configure Action Editor Aktionseditor konfigurieren @@ -4054,32 +3330,26 @@ Möchten Sie sie überschreiben? qdesigner_internal::ActionModel - Name Name - Used Verwendet - Text Text - Shortcut Tastenkürzel - Checkable Ankreuzbar - ToolTip ToolTip @@ -4087,27 +3357,22 @@ Möchten Sie sie überschreiben? qdesigner_internal::BrushManagerProxy - The element '%1' is missing the required attribute '%2'. Bei dem Element fehlt das erforderliche Attribut '%2'. - Empty brush name encountered. Fehlender Name bei der Brush-Definition. - An unexpected element '%1' was encountered. Ein ungültiges Element '%1' wurde festgestellt. - An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 Fehler beim Lesen der Brush-Datei '%1' bei Zeile %2, Spalte %3: %4 - An error occurred when reading the resource file '%1' at line %2, column %3: %4 Fehler beim Lesen der Ressourcen-Datei '%1' bei Zeile %2, Spalte %3: %4 @@ -4115,17 +3380,14 @@ Möchten Sie sie überschreiben? qdesigner_internal::BuddyEditor - Add buddy Buddy hinzufügen - Remove buddies Buddies löschen - Remove %n buddies Buddy löschen @@ -4133,7 +3395,6 @@ Möchten Sie sie überschreiben? - Add %n buddies Buddy hinzufügen @@ -4141,7 +3402,6 @@ Möchten Sie sie überschreiben? - Set automatically Automatisch setzen @@ -4149,7 +3409,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::BuddyEditorPlugin - Edit Buddies Buddies bearbeiten @@ -4157,7 +3416,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::BuddyEditorTool - Edit Buddies Buddies bearbeiten @@ -4165,12 +3423,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::ButtonGroupMenu - Select members Mitglieder auswählen - Break Aufheben @@ -4178,32 +3434,26 @@ Möchten Sie sie überschreiben? qdesigner_internal::ButtonTaskMenu - Assign to button group Gruppierung - Button group Gruppierung - New button group Neue Gruppierung - Change text... Text ändern... - None Keine - Button group '%1' Gruppierung '%1' @@ -4211,57 +3461,46 @@ Möchten Sie sie überschreiben? qdesigner_internal::CodeDialog - Save... Speichern... - Copy All Alles kopieren - &Find in Text... &Suchen... - A temporary form file could not be created in %1. In dem Verzeichnis %1 konnte keine temporäre Formulardatei angelegt werden. - The temporary form file %1 could not be written. Die temporäre Formulardatei %1 konnte nicht geschrieben werden. - %1 - [Code] %1 - [Code] - Save Code Code speichern - Header Files (*.%1) Include-Dateien (*.%1) - The file %1 could not be opened: %2 Die Datei %1 konnte nicht geöffnet werden: %2 - The file %1 could not be written: %2 Die Datei %1 konnte nicht geschrieben werden: %2 - %1 - Error %1 - Fehler @@ -4269,7 +3508,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::ColorAction - Text Color Schriftfarbe @@ -4277,12 +3515,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::ComboBoxTaskMenu - Edit Items... Einträge ändern... - Change Combobox Contents Inhalt der Combobox ändern @@ -4290,7 +3526,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::CommandLinkButtonTaskMenu - Change description... Beschreibung ändern... @@ -4298,17 +3533,14 @@ Möchten Sie sie überschreiben? qdesigner_internal::ConnectionEdit - Select All Alles auswählen - Delete Löschen - Deselect All Auswahl rücksetzen @@ -4316,52 +3548,42 @@ Möchten Sie sie überschreiben? qdesigner_internal::ConnectionModel - Sender Sender - Signal - Receiver Empfänger - Slot Slot - <sender> <Sender> - <signal> <Signal> - <receiver> <Receiver> - <slot> <Slot> - Signal and Slot Editor Signal/Slot editor - The connection already exists!<br>%1 Diese Verbindung existiert bereits!<br>%1</br> @@ -4369,42 +3591,34 @@ Möchten Sie sie überschreiben? qdesigner_internal::ContainerWidgetTaskMenu - Insert Page Before Current Page Seite davor einfügen - Insert Page After Current Page Seite danach einfügen - Add Subwindow Subfenster hinzufügen - Delete Löschen - Insert Einfügen - Subwindow Subwindow - Page Seite - Page %1 of %2 Seite %1 von %2 @@ -4412,19 +3626,16 @@ Möchten Sie sie überschreiben? qdesigner_internal::DPI_Chooser - x DPI X/Y separator x - System (%1 x %2) System resolution System (%1 x %2) - User defined Benutzerdefiniert @@ -4432,49 +3643,38 @@ Möchten Sie sie überschreiben? qdesigner_internal::DesignerPropertyManager - - AlignLeft Linksbündig ausrichten - AlignHCenter Horizontal zentrieren - AlignRight Rechtsbündig ausrichten - AlignJustify Blocksatz - AlignTop Am oberen Rand ausrichten - - AlignVCenter Vertikal zentrieren - AlignBottom Am unteren Rand zentrieren - %1, %2 %1, %2 - Customized (%n roles) Angepasst (eine Rolle) @@ -4482,75 +3682,58 @@ Möchten Sie sie überschreiben? - Inherited Geerbt - Horizontal Horizontal - Vertical Vertikal - Normal Off Normal, aus - Normal On Normal, ein - Disabled Off Nicht verfügbar, aus - Disabled On Verfügbar, ein - Active Off Aktiv, aus - Active On Aktiv, ein - Selected Off Ausgewählt, aus - Selected On Ausgewählt, ein - - translatable Übersetzung - - disambiguation Kennung - - comment Kommentar @@ -4558,48 +3741,38 @@ Möchten Sie sie überschreiben? qdesigner_internal::DeviceProfileDialog - Device Profiles (*.%1) Profile - Default Vorgabe - Save Profile Profil speichern - Save Profile - Error Fehler beim Speichern des Profils - Unable to open the file '%1' for writing: %2 Die Datei '%1' konnte nicht zum Schreiben geöffnet werden: %2 - Unable to open the file '%1' for reading: %2 Die Datei '%1' konnte nicht zum Lesen geöffnet werden: %2 - '%1' is not a valid profile: %2 '%1' ist kein gültiges Profil: %2 - Open profile Profil öffnen - - Open Profile - Error Fehler beim Öffnen des Profils @@ -4607,57 +3780,46 @@ Möchten Sie sie überschreiben? qdesigner_internal::Dialog - Dialog Dialog - StringList Liste von Zeichenketten - New String Neue Zeichenkette - &New &Neu - Delete String Zeichenkette löschen - &Delete &Löschen - &Value: &Wert: - Move String Up Zeichenkette eins nach oben - Up Hoch - Move String Down Zeichenkette eins nach unten - Down Runter @@ -4665,52 +3827,42 @@ Möchten Sie sie überschreiben? qdesigner_internal::EmbeddedOptionsControl - None Vorgabe - Add a profile Profil hinzufügen - Edit the selected profile Ausgewähltes Profil modifizieren - Delete the selected profile Ausgewähltes Profil löschen - Add Profile Profil hinzufügen - New profile Neues Profil - Edit Profile Profil ändern - Delete Profile Profil löschen - Would you like to delete the profile '%1'? Möchten Sie das Profil '%1' löschen? - Default Vorgabe @@ -4718,12 +3870,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::FilterWidget - Filter Filter - Clear text Text löschen @@ -4731,12 +3881,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::FormEditor - Resource File Changed Änderung einer Ressourcendatei - The file "%1" has changed outside Designer. Do you want to reload it? Die Ressourcendatei "%1" wurde außerhalb Designer geändert. Möchten Sie sie neu laden? @@ -4744,7 +3892,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::FormLayoutMenu - Add form layout row... Zeile hinzufügen... @@ -4752,43 +3899,34 @@ Möchten Sie sie überschreiben? qdesigner_internal::FormWindow - Edit contents Ändern - F2 F2 - Resize Größe ändern - Key Move Verschieben mittels Tastatur - Paste error Fehler beim Einfügen - Lay out Layout - - Drop widget Widget einfügen - Paste %n action(s) Eine Aktion einfügen @@ -4796,17 +3934,14 @@ Möchten Sie sie überschreiben? - Insert widget '%1' Widget '%1' einfügen - Key Resize Größe ändern mittels Tastatur - Paste %n widget(s) Widget einfügen @@ -4814,37 +3949,30 @@ Möchten Sie sie überschreiben? - Paste (%1 widgets, %2 actions) Einfügen (%1 Widgets, %2 Aktionen) - Cannot paste widgets. Designer could not find a container without a layout to paste into. Die Widgets konnten nicht eingefügt werden, da kein Container gefunden werden konnte, der nicht bereits ein Layout hat. - Break the layout of the container you want to paste into, select this container and then paste again. Bitte lösen Sie das Layout des gewünschten Containers auf und wählen Sie ihn erneut aus, um die Widgets einzufügen. - Select Ancestor Übergeordnetes Widget auswählen - A QMainWindow-based form does not contain a central widget. Ein auf QMainWindow basierendes Formular enthält kein zentrales Widget. - Raise widgets Widgets nach vorn bringen - Lower widgets Widgets nach hinten setzen @@ -4852,12 +3980,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::FormWindowBase - Delete Löschen - Delete '%1' '%1' löschen @@ -4865,200 +3991,159 @@ Möchten Sie sie überschreiben? qdesigner_internal::FormWindowManager - Cu&t &Ausschneiden - Cuts the selected widgets and puts them on the clipboard Schneidet die ausgewählten Widgets aus und legt sie in der Zwischenablage ab - &Copy &Kopieren - Copies the selected widgets to the clipboard Kopiert die ausgewählten Widgets in die Zwischenablage - &Paste &Einfügen - Pastes the clipboard's contents Fügt den Inhalt der Zwischenablage ein - &Delete &Löschen - Deletes the selected widgets Löscht die ausgewählten Widgets - Select &All &Alles auswählen - Selects all widgets Wählt alle Widget aus - Bring to &Front Nach &vorn - - Raises the selected widgets Bringt das ausgewählte Widget nach vorn - Send to &Back Nach &hinten - - Lowers the selected widgets Stellt das ausgewählte Widget nach hinten - Adjust &Size &Größe anpassen - Adjusts the size of the selected widget Berechnet die Größe des ausgewählten Widgets aus dem Layout und passt das Widget an - Lay Out &Horizontally Objekte &waagrecht anordnen - Lays out the selected widgets horizontally Ordnet die ausgewähltenObjekte waagrecht an - Lay Out &Vertically Objekte &senkrecht anordnen - Lays out the selected widgets vertically Ordnet die ausgewählten Objekte senkrecht an - Lay Out in a &Grid Objekte &tabellarisch anordnen - Lays out the selected widgets in a grid Ordnet die ausgewählten Objekte tabellarisch an - Lay Out Horizontally in S&plitter Objekte waagrecht um Spl&itter anordnen - Lays out the selected widgets horizontally in a splitter Ordnet die ausgewählten Objekte um einen Splitter waagrecht an - Lay Out Vertically in Sp&litter Objekte senkrecht um Spl&itter anordnen - Lays out the selected widgets vertically in a splitter Ordnet die ausgewählten Objekte um einen Splitter senkecht an - &Break Layout La&yout auflösen - Breaks the selected layout Löst das ausgewählte Layout auf - &Preview... &Vorschau... - Preview current form Vorschau des Formulars - Form &Settings... Formular&einstellungen... - Break Layout Layout auflösen - Adjust Size Größe anpassen - Could not create form preview Title of warning message box Es konnte keine Vorschau erzeugt werden - Form Settings - %1 Formulareinstellungen - %1 - Removes empty columns and rows Entfernt unbesetzte Zeilen und Spalten - Lay Out in a &Form Layout Objekte in &Formularlayout anordnen - Lays out the selected widgets in a form layout Ordnet die ausgewählten Objekte in einem zweispaltigen Formularlayout an - Si&mplify Grid Layout Tabellarisches Layout &vereinfachen @@ -5066,12 +4151,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::FormWindowSettings - None Kein - Device Profile: %1 Profil: %1 @@ -5079,37 +4162,30 @@ Möchten Sie sie überschreiben? qdesigner_internal::GridPanel - Visible Sichtbar - Snap Einschnappen - Reset Rücksetzen - Form Formular - Grid Raster - Grid &X Raster &X - Grid &Y Raster &Y @@ -5117,7 +4193,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::GroupBoxTaskMenu - Change title... Titel ändern... @@ -5125,7 +4200,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::HtmlTextEdit - Insert HTML entity HTML-Sonderzeichen einfügen @@ -5133,92 +4207,74 @@ Möchten Sie sie überschreiben? qdesigner_internal::IconSelector - The pixmap file '%1' cannot be read. Die Pixmap-Datei '%1' kann nicht gelesen werden. - The file '%1' does not appear to be a valid pixmap file: %2 Die Datei '%1' ist keine gültige Pixmap-Datei: %2 - The file '%1' could not be read: %2 Die Datei '%1' konnte nicht gelesen werden: %2 - Pixmap Read Error Fehler beim Lesen der Pixmap - ... ... - Normal Off Normal, aus - Normal On Normal, ein - Disabled Off Nicht verfügbar, aus - Disabled On Verfügbar, ein - Active Off Aktiv, aus - Active On Aktiv, ein - Selected Off Ausgewählt, aus - Selected On Ausgewählt, ein - Choose Resource... Ressource auswählen... - Choose File... Datei auswählen... - Reset Rücksetzen - Reset All Alle rücksetzen - Choose a Pixmap Pixmap-Datei auswählen @@ -5226,58 +4282,46 @@ Möchten Sie sie überschreiben? qdesigner_internal::ItemListEditor - Properties &<< Eigenschaften &<< - - Properties &>> Eigenschaften &>> - Items List Liste der Elemente - New Item Neues Element - &New &Neu - Delete Item Element löschen - &Delete &Löschen - Move Item Up Element eins nach oben - U U - Move Item Down Element eins nach unten - D D @@ -5285,12 +4329,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::LabelTaskMenu - Change rich text... Formatierbaren Text ändern... - Change plain text... Text ändern... @@ -5298,7 +4340,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::LanguageResourceDialog - Choose Resource Ressource auswählen @@ -5306,7 +4347,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::LineEditTaskMenu - Change text... Text ändern... @@ -5314,17 +4354,14 @@ Möchten Sie sie überschreiben? qdesigner_internal::ListWidgetEditor - Edit List Widget List-Widget ändern - Edit Combobox Combobox ändern - New Item Neues Element @@ -5332,12 +4369,10 @@ Möchten Sie sie überschreiben? qdesigner_internal::ListWidgetTaskMenu - Edit Items... Elemente ändern... - Change List Contents Inhalt der Liste ändern @@ -5345,22 +4380,18 @@ Möchten Sie sie überschreiben? qdesigner_internal::MdiContainerWidgetTaskMenu - Next Subwindow Nächste Unterfenster - Previous Subwindow Voriges Unterfenster - Tile Nebeneinander anordnen - Cascade Stapeln @@ -5368,7 +4399,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::MenuTaskMenu - Remove Löschen @@ -5376,7 +4406,6 @@ Möchten Sie sie überschreiben? qdesigner_internal::MorphMenu - Morph into Widget umwandeln in @@ -5384,42 +4413,34 @@ Möchten Sie sie überschreiben? qdesigner_internal::NewActionDialog - New Action... Neue Aktion... - &Text: &Text: - Shortcut: Tastenkürzel - Checkable: Ankreuzbar: - ToolTip: ToolTip: - ... ... - &Icon: &Icon: - Object &name: Objekt&name: @@ -5427,40 +4448,33 @@ Möchten Sie sie überschreiben? qdesigner_internal::NewDynamicPropertyDialog - Set Property Name Namen der Eigenschaft setzen - The current object already has a property named '%1'. Please select another, unique one. Das Objekt besitzt eine bereits eine Eigenschaft namens '%1'. Bitte wählen Sie einen anderen, eindeutigen Namen. - Create Dynamic Property Dynamische Eigenschaft erzeugen - Property Name Name der Eigenschaft - Property Type Typ der Eigenschaft - The '_q_' prefix is reserved for the Qt library. Please select another name. Der Präfix '_q_' wird von der Qt-Bibliothek für interne Zwecke verwendet.Bitte wählen Sie einen anderen Namen. - horizontalSpacer @@ -5468,83 +4482,67 @@ Please select another name. qdesigner_internal::NewFormWidget - Default size Vorgabe - QVGA portrait (240x320) QVGA Hochformat (240x320) - QVGA landscape (320x240) QVGA Querformat (320x240) - VGA portrait (480x640) VGA Hochformat (480x640) - VGA landscape (640x480) VGA Querformat (640x480) - Widgets New Form Dialog Categories Widgets - Custom Widgets Benutzerdefinierte Widgets - None Kein - Error loading form Das Formular konnte nicht geladen werden - Unable to open the form template file '%1': %2 Die Formularvorlage '%1' konnte nicht geöffnet werden: %2 - Internal error: No template selected. Interner Fehler: Es ist keine Vorlage selektiert. - 0 0 - Choose a template for a preview Wählen Sie eine Vorlage für die Vorschau - Embedded Design Embedded-Entwurf - Device: Geräteprofil: - Screen Size: Bildschirmgröße: @@ -5552,37 +4550,30 @@ Please select another name. qdesigner_internal::NewPromotedClassPanel - Add Hinzufügen - New Promoted Class Neue Klasse - Base class name: Basisklasse: - Promoted class name: Klassenname: - Header file: Include-Datei: - Global include Globale Include-Datei - Reset Rücksetzen @@ -5590,12 +4581,10 @@ Please select another name. qdesigner_internal::ObjectInspector - Change Current Page Seite wechseln - &Find in Text... &Suchen... @@ -5603,32 +4592,26 @@ Please select another name. qdesigner_internal::OrderDialog - Index %1 (%2) Position %1 (%2) - Change Page Order Seiten umordnen - Page Order Reihenfolge - Move page up Seite eins nach oben - Move page down Seite eins nach unten - %1 %2 %1 %2 @@ -5636,47 +4619,38 @@ Please select another name. qdesigner_internal::PaletteEditor - Edit Palette Palette ändern - Tune Palette Palette - Show Details Details einblenden - Compute Details Details berechnen - Quick Einfach - Preview Vorschau - Disabled Ausgegraut - Inactive Inaktiv - Active Aktiv @@ -5684,7 +4658,6 @@ Please select another name. qdesigner_internal::PaletteEditorButton - Change Palette Palette ändern @@ -5692,22 +4665,18 @@ Please select another name. qdesigner_internal::PaletteModel - Color Role Farbrolle - Active Aktiv - Inactive Inaktiv - Disabled Ausgegraut @@ -5715,28 +4684,22 @@ Please select another name. qdesigner_internal::PixmapEditor - Copy Path Pfad kopieren - Paste Path Pfad einfügen - Choose Resource... Ressource auswählen... - Choose File... Datei auswählen... - - ... ... @@ -5744,7 +4707,6 @@ Please select another name. qdesigner_internal::PlainTextEditorDialog - Edit text Text bearbeiten @@ -5752,37 +4714,30 @@ Please select another name. qdesigner_internal::PluginDialog - Components Komponenten - Plugin Information Plugins - Refresh Neu laden - Scan for newly installed custom widget plugins. Nach neu installierten Plugins mit benutzerdefinierten Widgets suchen. - Qt Designer couldn't find any plugins Qt Designer kann keine Plugins finden - Qt Designer found the following plugins Qt Designer hat die folgenden Plugins gefunden - New custom widget plugins have been found. Es wurden neu installierte Plugins mit benutzerdefinierten Widgets gefunden. @@ -5790,7 +4745,6 @@ Please select another name. qdesigner_internal::PreviewActionGroup - %1 Style %1-Stil @@ -5798,47 +4752,38 @@ Please select another name. qdesigner_internal::PreviewConfigurationWidget - Default Vorgabe - None Kein - Browse... Durchsuchen... - Load Custom Device Skin Benutzerdefinierten Geräte-Skin laden - All QVFB Skins (*.%1) Alle QVFB-Skins (*.%1) - %1 - Duplicate Skin %1 - Skin bereits vorhanden - The skin '%1' already exists. Der Skin '%1' ist bereits vorhanden. - %1 - Error %1 - Fehler - %1 is not a valid skin directory: %2 %1 ist kein gültiges Verzeichnis eines Skins: @@ -5848,24 +4793,20 @@ Please select another name. qdesigner_internal::PreviewDeviceSkin - &Portrait &Hochformat - Landscape (&CCW) Rotate form preview counter-clockwise Querformat (&entgegen Uhrzeigersinn) - &Landscape (CW) Rotate form preview clockwise Querformat (im &Uhrzeigersinn) - &Close &Schließen @@ -5873,7 +4814,6 @@ Please select another name. qdesigner_internal::PreviewManager - %1 - [Preview] %1 - [Vorschau] @@ -5881,7 +4821,6 @@ Please select another name. qdesigner_internal::PreviewMdiArea - The moose in the noose ate the goose who was loose. Palette editor background @@ -5891,57 +4830,46 @@ ate the goose who was loose. qdesigner_internal::PreviewWidget - Preview Window Vorschaufenster - LineEdit - ComboBox - PushButton - ButtonGroup2 - CheckBox1 - CheckBox2 - ButtonGroup - RadioButton1 - RadioButton2 - RadioButton3 @@ -5949,22 +4877,18 @@ ate the goose who was loose. qdesigner_internal::PromotionModel - Name Name - Header file Include-Datei - Global include Globale Include-Datei - Usage Verwendet @@ -5972,27 +4896,22 @@ ate the goose who was loose. qdesigner_internal::PromotionTaskMenu - Promoted widgets... Benutzerdefinierte Klassen... - Promote to ... Als Platzhalter für benutzerdefinierte Klasse festlegen... - Promote to Als Platzhalter für benutzerdefinierte Klasse festlegen - Demote to %1 Platzhalter für benutzerdefinierte Klasse entfernen und in %1 wandeln - Change signals/slots... Signale/Slots ändern... @@ -6000,59 +4919,48 @@ ate the goose who was loose. qdesigner_internal::PropertyEditor - Add Dynamic Property... Dynamische Eigenschaft hinzufügen... - Remove Dynamic Property Dynamische Eigenschaft löschen - Tree View Baumansicht - Drop Down Button View Detailansicht - Object: %1 Class: %2 Objekt: %1 Klasse: %2 - Sorting Sortiert - Color Groups Farbige Hervorhebung - Configure Property Editor Anzeige der Eigenschaften konfigurieren - String... Zeichenkette... - Bool... Boolescher Wert... - Other... Anderer Typ... @@ -6060,7 +4968,6 @@ Klasse: %2 qdesigner_internal::PropertyLineEdit - Insert line break Zeilenumbruch einfügen @@ -6068,27 +4975,22 @@ Klasse: %2 qdesigner_internal::QDesignerPromotionDialog - Promoted Widgets Platzhalter für benutzerdefinierte Widgets - Promoted Classes Platzhalter für benutzerdefinierte Klassen - Promote Anwenden - %1 - Error %1 - Fehler - Change signals/slots... Signale/Slots ändern... @@ -6096,22 +4998,18 @@ Klasse: %2 qdesigner_internal::QDesignerResource - Loading qrc file Laden der Ressourcendatei - The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> Die Ressourcendatei <p><b>%1</b></p><p> konnte nicht gefunden werden. Möchten Sie einen neuen Pfad eingeben?</p> - New location for %1 Neuer Pfad für %1 - Resource files (*.qrc) Ressourcendateien (*.qrc) @@ -6119,67 +5017,54 @@ Klasse: %2 qdesigner_internal::QDesignerTaskMenu - Change objectName... Objektnamen ändern... - Change toolTip... ToolTip ändern... - Change whatsThis... WhatsThis ändern... - Change styleSheet... Stylesheet ändern... - Create Menu Bar Menüleiste erzeugen - Add Tool Bar Werkzeugleiste hinzufügen - Create Status Bar Statuszeile hinzufügen - Remove Status Bar Statuszeile löschen - Change script... Skript ändern... - Change signals/slots... Signale/Slots ändern... - Go to slot... Slot anzeigen... - no signals available Es sind keine Signale vorhanden - Set size constraint on %n widget(s) Größenbeschränkung eines Widgets festlegen @@ -6187,47 +5072,38 @@ Klasse: %2 - Size Constraints Größe - Set Minimum Width Minimalbreite festlegen - Set Minimum Height Minimalhöhe festlegen - Set Minimum Size Minimalgröße festlegen - Set Maximum Width Maximalbreite festlegen - Set Maximum Height Maximalhöhe festlegen - Set Maximum Size Maximalgröße festlegen - Edit ToolTip ToolTip bearbeiten - Edit WhatsThis What'sThis bearbeiten @@ -6235,41 +5111,33 @@ Klasse: %2 qdesigner_internal::QDesignerWidgetBox - - Unexpected element <%1> Ungültiges Element <%1> - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 %5 Der XML-Code für das Widget %3 enthält einen Fehler bei Zeile %1, Spalte %2:%4: %5 - The XML code specified for the widget %1 does not contain any widget elements. %2 Der XML-Code für das Widget %1 enthält keine Widgets.%2 - An error has been encountered at line %1 of %2: %3 Fehler bei Zeile %1 von %2: %3 - Unexpected element <%1> encountered when parsing for <widget> or <ui> An Stelle des erwarteten <widget>- oder <ui>-Elementes wurde <%1> gefunden - Unexpected end of file encountered when parsing widgets. Vorzeitiges Dateiende beim Lesen der Widget-Box-Konfiguration. - A widget element could not be found. Es fehlt das Widget-Element. @@ -6277,73 +5145,58 @@ Klasse: %2 qdesigner_internal::QtGradientStopsController - H H - S S - V V - - Hue Farbton - Sat Sättigung - Val Wert - Saturation Sättigung - Value Wert - R R - G G - B B - Red Rot - Green Grün - Blue Blau @@ -6351,27 +5204,22 @@ Klasse: %2 qdesigner_internal::RichTextEditorDialog - Edit text Text bearbeiten - &OK &OK - &Cancel &Abbrechen - Rich Text Text - Source Quelltext @@ -6379,72 +5227,58 @@ Klasse: %2 qdesigner_internal::RichTextEditorToolBar - Bold Fett - CTRL+B CTRL+F - Italic Kursiv - CTRL+I CTRL+K - Underline Unterstreichen - CTRL+U CTRL+U - Left Align Linksbündig ausrichten - Center Zentrieren - Right Align Rechtsbündig ausrichten - Justify Blocksatz - Superscript Hochstellung - Subscript Tiefstellung - Insert &Link &Link einfügen - Insert &Image &Bild einfügen @@ -6452,17 +5286,14 @@ Klasse: %2 qdesigner_internal::ScriptDialog - Edit script Skript bearbeiten - Syntax error Syntaxfehler - <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>Geben Sie ein Qt-Skript zur Ausführung während des Formularaufbaus ein.<br>Auf das Widget und seine untergeordneten Widgets kann durch die Variablen <i>widget</i> und <i>childWidgets</i> zugegriffen werden. @@ -6470,7 +5301,6 @@ Klasse: %2 qdesigner_internal::ScriptErrorDialog - Script errors Skriptfehler @@ -6478,23 +5308,18 @@ Klasse: %2 qdesigner_internal::SignalSlotDialog - There is already a slot with the signature '%1'. Es existiert bereits ein Slot mit der Signatur '%1'. - There is already a signal with the signature '%1'. Es existiert bereits ein Signal mit der Signatur '%1'. - %1 - Duplicate Signature %1 - Doppelte Signatur - - Signals/Slots of %1 Signale/Slots von %1 @@ -6502,12 +5327,10 @@ Klasse: %2 qdesigner_internal::SignalSlotEditorPlugin - Edit Signals/Slots Signale und Slots bearbeiten - F4 F4 @@ -6515,7 +5338,6 @@ Klasse: %2 qdesigner_internal::SignalSlotEditorTool - Edit Signals/Slots Signale und Slots bearbeiten @@ -6523,7 +5345,6 @@ Klasse: %2 qdesigner_internal::StatusBarTaskMenu - Remove Löschen @@ -6531,7 +5352,6 @@ Klasse: %2 qdesigner_internal::StringListEditorButton - Change String List Zeichenkettenliste ändern @@ -6539,38 +5359,30 @@ Klasse: %2 qdesigner_internal::StyleSheetEditorDialog - Edit Style Sheet Stylesheet bearbeiten - - Valid Style Sheet Stylesheet gültig - Invalid Style Sheet Stylesheet ungültig - Add Resource... Ressource hinzufügen... - Add Gradient... Gradient hinzufügen... - Add Color... Farbe hinzufügen... - Add Font... Font hinzufügen... @@ -6578,27 +5390,22 @@ Klasse: %2 qdesigner_internal::TabOrderEditor - Start from Here Hier neu beginnen - Restart Neu beginnen - Tab Order List... Tabulatorreihenfolge... - Tab Order List Tabulatorreihenfolge - Tab Order Tabulatorreihenfolge @@ -6606,7 +5413,6 @@ Klasse: %2 qdesigner_internal::TabOrderEditorPlugin - Edit Tab Order Tabulatorreihenfolge bearbeiten @@ -6614,7 +5420,6 @@ Klasse: %2 qdesigner_internal::TabOrderEditorTool - Edit Tab Order Tabulatorreihenfolge bearbeiten @@ -6622,48 +5427,38 @@ Klasse: %2 qdesigner_internal::TableWidgetEditor - New Column Neue Spalte - New Row Neue Zeile - &Columns &Spalten - &Rows &Zeilen - Properties &<< Eigenschaften &<< - - Properties &>> Eigenschaften &>> - Edit Table Widget Table Widget ändern - &Items &Inhalt - Table Items Tabellenelemente @@ -6671,7 +5466,6 @@ Klasse: %2 qdesigner_internal::TableWidgetTaskMenu - Edit Items... Elemente ändern... @@ -6679,22 +5473,18 @@ Klasse: %2 qdesigner_internal::TemplateOptionsWidget - Pick a directory to save templates in Wählen Sie ein Verzeichnis zum Abspeichern der Vorlagen aus - Form - Additional Template Paths Zusätzliche Verzeichnisse für Vorlagen - ... ... @@ -6702,22 +5492,18 @@ Klasse: %2 qdesigner_internal::TextEditTaskMenu - Change HTML... HTML ändern... - Edit HTML HTML bearbeiten - Edit Text Text bearbeiten - Change Plain Text... Text ändern... @@ -6725,22 +5511,18 @@ Klasse: %2 qdesigner_internal::TextEditor - Choose Resource... Ressource auswählen... - Choose File... Datei auswählen... - Choose a File - ... ... @@ -6748,27 +5530,22 @@ Klasse: %2 qdesigner_internal::ToolBarEventFilter - Insert Separator Trenner einfügen - Remove action '%1' Aktion '%1' löschen - Remove Toolbar '%1' Werkzeugleiste '%1' löschen - Insert Separator before '%1' Trenner vor '%1' einfügen - Append Separator Trenner hinzufügen @@ -6776,125 +5553,98 @@ Klasse: %2 qdesigner_internal::TreeWidgetEditor - &Columns &Spalten - Per column properties Spalteneigenschaften - Common properties Gemeinsame Eigenschaften - - New Item Neues Element - Properties &<< Eigenschaften &<< - - Properties &>> Eigenschaften &>> - New Column Neue Spalte - Edit Tree Widget Tree Widget ändern - &Items &Inhalt - Tree Items Elemente - - New Subitem - New &Subitem Neues &untergeordnetes Element - Delete Item Element löschen - Move Item Left (before Parent Item) Element nach links (vor übergeordnetes Element) - L L - Move Item Right (as a First Subitem of the Next Sibling Item) Element nach rechts (als untergeordnetes Element des nächsten gleichrangigen Elements) - R R - Move Item Up Element eins nach oben - U U - Move Item Down Element eins nach unten - D D - 1 1 - &New &Neu - &Delete &Löschen @@ -6902,7 +5652,6 @@ Klasse: %2 qdesigner_internal::TreeWidgetTaskMenu - Edit Items... Elemente ändern... @@ -6910,7 +5659,6 @@ Klasse: %2 qdesigner_internal::WidgetBox - Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. Warnung: Die Erzeugung des Widgets in der Widget-Box schlug fehl. Das könnte durch fehlerhaften XML-Code benutzerdefinierter Widgets verursacht worden sein. @@ -6918,42 +5666,34 @@ Klasse: %2 qdesigner_internal::WidgetBoxTreeWidget - Scratchpad Ablage - Custom Widgets Benutzerdefinierte Widgets - Expand all Alles aufklappen - Collapse all Alles zuklappen - List View Listenansicht - Icon View Icon-Ansicht - Remove Löschen - Edit name Namen ändern @@ -6961,7 +5701,6 @@ Klasse: %2 qdesigner_internal::WidgetDataBase - A custom widget plugin whose class name (%1) matches that of an existing class has been found. Es wurde ein Plugin gefunden, das ein benutzerdefiniertes Widget enthält, dessen Klassenname (%1) einer existierenden Klasse entspricht. @@ -6969,7 +5708,6 @@ Klasse: %2 qdesigner_internal::WidgetEditorTool - Edit Widgets Widgets bearbeiten @@ -6977,33 +5715,27 @@ Klasse: %2 qdesigner_internal::WidgetFactory - The custom widget factory registered for widgets of class %1 returned 0. Die Factory für benutzerdefinierte Widgets der Klasse %1 gab einen 0-Zeiger zurück. - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. Bei der Erzeugung von Widgets wurden widersprüchliche Klassennamen festgestellt: Die Factory für benutzerdefinierte Widgets der Klasse %1 gab ein Widget der Klasse %2 zurück. - The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. Der Container '%1' (%2) hat keine Seite, auf der ein Layout angelegt werden könnte. Das deutet auf eine inkonsistente ui-Datei hin; wahrscheinlich wurde ein Layout direkt auf dem Container spezifiziert. - Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. Es wurde versucht, ein Layout auf das Widget '%1' (%2) zu setzen, welches bereits ein Layout vom Typ %3 hat. Das deutet auf eine Inkonsistenz in der ui-Datei hin. - Cannot create style '%1'. Der Stil '%1' konnte nicht erzeugt werden. - %1 Widget %1 Widget @@ -7011,12 +5743,10 @@ This indicates an inconsistency in the ui-file. qdesigner_internal::WizardContainerWidgetTaskMenu - Next Nächste - Back Vorige @@ -7024,7 +5754,6 @@ This indicates an inconsistency in the ui-file. qdesigner_internal::ZoomMenu - %1 % Zoom factor %1 % @@ -7033,7 +5762,6 @@ This indicates an inconsistency in the ui-file. qdesigner_internal::ZoomablePreviewDeviceSkin - &Zoom &Vergrößern diff --git a/translations/linguist_de.ts b/translations/linguist_de.ts index 5597458..b4e0a45 100644 --- a/translations/linguist_de.ts +++ b/translations/linguist_de.ts @@ -4,7 +4,6 @@ AboutDialog - Qt Linguist Qt Linguist @@ -12,27 +11,22 @@ BatchTranslationDialog - Batch Translation of '%1' - Qt Linguist Automatische Übersetzung von '%1' - Qt Linguist - Searching, please wait... Suche, bitte warten ... - &Cancel &Abbrechen - Linguist batch translator Automatischer Übersetzer (Linguist) - Batch translated %n entries 1 Eintrag wurde automatisch übersetzt @@ -40,62 +34,50 @@ - Qt Linguist - Batch Translation Qt Linguist - Automatische Übersetzung - Options Optionen - Set translated entries to finished Übersetzung als erledigt markieren - Retranslate entries with existing translation Einträge mit bereits existierender Übersetzung neu übersetzen - Translate also finished entries Erledigte Einträge übersetzen - Phrase book preference Wörterbücher - Move up Nach oben - Move down Nach unten - &Run &Ausführen - Cancel Abbrechen - Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked Geänderte Einträge werden als unerledigt gekennzeichnet, wenn die obige Einstellung 'Übersetzung als erledigt markieren' nicht aktiviert ist - The batch translator will search through the selected phrase books in the order given above Der automatische Übersetzer wird in der angegebenen Reihenfolge durch die ausgewählten Wörterbücher gehen @@ -103,45 +85,36 @@ DataModel - <qt>Duplicate messages found in '%1': <qt>Mehrfach vorhandene Meldungen in '%1': - - <p>[more duplicates omitted] <p>[weitere mehrfach vorhandene Nachrichten weggelassen] - <p>* ID: %1 <p>* ID: %1 - <p>* Context: %1<br>* Source: %2 <p>* Kontext: %1<br>* Quelle: %2 - <br>* Comment: %3 <br>* Kommentar: %3 - Linguist does not know the plural rules for '%1'. Will assume a single universal form. Die Regeln zur Pluralbildung der Sprache '%1' sind in Linguist nicht definiert. Es wird mit einer einfachen Universalform gearbeitet. - Cannot create '%2': %1 '%2' kann nicht erzeugt werden: %1 - Universal Form Universalform @@ -149,37 +122,30 @@ Es wird mit einer einfachen Universalform gearbeitet. ErrorsView - Accelerator possibly superfluous in translation. Möglicherweise überflüssiger Kurzbefehl im Übersetzungstext. - Accelerator possibly missing in translation. Kurzbefehl fehlt im Übersetzungstext. - Translation does not end with the same punctuation as the source text. Interpunktion am Ende des Übersetzungstextes unterscheidet sich von Interpunktion des Ursprungstextes. - A phrase book suggestion for '%1' was ignored. Ein Vorschlag aus dem Wörterbuch für '%1' wurde nicht berücksichtigt. - Translation does not refer to the same place markers as in the source text. Platzhalter im Übersetzungstext und Ursprungstext unterscheiden sich. - Translation does not contain the necessary %n place marker. Der erforderliche Platzhalter (%n) fehlt in der Übersetzung. - Unknown error Unbekannter Fehler @@ -187,97 +153,78 @@ Es wird mit einer einfachen Universalform gearbeitet. FindDialog - This window allows you to search for some text in the translation source file. Dieses Fenster erlaubt die Suche in der Übersetzungsdatei. - Type in the text to search for. Geben Sie den Text ein, nach dem gesucht werden soll. - Options Optionen - Source texts are searched when checked. Wenn aktiviert, wird in den Ursprungstexten gesucht. - Translations are searched when checked. Wenn ausgewählt, wird in den Übersetzungen gesucht. - Texts such as 'TeX' and 'tex' are considered as different when checked. Wenn aktiviert, werden Texte wie 'TeX' und 'tex' als unterschiedlich betrachtet. - Comments and contexts are searched when checked. Wenn ausgewählt, werden Kommentare und Kontextnamen durchsucht. - Find Suchen - &Find what: &Suchmuster: - &Source texts &Ursprungstexte - &Translations &Übersetzungen - &Match case &Groß-/Kleinschreibung beachten - &Comments &Kommentare - Ignore &accelerators Tastenkürzel &ignorieren - Click here to find the next occurrence of the text you typed in. Klicken Sie hier, um zum nächsten Vorkommen des Suchtextes zu springen. - Find Next Weitersuchen - Click here to close this window. Klicken Sie hier, um das Fenster zu schließen. - Cancel Abbrechen - Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog @@ -286,30 +233,25 @@ Es wird mit einer einfachen Universalform gearbeitet. FormMultiWidget - Alt+Delete translate, but don't change Alt+Delete - Shift+Alt+Insert translate, but don't change Shift+Alt+Insert - Alt+Insert translate, but don't change Alt+Insert - Confirmation - Qt Linguist Bestätigung - Qt Linguist - Delete non-empty length variant? Soll die ausgefüllte Längenvariante gelöscht werden? @@ -317,7 +259,6 @@ Es wird mit einer einfachen Universalform gearbeitet. LRelease - Dropped %n message(s) which had no ID. Es wurde ein Eintrag ohne Bezeichner gelöscht. @@ -325,7 +266,6 @@ Es wird mit einer einfachen Universalform gearbeitet. - Excess context/disambiguation dropped from %n message(s). Es wurde überflüssiger Kontext beziehungsweise überflüssige Infomation zur Unterscheidung bei einem Eintrag entfernt. @@ -333,10 +273,23 @@ Es wird mit einer einfachen Universalform gearbeitet. - + Generated %n translation(s) (%1 finished and %2 unfinished) + + Eine Übersetzung wurde erzeugt (%1 abgeschlossen und %2 nicht abgeschlossen) + %n Übersetzungen wurden erzeugt (%1 abgeschlossen und %2 nicht abgeschlossen) + + + + Ignored %n untranslated source text(s) + + Ein nicht übersetzter Text wurde ignoriert + %n nicht übersetzte Texte wurden ignoriert + + + Generated %n translation(s) (%1 finished and %2 unfinished) - + Eine Übersetzung wurde erzeugt (%1 abgeschlossen und %2 nicht abgeschlossen) %n Übersetzungen wurden erzeugt (%1 abgeschlossene und %2 nicht abgeschlossene) @@ -344,10 +297,9 @@ Es wird mit einer einfachen Universalform gearbeitet. - Ignored %n untranslated source text(s) - + Ein nicht übersetzter Text wurde ignoriert %n nicht übersetzte Texte wurden ignoriert @@ -358,628 +310,496 @@ Es wird mit einer einfachen Universalform gearbeitet. MainWindow - MainWindow Hauptfenster - &Phrases &Wörterbuch - &Close Phrase Book Wörterbuch &Schließen - &Edit Phrase Book Wörterbuch &bearbeiten - &Print Phrase Book Wörterbuch &drucken - V&alidation V&alidierung - &View &Ansicht - Vie&ws &Ansichten - &Toolbars &Werkzeugleisten - &Help &Hilfe - &Translation &Übersetzung - &File &Datei - &Edit &Bearbeiten - &Open... Ö&ffnen ... - Open a Qt translation source file (TS file) for editing Qt-Übersetzungsdatei (TS-Datei) zum Bearbeiten öffnen - Ctrl+O Ctrl+O - E&xit &Beenden - Close this window and exit. Dieses Fenster schließen und das Programm beenden. - Ctrl+Q Ctrl+Q - - &Save &Speichern - Save changes made to this Qt translation source file Änderungen an der Qt-Übersetzungsdatei speichern - Move to the previous unfinished item. Zum vorherigen unerledigten Eintrag gehen. - Move to the next unfinished item. Zum nächsten unerledigten Eintrag gehen. - Move to the previous item. Zum vorigen Eintrag gehen. - Move to the next item. Zum nächsten Eintrag gehen. - Mark this item as done and move to the next unfinished item. Diesen Eintrag als erledigt markieren und zum nächsten unerledigten Eintrag gehen. - Copy from source text Ursprungstext übernehmen - 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. Die Prüfung der Tastenkürzel, das heißt, die Übereinstimmung der kaufmännischen Und-Zeichen in Quelle und Übersetzung ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt. - Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. Die Prüfung der Satzendezeichen am Ende des Textes ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt. - Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. Die Prüfung der Verwendung der Wörterbuchvorschläge ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt. - 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. Die Prüfung der Platzhalter, das heißt, ob %1, %2 usw. in Ursprungstext und Übersetzung übereinstimmend verwendet werden, ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt. - Open Read-O&nly... Schr&eibgeschützt öffnen ... - &Save All &Alle speichern - Ctrl+S Ctrl+S - - - Save &As... Speichern &unter... - Save As... Speichern unter ... - Save changes made to this Qt translation source file into a new file. Änderungen an dieser Qt-Übersetzungsdatei in einer neuen Datei speichern. - &Release &Freigeben - Create a Qt message file suitable for released applications from the current message file. Qt-Nachrichtendatei (QM-Datei) aus der aktuellen Übersetzungsdatei erzeugen. - &Print... &Drucken ... - Ctrl+P Ctrl+P - &Undo &Rückgängig - Recently Opened &Files Zu&letzt bearbeitete Dateien - Save Speichern - Print a list of all the translation units in the current translation source file. Liste aller Übersetzungseinheiten in der aktuellen Übersetzungsdatei drucken. - Undo the last editing operation performed on the current translation. Die letzte Änderung an der Übersetzung rückgängig machen. - Ctrl+Z Ctrl+Z - &Redo &Wiederherstellen - Redo an undone editing operation performed on the translation. Die letzte rückgängig gemachte Änderung wieder herstellen. - Ctrl+Y Ctrl+Y - Cu&t &Ausschneiden - Copy the selected translation text to the clipboard and deletes it. Den ausgewählten Übersetzungstext in die Zwischenablage kopieren und löschen. - Ctrl+X Ctrl+X - &Copy &Kopieren - Copy the selected translation text to the clipboard. Den ausgewählten Übersetzungstext in die Zwischenablage kopieren. - Ctrl+C Ctrl+C - &Paste &Einfügen - Paste the clipboard text into the translation. Text aus der Zwischenablage in die Übersetzung einfügen. - Ctrl+V Ctrl+V - Select &All Alles &markieren - Select the whole translation text. Den gesamten Übersetzungstext auswählen. - Ctrl+A Ctrl+A - &Find... &Suchen ... - Search for some text in the translation source file. In der Übersetzungsdatei nach Text suchen. - Ctrl+F Ctrl+F - Find &Next &Weitersuchen - Continue the search where it was left. Die Suche fortsetzen. - F3 F3 - &Prev Unfinished &Vorheriger Unerledigter - Close Schließen - &Close All A&lle schließen - Ctrl+W Ctrl+W - Ctrl+K Ctrl+K - &Next Unfinished &Nächster Unerledigter - P&rev V&orheriger - Ctrl+Shift+K Ctrl+Shift+K - Ne&xt Nä&chster - &Done and Next &Fertig und Nächster - Copies the source text into the translation field. Kopiert den Ursprungstext in das Übersetzungsfeld. - Ctrl+B Ctrl+B - &Accelerators &Kurzbefehle - &Ending Punctuation &Punktierung am Ende - &Phrase matches &Wörterbuch - Place &Marker Matches Platz&halter - &New Phrase Book... &Neues Wörterbuch ... - Create a new phrase book. Ein neues Wörterbuch erzeugen. - Ctrl+N Ctrl+N - &Open Phrase Book... &Wörterbuch öffnen ... - Open a phrase book to assist translation. Ein Wörterbuch zur Unterstützung bei der Übersetzung öffnen. - Ctrl+H Ctrl+H - &Reset Sorting &Sortierung zurücksetzen - Sort the items back in the same order as in the message file. Die Einträge in der gleichen Reihenfolge wie in der ursprünglichen Übersetzungsdatei sortieren. - &Display guesses &Vorschläge anzeigen - Set whether or not to display translation guesses. Darstellung von Übersetzungsvorschlägen aktivieren/deaktivieren. - &Statistics S&tatistik - Display translation statistics. Zeige Übersetzungsstatistik an. - &Manual &Handbuch - F1 F1 - About Qt Linguist Über Qt Linguist - About Qt Über Qt - &What's This? &Direkthilfe - What's This? Direkthilfe - Enter What's This? mode. Direkthilfe-Modus aktivieren. - Shift+F1 Shift+F1 - &Search And Translate... Suchen und &übersetzen ... - Replace the translation on all entries that matches the search source text. Die Übersetzung aller Einträge ersetzen, die dem Suchtext entsprechen. - - &Batch Translation... &Automatische Übersetzung ... - Batch translate all entries using the information in the phrase books. Alle Einträge automatisch mit Hilfe des Wörterbuchs übersetzen. - - - Release As... Freigeben unter ... - This is the application's main window. - Source text Ursprungstext - - Index Index - - Context Kontext - Items Einträge - This panel lists the source contexts. Dieser Bereich zeigt die Kontexte an. - Strings Zeichenketten - Phrases and guesses Wörterbuch und Vorschläge - Sources and Forms Quelldateien und Formulare - Warnings Hinweise - MOD status bar: file(s) modified Geändert - Loading... Lade ... - - Loading File - Qt Linguist Laden - Qt Linguist - The file '%1' does not seem to be related to the currently open file(s) '%2'. Close the open file(s) first? @@ -988,7 +808,6 @@ Close the open file(s) first? Sollen die bereits geöffneten Dateien vorher geschlossen werden? - 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? @@ -997,7 +816,6 @@ Skip loading the first named file? Soll die erstgenannte Datei übersprungen werden? - %n translation unit(s) loaded. Eine Übersetzungseinheit geladen. @@ -1005,124 +823,84 @@ Soll die erstgenannte Datei übersprungen werden? - Related files (%1);; Verwandte Dateien (%1);; - Open Translation Files Übersetzungsdateien öffnen - - File saved. Datei gespeichert. - - - Release Freigeben - Qt message files for released applications (*.qm) All files (*) Qt-Nachrichtendateien (*.qm) Alle Dateien (*) - - File created. Datei erzeugt. - - Printing... Drucke ... - Context: %1 Kontext: %1 - finished erledigt - unresolved ungelöst - obsolete veraltet - - Printing... (page %1) Drucke ... (Seite %1) - - Printing completed Drucken beendet - - Printing aborted Drucken abgebrochen - Search wrapped. Suche beginnt von oben. - - - - - - - - - - Qt Linguist Qt Linguist - - Cannot find the string '%1'. Kann Zeichenkette '%1' nicht finden. - Search And Translate in '%1' - Qt Linguist Suchen und übersetzen in '%1' - Qt Linguist - - - Translate - Qt Linguist Übersetzung - Qt Linguist - Translated %n entry(s) Ein Eintrag übersetzt @@ -1130,39 +908,32 @@ Alle Dateien (*) - No more occurrences of '%1'. Start over? Keine weiteren Vorkommen von '%1'. Von vorne beginnen? - Create New Phrase Book Erzeugen eines neuen Wörterbuchs - Qt phrase books (*.qph) All files (*) Qt-Wörterbücher (*.qph) Alle Dateien (*) - Phrase book created. Wörterbuch erzeugt. - Open Phrase Book Wörterbuch öffnen - Qt phrase books (*.qph);;All files (*) Qt-Wörterbücher (*.qph);;Alle Dateien (*) - %n phrase(s) loaded. Ein Wörterbucheintrag geladen. @@ -1170,328 +941,254 @@ Alle Dateien (*) - - - Add to phrase book Hinzufügen zum Wörterbuch - No appropriate phrasebook found. Es kann kein geeignetes Wörterbuch gefunden werden. - Adding entry to phrasebook %1 Eintrag zu Wörterbuch %1 hinzufügen - Select phrase book to add to Zu welchem Wörterbuch soll der Eintrag hinzugefügt werden? - Unable to launch Qt Assistant (%1) Qt Assistant kann nicht gestartet werden (%1) - Version %1 Version %1 - <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). - Do you want to save the modified files? Möchten Sie die geänderten Dateien speichern? - Do you want to save '%1'? Möchten Sie '%1' speichern? - Qt Linguist[*] Qt Linguist[*] - %1[*] - Qt Linguist %1[*] - Qt Linguist - - No untranslated translation units left. Es wurden alle Übersetzungseinheiten abgearbeitet. - &Window &Fenster - Minimize Minimieren - Ctrl+M Ctrl+M - Display the manual for %1. Handbuch zu %1 anzeigen. - Display information about %1. Informationen über %1 anzeigen. - &Save '%1' '%1' &speichern - Save '%1' &As... '%1' speichern &unter ... - Release '%1' '%1' freigeben - Release '%1' As... '%1' freigeben unter ... - &Close '%1' '%1' &schließen - - &Close &Schließen - Save All Alles speichern - - &Release All Alles f&reigeben - Close All Alle schließen - Translation File &Settings for '%1'... Einstellungen der Übersetzungs&datei für '%1' ... - &Batch Translation of '%1'... &Automatische Übersetzung von '%1' ... - Search And &Translate in '%1'... Suchen und &übersetzen in '%1' ... - Search And &Translate... Suchen und &übersetzen ... - - File Datei - - Edit Bearbeiten - - Translation Übersetzung - - Validation Validierung - - Help Hilfe - Cannot read from phrase book '%1'. Wörterbuch '%1' kann nicht gelesen werden. - Close this phrase book. Dieses Wörterbuch schließen. - Enables you to add, modify, or delete entries in this phrase book. Erlaubt das Hinzufügen, Ändern und Entfernen von Wörterbuch-Einträgen. - Print the entries in this phrase book. Die Einträge des Wörterbuchs drucken. - Cannot create phrase book '%1'. Wörterbuch '%1' kann nicht erzeugt werden. - Do you want to save phrase book '%1'? Möchten Sie das Wörterbuch '%1' speichern? - All Alle - Open/Refresh Form &Preview &Vorschau öffnen/aktualisieren - Form Preview Tool Vorschau für Eingabemasken - F5 F5 - - Translation File &Settings... E&instellungen ... - &Add to Phrase Book Zum Wörterbuch &hinzufügen - Ctrl+T Ctrl+T - Ctrl+J Ctrl+J - Ctrl+Shift+J Ctrl+Shift+J - Previous unfinished item Vorheriger unerledigter Eintrag - Next unfinished item Nächster unerledigter Eintrag - Move to previous item Zum vorigen Eintrag gehen - Next item Nächster Eintrag - Mark item as done and move to the next unfinished item Eintrag als erledigt markieren und zum nächsten unerledigten Eintrag gehen - Copies the source text into the translation field Kopiert den Ursprungstext in das Übersetzungsfeld - Toggle the validity check of accelerators Prüfung der Tastenkürzel ein- bzw. ausschalten - Toggle the validity check of ending punctuation Prüfung der Satzendezeichen am Ende des Textes ein- bzw. ausschalten - Toggle checking that phrase suggestions are used Überprüfung, ob Wörterbucheinträge benutzt werden, aktivieren/deaktivieren - Toggle the validity check of place markers Prüfung der Platzhalter ein- bzw. ausschalten' - 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. Eine Qt-Nachrichtendatei aus der aktuellen Übersetzungsdatei erzeugen. Der Dateiname wird automatisch aus dem Namen der TS-Datei abgeleitet. - Length Variants Längenvarianten - Display information about the Qt toolkit by Nokia. Zeigt Informationen über das Qt-Toolkit von Nokia an. @@ -1499,103 +1196,83 @@ Alle Dateien (*) MessageEditor - This is the right panel of the main window. - Russian Russisch - German Deutsch - Japanese Japanisch - French Französisch - Polish Polnisch - Chinese Chinesisch - This whole panel allows you to view and edit the translation of some source text. Dieser Bereich erlaubt die Darstellung und Änderung der Übersetzung eines Textes. - Source text Ursprungstext - This area shows the source text. Dieser Bereich zeigt den Ursprungstext. - Source text (Plural) Ursprungstext (Plural) - This area shows the plural form of the source text. Dieser Bereich zeigt die Pluralform des Ursprungstexts. - Developer comments Hinweise des Entwicklers - This area shows a comment that may guide you, and the context in which the text occurs. Dieser Bereich zeigt eventuelle Kommentare und den Kontext, in dem der Text auftritt. - Here you can enter comments for your own use. They have no effect on the translated applications. Hier können Sie Hinweise für den eigenen Gebrauch eintragen. Diese haben keinen Einflusse auf die Übersetzung. - %1 translation (%2) Übersetzung %1 (%2) - This is where you can enter or modify the translation of the above source text. Hier können Sie die Übersetzung des Ursprungstextes eingeben bzw. ändern. - %1 translation Übersetzung %1 - %1 translator comments %1 Hinweise des Übersetzers - '%1' Line: %2 '%1' @@ -1605,22 +1282,18 @@ Zeile: %2 MessageModel - Completion status for %1 Bearbeitungsstand von %1 - <file header> <Dateikopf> - <context comment> <Kontexthinweis> - <unnamed context> <unbenannter Kontext> @@ -1628,7 +1301,6 @@ Zeile: %2 MsgEdit - This is the right panel of the main window. @@ -1637,113 +1309,91 @@ Zeile: %2 PhraseBookBox - Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox. - (New Entry) (Neuer Eintrag) - %1[*] - Qt Linguist %1[*] - Qt Linguist - Qt Linguist Qt Linguist - Cannot save phrase book '%1'. Wörterbuch '%1' kann nicht gespeichert werden. - Edit Phrase Book Wörterbuch bearbeiten - This window allows you to add, modify, or delete entries in a phrase book. Dieses Fenster erlaubt das Hinzufügen, Ändern und Entfernen von Wörterbuch-Einträgen. - &Translation: &Übersetzung: - This is the phrase in the target language corresponding to the source phrase. Dies ist der Text, der in der Zielsprache dem Ursprungstext entspricht. - S&ource phrase: &Ursprungstext: - This is a definition for the source phrase. Dies ist die Definition des Ursprungstextes. - This is the phrase in the source language. Dies ist der Text der Ursprungssprache. - &Definition: &Definition: - Click here to add the phrase to the phrase book. Einen neuen Eintrag ins Wörterbuch einfügen. - &New Entry &Neuer Eintrag - Click here to remove the entry from the phrase book. Den Eintrag aus dem Wörterbuch entfernen. - &Remove Entry &Eintrag entfernen - Settin&gs... &Einstellungen ... - Click here to save the changes made. Änderungen speichern. - &Save &Speichern - Click here to close this window. Klicken Sie hier, um das Fenster zu schließen. - Close Schließen @@ -1751,17 +1401,14 @@ Zeile: %2 PhraseModel - Source phrase Ursprungstext - Translation Übersetzung - Definition Definition @@ -1769,22 +1416,18 @@ Zeile: %2 PhraseView - Insert Einfügen - Edit Bearbeiten - Guess (%1) Vorschlag (%1) - Guess Vorschlag @@ -1792,63 +1435,46 @@ Zeile: %2 QObject - Compiled Qt translations Kompilierte Qt-Übersetzungen - Translation files (%1);; Übersetzungsdateien (%1);; - All files (*) Alle Dateien (*) - - - - - - - Qt Linguist Qt Linguist - GNU Gettext localization files GNU-Gettext-Übersetzungsdateien - GNU Gettext localization template files Vorlagen für GNU-Gettext-Übersetzungsdateien - Qt translation sources (format 1.1) Qt-Übersetzungsdateien (Formatversion 1.1) - Qt translation sources (format 2.0) Qt-Übersetzungsdateien (Formatversion 2.0) - Qt translation sources (latest format) Qt-Übersetzungsdateien (aktuelles Format) - XLIFF localization files XLIFF-Übersetzungsdateien - Qt Linguist 'Phrase Book' Qt-Linguist-Wörterbuch @@ -1856,17 +1482,14 @@ Zeile: %2 SourceCodeView - <i>Source code not available</i> <i>Quelltext nicht verfügbar</i> - <i>File %1 not available</i> <i>Datei %1 nicht vorhanden</i> - <i>File %1 not readable</i> <i>Datei %1 nicht lesbar</i> @@ -1874,42 +1497,34 @@ Zeile: %2 Statistics - Statistics Statistiken - Translation Übersetzung - Source Quelle - 0 0 - Words: Wörter: - Characters: Zeichen: - Characters (with spaces): Zeichen (mit Leerzeichen): - Close Schließen @@ -1917,72 +1532,58 @@ Zeile: %2 TranslateDialog - This window allows you to search for some text in the translation source file. Dieses Fenster erlaubt die Suche in der Übersetzungsdatei. - Type in the text to search for. Geben Sie den Text ein, nach dem gesucht werden soll. - Find &source text: &Ursprungstext: - &Translate to: &Übersetzung: - Search options Sucheinstellungen - Texts such as 'TeX' and 'tex' are considered as different when checked. Wenn aktiviert, werden Texte wie 'TeX' und 'tex' als unterschiedlich betrachtet. - Match &case &Groß-/Kleinschreibung beachten - Mark new translation as &finished Neue Übersetzung als &erledigt markieren - Click here to find the next occurrence of the text you typed in. Klicken Sie hier, um zum nächsten Vorkommen des Suchtextes zu springen. - Find Next Weitersuchen - Translate Übersetzen - Translate All Alle übersetzen - Click here to close this window. Klicken Sie hier, um das Fenster zu schließen. - Cancel Abbrechen @@ -1990,33 +1591,26 @@ Zeile: %2 TranslationSettingsDialog - Any Country Land - - Settings for '%1' - Qt Linguist Einstellungen für '%1' - Qt Linguist - Source language Ursprungssprache - Language Sprache - Country/Region Land/Region - Target language Zielsprache diff --git a/translations/qt_de.ts b/translations/qt_de.ts index 74bd048..7a062dc 100644 --- a/translations/qt_de.ts +++ b/translations/qt_de.ts @@ -4,7 +4,6 @@ CloseButton - Close Tab Schließen @@ -12,12 +11,10 @@ FakeReply - Fake error ! Fake error ! - Invalid URL Ungültige URL @@ -25,37 +22,30 @@ MAC_APPLICATION_MENU - Services Dienste - Hide %1 %1 ausblenden - Hide Others Andere ausblenden - Show All Alle anzeigen - Preferences... Einstellungen... - Quit %1 %1 beenden - About %1 Über %1 @@ -63,32 +53,26 @@ Phonon:: - Notifications Benachrichtigungen - Music Musik - Video Video - Communication Kommunikation - Games Spiele - Accessibility Eingabehilfen @@ -96,24 +80,18 @@ Phonon::AudioOutput - - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> <html>Das Audiogerät <b>%1</b> funktioniert nicht.<br/>Es wird stattdessen <b>%2</b> verwendet.</html> - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> <html>Das Audiogerät <b>%1</b> wurde aktiviert,<br/>da es gerade verfügbar und höher priorisiert ist.</html> - - Revert back to device '%1' Zurückschalten zum Gerät '%1' - <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> <html>Es wird zum Audiogerät <b>%1</b> geschaltet, <br/>da es höher priorisiert ist oder spezifisch für diesen Stream konfiguriert wurde.</html> @@ -121,14 +99,12 @@ Phonon::Gstreamer::Backend - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. Achtung: Das Paket gstreamer0.10-plugins-good ist nicht installiert. Einige Video-Funktionen stehen nicht zur Verfügung. - Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled Achtung: Die grundlegenden GStreamer-Plugins sind nicht installiert. @@ -138,7 +114,6 @@ Die Audio- und Video-Unterstützung steht nicht zur Verfügung. Phonon::Gstreamer::MediaObject - Cannot start playback. Check your GStreamer installation and make sure you @@ -148,49 +123,34 @@ have libgstreamer-plugins-base installed. Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass das Paket libgstreamer-plugins-base installiert ist. - Missing codec helper script assistant. Der Skript-Hilfsassistent des Codecs fehlt. - Plugin codec installation failed for codec: %0 Die Installation des Codec-Plugins schlug fehl für: %0 - A required codec is missing. You need to install the following codec(s) to play this content: %0 Es sind nicht alle erforderlichen Codecs installiert. Um diesen Inhalt abzuspielen, muss der folgende Codec installiert werden: %0 - - - - - - - - Could not open media source. Die Medienquelle konnte nicht geöffnet werden. - Invalid source type. Ungültiger Typ der Medienquelle. - Could not locate media source. Die Medienquelle konnte nicht gefunden werden. - Could not open audio device. The device is already in use. Das Audiogerät konnte nicht geöffnet werden, da es bereits in Benutzung ist. - Could not decode media source. Die Medienquelle konnte nicht gefunden werden. @@ -198,162 +158,130 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF - Audio Output Audio-Ausgabe - The audio output device Audio-Ausgabegerät - No error Kein Fehler - Not found Nicht gefunden - Out of memory Es ist kein Speicher mehr verfügbar - Not supported Nicht unterstützt - Overflow Überlauf - Underflow Unterlauf - Already exists Existiert bereits - Path not found Pfad konnte nicht gefunden werden - In use Bereits in Verwendung - Not ready Nicht bereit - Access denied Zugriff verweigert - Could not connect Es konnte keine Verbindung hergestellt werden - Disconnected Getrennt - Permission denied Zugriff verweigert - Insufficient bandwidth Unzureichende Bandweite - Network unavailable Netzwerk nicht verfügbar - Network communication error Fehler bei der Kommunikation über das Netzwerk - Streaming not supported Streaming nicht unterstützt - Server alert Server alert - Invalid protocol Ungültiges Protokoll - Invalid URL Ungültige URL - Multicast error Multicast-Fehler - Proxy server error Fehler bei Proxy-Server-Kommunikation - Proxy server not supported Proxy-Server nicht unterstützt - Audio output error Fehler bei Audio-Ausgabe - Video output error Fehler bei Video-Ausgabe - Decoder error Fehler im Decoder - Audio or video components could not be played Audio- oder Videokomponenten konnten nicht abgespielt werden - DRM error DRM-Fehler - Unknown error (%1) Unbekannter Fehler (%1) @@ -361,33 +289,34 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::AbstractMediaPlayer - Not ready to play Das Abspielen ist im Grundzustand nicht möglich - - Error opening file Die Datei konnte nicht geöffnet werden - Error opening URL Der URL konnte nicht geöffnet werden - + Error opening resource + Die Ressource konnte nicht geöffnet werden + + + Error opening source: resource not opened + Die Quelle konnte nicht geöffnet werden: Ressource nicht geöffnet + + Setting volume failed Die Lautstärke konnte nicht eingestellt werden - Loading clip failed Das Laden des Clips schlug fehl - Playback complete Abspielen beendet @@ -395,22 +324,18 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::AbstractVideoPlayer - Pause failed Fehler bei Pause-Funktion - Seek failed Suchoperation fehlgeschlagen - Getting position failed Die Position konnte nicht bestimmt werden - Opening clip failed Der Clip konnte nicht geöffnet werden @@ -418,7 +343,6 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::AudioEqualizer - %1 Hz %1 Hz @@ -426,7 +350,6 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::AudioPlayer - Getting position failed Die Position konnte nicht bestimmt werden @@ -434,11 +357,6 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::DsaVideoPlayer - - - - - Video display error Fehler bei der Video-Anzeige @@ -446,7 +364,6 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::EffectFactory - Enabled Aktiviert @@ -454,61 +371,51 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::EnvironmentalReverb - Decay HF ratio (%) DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. Hochfrequenz-Abklingverhältnis (%) - Decay time (ms) DecayTime: Time over which reverberation is diminished. Abklingzeit (ms) - Density (%) 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. Dichte (%) - Diffusion (%) 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. Diffusion (%) - Reflections delay (ms) ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. Verzögerung des Echos (ms) - Reflections level (mB) ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. Stärke des Echos (mB) - Reverb delay (ms) ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. Verzögerung des Nachhalls (ms) - Reverb level (mB) ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. Stärke des Nachhalls (mB) - Room HF level RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. Hochfrequenz-Pegel des Raums - Room level (mB) RoomLevel: Master volume control for all reflected sound. Pegel des Raums (mB) @@ -517,12 +424,18 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::MediaObject - Error opening source: type not supported Die Quelle konnte nicht geöffnet werden: Dieser Typ wird nicht unterstützt - + Error opening source: resource is compressed + Die Quelle konnte nicht geöffnet werden: Die Ressource ist komprimiert + + + Error opening source: resource not valid + Die Quelle konnte nicht geöffnet werden: Ungültige Ressource + + Error opening source: media type could not be determined Die Quelle konnte nicht geöffnet werden: Der Medientyp konnte nicht bestimmt werden @@ -530,7 +443,6 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::StereoWidening - Level (%) Stärke (%) @@ -538,8 +450,6 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::MMF::SurfaceVideoPlayer - - Video display error Fehler bei der Video-Anzeige @@ -547,22 +457,14 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Phonon::VolumeSlider - - - - Volume: %1% Lautstärke: %1% - - - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% Mit diesem Regler stellen Sie die Lautstärke ein. Die Position links entspricht 0%; die Position rechts entspricht %1% - Muted Stummschaltung @@ -570,12 +472,10 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Q3Accel - %1, %2 not defined %1, %2 sind nicht definiert - Ambiguous %1 not handled Mehrdeutige %1 können nicht verarbeitet werden @@ -583,27 +483,22 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Q3DataTable - True Wahr - False Falsch - Insert Einfügen - Update Aktualisieren - Delete Löschen @@ -611,313 +506,238 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass Q3FileDialog - Copy or Move a File Datei kopieren oder verschieben - Read: %1 Lesen: %1 - - Write: %1 Schreiben: %1 - - Cancel Abbrechen - - - - All Files (*) Alle Dateien (*) - Name Name - Size Größe - Type Typ - Date Datum - Attributes Attribute - - &OK &OK - Look &in: Su&chen in: - - - File &name: Datei&name: - File &type: Datei&typ: - Back Zurück - One directory up Ein Verzeichnis zurück - Create New Folder Neuen Ordner erstellen - List View Liste - Detail View Ausführlich - Preview File Info Vorschau der Datei-Informationen - Preview File Contents Vorschau des Datei-Inhalts - Read-write Lesen/Schreiben - Read-only Nur Lesen - Write-only Nur Schreiben - Inaccessible Gesperrt - Symlink to File Verknüpfung mit Datei - Symlink to Directory Verknüpfung mit Verzeichnis - Symlink to Special Verknüpfung mit Spezialdatei - File Datei - Dir Verzeichnis - Special Spezialattribut - - - Open Öffnen - - Save As Speichern unter - - - &Open &Öffnen - - &Save S&peichern - &Rename &Umbenennen - &Delete &Löschen - R&eload Erne&ut laden - Sort by &Name Nach &Namen sortieren - Sort by &Size Nach &Größe sortieren - Sort by &Date Nach &Datum sortieren - &Unsorted &Unsortiert - Sort Sortieren - Show &hidden files &Versteckte Dateien anzeigen - the file die Datei - the directory das Verzeichnis - the symlink die Verknüpfung - Delete %1 %1 löschen - <qt>Are you sure you wish to delete %1 "%2"?</qt> <qt>Sind Sie sicher, dass Sie %1 "%2" löschen möchten?</qt> - &Yes &Ja - &No &Nein - New Folder 1 Neues Verzeichnis 1 - New Folder Neues Verzeichnis - New Folder %1 Neues Verzeichnis %1 - Find Directory Verzeichnis suchen - - Directories Verzeichnisse - Directory: Verzeichnis: - - Error Fehler - %1 File not found. Check path and filename. @@ -926,17 +746,14 @@ Datei kann nicht gefunden werden. Überprüfen Sie Pfad und Dateinamen. - All Files (*.*) Alle Dateien (*.*) - Open Öffnen - Select a Directory Wählen Sie ein Verzeichnis @@ -944,29 +761,24 @@ Datei kann nicht gefunden werden. Q3LocalFs - - Could not read directory %1 Konnte Verzeichnis nicht lesen %1 - Could not create directory %1 Konnte Verzeichnis nicht erstellen %1 - Could not remove file or directory %1 Konnte Datei oder Verzeichnis nicht löschen %1 - Could not rename %1 to @@ -977,14 +789,12 @@ nach %2 - Could not open %1 Konnte nicht geöffnet werden: %1 - Could not write %1 Konnte nicht geschrieben werden: @@ -994,12 +804,10 @@ nach Q3MainWindow - Line up Ausrichten - Customize... Anpassen... @@ -1007,7 +815,6 @@ nach Q3NetworkProtocol - Operation stopped by the user Operation von Benutzer angehalten @@ -1015,8 +822,6 @@ nach Q3ProgressDialog - - Cancel Abbrechen @@ -1024,28 +829,22 @@ nach Q3TabDialog - - OK OK - Apply Anwenden - Help Hilfe - Defaults Voreinstellungen - Cancel Abbrechen @@ -1053,38 +852,30 @@ nach Q3TextEdit - &Undo &Rückgängig - &Redo Wieder&herstellen - Cu&t &Ausschneiden - &Copy &Kopieren - &Paste Einf&ügen - Clear Löschen - - Select All Alles auswählen @@ -1092,67 +883,54 @@ nach Q3TitleBar - System System - Restore up Wiederherstellen - Minimize Minimieren - Restore down Wiederherstellen - Maximize Maximieren - Close Schließen - Contains commands to manipulate the window Enthält Befehle zum Ändern der Fenstergröße - Puts a minimized window back to normal Stellt ein minimiertes Fenster wieder her - Moves the window out of the way Minimiert das Fenster - Puts a maximized window back to normal Stellt ein maximiertes Fenster wieder her - Makes the window full screen Vollbildmodus - Closes the window Schließt das Fenster - Displays the name of the window and contains controls to manipulate it Zeigt den Namen des Fensters und enthält Befehle zum Ändern @@ -1160,7 +938,6 @@ nach Q3ToolBar - More... Mehr... @@ -1168,51 +945,38 @@ nach Q3UrlOperator - - - The protocol `%1' is not supported Das Protokoll `%1' wird nicht unterstützt - The protocol `%1' does not support listing directories Das Protokoll `%1' unterstützt nicht das Auflisten von Verzeichnissen - The protocol `%1' does not support creating new directories Das Protokoll `%1' unterstützt nicht das Anlegen neuer Verzeichnisse - The protocol `%1' does not support removing files or directories Das Protokoll `%1' unterstützt nicht das Löschen von Dateien oder Verzeichnissen - The protocol `%1' does not support renaming files or directories Das Protokoll `%1' unterstützt nicht das Umbenennen von Dateien oder Verzeichnissen - The protocol `%1' does not support getting files Das Protokoll `%1' unterstützt nicht das Laden von Dateien - The protocol `%1' does not support putting files Das Protokoll `%1' unterstützt nicht das Speichern von Dateien - - The protocol `%1' does not support copying or moving files or directories Das Protokoll `%1' unterstützt nicht das Kopieren oder Verschieben von Dateien oder Verzeichnissen - - (unknown) (unbekannt) @@ -1220,27 +984,22 @@ nach Q3Wizard - &Cancel &Abbrechen - < &Back < &Zurück - &Next > &Weiter > - &Finish Ab&schließen - &Help &Hilfe @@ -1248,45 +1007,30 @@ nach QAbstractSocket - - - - Host not found Rechner konnte nicht gefunden werden - - - Connection refused Verbindung verweigert - Connection timed out Das Zeitlimit für die Verbindung wurde überschritten - - - Operation on socket is not supported Diese Socket-Operation wird nicht unterstützt - - Socket operation timed out Das Zeitlimit für die Operation wurde überschritten - Socket is not connected Nicht verbunden - Network unreachable Das Netzwerk ist nicht erreichbar @@ -1294,17 +1038,14 @@ nach QAbstractSpinBox - &Step up &Inkrementieren - Step &down &Dekrementieren - &Select All &Alles auswählen @@ -1312,7 +1053,6 @@ nach QAccessibleButton - Press Drücken @@ -1320,28 +1060,23 @@ nach QApplication - QT_LAYOUT_DIRECTION 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. LTR - Executable '%1' requires Qt %2, found Qt %3. Die Anwendung '%1' benötigt Qt %2; es wurde aber Qt %3 gefunden. - Incompatible Qt Library Error Die Qt-Bibliothek ist inkompatibel - Activate Aktivieren - Activates the program's main window Aktiviert das Hauptfenster der Anwendung @@ -1349,22 +1084,18 @@ nach QAxSelect - Select ActiveX Control ActiveX-Element auswählen - OK OK - &Cancel &Abbrechen - COM &Object: COM-&Objekt: @@ -1372,17 +1103,14 @@ nach QCheckBox - Uncheck Löschen - Check Ankreuzen - Toggle Umschalten @@ -1390,57 +1118,46 @@ nach QColorDialog - Hu&e: Farb&ton: - &Sat: &Sättigung: - &Val: &Helligkeit: - &Red: &Rot: - &Green: &Grün: - Bl&ue: Bla&u: - A&lpha channel: A&lphakanal: - Select Color Farbauswahl - &Basic colors Grundfar&ben - &Custom colors &Benutzerdefinierte Farben - &Add to Custom Colors Zu benutzerdefinierten Farben &hinzufügen @@ -1448,23 +1165,18 @@ nach QComboBox - - Open Öffnen - False Falsch - True Wahr - Close Schließen @@ -1472,43 +1184,36 @@ nach QCoreApplication - %1: key is empty QSystemSemaphore %1: Ungültige Schlüsselangabe (leer) - %1: unable to make key QSystemSemaphore %1: Es kann kein Schlüssel erzeugt werden - %1: ftok failed QSystemSemaphore %1: ftok-Aufruf schlug fehl - %1: already exists QSystemSemaphore %1: existiert bereits - %1: does not exist QSystemSemaphore %1: Nicht existent - %1: out of resources QSystemSemaphore %1: Keine Ressourcen mehr verfügbar - %1: unknown error %2 QSystemSemaphore %1: Unbekannter Fehler %2 @@ -1517,22 +1222,18 @@ nach QDB2Driver - Unable to connect Es kann keine Verbindung aufgebaut werden - Unable to commit transaction Die Transaktion kann nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion kann nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) - Unable to set autocommit 'autocommit' kann nicht aktiviert werden @@ -1540,33 +1241,26 @@ nach QDB2Result - - Unable to execute statement Der Befehl kann nicht ausgeführt werden - Unable to prepare statement Der Befehl kann nicht initialisiert werden - Unable to bind variable Die Variable kann nicht gebunden werden - Unable to fetch record %1 Der Datensatz %1 kann nicht abgeholt werden - Unable to fetch next Der nächste Datensatz kann nicht abgeholt werden - Unable to fetch first Der erste Datensatz kann nicht abgeholt werden @@ -1574,22 +1268,18 @@ nach QDateTimeEdit - AM AM - am am - PM PM - pm pm @@ -1597,17 +1287,14 @@ nach QDeclarativeAbstractAnimation - Cannot animate non-existent property "%1" Die Eigenschaft '%1" existiert nicht und kann daher nicht animiert werden - Cannot animate read-only property "%1" Die Eigenschaft '%1" ist schreibgeschützt und kann daher nicht animiert werden - Animation is an abstract class Die Klasse Animation ist abstrakt @@ -1615,7 +1302,6 @@ nach QDeclarativeAnchorAnimation - Cannot set a duration of < 0 Es kann keine Zeitdauer <0 gesetzt werden @@ -1623,67 +1309,50 @@ nach QDeclarativeAnchors - Possible anchor loop detected on fill. Bei der Fülloperation wurde eine potentielle Endlosschleife der Anker festgestellt. - Possible anchor loop detected on centerIn. Bei der Operation 'centerIn' wurde eine potentielle Endlosschleife der Anker festgestellt. - - - - Cannot anchor to an item that isn't a parent or sibling. Das Ziel eines Anker muss ein Elternelement oder Element der gleichen Ebene sein. - Possible anchor loop detected on vertical anchor. Bei einem vertikalen Anker wurde eine potentielle Endlosschleife der Anker festgestellt. - Possible anchor loop detected on horizontal anchor. Bei einem horizontalen Anker wurde eine potentielle Endlosschleife der Anker festgestellt. - Cannot specify left, right, and hcenter anchors. Ankerangaben für links, rechts und horizontal zentriert dürfen nicht zusammen auftreten. - - Cannot anchor to a null item. Es kann kein Anker zu einem Null-Element angegeben werden. - Cannot anchor a horizontal edge to a vertical edge. Es kann kein Anker zu einer horizontalen oder vertikalen Kante angegeben werden. - - Cannot anchor item to self. Ein Element kann keinen Anker zu sich selbst haben. - Cannot specify top, bottom, and vcenter anchors. Ankerangaben für oben, unten und vertikal zentriert dürfen nicht zusammen auftreten. - Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. Ein Baseline-Anker darf nicht mit zusammen mit weiteren Ankerangaben für oben, unten und vertikal zentriert verwendet werden. - Cannot anchor a vertical edge to a horizontal edge. Vertikale und horizontale Kanten können nicht mit Ankern verbunden werden. @@ -1691,7 +1360,6 @@ nach QDeclarativeAnimatedImage - Qt was built without support for QMovie Diese Version der Qt-Bibliothek wurde ohne Unterstützung für die Klasse QMovie erstellt @@ -1699,7 +1367,6 @@ nach QDeclarativeBehavior - Cannot change the animation assigned to a Behavior. Die zu einem Behavior-Element gehörende Animation kann nicht geändert werden. @@ -1707,7 +1374,6 @@ nach QDeclarativeBinding - Binding loop detected for property "%1" Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt @@ -1715,7 +1381,6 @@ nach QDeclarativeCompiledBindings - Binding loop detected for property "%1" Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt @@ -1723,390 +1388,310 @@ nach QDeclarativeCompiler - - - - - - Invalid property assignment: "%1" is a read-only property Ungültige Zuweisung bei Eigenschaft: "%1" ist schreibgeschützt - Invalid property assignment: unknown enumeration Ungültige Zuweisung bei Eigenschaft: Ungültiger Aufzählungswert - Invalid property assignment: string expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Zeichenkette erwartet - Invalid property assignment: url expected Ungültige Zuweisung bei Eigenschaft: Es wird eine URL erwartet - Invalid property assignment: unsigned int expected Ungültige Zuweisung bei Eigenschaft: Es wird eine vorzeichenloser Ganzzahlwert erwartet - Invalid property assignment: int expected Ungültige Zuweisung bei Eigenschaft: Es wird ein Ganzzahlwert erwartet - Invalid property assignment: float expected - Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl erwartet + Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl erwartet - Invalid property assignment: double expected - Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl (double) erwartet + Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl (double) erwartet - Invalid property assignment: color expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Farbspezifikation erwartet - Invalid property assignment: date expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Datumsangabe erwartet - Invalid property assignment: time expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Zeitangabe erwartet - Invalid property assignment: datetime expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Datumsangabe erwartet - Invalid property assignment: point expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Koordinatenangabe für einen Punkt erwartet - Invalid property assignment: size expected Ungültige Zuweisung bei Eigenschaft: Es wird eine Größenangabe erwartet - Invalid property assignment: rect expected Ungültige Zuweisung bei Eigenschaft: Es werden Parameter für ein Rechteck erwartet - Invalid property assignment: boolean expected Ungültige Zuweisung bei Eigenschaft: Es wird ein Boolescher Wert erwartet - Invalid property assignment: 3D vector expected Ungültige Zuweisung bei Eigenschaft: Es wird ein dreidimensionaler Vektor erwartet - Invalid property assignment: unsupported type "%1" Ungültige Zuweisung bei Eigenschaft: Der Typ "%1" ist nicht unterstützt - Element is not creatable. Das Element kann nicht erzeugt werden. - Component elements may not contain properties other than id Komponenten dürfen außer id keine weiteren Eigenschaften enthalten. - Invalid component id specification Ungültige Komponentenspezifikation - - id is not unique ID-Wert nicht eindeutig - Invalid component body specification Inhalt der Komponente ungültig - Cannot create empty component specification Es kann keine leere Komponentenangabe erzeugt werden - Empty signal assignment Leere Signalzuweisung - Empty property assignment Leere Eigenschaftszuweisung - Attached properties cannot be used here An dieser Stelle können keine Eigenschaften des Typs 'attached' verwendet werden - - Non-existent attached object Es existiert kein Bezugselement für die Eigenschaft - - Invalid attached object assignment Ungültige Zuweisung des Bezugselements - Cannot assign to non-existent default property Es kann keine Zuweisung erfolgen, da keine Vorgabe-Eigenschaft existiert - - Cannot assign to non-existent property "%1" Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert - Invalid use of namespace Ungültige Verwendung eines Namensraums - Not an attached property name Kein gültiger Name einer Eigenschaft des Typs 'attached' - Invalid use of id property Ungültige Verwendung einer Eigenschaft des Typs 'Id' - Incorrectly specified signal assignment - + Invalid property assignment: number expected + Ungültige Zuweisung bei Eigenschaft: Es wird eine Zahl erwartet + + Component objects cannot declare new properties. Komponentenobjekte können keine neuen Eigenschaften deklarieren. - Component objects cannot declare new signals. Komponentenobjekte können keine neuen Signale deklarieren. - Component objects cannot declare new functions. Komponentenobjekte können keine neuen Funktionen deklarieren. - Cannot assign a value to a signal (expecting a script to be run) Einem Signal können keine Werte zugewiesen werden (es wird ein Skript erwartet) - - Property has already been assigned a value Der Eigenschaft wurde bereits ein Wert zugewiesen - - Invalid grouped property access Falsche Gruppierung bei Zugriff auf Eigenschaft - Cannot assign a value directly to a grouped property Bei einer Eigenschaft, die Teil einer Gruppierung ist, ist keine direkte Wertzuweisung zulässig - Invalid property use Ungültige Verwendung von Eigenschaften - Property assignment expected Zuweisung an Eigenschaft erwartet - Single property assignment expected Einzelne Zuweisung an Eigenschaft erwartet - Unexpected object assignment Zuweisung des Objekts nicht zulässig - Cannot assign object to list Zuweisung eines Objekts an eine Liste nicht zulässig - Can only assign one binding to lists Listen kann nur eine einzige Bindung zugewiesen werden - Cannot assign primitives to lists Zuweisung eines einfachen Werts (primitive) an eine Liste nicht zulässig - Cannot assign multiple values to a script property Eine Zuweisung mehrerer Werte an eine Skript-Eigenschaft ist nicht zulässig - Invalid property assignment: script expected Ungültige Zuweisung bei Eigenschaft: Es wird ein Skript erwartet - Cannot assign object to property Zuweisung eines Objekts an eine Eigenschaft nicht zulässig - "%1" cannot operate on "%2" "%1" kann nicht auf "%2" angewandt werden - Duplicate default property Mehrfaches Auftreten der Vorgabe-Eigenschaft - Duplicate property name Mehrfaches Auftreten eines Eigenschaftsnamens - Property names cannot begin with an upper case letter Eigenschaftsnamen dürfen nicht mit einem Großbuchstaben beginnen - + Illegal property name + Ungültiger Name der Eigenschaft + + Duplicate signal name Mehrfaches Auftreten eines Signalnamens - Signal names cannot begin with an upper case letter Signalnamen dürfen nicht mit einem Großbuchstaben beginnen - Illegal signal name Ungültiger Name für Signal - Duplicate method name Mehrfaches Auftreten eines Methodennamens - Method names cannot begin with an upper case letter Methodennamen dürfen nicht mit einem Großbuchstaben beginnen - Illegal method name Ungültiger Name für Methode - Property value set multiple times Mehrfache Zuweisung eines Wertes an eine Eigenschaft - Invalid property nesting Ungültige Schachtelung von Eigenschaften - Cannot override FINAL property Eine als 'FINAL' ausgewiesene Eigenschaft kann nicht überschrieben werden - Invalid property type Ungültiger Typ der Eigenschaft - Invalid empty ID Ungültiger (leerer) Id-Wert - IDs cannot start with an uppercase letter Id-Werte dürfen nicht mit einem Großbuchstaben beginnen - IDs must start with a letter or underscore Id-Werte müssen mit einem Buchstaben oder dem Zeichen '_' beginnen - IDs must contain only letters, numbers, and underscores Id-Werte dürfen nur Buchstaben oder Unterstriche enthalten - ID illegally masks global JavaScript property Der Id-Wert überdeckt eine globale Eigenschaft aus JavaScript - - No property alias location Alias-Eigenschaft ohne Quellangabe - - Invalid alias location Ungültige Quellangabe bei Alias-Eigenschaft - Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> Ungültige Referenzierung einer Alias-Eigenschaft. Die Referenz muss in der Form <id> oder <id>.<property> angegeben werden - Invalid alias reference. Unable to find id "%1" Ungültige Referenzierung einer Alias-Eigenschaft. Der Id-Wert "%1" konnte nicht gefunden werden @@ -2114,7 +1699,6 @@ nach QDeclarativeComponent - Invalid empty URL Ungültige (leere) URL @@ -2122,23 +1706,18 @@ nach QDeclarativeCompositeTypeManager - - Resource %1 unavailable Auf die Ressource %1 konnte nicht zugegriffen werden - Namespace %1 cannot be used as a type Der Namensraum %1 kann nicht als Typangabe verwendet werden - %1 %2 %1 %2 - Type %1 unavailable Der Typ %1 ist nicht verfügbar @@ -2146,23 +1725,18 @@ nach QDeclarativeConnections - - Cannot assign to non-existent property "%1" Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert - Connections: nested objects not allowed Verbindungen: Verschachtelte Objekte sind nicht zulässig - Connections: syntax error Verbindungen: Syntaxfehler - Connections: script expected Verbindungen: Skript erwartet @@ -2170,33 +1744,26 @@ nach QDeclarativeEngine - executeSql called outside transaction() 'executeSql' wurde außerhalb von 'transaction()' aufgerufen - Read-only Transaction Schreibgeschützte Transaktion - Version mismatch: expected %1, found %2 Die Version %2 kann nicht verwendet werden; es wird %1 benötigt - SQL transaction failed Die SQL-Transaktion schlug fehl - transaction: missing callback callback fehlt bei Transaktion - - SQL: database version mismatch SQL: Die Version der Datenbank entspricht nicht der erwarteten Version @@ -2204,12 +1771,10 @@ nach QDeclarativeFlipable - front is a write-once property 'front' kann nur einmal zugewiesen werden - back is a write-once property 'back' kann nur einmal zugewiesen werden @@ -2217,75 +1782,58 @@ nach QDeclarativeImportDatabase - module "%1" definition "%2" not readable Modul "%1" Definition "%2" kann nicht gelesen werden - plugin cannot be loaded for module "%1": %2 Das Plugin des Moduls "%1" konnte nicht geladen werden: %2 - module "%1" plugin "%2" not found Modul "%1" Plugin "%2" konnte nicht gefunden werden - - module "%1" version %2.%3 is not installed Modul "%1" Version %2.%3 ist nicht installiert - module "%1" is not installed Modul "%1" ist nicht installiert - - "%1": no such directory Das Verzeichnis "%1" existiert nicht - import "%1" has no qmldir and no namespace "qmldir" und Namensraum fehlen bei dem Import "%1" - - %1 is not a namespace - %1 ist kein gültiger Namensraum - - nested namespaces not allowed - geschachtelte Namensräume sind nicht zulässig - - local directory Lokales Verzeichnis' - is ambiguous. Found in %1 and in %2 ist mehrdeutig. Es kommt in %1 und in %2 vor - is ambiguous. Found in %1 in version %2.%3 and %4.%5 ist mehrdeutig. Es kommt in %1 in den Version %2.%3 und %4.%5 vor - is instantiated recursively wird rekursiv instanziiert - is not a type ist kein Typ @@ -2293,7 +1841,6 @@ nach QDeclarativeKeyNavigationAttached - KeyNavigation is only available via attached properties Tastennavigation ist nur über Eigenschaften des Typs 'attached' verfügbar @@ -2301,7 +1848,6 @@ nach QDeclarativeKeysAttached - Keys is only available via attached properties Die Unterstützung für Tasten ist nur über Eigenschaften des Typs 'attached' verfügbar @@ -2309,59 +1855,46 @@ nach QDeclarativeListModel - remove: index %1 out of range remove: Der Index %1 ist außerhalb des gültigen Bereichs - insert: value is not an object insert: Der Wert ist kein Objekt - insert: index %1 out of range insert: Der Index %1 ist außerhalb des gültigen Bereichs - move: out of range move: Außerhalb des gültigen Bereichs - append: value is not an object append: Der Wert ist kein Objekt - set: value is not an object set: Der Wert ist kein Objekt - - set: index %1 out of range set: Der Index %1 ist außerhalb des gültigen Bereichs - - ListElement: cannot contain nested elements ListElement kann keine geschachtelten Elemente enthalten - ListElement: cannot use reserved "id" property ListElement: Die "id"-Eigenschaft kann nicht verwendet werden - ListElement: cannot use script for property value ListElement: Es kann kein Skript für den Wert der Eigenschaft verwendet werden - ListModel: undefined property '%1' ListModel: Die Eigenschaft '%1' ist nicht definiert @@ -2369,7 +1902,6 @@ nach QDeclarativeLoader - Loader does not support loading non-visual elements. Das Laden nicht-visueller Elemente ist nicht unterstützt. @@ -2377,18 +1909,14 @@ nach QDeclarativeParentAnimation - Unable to preserve appearance under complex transform Das Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden - - Unable to preserve appearance under non-uniform scale Das Erscheinungsbild kann bei einer nicht-uniformen Skalierung nicht beibehalten werden - Unable to preserve appearance under scale of 0 Das Erscheinungsbild kann bei einer Skalierung mit 0 nicht beibehalten werden @@ -2396,18 +1924,14 @@ nach QDeclarativeParentChange - Unable to preserve appearance under complex transform Das Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden - - Unable to preserve appearance under non-uniform scale Das Erscheinungsbild kann bei einer nicht-uniformen Skalierung nicht beibehalten werden - Unable to preserve appearance under scale of 0 Das Erscheinungsbild kann bei einer Skalierung mit 0 nicht beibehalten werden @@ -2415,144 +1939,110 @@ nach QDeclarativeParser - Illegal character Ungültiges Zeichen - Unclosed string at end of line Zeichenkette am Zeilenende nicht abgeschlossen - Illegal escape squence Ungültiges Escape-Sequenz - - - Illegal unicode escape sequence Ungültige Unicode-Escape-Sequenz - Unclosed comment at end of file Kommentar am Dateiende nicht abgeschlossen - Illegal syntax for exponential number Ungültige Syntax des Exponenten - Identifier cannot start with numeric literal Ein Bezeichner darf nicht mit einem numerischen Literal beginnen - Unterminated regular expression literal Regulärer Ausdruck nicht abgeschlossen - Invalid regular expression flag '%0' Ungültiger Modifikator '%0' bei regulärem Ausdruck - - Unterminated regular expression backslash sequence Regulärer Ausdruck nicht abgeschlossen - Unterminated regular expression class Klasse im regulären Ausdruck nicht abgeschlossen - - Syntax error Syntaxfehler - Unexpected token `%1' Unerwartetes Element '%1' - - Expected token `%1' Es wird das Element '%1' erwartet - - - Property value set multiple times Mehrfache Zuweisung eines Wertes an eine Eigenschaft - Expected type name Es wird ein Typname erwartet - Invalid import qualifier ID Ungültige Id-Angabe bei Import - Reserved name "Qt" cannot be used as an qualifier Der reservierte Name "Qt" kann nicht als Bezeichner verwendet werden - Script import qualifiers must be unique. Der für den Skript-Import angegebene Qualifizierer muss eindeutig sein. - Script import requires a qualifier Der Skript-Import erfordert die Angabe eines Qualifizierers. - Library import requires a version Der Import einer Bibliothek erfordert eine Versionsangabe - Expected parameter type Es wird eine Typangabe für den Parameter erwartet - Invalid property type modifier Ungültiger Modifikator für den Typ der Eigenschaft - Unexpected property type modifier Modifikator für den Typ der Eigenschaft an dieser Stelle nicht zulässig - Expected property type Typangabe für Eigenschaft erwartet - Readonly not yet supported 'read-only' wird an dieser Stelle noch nicht unterstützt - JavaScript declaration outside Script element Eine JavaScript-Deklaration ist außerhalb eines Skriptelementes nicht zulässig @@ -2560,39 +2050,47 @@ nach QDeclarativePauseAnimation - Cannot set a duration of < 0 Es kann keine Zeitdauer <0 gesetzt werden - QDeclarativePixmapCache + QDeclarativePixmap - Error decoding: %1: %2 Fehler beim Decodieren: %1: %2 - Failed to get image from provider: %1 Bilddaten konnten nicht erhalten werden: %1 - - Cannot open: %1 Fehlschlag beim Öffnen: %1 + + + QDeclarativePixmapCache + + Error decoding: %1: %2 + Fehler beim Decodieren: %1: %2 + + + Failed to get image from provider: %1 + Bilddaten konnten nicht erhalten werden: %1 + + + Cannot open: %1 + Fehlschlag beim Öffnen: %1 + - Unknown Error loading %1 - Unbekannter Fehler beim Laden von %1 + Unbekannter Fehler beim Laden von %1 QDeclarativePropertyAnimation - Cannot set a duration of < 0 Es kann keine Zeitdauer <0 gesetzt werden @@ -2600,17 +2098,14 @@ nach QDeclarativePropertyChanges - PropertyChanges does not support creating state-specific objects. Die Erzeugung von Objekten, die einem Zustand zugeordnet sind, wird von PropertyChanges nicht unterstützt. - Cannot assign to non-existent property "%1" Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert - Cannot assign to read-only property "%1" Die Eigenschaft '%1" ist schreibgeschützt und kann daher nicht zugewiesen werden @@ -2618,13 +2113,10 @@ nach QDeclarativeTextInput - - Could not load cursor delegate Cursor-Delegate konnte nicht geladen werden - Could not instantiate cursor delegate Cursor-Delegate konnte angelegt werden @@ -2632,47 +2124,38 @@ nach QDeclarativeVME - Unable to create object of type %1 Es konnte kein Objekt des Typs %1 erzeugt werden - Cannot assign value %1 to property %2 Der Wert '%1' kann nicht der Eigenschaft %2 zugewiesen werden - Cannot assign object type %1 with no default method Der Objekttyp %1 kann nicht zugewiesen werden, da keine Vorgabe-Methode existiert - Cannot connect mismatched signal/slot %1 %vs. %2 Es kann keine Verbindung zwischen dem Signal %1 und dem Slot %2 hergestellt werden, da sie nicht zusammenpassen - Cannot assign an object to signal property %1 Der Signal-Eigenschaft %1 kann kein Objekt zugewiesen werden - Cannot assign object to list Zuweisung eines Objekts an eine Liste nicht zulässig - Cannot assign object to interface property Der Eigenschaft der Schnittstelle kann kein Objekt zugewiesen werden - Unable to create attached object Es konnte kein 'attached'-Objekt erzeugt werden - Cannot set properties on %1 as it is null Es können keine Eigenschaften auf %1 gesetzt werden, da es 'null' ist @@ -2680,7 +2163,6 @@ nach QDeclarativeVisualDataModel - Delegate component must be Item type. Delegate-Komponente muss vom Typ 'Item' sein @@ -2688,8 +2170,6 @@ nach QDeclarativeXmlListModel - - Qt was built without support for xmlpatterns Diese Version der Qt-Bibliothek wurde ohne Unterstützung für xmlpatterns erstellt @@ -2697,7 +2177,6 @@ nach QDeclarativeXmlListModelRole - An XmlRole query must not start with '/' Eine XmlRole-Abfrage darf nicht mit '/' beginnen @@ -2705,7 +2184,6 @@ nach QDeclarativeXmlRoleList - An XmlListModel query must start with '/' or "//" Eine XmlListModel-Abfrage muss mit '/' oder "//" beginnen @@ -2713,17 +2191,14 @@ nach QDial - QDial QDial - SpeedoMeter Tachometer - SliderHandle Schieberegler @@ -2731,12 +2206,10 @@ nach QDialog - What's This? Direkthilfe - Done Fertig @@ -2744,124 +2217,98 @@ nach QDialogButtonBox - - - OK OK - Save Speichern - &Save S&peichern - Open Öffnen - Cancel Abbrechen - &Cancel &Abbrechen - Close Schließen - &Close Schl&ießen - Apply Anwenden - Reset Zurücksetzen - Help Hilfe - Don't Save Nicht speichern - Discard Verwerfen - &Yes &Ja - Yes to &All Ja, &alle - &No &Nein - N&o to All N&ein, keine - Save All Alles speichern - Abort Abbrechen - Retry Wiederholen - Ignore Ignorieren - Restore Defaults Voreinstellungen - Close without Saving Schließen ohne Speichern - &OK &OK @@ -2869,29 +2316,24 @@ nach QDirModel - Name Name - Size Größe - Kind Match OS X Finder Art - Type All other platforms Typ - Date Modified Änderungsdatum @@ -2899,17 +2341,14 @@ nach QDockWidget - Close Schließen - Dock Andocken - Float Herauslösen @@ -2917,12 +2356,10 @@ nach QDoubleSpinBox - More Mehr - Less Weniger @@ -2930,27 +2367,22 @@ nach QErrorMessage - &Show this message again Diese Meldung wieder an&zeigen - &OK &OK - Debug Message: Debug-Ausgabe: - Warning: Achtung: - Fatal Error: Fehler: @@ -2958,38 +2390,30 @@ nach QFile - - Destination file exists Die Zieldatei existiert bereits - Will not rename sequential file using block copy Eine sequentielle Datei kann nicht durch blockweises Kopieren umbenannt werden - Cannot remove source file Die Quelldatei kann nicht entfernt werden - Cannot open %1 for input %1 kann nicht zum Lesen geöffnet werden - Cannot open for output Das Öffnen zum Schreiben ist fehlgeschlagen - Failure to write block Der Datenblock konnte nicht geschrieben werden - Cannot create %1 for output %1 kann nicht erstellt werden @@ -2997,113 +2421,84 @@ nach QFileDialog - - All Files (*) Alle Dateien (*) - - Back Zurück - - List View Liste - - Detail View Details - - File Datei - Open Öffnen - Save As Speichern unter - - - &Open &Öffnen - - &Save S&peichern - Recent Places Zuletzt besucht - &Rename &Umbenennen - &Delete &Löschen - Show &hidden files &Versteckte Dateien anzeigen - New Folder Neues Verzeichnis - Find Directory Verzeichnis suchen - Directories Verzeichnisse - All Files (*.*) Alle Dateien (*.*) - - Directory: Verzeichnis: - %1 already exists. Do you want to replace it? Die Datei %1 existiert bereits. Soll sie überschrieben werden? - %1 File not found. Please verify the correct file name was given. @@ -3112,25 +2507,18 @@ Die Datei konnte nicht gefunden werden. Stellen Sie sicher, dass der Dateiname richtig ist. - My Computer Mein Computer - - Parent Directory Übergeordnetes Verzeichnis - - Files of type: Dateien des Typs: - - %1 Directory not found. Please verify the correct directory name was given. @@ -3139,128 +2527,100 @@ Das Verzeichnis konnte nicht gefunden werden. Stellen Sie sicher, dass der Verzeichnisname richtig ist. - '%1' is write protected. Do you want to delete it anyway? '%1' ist schreibgeschützt. Möchten Sie die Datei trotzdem löschen? - Are sure you want to delete '%1'? Sind Sie sicher, dass Sie '%1' löschen möchten? - Could not delete directory. Konnte Verzeichnis nicht löschen. - Drive Laufwerk - File Folder Match Windows Explorer Ordner - Folder All other platforms Order - Alias Mac OS X Finder Alias - Shortcut All other platforms Symbolischer Link - Unknown Unbekannt - Show Anzeigen - - Forward Vorwärts - &New Folder &Neues Verzeichnis - - &Choose &Auswählen - Remove Löschen - - File &name: Datei&name: - - Look in: Suchen in: - - Create New Folder Neuen Ordner erstellen - Go back Zurück - Go forward Vor - Go to the parent directory Gehe zum übergeordneten Verzeichnis - Create a New Folder Neuen Ordner erstellen - Change to list view mode Wechsle zu Listenansicht - Change to detail view mode Wechsle zu Detailansicht @@ -3268,83 +2628,64 @@ Möchten Sie die Datei trotzdem löschen? QFileSystemModel - - %1 TB %1 TB - - %1 GB %1 GB - - %1 MB %1 MB - - %1 KB %1 KB - %1 bytes %1 Byte - Invalid filename Ungültiger Dateiname - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. <b>Der Name "%1" kann nicht verwendet werden.</b><p>Versuchen Sie, die Sonderzeichen zu entfernen oder einen kürzeren Namen zu verwenden. - Name Name - Size Größe - Kind Match OS X Finder Art - Type All other platforms Typ - Date Modified Änderungsdatum - My Computer Mein Computer - Computer Computer - %1 byte(s) %1 byte @@ -3352,221 +2693,170 @@ Möchten Sie die Datei trotzdem löschen? QFontDatabase - - Normal Normal - - - Bold Fett - - Demi Bold Halbfett - - - Black Schwarz - Demi Semi - - Light Leicht - - Italic Kursiv - - Oblique Schräggestellt - Any Alle - Latin Lateinisch - Greek Griechisch - Cyrillic Kyrillisch - Armenian Armenisch - Hebrew Hebräisch - Arabic Arabisch - Syriac Syrisch - Thaana Thaana - Devanagari Devanagari - Bengali Bengalisch - Gurmukhi Gurmukhi - Gujarati Gujarati - Oriya Oriya - Tamil Tamilisch - Telugu Telugu - Kannada Kannada - Malayalam Malayalam - Sinhala Sinhala - Thai Thailändisch - Lao Laotisch - Tibetan Tibetisch - Myanmar Myanmar - Georgian Georgisch - Khmer Khmer - Simplified Chinese Chinesisch (Kurzzeichen) - Traditional Chinese Chinesisch (Langzeichen) - Japanese Japanisch - Korean Koreanisch - Vietnamese Vietnamesisch - Symbol Symbol - Ogham Ogham - Runic Runen - N'Ko N'Ko @@ -3574,47 +2864,38 @@ Möchten Sie die Datei trotzdem löschen? QFontDialog - &Font &Schriftart - Font st&yle Schrifts&til - &Size &Größe - Effects Effekte - Stri&keout Durch&gestrichen - &Underline &Unterstrichen - Sample Beispiel - Select Font Schriftart auswählen - Wr&iting System &Schriftsystem @@ -3622,145 +2903,104 @@ Möchten Sie die Datei trotzdem löschen? QFtp - Host %1 found Rechner %1 gefunden - Host found Rechner gefunden - - - Connected to host %1 Verbunden mit Rechner %1 - Connected to host Verbindung mit Rechner besteht - Connection to %1 closed Verbindung mit %1 beendet - - - Connection closed Verbindung beendet - - Host %1 not found Rechner %1 konnte nicht gefunden werden - - Connection refused to host %1 Verbindung mit %1 verweigert - Connection timed out to host %1 Das Zeitlimit für die Verbindung zu '%1' wurde überschritten - - - - Unknown error Unbekannter Fehler - - Connecting to host failed: %1 Verbindung mit Rechner schlug fehl: %1 - - Login failed: %1 Anmeldung schlug fehl: %1 - - Listing directory failed: %1 Der Inhalt des Verzeichnisses kann nicht angezeigt werden: %1 - - Changing directory failed: %1 Ändern des Verzeichnisses schlug fehl: %1 - - Downloading file failed: %1 Herunterladen der Datei schlug fehl: %1 - - Uploading file failed: %1 Hochladen der Datei schlug fehl: %1 - - Removing file failed: %1 Löschen der Datei schlug fehl: %1 - - Creating directory failed: %1 Erstellen des Verzeichnisses schlug fehl: %1 - - Removing directory failed: %1 Löschen des Verzeichnisses schlug fehl: %1 - - Not connected Keine Verbindung - - Connection refused for data connection Verbindung für die Daten Verbindung verweigert @@ -3768,12 +3008,10 @@ Möchten Sie die Datei trotzdem löschen? QHostInfo - Unknown error Unbekannter Fehler - No host name given Es wurde kein Hostname angegeben @@ -3781,37 +3019,22 @@ Möchten Sie die Datei trotzdem löschen? QHostInfoAgent - - - - Host not found Rechner konnte nicht gefunden werden - - - - Unknown address type Unbekannter Adresstyp - - - Unknown error Unbekannter Fehler - - No host name given Es wurde kein Hostname angegeben - - Invalid hostname Ungültiger Rechnername @@ -3819,153 +3042,110 @@ Möchten Sie die Datei trotzdem löschen? QHttp - - Connection refused Verbindung verweigert - - - Host %1 not found Rechner %1 konnte nicht gefunden werden - - Wrong content length Ungültige Längenangabe - - HTTP request failed HTTP-Anfrage fehlgeschlagen - Host %1 found Rechner %1 gefunden - Host found Rechner gefunden - Connected to host %1 Verbunden mit Rechner %1 - Connected to host Verbindung mit Rechner besteht - Connection to %1 closed Verbindung mit %1 beendet - - Connection closed Verbindung beendet - - - - Unknown error Unbekannter Fehler - - Request aborted Anfrage wurde abgebrochen - - No server set to connect to Für die Verbindung wurde kein Server-Rechner angegeben - - Server closed connection unexpectedly Der Server hat die Verbindung unerwartet geschlossen - - Invalid HTTP response header Der Kopfteil der HTTP-Antwort ist ungültig - Unknown authentication method Unbekannte Authentifizierungsmethode - - - - Invalid HTTP chunked body Der Inhalt (chunked body) der HTTP-Antwort ist ungültig - Error writing response to device Beim Schreiben der Antwort auf das Ausgabegerät ist ein Fehler aufgetreten - Proxy authentication required Proxy-Authentifizierung erforderlich - Authentication required Authentifizierung erforderlich - Proxy requires authentication Der Proxy-Server verlangt eine Authentifizierung - Host requires authentication Der Hostrechner verlangt eine Authentifizierung - Data corrupted Die Daten sind verfälscht - SSL handshake failed Im Ablauf des SSL-Protokolls ist ein Fehler aufgetreten. - Unknown protocol specified Es wurde ein unbekanntes Protokoll angegeben - Connection refused (or timed out) Verbindung verweigert oder Zeitlimit überschritten - HTTPS connection requested but SSL support not compiled in Die angeforderte HTTPS-Verbindung kann nicht aufgebaut werden, da keine SSL-Unterstützung vorhanden ist @@ -3973,47 +3153,38 @@ Möchten Sie die Datei trotzdem löschen? QHttpSocketEngine - Did not receive HTTP response from proxy Keine HTTP-Antwort vom Proxy-Server - Error parsing authentication request from proxy Fehler beim Auswerten der Authentifizierungsanforderung des Proxy-Servers - Authentication required Authentifizierung erforderlich - Proxy denied connection Der Proxy-Server hat den Aufbau einer Verbindung verweigert - Error communicating with HTTP proxy Fehler bei der Kommunikation mit dem Proxy-Server - Proxy server not found Es konnte kein Proxy-Server gefunden werden - Proxy connection refused Der Proxy-Server hat den Aufbau einer Verbindung verweigert - Proxy server connection timed out Bei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit überschritten - Proxy connection closed prematurely Der Proxy-Server hat die Verbindung vorzeitig beendet @@ -4021,22 +3192,18 @@ Möchten Sie die Datei trotzdem löschen? QIBaseDriver - Error opening database Die Datenbankverbindung konnte nicht geöffnet werden - Could not start transaction Es konnte keine Transaktion gestartet werden - Unable to commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) @@ -4044,89 +3211,70 @@ Möchten Sie die Datei trotzdem löschen? QIBaseResult - Unable to create BLOB Es konnte kein BLOB erzeugt werden - Unable to write BLOB Der BLOB konnte nicht geschrieben werden - Unable to open BLOB Der BLOB konnte nicht geöffnet werden - Unable to read BLOB Der BLOB konnte nicht gelesen werden - - Could not find array Das Feld konnte nicht gefunden werden - Could not get array data Die Daten des Feldes konnten nicht gelesen werden - Could not get query info Die erforderlichen Informationen zur Abfrage sind nicht verfügbar - Could not start transaction Es konnte keine Transaktion gestartet werden - Unable to commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Could not allocate statement Die Allokation des Befehls schlug fehl - Could not prepare statement Der Befehl konnte nicht initialisiert werden - - Could not describe input statement Es konnte keine Beschreibung des Eingabebefehls erhalten werden - Could not describe statement Es konnte keine Beschreibung des Befehls erhalten werden - Unable to close statement Der Befehl konnte nicht geschlossen werden - Unable to execute query Der Befehl konnte nicht ausgeführt werden - Could not fetch next item Das nächste Element konnte nicht abgeholt werden - Could not get statement info Es ist keine Information zum Befehl verfügbar @@ -4134,27 +3282,22 @@ Möchten Sie die Datei trotzdem löschen? QIODevice - Permission denied Zugriff verweigert - Too many open files Zu viele Dateien geöffnet - No such file or directory Die Datei oder das Verzeichnis konnte nicht gefunden werden - No space left on device Kein freier Speicherplatz auf dem Gerät vorhanden - Unknown error Unbekannter Fehler @@ -4162,32 +3305,26 @@ Möchten Sie die Datei trotzdem löschen? QInputContext - XIM XIM - FEP FEP - XIM input method XIM-Eingabemethode - Windows input method Windows-Eingabemethode - Mac OS X input method Mac OS X-Eingabemethode - S60 FEP input method S60-FEP-Eingabemethode @@ -4195,7 +3332,6 @@ Möchten Sie die Datei trotzdem löschen? QInputDialog - Enter a value: Geben Sie einen Wert ein: @@ -4203,67 +3339,50 @@ Möchten Sie die Datei trotzdem löschen? QLibrary - Could not mmap '%1': %2 Operation mmap fehlgeschlagen für '%1': %2 - Plugin verification data mismatch in '%1' Die Prüfdaten des Plugins '%1' stimmen nicht überein - Could not unmap '%1': %2 Operation unmap fehlgeschlagen für '%1': %2 - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (%2.%3.%4) [%5] - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. Erforderlicher build-spezifischer Schlüssel "%2", erhalten "%3" - Unknown error Unbekannter Fehler - - - The shared library was not found. Die dynamische Bibliothek konnte nicht gefunden werden. - The file '%1' is not a valid Qt plugin. Die Datei '%1' ist kein gültiges Qt-Plugin. - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (Im Debug- bzw. Release-Modus erstellte Bibliotheken können nicht zusammen verwendet werden.) - - Cannot load library %1: %2 Die Bibliothek %1 kann nicht geladen werden: %2 - - Cannot unload library %1: %2 Die Bibliothek %1 kann nicht entladen werden: %2 - - Cannot resolve symbol "%1" in %2: %3 Das Symbol "%1" kann in %2 nicht aufgelöst werden: %3 @@ -4271,37 +3390,30 @@ Möchten Sie die Datei trotzdem löschen? QLineEdit - Select All Alles auswählen - &Undo &Rückgängig - &Redo Wieder&herstellen - Cu&t &Ausschneiden - &Copy &Kopieren - &Paste Einf&ügen - Delete Löschen @@ -4309,23 +3421,18 @@ Möchten Sie die Datei trotzdem löschen? QLocalServer - - %1: Name error %1: Fehlerhafter Name - %1: Permission denied %1: Zugriff verweigert - %1: Address in use %1: Die Adresse wird bereits verwendet - %1: Unknown error %2 %1: Unbekannter Fehler %2 @@ -4333,70 +3440,46 @@ Möchten Sie die Datei trotzdem löschen? QLocalSocket - - %1: Connection refused %1: Der Verbindungsaufbau wurde verweigert - - %1: Remote closed %1: Die Verbindung wurde von der Gegenseite geschlossen - - - - %1: Invalid name %1: Ungültiger Name - - %1: Socket access error %1: Fehler beim Zugriff auf den Socket - - %1: Socket resource error %1: Socket-Fehler (Ressourcenproblem) - - %1: Socket operation timed out %1: Zeitüberschreitung bei Socket-Operation - - %1: Datagram too large %1: Das Datagramm ist zu groß - - - %1: Connection error %1: Verbindungsfehler - - %1: The socket operation is not supported %1: Diese Socket-Operation wird nicht unterstützt - %1: Unknown error %1: Unbekannter Fehler - - %1: Unknown error %2 %1: Unbekannter Fehler %2 @@ -4404,27 +3487,22 @@ Möchten Sie die Datei trotzdem löschen? QMYSQLDriver - Unable to open database ' Die Datenbankverbindung kann nicht geöffnet werden ' - Unable to connect Es kann keine Verbindung aufgebaut werden - Unable to begin transaction Es kann keine Transaktion gestartet werden - Unable to commit transaction Die Transaktion kann nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion kann nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) @@ -4432,60 +3510,46 @@ Möchten Sie die Datei trotzdem löschen? QMYSQLResult - - Unable to fetch data Es konnten keine Daten abgeholt werden - Unable to execute query Die Abfrage konnte nicht ausgeführt werden - Unable to store result Das Ergebnis konnte nicht gespeichert werden - - Unable to prepare statement Der Befehl konnte nicht initialisiert werden - Unable to reset statement Der Befehl konnte nicht zurückgesetzt werden - Unable to bind value Der Wert konnte nicht gebunden werden - Unable to execute statement Der Befehl konnte nicht ausgeführt werden - - Unable to bind outvalues Die Ausgabewerte konnten nicht gebunden werden - Unable to store statement results Die Ergebnisse des Befehls konnten nicht gespeichert werden - Unable to execute next query Die folgende Abfrage kann nicht ausgeführt werden - Unable to store next result Das folgende Ergebnis kann nicht gespeichert werden @@ -4493,7 +3557,6 @@ Möchten Sie die Datei trotzdem löschen? QMdiArea - (Untitled) (Unbenannt) @@ -4501,92 +3564,74 @@ Möchten Sie die Datei trotzdem löschen? QMdiSubWindow - %1 - [%2] %1 - [%2] - Close Schließen - Minimize Minimieren - Restore Down Wiederherstellen - &Restore Wieder&herstellen - &Move Ver&schieben - &Size Größe ä&ndern - Mi&nimize M&inimieren - Ma&ximize Ma&ximieren - Stay on &Top Im &Vordergrund bleiben - &Close Schl&ießen - Maximize Maximieren - Unshade Herabrollen - Shade Aufrollen - Restore Wiederherstellen - Help Hilfe - Menu Menü - - [%1] - [%1] @@ -4594,21 +3639,14 @@ Möchten Sie die Datei trotzdem löschen? QMenu - - Close Schließen - - Open Öffnen - - - Execute Ausführen @@ -4616,7 +3654,6 @@ Möchten Sie die Datei trotzdem löschen? QMenuBar - Actions Optionen @@ -4624,40 +3661,30 @@ Möchten Sie die Datei trotzdem löschen? QMessageBox - - - - OK OK - <h3>About Qt</h3><p>This program uses Qt version %1.</p> - <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><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> - About Qt Über Qt - Help Hilfe - Show Details... Details einblenden... - Hide Details... Details ausblenden... @@ -4665,7 +3692,6 @@ Möchten Sie die Datei trotzdem löschen? QMultiInputContext - Select IM Eingabemethode auswählen @@ -4673,12 +3699,10 @@ Möchten Sie die Datei trotzdem löschen? QMultiInputContextPlugin - Multiple input method switcher Umschalter für Eingabemethoden - Multiple input method switcher that uses the context menu of the text widgets Mehrfachumschalter für Eingabemethoden, der das Kontextmenü des Text-Widgets verwendet @@ -4686,132 +3710,106 @@ Möchten Sie die Datei trotzdem löschen? QNativeSocketEngine - The remote host closed the connection Der entfernte Rechner hat die Verbindung geschlossen - Network operation timed out Das Zeitlimit für die Operation wurde überschritten - Out of resources Keine Ressourcen verfügbar - Unsupported socket operation Socket-Kommando nicht unterstützt - Protocol type not supported Das Protokoll wird nicht unterstützt - Invalid socket descriptor Ungültiger Socket-Deskriptor - Network unreachable Das Netzwerk ist nicht erreichbar - Permission denied Zugriff verweigert - Connection timed out Das Zeitlimit für die Verbindung wurde überschritten - Connection refused Verbindung verweigert - The bound address is already in use Die angegebene Adresse ist bereits in Gebrauch - The address is not available Die Adresse ist nicht verfügbar - The address is protected Die Adresse ist geschützt - Unable to send a message Die Nachricht konnte nicht gesendet werden - Unable to receive a message Die Nachricht konnte nicht empfangen werden - Unable to write Der Schreibvorgang konnte nicht ausgeführt werden - Network error Netzwerkfehler - Another socket is already listening on the same port Auf diesem Port hört bereits ein anderer Socket - Unable to initialize non-blocking socket Der nichtblockierende Socket konnte nicht initialisiert werden - Unable to initialize broadcast socket Der Broadcast-Socket konnte nicht initialisiert werden - Attempt to use IPv6 socket on a platform with no IPv6 support Es wurde versucht, einen IPv6-Socket auf einem System ohne IPv6-Unterstützung zu verwenden - Host unreachable Der Zielrechner kann nicht erreicht werden - Datagram was too large to send Das Datagram konnte nicht gesendet werden, weil es zu groß ist - Operation on non-socket Operation kann nur auf einen Socket angewandt werden - Unknown error Unbekannter Fehler - The proxy type is invalid for this operation Die Operation kann mit dem Proxy-Typ nicht durchgeführt werden @@ -4819,7 +3817,6 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessCacheBackend - Error opening %1 %1 konnte nicht geöffnet werden @@ -4827,12 +3824,10 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessDataBackend - Operation not supported on %1 Diese Operation wird von %1 nicht unterstützt - Invalid URI: %1 Ungültiger URI: %1 @@ -4840,17 +3835,14 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessDebugPipeBackend - Write error writing to %1: %2 Fehler beim Schreiben zu %1: %2 - Socket error on %1: %2 Socket-Fehler bei %1: %2 - Remote host closed the connection prematurely on %1 Der entfernte Rechner hat die Verbindung zu %1 vorzeitig beendet @@ -4858,30 +3850,22 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessFileBackend - - Request for opening non-local file %1 Anforderung zum Öffnen einer Datei über Netzwerk %1 - - Error opening %1: %2 %1 konnte nicht geöffnet werden: %2 - Write error writing to %1: %2 Fehler beim Schreiben zur Datei %1: %2 - - Cannot open %1: Path is a directory %1 kann nicht geöffnet werden: Der Pfad spezifiziert ein Verzeichnis - Read error reading from %1: %2 Beim Lesen von der Datei %1 trat ein Fehler auf: %2 @@ -4889,27 +3873,22 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessFtpBackend - No suitable proxy found Es konnte kein geeigneter Proxy-Server gefunden werden - Cannot open %1: is a directory %1 kann nicht geöffnet werden: Es handelt sich um ein Verzeichnis - Logging in to %1 failed: authentication required Die Anmeldung bei %1 schlug fehl: Es ist eine Authentifizierung erforderlich - Error while downloading %1: %2 Beim Herunterladen von %1 trat ein Fehler auf: %2 - Error while uploading %1: %2 Beim Hochladen von %1 trat ein Fehler auf: %2 @@ -4917,7 +3896,6 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessHttpBackend - No suitable proxy found Es konnte kein geeigneter Proxy-Server gefunden werden @@ -4925,7 +3903,6 @@ Möchten Sie die Datei trotzdem löschen? QNetworkAccessManager - Network access is disabled. Der Zugriff auf das Netzwerk ist nicht gestattet. @@ -4933,22 +3910,18 @@ Möchten Sie die Datei trotzdem löschen? QNetworkReply - Error downloading %1 - server replied: %2 Beim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2 - Protocol "%1" is unknown Das Protokoll "%1" ist unbekannt - Network session error. Fehler bei Netzwerkverbindung. - Temporary network failure. Das Netzwerk ist zur Zeit ausgefallen. @@ -4956,8 +3929,6 @@ Möchten Sie die Datei trotzdem löschen? QNetworkReplyImpl - - Operation canceled Operation abgebrochen @@ -4965,7 +3936,6 @@ Möchten Sie die Datei trotzdem löschen? QNetworkSession - Invalid configuration. Ungültige Konfiguration. @@ -4973,47 +3943,34 @@ Möchten Sie die Datei trotzdem löschen? QNetworkSessionPrivateImpl - - Unknown session error. Unbekannter Fehler bei Netzwerkverbindung. - - The session was aborted by the user or system. Die Verbindung wurde vom Nutzer oder vom Betriebssystem unterbrochen. - - The requested operation is not supported by the system. Die angeforderte Operation wird vom System nicht unterstützt. - - The specified configuration cannot be used. Die angegebene Konfiguration kann nicht verwendet werden. - - Roaming was aborted or is not possible. Das Roaming wurde abgebrochen oder ist hier nicht möglich. - Roaming error Fehler beim Roaming - Session aborted by user or system Die Verbindung wurde vom Nutzer oder vom Betriebssystem unterbrochen - Unidentified Error Unbekannter Fehler @@ -5021,28 +3978,23 @@ Möchten Sie die Datei trotzdem löschen? QOCIDriver - Unable to logon Logon-Vorgang fehlgeschlagen - Unable to initialize QOCIDriver Initialisierung fehlgeschlagen - Unable to begin transaction Es konnte keine Transaktion gestartet werden - Unable to commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) @@ -5050,44 +4002,34 @@ Möchten Sie die Datei trotzdem löschen? QOCIResult - - - Unable to bind column for batch execute Die Spalte konnte nicht für den Stapelverarbeitungs-Befehl gebunden werden - Unable to execute batch statement Der Stapelverarbeitungs-Befehl konnte nicht ausgeführt werden - Unable to goto next Kann nicht zum nächsten Element gehen - Unable to alloc statement Die Allokation des Befehls schlug fehl - Unable to prepare statement Der Befehl konnte nicht initialisiert werden - Unable to get statement type Der Anweisungstyp kann nicht bestimmt werden - Unable to bind value Der Wert konnte nicht gebunden werden - Unable to execute statement Der Befehl konnte nicht ausgeführt werden @@ -5095,32 +4037,26 @@ Möchten Sie die Datei trotzdem löschen? QODBCDriver - Unable to connect Es kann keine Verbindung aufgebaut werden - Unable to disable autocommit 'autocommit' konnte nicht deaktiviert werden - Unable to commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) - Unable to enable autocommit 'autocommit' konnte nicht aktiviert werden - Unable to connect - Driver doesn't support all functionality required Es kann keine Verbindung aufgebaut werden weil der Treiber die benötigte Funktionalität nicht vollständig unterstützt @@ -5128,51 +4064,38 @@ Möchten Sie die Datei trotzdem löschen? QODBCResult - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult::reset: 'SQL_CURSOR_STATIC' konnte nicht als Attribut des Befehls gesetzt werden. Bitte prüfen Sie die Konfiguration Ihres ODBC-Treibers - - Unable to execute statement Der Befehl konnte nicht ausgeführt werden - Unable to fetch next Der nächste Datensatz konnte nicht abgeholt werden - Unable to prepare statement Der Befehl konnte nicht initialisiert werden - Unable to bind variable Die Variable konnte nicht gebunden werden - - - Unable to fetch last Der letzte Datensatz konnte nicht abgeholt werden - Unable to fetch Es konnten keine Daten abgeholt werden - Unable to fetch first Der erste Datensatz konnte nicht abgeholt werden - Unable to fetch previous Der vorangegangene Datensatz kann nicht abgeholt werden @@ -5180,19 +4103,14 @@ Möchten Sie die Datei trotzdem löschen? QObject - "%1" duplicates a previous role name and will be disabled. "%1" ist bereits als Name einer Rolle vergeben und wird daher deaktiviert. - - invalid query: "%1" Ungültige Abfrage: "%1" - - PulseAudio Sound Server PulseAudio Sound Server @@ -5200,12 +4118,10 @@ Möchten Sie die Datei trotzdem löschen? QPPDOptionsModel - Name Name - Value Wert @@ -5213,32 +4129,26 @@ Möchten Sie die Datei trotzdem löschen? QPSQLDriver - Unable to connect Es kann keine Verbindung aufgebaut werden - Could not begin transaction Es konnte keine Transaktion gestartet werden - Could not commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Could not rollback transaction Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) - Unable to subscribe Die Registrierung schlug fehl - Unable to unsubscribe Die Registrierung konnte nicht aufgehoben werden @@ -5246,12 +4156,10 @@ Möchten Sie die Datei trotzdem löschen? QPSQLResult - Unable to create query Es konnte keine Abfrage erzeugt werden - Unable to prepare statement Der Befehl konnte nicht initialisiert werden @@ -5259,102 +4167,82 @@ Möchten Sie die Datei trotzdem löschen? QPageSetupWidget - Centimeters (cm) Zentimeter (cm) - Millimeters (mm) Millimeter (mm) - Inches (in) Zoll (in) - Points (pt) Punkte (pt) - Form Formular - Paper Papier - Page size: Seitengröße: - Width: Breite: - Height: Höhe: - Paper source: Papierquelle: - Orientation Ausrichtung - Portrait Hochformat - Landscape Querformat - Reverse landscape Umgekehrtes Querformat - Reverse portrait Umgekehrtes Hochformat - Margins Ränder - top margin Oberer Rand - left margin Linker Rand - right margin Rechter Rand - bottom margin Unterer Rand @@ -5362,12 +4250,10 @@ Möchten Sie die Datei trotzdem löschen? QPluginLoader - Unknown error Unbekannter Fehler - The plugin was not loaded. Das Plugin wurde nicht geladen. @@ -5375,433 +4261,344 @@ Möchten Sie die Datei trotzdem löschen? QPrintDialog - locally connected direkt verbunden - - Aliases: %1 Alias: %1 - - unknown unbekannt - OK OK - Print all Alles drucken - Print range Bereich drucken - A0 (841 x 1189 mm) A0 (841 x 1189 mm) - A1 (594 x 841 mm) A1 (594 x 841 mm) - A2 (420 x 594 mm) A2 (420 x 594 mm) - A3 (297 x 420 mm) A3 (297 x 420 mm) - A5 (148 x 210 mm) A5 (148 x 210 mm) - A6 (105 x 148 mm) A6 (105 x 148 mm) - A7 (74 x 105 mm) A7 (74 x 105 mm) - A8 (52 x 74 mm) A8 (52 x 74 mm) - A9 (37 x 52 mm) A9 (37 x 52 mm) - B0 (1000 x 1414 mm) B0 (1000 x 1414 mm) - B1 (707 x 1000 mm) B1 (707 x 1000 mm) - B2 (500 x 707 mm) B2 (500 x 707 mm) - B3 (353 x 500 mm) B3 (353 x 500 mm) - B4 (250 x 353 mm) B4 (250 x 353 mm) - B6 (125 x 176 mm) B6 (125 x 176 mm) - B7 (88 x 125 mm) B7 (88 x 125 mm) - B8 (62 x 88 mm) B8 (62 x 88 mm) - B9 (44 x 62 mm) B9 (44 x 62 mm) - B10 (31 x 44 mm) B10 (31 x 44 mm) - C5E (163 x 229 mm) C5E (163 x 229 mm) - DLE (110 x 220 mm) DLE (110 x 220 mm) - Folio (210 x 330 mm) Folio (210 x 330 mm) - Ledger (432 x 279 mm) Ledger (432 x 279 mm) - Tabloid (279 x 432 mm) Tabloid (279 x 432 mm) - US Common #10 Envelope (105 x 241 mm) US Common #10 Envelope (105 x 241 mm) - Print current page Diese Seite drucken - A4 (210 x 297 mm, 8.26 x 11.7 inches) A4 (210 x 297 mm) - B5 (176 x 250 mm, 6.93 x 9.84 inches) B5 (176 x 250 mm) - Executive (7.5 x 10 inches, 191 x 254 mm) Executive (7,5 x 10 Zoll, 191 x 254 mm) - Legal (8.5 x 14 inches, 216 x 356 mm) Legal (8,5 x 14 Zoll, 216 x 356 mm) - Letter (8.5 x 11 inches, 216 x 279 mm) Letter (8,5 x 11 Zoll, 216 x 279 mm) - Print selection Auswahl drucken - - - Print Drucken - Print To File ... In Datei drucken ... - File %1 is not writable. Please choose a different file name. Die Datei %1 ist schreibgeschützt. Bitte wählen Sie einen anderen Dateinamen. - %1 already exists. Do you want to overwrite it? Die Datei %1 existiert bereits. Soll sie überschrieben werden? - File exists Die Datei existiert bereits - <qt>Do you want to overwrite it?</qt> <qt>Soll sie überschrieben werden?</qt> - %1 is a directory. Please choose a different file name. %1 ist ein Verzeichnis. Bitte wählen Sie einen anderen Dateinamen. - The 'From' value cannot be greater than the 'To' value. Die Angabe für die erste Seite darf nicht größer sein als die für die letzte Seite. - A0 A0 - A1 A1 - A2 A2 - A3 A3 - A4 A4 - A5 A5 - A6 A6 - A7 A7 - A8 A8 - A9 A9 - B0 B0 - B1 B1 - B2 B2 - B3 B3 - B4 B4 - B5 B5 - B6 B6 - B7 B7 - B8 B8 - B9 B9 - B10 B10 - C5E C5E - DLE DLE - Executive Executive - Folio Folio - Ledger Ledger - Legal Legal - Letter Letter - Tabloid Tabloid - US Common #10 Envelope US Common #10 Envelope - Custom Benutzerdefiniert - - &Options >> &Einstellungen >> - &Options << &Einstellungen << - Print to File (PDF) In PDF-Datei drucken - Print to File (Postscript) In Postscript-Datei drucken - Local file Lokale Datei - Write %1 file Schreiben der Datei %1 - &Print &Drucken @@ -5809,108 +4606,86 @@ Bitte wählen Sie einen anderen Dateinamen. QPrintPreviewDialog - %1% %1% - Print Preview Druckvorschau - Next page Nächste Seite - Previous page Vorige Seite - First page Erste Seite - Last page Letzte Seite - Fit width Breite anpassen - Fit page Seite anpassen - Zoom in Vergrößern - Zoom out Verkleinern - Portrait Hochformat - Landscape Querformat - Show single page Einzelne Seite anzeigen - Show facing pages Gegenüberliegende Seiten anzeigen - Show overview of all pages Übersicht aller Seiten - Print Drucken - Page setup Seite einrichten - Close Schließen - Export to PDF PDF exportieren - Export to PostScript PostScript exportieren - - Page Setup Seite einrichten @@ -5918,17 +4693,14 @@ Bitte wählen Sie einen anderen Dateinamen. QPrintPropertiesWidget - Form Formular - Page Seite - Advanced Erweitert @@ -5936,102 +4708,82 @@ Bitte wählen Sie einen anderen Dateinamen. QPrintSettingsOutput - Form Formular - Copies Anzahl Exemplare - Print range Bereich drucken - Print all Alles drucken - Pages from Seiten von - to bis - Selection Auswahl - Output Settings Ausgabeeinstellungen - Copies: Anzahl Exemplare: - Collate Sortieren - Reverse Umgekehrt - Options Optionen - Color Mode Farbmodus - Color Farbe - Grayscale Graustufen - Duplex Printing Duplexdruck - None Kein - Long side Lange Seite - Short side Kurze Seite - Current Page @@ -6039,47 +4791,38 @@ Bitte wählen Sie einen anderen Dateinamen. QPrintWidget - Form Formular - Printer Drucker - &Name: &Name: - P&roperties &Eigenschaften - Location: Standort: - Preview Vorschau - Type: Typ: - Output &file: Ausgabe&datei: - ... ... @@ -6087,62 +4830,38 @@ Bitte wählen Sie einen anderen Dateinamen. QProcess - - Could not open input redirection for reading Die Eingabeumleitung konnte nicht zum Lesen geöffnet werden - - Could not open output redirection for writing Die Ausgabeumleitung konnte nicht zum Lesen geöffnet werden - Resource error (fork failure): %1 Ressourcenproblem ("fork failure"): %1 - - - - - - - - - Process operation timed out Zeitüberschreitung - - - - Error reading from process Das Lesen vom Prozess schlug fehl - - - Error writing to process Das Schreiben zum Prozess schlug fehl - Process crashed Der Prozess ist abgestürzt - No program defined Es wurde kein Programm angegeben - Process failed to start: %1 Das Starten des Prozesses schlug fehl: %1 @@ -6150,7 +4869,6 @@ Bitte wählen Sie einen anderen Dateinamen. QProgressDialog - Cancel Abbrechen @@ -6158,7 +4876,6 @@ Bitte wählen Sie einen anderen Dateinamen. QPushButton - Open Öffnen @@ -6166,7 +4883,6 @@ Bitte wählen Sie einen anderen Dateinamen. QRadioButton - Check Ankreuzen @@ -6174,57 +4890,46 @@ Bitte wählen Sie einen anderen Dateinamen. QRegExp - no error occurred kein Fehler - disabled feature used deaktivierte Eigenschaft wurde benutzt - bad char class syntax falsche Syntax für Zeichenklasse - bad lookahead syntax falsche Syntax für Lookahead - bad repetition syntax falsche Syntax für Wiederholungen - invalid octal value ungültiger Oktal-Wert - missing left delim fehlende linke Begrenzung - unexpected end unerwartetes Ende - met internal limit internes Limit erreicht - invalid interval ungültiges Intervall - invalid category ungültige Kategorie @@ -6232,22 +4937,18 @@ Bitte wählen Sie einen anderen Dateinamen. QSQLite2Driver - Error opening database Die Datenbankverbindung konnte nicht geöffnet werden - Unable to begin transaction Es konnte keine Transaktion gestartet werden - Unable to commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion kann nicht rückgängig gemacht werden @@ -6255,12 +4956,10 @@ Bitte wählen Sie einen anderen Dateinamen. QSQLite2Result - Unable to fetch results Das Ergebnis konnte nicht abgeholt werden - Unable to execute statement Der Befehl konnte nicht ausgeführt werden @@ -6268,27 +4967,22 @@ Bitte wählen Sie einen anderen Dateinamen. QSQLiteDriver - Error opening database Die Datenbankverbindung konnte nicht geöffnet werden - Error closing database Die Datenbankverbindung konnte nicht geschlossen werden - Unable to begin transaction Es konnte keine Transaktion gestartet werden - Unable to commit transaction Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen) - Unable to rollback transaction Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen) @@ -6296,34 +4990,26 @@ Bitte wählen Sie einen anderen Dateinamen. QSQLiteResult - - - Unable to fetch row Der Datensatz konnte nicht abgeholt werden - Unable to execute statement Der Befehl konnte nicht ausgeführt werden - Unable to reset statement Der Befehl konnte nicht zurückgesetzt werden - Unable to bind parameters Die Parameter konnte nicht gebunden werden - Parameter count mismatch Die Anzahl der Parameter ist falsch - No query Kein Abfrage @@ -6331,32 +5017,26 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptBreakpointsModel - ID ID - Location Stelle - Condition Bedingung - Ignore-count Auslösen nach - Single-shot Einmal auslösen - Hit-count Ausgelöst @@ -6364,12 +5044,10 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptBreakpointsWidget - New Neu - Delete Löschen @@ -6377,143 +5055,114 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptDebugger - - Go to Line Gehe zu Zeile - Line: Zeile: - Interrupt Unterbrechen - Shift+F5 Shift+F5 - Continue Weiter - F5 F5 - Step Into Einzelschritt herein - F11 F11 - Step Over Einzelschritt über - F10 F10 - Step Out Einzelschritt heraus - Shift+F11 Shift+F11 - Run to Cursor Bis Cursor ausführen - Ctrl+F10 Ctrl+F10 - Run to New Script Bis zu neuem Skript ausführen - Toggle Breakpoint Haltepunkt umschalten - F9 F9 - Clear Debug Output Debug-Ausgabe löschen - Clear Error Log Fehlerausgabe löschen - Clear Console Konsole löschen - &Find in Script... &Suche im Skript... - Ctrl+F Ctrl+F - Find &Next &Nächste Fundstelle - F3 F3 - Find &Previous Vorhergehende Fundstelle - Shift+F3 Shift+F3 - Ctrl+G Ctrl+G - Debug Debuggen @@ -6521,32 +5170,26 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptDebuggerCodeFinderWidget - Close Schließen - Previous Vorige - Next Nächste - Case Sensitive Groß/Kleinschreibung beachten - Whole words Ganze Worte - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Die Suche hat das Ende erreicht @@ -6554,12 +5197,10 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptDebuggerLocalsModel - Name Name - Value Wert @@ -6567,17 +5208,14 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptDebuggerStackModel - Level Ebene - Name Name - Location Stelle @@ -6585,22 +5223,18 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptEdit - Toggle Breakpoint Haltepunkt umschalten - Disable Breakpoint Haltepunkt deaktivieren - Enable Breakpoint Haltepunkt aktivieren - Breakpoint Condition: Bedingung: @@ -6608,52 +5242,42 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptEngineDebugger - Loaded Scripts Geladene Skripte - Breakpoints Haltepunkte - Stack Stapel - Locals Lokale Variablen - Console Konsole - Debug Output Debug-Ausgabe - Error Log Fehlerausgabe - Search Suche - View Ansicht - Qt Script Debugger Qt Script Debugger @@ -6661,7 +5285,6 @@ Bitte wählen Sie einen anderen Dateinamen. QScriptNewBreakpointWidget - Close Schließen @@ -6669,84 +5292,66 @@ Bitte wählen Sie einen anderen Dateinamen. QScrollBar - Scroll here Hierher scrollen - Left edge Linker Rand - Top Anfang - Right edge Rechter Rand - Bottom Ende - Page left Eine Seite nach links - - Page up Eine Seite nach oben - Page right Eine Seite nach rechts - - Page down Eine Seite nach unten - Scroll left Nach links scrollen - Scroll up Nach oben scrollen - Scroll right Nach rechts scrollen - Scroll down Nach unten scrollen - Line up Ausrichten - Position Position - Line down Eine Zeile nach unten @@ -6754,111 +5359,78 @@ Bitte wählen Sie einen anderen Dateinamen. QSharedMemory - %1: create size is less then 0 %1: Die Größenangabe für die Erzeugung ist kleiner als Null - - %1: unable to lock %1: Sperrung fehlgeschlagen - %1: unable to unlock %1: Die Sperrung konnte nicht aufgehoben werden - - - %1: permission denied %1: Zugriff verweigert - - - %1: already exists %1: existiert bereits - %1: doesn't exists %1: existiert nicht - - - %1: out of resources %1: Keine Ressourcen mehr verfügbar - - - %1: unknown error %2 %1: Unbekannter Fehler %2 - %1: key is empty %1: Ungültige Schlüsselangabe (leer) - %1: ftok failed %1: ftok-Aufruf schlug fehl - - - %1: unable to make key %1: Es kann kein Schlüssel erzeugt werden - - %1: doesn't exist %1: existiert nicht - %1: UNIX key file doesn't exist %1: Die Unix-Schlüsseldatei existiert nicht - %1: system-imposed size restrictions %1: Ein systembedingtes Limit der Größe wurde erreicht - %1: not attached %1: nicht verbunden - - %1: invalid size %1: Ungültige Größe - - %1: key error %1: Fehlerhafter Schlüssel - %1: size query failed %1: Die Abfrage der Größe schlug fehl - %1: unable to set key on lock %1: Es kann kein Schlüssel für die Sperrung gesetzt werden @@ -6866,1095 +5438,884 @@ Bitte wählen Sie einen anderen Dateinamen. QShortcut - Space 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. Leertaste - Esc Esc - Tab Tab - Backtab Rück-Tab - Backspace Rücktaste - Return Return - Enter Enter - Ins Einfg - Del Entf - Pause Pause - Print Druck - SysReq SysReq - Home Pos1 - End Ende - Left Links - Up Hoch - Right Rechts - Down Runter - PgUp Bild aufwärts - PgDown Bild abwärts - CapsLock Feststelltaste - NumLock Zahlen-Feststelltaste - ScrollLock Rollen-Feststelltaste - Menu Menü - Help Hilfe - Back Zurück - Forward Vorwärts - Stop Abbrechen - Refresh Aktualisieren - Volume Down Lautstärke - - Volume Mute Ton aus - Volume Up Lautstärke + - Bass Boost Bass-Boost - Bass Up Bass + - Bass Down Bass - - Treble Up Höhen + - Treble Down Höhen - - Media Play Wiedergabe - Media Stop Stopp - Media Previous Vorheriger - Media Next Nächster - Media Record Aufzeichnen - + Media Pause + Media player pause button + Pause + + + Toggle Media Play/Pause + Media player button to toggle between playing and paused + Pause + + Favorites Favoriten - Search Suchen - Standby Standby - Open URL URL öffnen - Launch Mail Mail starten - Launch Media Medienspieler starten - Launch (0) (0) starten - Launch (1) (1) starten - Launch (2) (2) starten - Launch (3) (3) starten - Launch (4) (4) starten - Launch (5) (5) starten - Launch (6) (6) starten - Launch (7) (7) starten - Launch (8) (8) starten - Launch (9) (9) starten - Launch (A) (A) starten - Launch (B) (B) starten - Launch (C) (C) starten - Launch (D) (D) starten - Launch (E) (E) starten - Launch (F) (F) starten - Monitor Brightness Up Monitor heller - Monitor Brightness Down Monitor dunkler - Keyboard Light On/Off Tastaturbeleuchtung Ein/Aus - Keyboard Brightness Up Tastaturbeleuchtung heller - Keyboard Brightness Down Tastaturbeleuchtung dunkler - Power Off Ausschalten - Wake Up Aufwecken - Eject Auswerfen - Screensaver Bildschirmschoner - WWW Internet - Sleep Schlafmodus - LightBulb Beleuchtung - Shop Shop - History Verlauf - Add Favorite Lesezeichen hinzufügen - Hot Links Empfohlene Verweise - Adjust Brightness Helligkeit einstellen - Finance Finanzen - Community Community - Audio Rewind Audio rückspulen - Back Forward Hinterstes nach vorn - Application Left Anwendung links - Application Right Anwendung rechts - Book Buch - CD CD - Calculator Rechner - Clear Löschen - Clear Grab Zugriff löschen - Close Schließen - Copy Kopieren - Cut Ausschneiden - Display Anzeigen - DOS DOS - Documents Dokumente - Spreadsheet Spreadsheet - Browser Browser - Game Spiel - Go Los - iTouch iTouch - Logoff Logoff - Market Markt - Meeting Versammlung - Keyboard Menu Tastaturmenü - Menu PB Menü PB - My Sites Meine Orte - News Nachrichten - Home Office Home Office - Option Option - Paste Einfügen - Phone Telefon - Reply Antworten - Reload Neu laden - Rotate Windows Fenster rotieren - Rotation PB Rotation PB - Rotation KB Rotation KB - Save Speichern - Send Senden - Spellchecker Rechtschreibprüfung - Split Screen Bildschirm teilen - Support Hilfe - Task Panel Task-Leiste - Terminal Terminal - Tools Werkzeuge - Travel Reise - Video Video - Word Processor Textverarbeitung - XFer XFer - Zoom In Vergrößern - Zoom Out Verkleinern - Away Abwesend - Messenger Messenger - WebCam WebCam - Mail Forward Weiterleitung - Pictures Bilder - Music Musik - Battery Batterie - Bluetooth Bluetooth - Wireless Drahtlos - Ultra Wide Band Ultra Wide Band - Audio Forward Audio vorspulen - Audio Repeat Audio wiederholen - Audio Random Play Audio zufällige Auswahl spielen - Subtitle Untertitel - Audio Cycle Track Audiospur wechseln - Time Zeit - View Ansicht - Top Menu Hauptmenü - Suspend Pause - Hibernate Hibernate - Print Screen Bildschirm drucken - Page Up Bild aufwärts - Page Down Bild abwärts - Caps Lock Feststelltaste - Num Lock Zahlen-Feststelltaste - Number Lock Zahlen-Feststelltaste - Scroll Lock Rollen-Feststelltaste - Insert Einfügen - Delete Löschen - Escape Escape - System Request System Request - - Select Auswählen - Yes Ja - No Nein - Context1 Kontext1 - Context2 Kontext2 - Context3 Kontext3 - Context4 Kontext4 - Call Button to start a call (note: a separate button is used to end the call) Anruf - Hangup Button to end a call (note: a separate button is used to start the call) Auflegen - Toggle Call/Hangup Button that will hang up if we're in call, or make a call if we're not. Anrufen/Aufhängen - Flip Umdrehen - Voice Dial Button to trigger voice dialling Sprachwahl - Last Number Redial Button to redial the last number called Wahlwiederholung - Camera Shutter Button to trigger the camera shutter (take a picture) Auslöser - Camera Focus Button to focus the camera Scharfstellen - Kanji Kanji - Muhenkan Muhenkan - Henkan Henkan - Romaji Romaji - Hiragana Hiragana - Katakana Katakana - Hiragana Katakana Hiragana Katakana - Zenkaku Zenkaku - Hankaku Hankaku - Zenkaku Hankaku Zenkaku Hankaku - Touroku Touroku - Massyo Massyo - Kana Lock Kana Lock - Kana Shift Kana Shift - Eisu Shift Eisu Shift - Eisu toggle Eisu toggle - Code input Code-Eingabe - Multiple Candidate Mehrere Vorschläge - Previous Candidate Vorangegangener Vorschlag - Hangul Hangul - Hangul Start Hangul Anfang - Hangul End Hangul Ende - Hangul Hanja Hangul Hanja - Hangul Jamo Hangul Jamo - Hangul Romaja Hangul Romaja - Hangul Jeonja Hangul Jeonja - Hangul Banja Hangul Banja - Hangul PreHanja Hangul PreHanja - Hangul PostHanja Hangul PostHanja - Hangul Special Hangul Special - - Ctrl Strg - - Shift Umschalt - - Alt Alt - - Meta Meta - + + - F%1 F%1 - Home Page Startseite @@ -7962,27 +6323,22 @@ Bitte wählen Sie einen anderen Dateinamen. QSlider - Page left Eine Seite nach links - Page up Eine Seite nach oben - Position Position - Page right Eine Seite nach rechts - Page down Eine Seite nach unten @@ -7990,72 +6346,58 @@ Bitte wählen Sie einen anderen Dateinamen. QSocks5SocketEngine - Connection to proxy refused Der Proxy-Server hat den Aufbau einer Verbindung verweigert - Connection to proxy closed prematurely Der Proxy-Server hat die Verbindung vorzeitig beendet - Proxy host not found Der Proxy-Server konnte nicht gefunden werden - Connection to proxy timed out Bei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit überschritten - Proxy authentication failed Die Authentifizierung beim Proxy-Server schlug fehl - Proxy authentication failed: %1 Die Authentifizierung beim Proxy-Server schlug fehl: %1 - SOCKS version 5 protocol error Protokoll-Fehler (SOCKS version 5) - General SOCKSv5 server failure Allgemeiner Fehler bei der Kommunikation mit dem SOCKSv5-Server - Connection not allowed by SOCKSv5 server Der SOCKSv5-Server hat die Verbindung verweigert - TTL expired TTL verstrichen - SOCKSv5 command not supported Dieses SOCKSv5-Kommando wird nicht unterstützt - Address type not supported Dieser Adresstyp wird nicht unterstützt - Unknown SOCKSv5 proxy error code 0x%1 Unbekannten Fehlercode vom SOCKSv5-Proxy-Server erhalten: 0x%1 - Network operation timed out Das Zeitlimit für die Operation wurde überschritten @@ -8063,32 +6405,26 @@ Bitte wählen Sie einen anderen Dateinamen. QSoftKeyManager - Ok Ok - Select Auswählen - Done Fertig - Options Optionen - Cancel Abbrechen - Exit Beenden @@ -8096,12 +6432,10 @@ Bitte wählen Sie einen anderen Dateinamen. QSpinBox - More Mehr - Less Weniger @@ -8109,56 +6443,42 @@ Bitte wählen Sie einen anderen Dateinamen. QSql - Delete Löschen - Delete this record? Diesen Datensatz löschen? - - - Yes Ja - - - No Nein - Insert Einfügen - Update Aktualisieren - Save edits? Änderungen speichern? - Cancel Abbrechen - Confirm Bestätigen - Cancel your edits? Änderungen verwerfen? @@ -8166,177 +6486,142 @@ Bitte wählen Sie einen anderen Dateinamen. QSslSocket - Unable to write data: %1 Die Daten konnten nicht geschrieben werden: %1 - Unable to decrypt data: %1 Die Daten konnten nicht entschlüsselt werden: %1 - Error while reading: %1 Beim Lesen ist ein Fehler aufgetreten: %1 - Error during SSL handshake: %1 Im Ablauf des SSL-Protokolls ist ein Fehler aufgetreten: %1 - Error creating SSL context (%1) Es konnte keine SSL-Kontextstruktur erzeugt werden (%1) - Invalid or empty cipher list (%1) Ungültige oder leere Schlüsselliste (%1) - Private key does not certify public key, %1 Der private Schlüssel passt nicht zum öffentlichen Schlüssel, %1 - Error creating SSL session, %1 Es konnte keine SSL-Sitzung erzeugt werden, %1 - Error creating SSL session: %1 Es konnte keine SSL-Sitzung erzeugt werden: %1 - Cannot provide a certificate with no key, %1 Ohne Schlüssel kann kein Zertifikat zur Verfügung gestellt werden, %1 - Error loading local certificate, %1 Das lokale Zertifikat konnte nicht geladen werden, %1 - Error loading private key, %1 Der private Schlüssel konnte nicht geladen werden, %1 - No error Kein Fehler - The issuer certificate could not be found Das Zertifikat des Ausstellers konnte nicht gefunden werden - The certificate signature could not be decrypted Die Signatur des Zertifikats konnte nicht entschlüsselt werden - The public key in the certificate could not be read Der öffentliche Schlüssel konnte nicht gelesen werden - The signature of the certificate is invalid Die Signatur des Zertifikats ist ungültig - The certificate is not yet valid Das Zertifikat ist noch nicht gültig - The certificate has expired Die Gültigkeit des Zertifikats ist abgelaufen - The certificate's notBefore field contains an invalid time Das Feld 'notBefore' des Zertifikats enthält eine ungültige Zeit - The certificate's notAfter field contains an invalid time Das Feld 'notAfter' des Zertifikats enthält eine ungültige Zeit - The certificate is self-signed, and untrusted Das Zertifikat ist selbstsigniert und daher nicht vertrauenswürdig - The root certificate of the certificate chain is self-signed, and untrusted Das oberste Zertifikat der Kette ist selbstsigniert und daher nicht vertrauenswürdig - The issuer certificate of a locally looked up certificate could not be found Das Zertifikat des Ausstellers eines lokal gefundenen Zertifikats konnte nicht gefunden werden - No certificates could be verified Keines der Zertifikate konnte verifiziert werden - One of the CA certificates is invalid Eines der Zertifikate der Zertifizierungsstelle ist ungültig - The basicConstraints path length parameter has been exceeded Die Länge des basicConstraints-Pfades wurde überschritten - The supplied certificate is unsuitable for this purpose Das angegebene Zertifikat kann in diesem Fall nicht verwendet werden - The root CA certificate is not trusted for this purpose Das oberste Zertifikat der Zertifizierungsstelle ist für diesen Fall nicht vertrauenswürdig - The root CA certificate is marked to reject the specified purpose Das oberste Zertifikat der Zertifizierungsstelle weist diesen Fall auf Grund einer speziellen Kennzeichnung zurück - The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate Das Zertifikat des betrachteten Ausstellers wurde zurückgewiesen da sein Subjektname nicht dem Namen des Austellers des aktuellen Zertifikats entspricht - 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 Das Zertifikat des betrachteten Ausstellers wurde zurückgewiesen da Ausstellername und Seriennummer vorhanden sind und nicht dem Bezeichner der Zertifizierungsstelle des aktuellen Zertifikats entsprechen - The peer did not present any certificate Die Gegenstelle hat kein Zertifikat angegeben - The host name did not match any of the valid hosts for this certificate Der Name des Hosts ist keiner aus der Liste der für dieses Zertifikat gültigen Hosts - Unknown error Unbekannter Fehler @@ -8344,22 +6629,18 @@ Bitte wählen Sie einen anderen Dateinamen. QStateMachine - Missing initial state in compound state '%1' Der Anfangszustand des zusammengesetzten Zustands '%1' fehlt - Missing default state in history state '%1' Der Anfangszustand im Verlauf bei Zustand '%1' fehlt - No common ancestor for targets and source of transition from state '%1' Die Ziele und die Quelle des Übergangs vom Zustand '%1' haben keinen gemeinsamen Ursprung - Unknown error Unbekannter Fehler @@ -8367,30 +6648,22 @@ Bitte wählen Sie einen anderen Dateinamen. QSystemSemaphore - %1: does not exist %1: Nicht existent - - %1: out of resources %1: Keine Ressourcen mehr verfügbar - - %1: permission denied %1: Zugriff verweigert - %1: already exists %1: Existiert bereits - - %1: unknown error %2 %1: Unbekannter Fehler %2 @@ -8398,12 +6671,10 @@ Bitte wählen Sie einen anderen Dateinamen. QTDSDriver - Unable to open connection Die Datenbankverbindung kann nicht geöffnet werden - Unable to use database Die Datenbank kann nicht verwendet werden @@ -8411,12 +6682,10 @@ Bitte wählen Sie einen anderen Dateinamen. QTabBar - Scroll Left Nach links scrollen - Scroll Right Nach rechts scrollen @@ -8424,7 +6693,6 @@ Bitte wählen Sie einen anderen Dateinamen. QTcpServer - Operation on socket is not supported Diese Socket-Operation wird nicht unterstützt @@ -8432,42 +6700,34 @@ Bitte wählen Sie einen anderen Dateinamen. QTextControl - &Undo &Rückgängig - &Redo Wieder&herstellen - Cu&t &Ausschneiden - &Copy &Kopieren - Copy &Link Location &Link-Adresse kopieren - &Paste Einf&ügen - Delete Löschen - Select All Alles auswählen @@ -8475,14 +6735,10 @@ Bitte wählen Sie einen anderen Dateinamen. QToolButton - - Press Drücken - - Open Öffnen @@ -8490,7 +6746,6 @@ Bitte wählen Sie einen anderen Dateinamen. QUdpSocket - This platform does not support IPv6 Diese Plattform unterstützt kein IPv6 @@ -8498,12 +6753,10 @@ Bitte wählen Sie einen anderen Dateinamen. QUndoGroup - Undo Rückgängig - Redo Wiederherstellen @@ -8511,7 +6764,6 @@ Bitte wählen Sie einen anderen Dateinamen. QUndoModel - <empty> <leer> @@ -8519,12 +6771,10 @@ Bitte wählen Sie einen anderen Dateinamen. QUndoStack - Undo Rückgängig - Redo Wiederherstellen @@ -8532,57 +6782,46 @@ Bitte wählen Sie einen anderen Dateinamen. QUnicodeControlCharacterMenu - LRM Left-to-right mark LRM Left-to-right mark - RLM Right-to-left mark RLM Right-to-left mark - ZWJ Zero width joiner ZWJ Zero width joiner - ZWNJ Zero width non-joiner ZWNJ Zero width non-joiner - ZWSP Zero width space ZWSP Zero width space - LRE Start of left-to-right embedding LRE Start of left-to-right embedding - RLE Start of right-to-left embedding RLE Start of right-to-left embedding - LRO Start of left-to-right override LRO Start of left-to-right override - RLO Start of right-to-left override RLO Start of right-to-left override - PDF Pop directional formatting PDF Pop directional formatting - Insert Unicode control character Unicode-Kontrollzeichen einfügen @@ -8590,32 +6829,26 @@ Bitte wählen Sie einen anderen Dateinamen. QWebFrame - Request cancelled Anfrage wurde abgebrochen - Request blocked Anfrage wurde abgewiesen - Cannot show URL Der URL kann nicht angezeigt werden - Frame load interrupted by policy change Das Laden des Rahmens wurde durch eine Änderung der Richtlinien unterbrochen - Cannot show mimetype Dieser Mime-Typ kann nicht angezeigt werden - File does not exist Die Datei existiert nicht @@ -8623,621 +6856,515 @@ Bitte wählen Sie einen anderen Dateinamen. QWebPage - Submit default label for Submit buttons in forms on web pages Senden - Submit Submit (input element) alt text for <input> elements with no alt, title, or value Senden - Reset default label for Reset buttons in forms on web pages Rücksetzen - Choose File title for file button used in HTML forms Durchsuchen - No file selected text to display in file button used in HTML forms when no file is selected Es ist keine Datei ausgewählt - Open in New Window Open in New Window context menu item In neuem Fenster öffnen - Save Link... Download Linked File context menu item Ziel speichern unter... - Copy Link Copy Link context menu item Link-Adresse kopieren - Open Image Open Image in New Window context menu item Grafik in neuem Fenster öffnen - Save Image Download Image context menu item Grafik speichern unter - Copy Image Copy Link context menu item Grafik kopieren - Open Frame Open Frame in New Window context menu item Frame öffnen - Copy Copy context menu item Kopieren - Go Back Back context menu item Zurück - Go Forward Forward context menu item Vor - Stop Stop context menu item Abbrechen - Reload Reload context menu item Neu laden - Cut Cut context menu item Ausschneiden - Paste Paste context menu item Einfügen - No Guesses Found No Guesses Found context menu item Keine Vorschläge gefunden - Ignore Ignore Spelling context menu item Ignorieren - Add To Dictionary Learn Spelling context menu item In Wörterbuch aufnehmen - Search The Web Search The Web context menu item Im Web suchen - Look Up In Dictionary Look Up in Dictionary context menu item Im Wörterbuch nachschauen - Open Link Open Link context menu item Adresse öffnen - Ignore Ignore Grammar context menu item Ignorieren - Spelling Spelling and Grammar context sub-menu item Rechtschreibung - Show Spelling and Grammar menu item title Rechtschreibung und Grammatik anzeigen - Hide Spelling and Grammar menu item title Rechtschreibung und Grammatik nicht anzeigen - Check Spelling Check spelling context menu item Rechtschreibung prüfen - Check Spelling While Typing Check spelling while typing context menu item Rechtschreibung während des Schreibens überprüfen - Check Grammar With Spelling Check grammar with spelling context menu item Grammatik mit Rechtschreibung zusammen überprüfen - Fonts Font context sub-menu item Fonts - Bold Bold context menu item Fett - Italic Italic context menu item Kursiv - Underline Underline context menu item Unterstrichen - Outline Outline context menu item Umriss - Direction Writing direction context sub-menu item Schreibrichtung - Text Direction Text direction context sub-menu item Schreibrichtung - Default Default writing direction context menu item Vorgabe - Left to Right Left to Right context menu item Von links nach rechts - Right to Left Right to Left context menu item Von rechts nach links - Missing Plug-in Label text to be used when a plug-in is missing Fehlendes Plugin - Loading... Media controller status message when the media is loading Lädt... - Live Broadcast Media controller status message when watching a live broadcast Live-Übertragung - Audio Element Media controller element Audio-Element - Video Element Media controller element Video-Element - Mute Button Media controller element Stummschalttaste - Unmute Button Media controller element Abstelltaste für Stummschaltung - Play Button Media controller element Abspielknopf - Pause Button Media controller element Pause-Knopf - Slider Media controller element Schieberegler - Slider Thumb Media controller element Schieberegler-Griff - Rewind Button Media controller element Rückspultaste - Return to Real-time Button Media controller element Kehre zu Echtzeit zurück - Elapsed Time Media controller element Spielzeit - Remaining Time Media controller element Verbleibende Zeit - Status Display Media controller element Statusanzeige - Fullscreen Button Media controller element Vollbild-Taste - Seek Forward Button Media controller element Vorlauftaste - Seek Back Button Media controller element Rücklauftaste - Audio element playback controls and status display Media controller element Audio-Steuerung und Statusanzeige - Video element playback controls and status display Media controller element Video-Steuerung und Statusanzeige - Mute audio tracks Media controller element Schalte Tonspuren stumm - Unmute audio tracks Media controller element Stummschaltung der Tonspuren aufheben - Begin playback Media controller element Abspielen - Pause playback Media controller element Pause - Movie time scrubber Media controller element Abspielzeit - Movie time scrubber thumb Media controller element Griff zur Einstellung der Abspielzeit - Rewind movie Media controller element Film zurückspulen - Return streaming movie to real-time Media controller element Setze Film auf Echtzeit zurück - Current movie time Media controller element Abspielzeit des Films - Remaining movie time Media controller element Verbleibende Zeit des Films - Current movie status Media controller element Status des Films - Play movie in full-screen mode Media controller element Film im Vollbildmodus abspielen - Seek quickly back Media controller element Schnelles Rückwärtssuchen - Seek quickly forward Media controller element Schnelles Vorwärtssuchen - Indefinite time Media time description Unbegrenzte Zeit - %1 days %2 hours %3 minutes %4 seconds Media time description %1 Tage %2 Stunden %3 Minuten %4 Sekunden - %1 hours %2 minutes %3 seconds Media time description %1 Stunden %2 Minuten %3 Sekunden - %1 minutes %2 seconds Media time description %1 Minuten %2 Sekunden - %1 seconds Media time description %1 Sekunden - Inspect Inspect Element context menu item Prüfen - No recent searches Label for only item in menu that appears when clicking on the search field image, when no searches have been performed Es existieren noch keine Suchanfragen - Recent searches label for first item in the menu that appears when clicking on the search field image, used as embedded menu title Bisherige Suchanfragen - Clear recent searches menu item in Recent Searches menu that empties menu's contents Gespeicherte Suchanfragen löschen - Unknown Unknown filesize FTP directory listing item Unbekannt - Web Inspector - %2 Web Inspector - %2 - %1 (%2x%3 pixels) Title string for images %1 (%2x%3 Pixel) - Redirection limit reached Maximal Anzahl von Weiterleitungen wurde erreicht - Bad HTTP request Ungültige HTTP-Anforderung - This is a searchable index. Enter search keywords: text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' Dieser Index verfügt über eine Suchfunktion. Geben Sie einen Suchbegriff ein: - Scroll here Hierher scrollen - Left edge Linker Rand - Top Anfang - Right edge Rechter Rand - Bottom Ende - Page left Eine Seite nach links - Page up Eine Seite nach oben - Page right Eine Seite nach rechts - Page down Eine Seite nach unten - Scroll left Nach links scrollen - Scroll up Nach oben scrollen - Scroll right Nach rechts scrollen - Scroll down Nach unten scrollen - %n file(s) number of chosen file @@ -9246,237 +7373,190 @@ Bitte wählen Sie einen anderen Dateinamen. - JavaScript Alert - %1 JavaScript-Hinweis - %1 - JavaScript Confirm - %1 JavaScript-Bestätigung - %1 - JavaScript Prompt - %1 JavaScript-Eingabeaufforderung - %1 - JavaScript Problem - %1 JavaScript-Problem - %1 - The script on this page appears to have a problem. Do you want to stop the script? Das Skript dieser Webseite ist fehlerhaft. Möchten Sie es anhalten? - Move the cursor to the next character Positionsmarke auf folgendes Zeichen setzen - Move the cursor to the previous character Positionsmarke auf vorangehendes Zeichen setzen - Move the cursor to the next word Positionsmarke auf folgendes Wort setzen - Move the cursor to the previous word Positionsmarke auf vorangehendes Wort setzen - Move the cursor to the next line Positionsmarke auf folgende Zeile setzen - Move the cursor to the previous line Positionsmarke auf vorangehende Zeile setzen - Move the cursor to the start of the line Positionsmarke auf Zeilenanfang setzen - Move the cursor to the end of the line Positionsmarke auf Zeilenende setzen - Move the cursor to the start of the block Positionsmarke auf Anfang des Blocks setzen - Move the cursor to the end of the block Positionsmarke auf Ende des Blocks setzen - Move the cursor to the start of the document Positionsmarke auf Anfang des Dokumentes setzen - Move the cursor to the end of the document Positionsmarke auf Ende des Dokumentes setzen - Select all Alles auswählen - Select to the next character Bis zum nächsten Zeichen markieren - Select to the previous character Bis zum vorherigen Zeichen markieren - Select to the next word Bis zum nächsten Wort markieren - Select to the previous word Bis zum vorherigen Wort markieren - Select to the next line Bis zur nächsten Zeile markieren - Select to the previous line Bis zur vorherigen Zeile markieren - Select to the start of the line Bis zum Zeilenanfang markieren - Select to the end of the line Bis zum Zeilenende markieren - Select to the start of the block Bis zum Anfang des Blocks markieren - Select to the end of the block Bis zum Ende des Blocks markieren - Select to the start of the document Bis zum Anfang des Dokuments markieren - Select to the end of the document Bis zum Ende des Dokuments markieren - Delete to the start of the word Bis zum Anfang des Wortes löschen - Delete to the end of the word Bis zum Ende des Wortes löschen - Insert a new paragraph Neuen Abschnitt einfügen - Insert a new line Neue Zeile einfügen - Paste and Match Style Einfügen und dem Stil anpassen - Remove formatting Formatierung entfernen - Strikethrough Durchgestrichen - Subscript Tiefstellung - Superscript Hochstellung - Insert Bulleted List Liste mit Punkten einfügen - Insert Numbered List Nummerierte Liste einfügen - Indent Einrücken - Outdent Einrückung aufheben - Center Zentrieren - Justify Ausrichten - Align Left Linksbündig ausrichten - Align Right Rechtsbündig ausrichten @@ -9484,7 +7564,6 @@ Bitte wählen Sie einen anderen Dateinamen. QWhatsThisAction - What's This? Direkthilfe @@ -9492,7 +7571,6 @@ Bitte wählen Sie einen anderen Dateinamen. QWidget - * * @@ -9500,57 +7578,46 @@ Bitte wählen Sie einen anderen Dateinamen. QWizard - Cancel Abbrechen - Help Hilfe - < &Back < &Zurück - &Finish Ab&schließen - &Help &Hilfe - Go Back Zurück - Continue Weiter - Commit Anwenden - Done Fertig - &Next &Weiter - &Next > &Weiter > @@ -9558,69 +7625,54 @@ Bitte wählen Sie einen anderen Dateinamen. QWorkspace - &Restore Wieder&herstellen - &Move Ver&schieben - &Size &Größe ändern - Mi&nimize M&inimieren - Ma&ximize Ma&ximieren - &Close Schl&ießen - Stay on &Top Im &Vordergrund bleiben - Minimize Minimieren - Restore Down Wiederherstellen - Close Schließen - - Sh&ade &Aufrollen - - %1 - [%2] %1 - [%2] - &Unshade &Herabrollen @@ -9628,117 +7680,94 @@ Bitte wählen Sie einen anderen Dateinamen. QXml - no error occurred kein Fehler - error triggered by consumer Konsument löste Fehler aus - unexpected end of file unerwartetes Ende der Datei - more than one document type definition mehrere Dokumenttypdefinitionen - error occurred while parsing element Fehler beim Parsen eines Elements - tag mismatch Element-Tags sind nicht richtig geschachtelt - error occurred while parsing content Fehler beim Parsen des Inhalts eines Elements - unexpected character unerwartetes Zeichen - invalid name for processing instruction kein gültiger Name für eine Processing-Instruktion - version expected while reading the XML declaration fehlende Version beim Parsen der XML-Deklaration - wrong value for standalone declaration falscher Wert für die Standalone-Deklaration - error occurred while parsing document type definition Fehler beim Parsen der Dokumenttypdefinition - letter is expected ein Buchstabe ist an dieser Stelle erforderlich - error occurred while parsing comment Fehler beim Parsen eines Kommentars - error occurred while parsing reference Fehler beim Parsen einer Referenz - internal general entity reference not allowed in DTD in einer DTD ist keine interne allgemeine Entity-Referenz erlaubt - external parsed general entity reference not allowed in attribute value in einem Attribut-Wert sind keine externen Entity-Referenzen erlaubt - external parsed general entity reference not allowed in DTD in der DTD sind keine externen Entity-Referenzen erlaubt - unparsed entity reference in wrong context nicht-analysierte Entity-Referenz im falschen Kontext verwendet - recursive entities rekursive Entity - error in the text declaration of an external entity Fehler in der Text-Deklaration einer externen Entity - encoding declaration or standalone declaration expected while reading the XML declaration fehlende Encoding-Deklaration oder Standalone-Deklaration beim Parsen der XML-Deklaration - standalone declaration expected while reading the XML declaration fehlende Standalone-Deklaration beim Parsen der XML Deklaration @@ -9746,27 +7775,22 @@ Bitte wählen Sie einen anderen Dateinamen. QXmlPatternistCLI - Warning in %1, at line %2, column %3: %4 Warnung in %1, bei Zeile %2, Spalte %3: %4 - Warning in %1: %2 Warnung in %1: %2 - Unknown location unbekannt - Error %1 in %2, at line %3, column %4: %5 Fehler %1 in %2, bei Zeile %3, Spalte %4: %5 - Error %1 in %2: %3 Fehler %1 in %2: %3 @@ -9774,184 +7798,142 @@ Bitte wählen Sie einen anderen Dateinamen. QXmlStream - - Extra content at end of document. Überzähliger Inhalt nach Ende des Dokumentes. - Invalid entity value. Ungültiger Entity-Wert. - Invalid XML character. Ungültiges XML-Zeichen. - Sequence ']]>' not allowed in content. Im Inhalt ist die Zeichenfolge ']]>' nicht erlaubt. - Namespace prefix '%1' not declared Der Namensraum-Präfix '%1' wurde nicht deklariert - Attribute redefined. Redefinition eines Attributes. - Unexpected character '%1' in public id literal. '%1' ist kein gültiges Zeichen in einer public-id-Angabe. - Invalid XML version string. Ungültige XML-Versionsangabe. - Unsupported XML version. Diese XML-Version wird nicht unterstützt. - %1 is an invalid encoding name. %1 ist kein gültiger Name für das Encoding. - Encoding %1 is unsupported Das Encoding %1 wird nicht unterstützt - Standalone accepts only yes or no. Der Wert für das 'Standalone'-Attribut kann nur 'yes' oder 'no' sein. - Invalid attribute in XML declaration. Die XML-Deklaration enthält ein ungültiges Attribut. - Premature end of document. Vorzeitiges Ende des Dokuments. - Invalid document. Ungültiges Dokument. - Expected Es wurde - , but got ' erwartet, stattdessen erhalten ' - Unexpected ' Ungültig an dieser Stelle ' - Expected character data. Es wurden Zeichendaten erwartet. - Recursive entity detected. Es wurde eine rekursive Entity festgestellt. - Start tag expected. Öffnendes Element erwartet. - XML declaration not at start of document. Die XML-Deklaration befindet sich nicht am Anfang des Dokuments. - NDATA in parameter entity declaration. Eine Parameter-Entity-Deklaration darf kein NDATA enthalten. - %1 is an invalid processing instruction name. %1 ist kein gültiger Name für eine Prozessing-Instruktion. - Invalid processing instruction name. Der Name der Prozessing-Instruktion ist ungültig. - - - - Illegal namespace declaration. Ungültige Namensraum-Deklaration. - Invalid XML name. Ungültiger XML-Name. - Opening and ending tag mismatch. Die Anzahl der öffnenden Elemente stimmt nicht mit der Anzahl der schließenden Elemente überein. - Reference to unparsed entity '%1'. Es wurde die ungeparste Entity '%1' referenziert. - - - Entity '%1' not declared. Die Entity '%1' ist nicht deklariert. - Reference to external entity '%1' in attribute value. Im Attributwert wurde die externe Entity '%1' referenziert. - Invalid character reference. Ungültige Zeichenreferenz. - - Encountered incorrectly encoded content. Es wurde Inhalt mit einer ungültigen Kodierung gefunden. - The standalone pseudo attribute must appear after the encoding. Das Standalone-Pseudoattribut muss dem Encoding unmittelbar folgen. - %1 is an invalid PUBLIC identifier. %1 ist keine gültige Angabe für eine PUBLIC-Id. @@ -9959,702 +7941,558 @@ Bitte wählen Sie einen anderen Dateinamen. QtXmlPatterns - - At least one component must be present. Es muss mindestens eine Komponente vorhanden sein. - %1 is not a valid value of type %2. %1 ist kein gültiger Wert des Typs %2. - When casting to %1 from %2, the source value cannot be %3. Bei einer "cast"-Operation von %1 zu %2 darf der Wert nicht %3 sein. - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. Der effektive Boolesche Wert einer Sequenz aus zwei oder mehreren atomaren Werten kann nicht berechnet werden. - The data of a processing instruction cannot contain the string %1 Die Daten einer Processing-Anweisung dürfen nicht die Zeichenkette %1 enthalten - - %1 is an invalid %2 %1 ist kein gültiges %2 - %1 is not a valid XML 1.0 character. %1 ist kein gültiges XML 1.0 Zeichen. - %1 was called. %1 wurde gerufen. - In the replacement string, %1 must be followed by at least one digit when not escaped. In der Ersetzung muss auf %1 eine Ziffer folgen, wenn es nicht durch ein Escape-Zeichen geschützt ist. - In the replacement string, %1 can only be used to escape itself or %2, not %3 In der Ersetzung kann %1 nur verwendet werden, um sich selbst oder %2 schützen, nicht jedoch für %3 - %1 matches newline characters Der Ausdruck '%1' schließt Zeilenvorschübe ein - Matches are case insensitive Groß/Kleinschreibung wird nicht beachtet - %1 is an invalid regular expression pattern: %2 %1 ist kein gültiger regulärer Ausdruck: %2 - It will not be possible to retrieve %1. %1 kann nicht bestimmt werden. - The default collection is undefined Für eine Kollektion ist keine Vorgabe definiert - %1 cannot be retrieved %1 kann nicht bestimmt werden - The item %1 did not match the required type %2. Das Element %1 entspricht nicht dem erforderlichen Typ %2. - - %1 is an unknown schema type. %1 ist ein unbekannter Schema-Typ. - A template with name %1 has already been declared. Eine Vorlage des Namens %1 existiert bereits. - Only one %1 declaration can occur in the query prolog. Der Anfrage-Prolog darf nur eine %1-Deklaration enthalten. - The initialization of variable %1 depends on itself Die Initialisierung der Variable %1 hängt von ihrem eigenem Wert ab - The variable %1 is unused Die Variable %1 wird nicht verwendet - Version %1 is not supported. The supported XQuery version is 1.0. Die Version %1 wird nicht unterstützt. Die unterstützte Version von XQuery ist 1.0. - No function with signature %1 is available Es existiert keine Funktion mit der Signatur %1 - It is not possible to redeclare prefix %1. Der Präfix %1 kann nicht redeklariert werden. - Prefix %1 is already declared in the prolog. Der Präfix %1 wurde bereits im Prolog deklariert. - The name of an option must have a prefix. There is no default namespace for options. Der Name einer Option muss einen Präfix haben. Es gibt keine Namensraum-Vorgabe für Optionen. - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. Die Deklaration %1 ist unzulässig, da Schema-Import nicht unterstützt wird. - The target namespace of a %1 cannot be empty. Der Ziel-Namensraum von %1 darf nicht leer sein. - The module import feature is not supported Modul-Import wird nicht unterstützt - 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 Der Namensraum einer nutzerdefinierten Funktion aus einem Bibliotheksmodul muss dem Namensraum des Moduls entsprechen (%1 anstatt %2) - A function already exists with the signature %1. Es existiert bereits eine Funktion mit der Signatur %1. - No external functions are supported. All supported functions can be used directly, without first declaring them as external Externe Funktionen werden nicht unterstützt. Alle unterstützten Funktionen können direkt verwendet werden, ohne sie als extern zu deklarieren - The %1-axis is unsupported in XQuery Die %1-Achse wird in XQuery nicht unterstützt - The namespace URI cannot be the empty string when binding to a prefix, %1. Der Namensraum-URI darf nicht leer sein, wenn er an den Präfix %1 gebunden ist. - %1 is an invalid namespace URI. %1 ist kein gültiger Namensraum-URI. - It is not possible to bind to the prefix %1 Der Präfix %1 kann nicht gebunden werden - Two namespace declaration attributes have the same name: %1. Es wurden zwei Namensraum-Deklarationsattribute gleichen Namens (%1) gefunden. - The namespace URI must be a constant and cannot use enclosed expressions. Ein Namensraum-URI muss eine Konstante sein und darf keine eingebetteten Ausdrücke verwenden. - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. %1 befindet sich nicht unter den Attributdeklarationen im Bereich. Schema-Import wird nicht unterstützt. - empty leer - zero or one kein oder ein - exactly one genau ein - one or more ein oder mehrere - zero or more kein oder mehrere - The focus is undefined. Es ist kein Fokus definiert. - An attribute by name %1 has already been created. Es wurde bereits ein Attribut mit dem Namen %1 erzeugt. - Network timeout. Das Zeitlimit der Netzwerkoperation wurde überschritten. - Element %1 can't be serialized because it appears outside the document element. Das Element %1 kann nicht serialisiert werden, da es außerhalb des Dokumentenelements erscheint. - Year %1 is invalid because it begins with %2. %1 ist keine gültige Jahresangabe, da es mit %2 beginnt. - Day %1 is outside the range %2..%3. Die Tagesangabe %1 ist außerhalb des Bereiches %2..%3. - Month %1 is outside the range %2..%3. Die Monatsangabe %1 ist außerhalb des Bereiches %2..%3. - Overflow: Can't represent date %1. Das Datum %1 kann nicht dargestellt werden (Überlauf). - Day %1 is invalid for month %2. Die Tagesangabe %1 ist für den Monat %2 ungültig. - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; Die Zeitangabe 24:%1:%2.%3 ist ungültig. Bei der Stundenangabe 24 müssen Minuten, Sekunden und Millisekunden 0 sein. - Time %1:%2:%3.%4 is invalid. Die Zeitangabe %1:%2:%3.%4 ist ungültig. - Overflow: Date can't be represented. Das Datum kann nicht dargestellt werden (Überlauf). - At least one time component must appear after the %1-delimiter. Bei Vorhandensein eines %1-Begrenzers muss mindestens eine Komponente vorhanden sein. - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. Die Division eines Werts des Typs %1 durch %2 (kein numerischer Wert) ist nicht zulässig. - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. Die Division eines Werts des Typs %1 durch %2 oder %3 (positiv oder negativ Null) ist nicht zulässig. - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. Die Multiplikation eines Werts des Typs %1 mit %2 oder %3 (positiv oder negativ unendlich) ist nicht zulässig. - A value of type %1 cannot have an Effective Boolean Value. Ein Wert des Typs %1 kann keinen effektiven Booleschen Wert haben. - Value %1 of type %2 exceeds maximum (%3). Der Wert %1 des Typs %2 überschreitet das Maximum (%3). - Value %1 of type %2 is below minimum (%3). Der Wert %1 des Typs %2 unterschreitet das Minimum (%3). - A value of type %1 must contain an even number of digits. The value %2 does not. Die Stellenzahl eines Wertes des Typs %1 muss geradzahlig sein. Das ist bei %2 nicht der Fall. - %1 is not valid as a value of type %2. %1 ist kein gültiger Wert des Typs %2. - Operator %1 cannot be used on type %2. Der Operator %1 kann nicht auf den Typ %2 angewandt werden. - Operator %1 cannot be used on atomic values of type %2 and %3. Der Operator %1 kann nicht auf atomare Werte der Typen %2 und %3 angewandt werden. - The namespace URI in the name for a computed attribute cannot be %1. Der Namensraum-URI im Namen eines berechneten Attributes darf nicht %1 sein. - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. Der Name eines berechneten Attributes darf keinen Namensraum-URI %1 mit dem lokalen Namen %2 haben. - Type error in cast, expected %1, received %2. Typfehler bei "cast"-Operation; es wurde %1 erwartet, aber %2 empfangen. - 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. Bei einer "cast"-Operation zum Typ %1 oder abgeleitetenTypen muss der Quellwert ein Zeichenketten-Literal oder ein Wert gleichen Typs sein. Der Typ %2 ist ungültig. - A comment cannot contain %1 Ein Kommentar darf nicht'%1 enthalten - A comment cannot end with a %1. Ein Kommentar darf nicht auf %1 enden. - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. Ein Attributknoten darf nicht als Kind eines Dokumentknotens erscheinen. Es erschien ein Attributknoten mit dem Namen %1. - A library module cannot be evaluated directly. It must be imported from a main module. Ein Bibliotheksmodul kann nicht direkt ausgewertet werden, er muss von einem Hauptmodul importiert werden. - No template by name %1 exists. Es existiert keine Vorlage mit dem Namen %1. - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. Werte des Typs %1 dürfen keine Prädikate sein. Für Prädikate sind nur numerische oder effektiv Boolesche Typen zulässig. - A positional predicate must evaluate to a single numeric value. Ein positionales Prädikat muss sich als einfacher, numerischer Wert auswerten lassen. - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. Der Zielname einer Processing-Anweisung kann nicht %1 (unabhängig von Groß/Kleinschreibung sein). %2 ist daher ungültig. - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. %1 ist kein gültiger Zielname einer Processing-Anweisung, es muss ein %2 Wert wie zum Beispiel %3 sein. - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. Der letzte Schritt eines Pfades kann entweder nur Knoten oder nur atomare Werte enthalten. Sie dürfen nicht zusammen auftreten. - No namespace binding exists for the prefix %1 Es existiert keine Namensraum-Bindung für den Präfix %1 - No namespace binding exists for the prefix %1 in %2 Es existiert keine Namensraum-Bindung für den Präfix %1 in %2 - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. Das erste Argument von %1 darf nicht vom Typ %2 sein; es muss numerisch, xs:yearMonthDuration oder xs:dayTimeDuration sein. - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Das erste Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein. - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Das zweite Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein. - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. Wenn beide Werte mit Zeitzonen angegeben werden, müssen diese übereinstimmen. %1 und %2 sind daher unzulässig. - %1 must be followed by %2 or %3, not at the end of the replacement string. Auf %1 muss %2 oder %3 folgen; es kann nicht am Ende der Ersetzung erscheinen. - %1 and %2 match the start and end of a line. Die Ausdrücke %1 und %2 passen jeweils auf den Anfang oder das Ende einer beliebigen Zeile. - Whitespace characters are removed, except when they appear in character classes Leerzeichen werden entfernt, sofern sie nicht in Zeichenklassen erscheinen - %1 is an invalid flag for regular expressions. Valid flags are: %1 ist kein gültiger Modifikator für reguläre Ausdrücke. Gültige Modifikatoren sind: - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. Es kann kein Präfix angegeben werden, wenn das erste Argument leer oder eine leere Zeichenkette (kein Namensraum) ist. Es wurde der Präfix %1 angegeben. - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). Die Normalisierungsform %1 wird nicht unterstützt. Die unterstützten Normalisierungsformen sind %2, %3, %4 and %5, und "kein" (eine leere Zeichenkette steht für "keine Normalisierung"). - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. Eine Zeitzonen-Differenz muss im Bereich %1..%2 (einschließlich) liegen. %3 liegt außerhalb des Bereiches. - Required cardinality is %1; got cardinality %2. Die erforderliche Kardinalität ist %1 (gegenwärtig %2). - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. Die Kodierung %1 ist ungültig; sie darf nur aus lateinischen Buchstaben bestehen und muss dem regulären Ausdruck %2 entsprechen. - The keyword %1 cannot occur with any other mode name. Das Schlüsselwort %1 kann nicht mit einem anderen Modusnamen zusammen verwendet werden. - No variable with name %1 exists Es existiert keine Variable des Namens %1 - The value of attribute %1 must be of type %2, which %3 isn't. Der Wert des Attributs %1 muss vom Typ %2 sein, was bei %3 nicht der Fall ist. - The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. Der Präfix %1 kann nicht gebunden werden. Er ist bereits per Vorgabe an den Namensraum %2 gebunden. - A variable with name %1 has already been declared. Eine Variable des Namens %1 wurde bereits deklariert. - No value is available for the external variable with name %1. Es ist kein Wert für die externe Variable des Namens %1 verfügbar. - A stylesheet function must have a prefixed name. Der Name einer Stylesheet-Funktion muss einen Präfix haben. - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. Der Namensraum %1 ist reserviert und kann daher von nutzerdefinierten Funktionen nicht verwendet werden (für diesen Zweck gibt es den vordefinierten Präfix %2). - An argument with name %1 has already been declared. Every argument name must be unique. Es wurde bereits ein Argument des Namens %1 deklariert. Argumentnamen müssen eindeutig sein. - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. Bei der Verwendung der Funktion %1 zur Auswertung innerhalb eines Suchmusters muss das Argument eine Variablenreferenz oder ein Zeichenketten-Literal sein. - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. Bei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Zeichenketten-Literal sein. - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. Bei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Literal oder eine Variablenreferenz sein. - In an XSL-T pattern, function %1 cannot have a third argument. Bei einem XSL-T-Suchmuster darf die Funktion %1 kein drittes Argument haben. - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. Bei einem XSL-T-Suchmuster dürfen nur die Funktionen %1 und %2, nicht jedoch %3 zur Suche verwendet werden. - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. Bei einem XSL-T-Suchmuster dürfen nur die Achsen %2 oder %3 verwendet werden, nicht jedoch %1. - %1 is an invalid template mode name. %1 ist kein gültiger Name für einen Vorlagenmodus. - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. Der Name der gebundenen Variablen eines for-Ausdrucks muss sich von dem der Positionsvariable unterscheiden. Die zwei Variablen mit dem Namen %1 stehen im Konflikt. - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. %1-Ausdrücke können nicht verwendet werden, da Schemavalidierung nicht unterstützt wird. - None of the pragma expressions are supported. Therefore, a fallback expression must be present Es muss ein fallback-Ausdruck vorhanden sein, da keine pragma-Ausdrücke unterstützt werden - Each name of a template parameter must be unique; %1 is duplicated. Die Namen von Vorlagenparametern müssen eindeutig sein, %1 existiert bereits. - No function with name %1 is available. Es ist keine Funktion des Namens %1 verfügbar. - %1 is not a valid numeric literal. %1 ist kein gültiger numerischer Literal. - W3C XML Schema identity constraint selector W3C XML Schema identity constraint selector - W3C XML Schema identity constraint field W3C XML Schema identity constraint field - A construct was encountered which is disallowed in the current language(%1). Es wurde ein Sprachkonstrukt angetroffen, was in der aktuellen Sprache (%1) nicht erlaubt ist. - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). Der Namensraum %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert. - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). Der Präfix %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert. - An attribute with name %1 has already appeared on this element. Das Element hat bereits ein Attribut des Namens %1. - A direct element constructor is not well-formed. %1 is ended with %2. Es wurde ein fehlerhafter direkter Element-Konstruktor gefunden. %1 endet mit %2. - The name %1 does not refer to any schema type. Der Name %1 hat keinen Bezug zu einem Schematyp. - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. %1 ist ein komplexer Typ. Eine "cast"-Operation zu komplexen Typen ist nicht möglich. Es können allerdings "cast"-Operationen zu atomare Typen wie %2 durchgeführt werden. - %1 is not an atomic type. Casting is only possible to atomic types. %1 ist kein atomarer Typ. "cast"-Operation können nur zu atomaren Typen durchgeführt werden. - %1 is not a valid name for a processing-instruction. %1 ist kein gültiger Name für eine Processing-Instruktion. - The name of an extension expression must be in a namespace. Der Name eines Erweiterungsausdrucks muss sich in einem Namensraum befinden. - Required type is %1, but %2 was found. Der erforderliche Typ ist %1, es wurde aber %2 angegeben. - Promoting %1 to %2 may cause loss of precision. Die Wandlung von %1 zu %2 kann zu einem Verlust an Genauigkeit führen. - It's not possible to add attributes after any other kind of node. Attribute dürfen nicht auf andere Knoten folgen. - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. Es wird nur Unicode Codepoint Collation unterstützt (%1). %2 wird nicht unterstützt. - Integer division (%1) by zero (%2) is undefined. Die Ganzzahldivision (%1) durch Null (%2) ist nicht definiert. - Division (%1) by zero (%2) is undefined. Die Division (%1) durch Null (%2) ist nicht definiert. - Modulus division (%1) by zero (%2) is undefined. Die Modulo-Division (%1) durch Null (%2) ist nicht definiert. - %1 takes at most %n argument(s). %2 is therefore invalid. %1 hat nur %n Argument; die Angabe %2 ist daher ungültig. @@ -10662,7 +8500,6 @@ Bitte wählen Sie einen anderen Dateinamen. - %1 requires at least %n argument(s). %2 is therefore invalid. %1 erfordert mindestens ein Argument; die Angabe %3 ist daher ungültig. @@ -10670,1655 +8507,1258 @@ Bitte wählen Sie einen anderen Dateinamen. - The root node of the second argument to function %1 must be a document node. %2 is not a document node. Der übergeordnete Knoten des zweiten Arguments der Funktion %1 muss ein Dokumentknoten sein, was bei %2 nicht der Fall ist. - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) Der Namensraum einer benutzerdefinierten Funktion darf nicht leer sein (für diesen Zweck gibt es den vordefinierten Präfix %1) - - A default namespace declaration must occur before function, variable, and option declarations. Die Deklaration des Default-Namensraums muss vor Funktions-, Variablen- oder Optionsdeklaration erfolgen. - Namespace declarations must occur before function, variable, and option declarations. Namensraums-Deklarationen müssen vor Funktions- Variablen- oder Optionsdeklarationen stehen. - Module imports must occur before function, variable, and option declarations. Modul-Importe müssen vor Funktions-, Variablen- oder Optionsdeklarationen stehen. - %1 is not a whole number of minutes. %1 ist keine ganzzahlige Minutenangabe. - Attribute %1 can't be serialized because it appears at the top level. Das Attributelement %1 kann nicht serialisiert werden, da es auf der höchsten Ebene erscheint. - %1 is an unsupported encoding. Das Encoding %1 wird nicht unterstützt. - %1 contains octets which are disallowed in the requested encoding %2. %1 enthält Oktette, die im Encoding %2 nicht zulässig sind. - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. Der Code-Punkt %1 aus %2 mit Encoding %3 ist kein gültiges XML-Zeichen. - Ambiguous rule match. Mehrdeutige Regel. - In a namespace constructor, the value for a namespace cannot be an empty string. Im Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein. - The prefix must be a valid %1, which %2 is not. Der Präfix muss ein gültiger %1 sein. Das ist bei %2 nicht der Fall. - The prefix %1 cannot be bound. Der Präfix %1 kann nicht gebunden werden - Only the prefix %1 can be bound to %2 and vice versa. An %2 kann nur der Präfix %1 gebunden werden (und umgekehrt). - The parameter %1 is required, but no corresponding %2 is supplied. Es wurde kein entsprechendes %2 für den erforderlichen Parameter %1 angegeben. - The parameter %1 is passed, but no corresponding %2 exists. Es existiert kein entsprechendes %2 für den übergebenen Parameter %1. - The URI cannot have a fragment Der URI darf kein Fragment enthalten. - Element %1 is not allowed at this location. Das Element %1 darf nicht an dieser Stelle stehen. - Text nodes are not allowed at this location. An dieser Stelle dürfen keine Textknoten stehen. - Parse error: %1 Parse-Fehler: %1 - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. Der Wert eines XSL-T-Versionsattributes muss vom Typ %1 sein, was bei %2 nicht der Fall ist. - Running an XSL-T 1.0 stylesheet with a 2.0 processor. Es wird ein XSL-T-1.0-Stylesheet mit einem Prozessor der Version 2.0 verarbeitet. - Unknown XSL-T attribute %1. Unbekanntes XSL-T-Attribut: %1. - Attribute %1 and %2 are mutually exclusive. Die Attribute %1 und %2 schließen sich gegenseitig aus. - In a simplified stylesheet module, attribute %1 must be present. In einem vereinfachten Stylesheet-Modul muss das Attribut %1 vorhanden sein. - If element %1 has no attribute %2, it cannot have attribute %3 or %4. Das Element %1 darf keines der Attribute %3 oder %4 haben, solange es nicht das Attribut %2 hat. - Element %1 must have at least one of the attributes %2 or %3. Das Element %1 muss mindestens eines der Attribute %2 oder %3 haben. - At least one mode must be specified in the %1-attribute on element %2. Im %1-Attribut des Elements %2 muss mindestens ein Modus angegeben werden. - Element %1 must come last. Das Element %1 muss zuletzt stehen. - At least one %1-element must occur before %2. Vor %2 muss mindestens ein %1-Element stehen. - Only one %1-element can appear. Es darf nur ein einziges %1-Element stehen. - At least one %1-element must occur inside %2. In %2 muss mindestens ein %1-Element stehen. - When attribute %1 is present on %2, a sequence constructor cannot be used. Es kann kein Sequenzkonstruktor verwendet werden, wenn %2 ein Attribut %1 hat. - Element %1 must have either a %2-attribute or a sequence constructor. Das Element %1 muss entweder ein %2-Attribut haben oder es muss ein Sequenzkonstruktor verwendet werden. - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. Der Defaultwert eines erforderlichen Parameters kann weder durch ein %1-Attribut noch durch einen Sequenzkonstruktor angegeben werden. - Element %1 cannot have children. Das Element %1 kann keine Kindelemente haben. - Element %1 cannot have a sequence constructor. Das Element %1 kann keinen Sequenzkonstruktor haben. - - The attribute %1 cannot appear on %2, when it is a child of %3. %2 darf nicht das Attribut %1 haben, wenn es ein Kindelement von %3 ist. - A parameter in a function cannot be declared to be a tunnel. Der Parameter einer Funktion kann nicht als Tunnel deklariert werden. - This processor is not Schema-aware and therefore %1 cannot be used. %1 kann nicht verwendet werden, da dieser Prozessor keine Schemas unterstützt. - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. Die zuoberst stehenden Elemente eines Stylesheets dürfen sich nicht im Null-Namensraum befinden, was bei %1 der Fall ist. - The value for attribute %1 on element %2 must either be %3 or %4, not %5. Der Wert des Attributs %1 des Elements %2 kann nur %3 oder %4 sein, nicht jedoch %5. - Attribute %1 cannot have the value %2. Das Attribut %1 darf nicht den Wert %2 haben. - The attribute %1 can only appear on the first %2 element. Nur das erste %2-Element darf das Attribut %1 haben. - At least one %1 element must appear as child of %2. %2 muss mindestens ein %1-Kindelement haben. - %1 has inheritance loop in its base type %2. %1 hat eine zirkuläre Vererbung im Basistyp %2. - - Circular inheritance of base type %1. Zirkuläre Vererbung im Basistyp %1. - Circular inheritance of union %1. Zirkuläre Vererbung bei der Vereinigung %1. - %1 is not allowed to derive from %2 by restriction as the latter defines it as final. %1 darf nicht durch Einschränkung von %2 abgeleitet werden, da letzterer sie als final deklariert. - %1 is not allowed to derive from %2 by extension as the latter defines it as final. %1 darf nicht durch Erweiterung von %2 abgeleitet werden, da letzterer sie als final deklariert. - Base type of simple type %1 cannot be complex type %2. Der komplexe Typ %2 kann nicht Basisklasse des einfachen Typs %1 sein. - Simple type %1 cannot have direct base type %2. Der einfache Typ %1 kann nicht den unmittelbaren Basistyp %2 haben. - - Simple type %1 is not allowed to have base type %2. Der einfache Typ %1 darf nicht den Basistyp %2 haben. - Simple type %1 can only have simple atomic type as base type. Der einfache Typ %1 kann nur einen einfachen. atomaren Basistyp haben. - Simple type %1 cannot derive from %2 as the latter defines restriction as final. %1 darf nicht von %2 abgeleitet werden, da letzterer die Einschränkung als final deklariert. - - Variety of item type of %1 must be either atomic or union. Die Varietät der Typen von %1 muss entweder atomar oder eine Vereinigung sein. - - Variety of member types of %1 must be atomic. Die Varietät der Typen von %1 muss atomar sein. - - %1 is not allowed to derive from %2 by list as the latter defines it as final. %1 darf nicht durch Listen von %2 abgeleitet werden, da letzterer sie als final deklariert. - Simple type %1 is only allowed to have %2 facet. Der einfache Typ %1 darf nur die Facette %2 haben. - Base type of simple type %1 must have variety of type list. Der Basistyp des einfachen Typs %1 muss eine Varietät des Typs Liste haben. - Base type of simple type %1 has defined derivation by restriction as final. Der Basistyp des einfachen Typs %1 definiert Vererbung durch Einschränkung als final. - Item type of base type does not match item type of %1. Der Elementtyp des Basistyps entspricht nicht dem Elementtyp von %1. - - Simple type %1 contains not allowed facet type %2. Der einfache Typ %1 enthält einen nicht erlaubten Facettentyp %2. - - %1 is not allowed to derive from %2 by union as the latter defines it as final. %1 darf nicht durch Vereinigung von %2 abgeleitet werden, da sie letzterer sie als final deklariert. - %1 is not allowed to have any facets. %1 darf keine Facetten haben. - Base type %1 of simple type %2 must have variety of union. Der Basistyp %1 des einfachen Typs %2 muss eine Varietät des Typs Vereinigung haben. - Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. Der Basistyp %1 des einfachen Typs %2 darf keine Einschränkung im %3 Attribut haben. - Member type %1 cannot be derived from member type %2 of %3's base type %4. Der Typ %1 des Mitglieds darf nicht vom Typ %2 des Mitglieds vom Basistyp %4 von %3 sein. - Derivation method of %1 must be extension because the base type %2 is a simple type. Erweiterung muss als Vererbungsmethode für %1 verwendet werden, da der Basistyp %2 ein einfacher Typ ist. - Complex type %1 has duplicated element %2 in its content model. Der komplexe Typ %1 hat ein dupliziertes Element %2 in seinem Inhaltsmodell. - Complex type %1 has non-deterministic content. Der komplexe Typ %1 hat nicht-deterministischen Inhalt. - Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. Die Attribute des komplexen Typs %1 sind keine gültige Erweiterung der Attribute des Basistyps %2: %3. - Content model of complex type %1 is not a valid extension of content model of %2. Das Inhaltsmodell des komplexen Typs %1 ist keine gültige Erweiterung des Inhaltsmodells von %2. - Complex type %1 must have simple content. Der komplexe Typ %1 kann nur einfachen Inhalt haben. - Complex type %1 must have the same simple type as its base class %2. Der komplexe Typ %1 kann nur einen einfachen Typ als Basisklasse %2 haben. - Complex type %1 cannot be derived from base type %2%3. Der komplexe Typ %1 kann nicht vom Basistyp %2 abgeleitet werden%3. - Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. Die Attribute des komplexen Typs %1 sind keine gültige Einschränkung der Attribute des Basistyps %2: %3. - Complex type %1 with simple content cannot be derived from complex base type %2. Der komplexe Typ %1 einfachen Inhalts darf nicht vom komplexen Basistyp %2 abgeleitet werden. - Item type of simple type %1 cannot be a complex type. Der Elementtyp des einfachen Typs %1 kann kein komplexer Typ sein. - Member type of simple type %1 cannot be a complex type. Der Typ eines Mitglieds des einfachen Typs %1 kann kein komplexer Typ sein. - %1 is not allowed to have a member type with the same name as itself. %1 darf keinen Typ eines Mitglieds desselben Namens haben. - - - %1 facet collides with %2 facet. Die Facette %1 steht im Widerspruch zu der Facette %2. - %1 facet must have the same value as %2 facet of base type. Die Facette %1 muss denselben Wert wie die Facette %2 des Basistyps haben. - %1 facet must be equal or greater than %2 facet of base type. Die Facette %1 muss größer oder gleich der Facette %2 des Basistyps sein. - - - - - - - - %1 facet must be less than or equal to %2 facet of base type. Die Facette %1 muss kleiner oder gleich der Facette %2 des Basistyps sein. - %1 facet contains invalid regular expression Die Facette %1 enthält einen ungültigen regulären Ausdruck - Unknown notation %1 used in %2 facet. Die Facette %2 enthält eine ungültige Notation %1. - %1 facet contains invalid value %2: %3. Die Facette %1 enthält einen ungültigen Wert %2: %3. - %1 facet cannot be %2 or %3 if %4 facet of base type is %5. Die Facette %1 kann nicht %2 oder %3 sein, wenn die Facette %4 des Basistyps %5 ist. - %1 facet cannot be %2 if %3 facet of base type is %4. Die Facette %1 kann nicht %2 sein, wenn die Facette %3 des Basistyps %4 ist. - - - %1 facet must be less than or equal to %2 facet. Die Facette %1 muss kleiner oder gleich der Facette %2 sein. - - - %1 facet must be less than %2 facet of base type. Die Facette %1 muss kleiner der Facette %2 des Basistyps sein. - - %1 facet and %2 facet cannot appear together. Die Facetten %1 und %2 können nicht zusammen erscheinen. - - - %1 facet must be greater than %2 facet of base type. Die Facette %1 muss größer als die Facette %2 des Basistyps sein. - - %1 facet must be less than %2 facet. Die Facette %1 muss kleiner als die Facette %2 sein. - - %1 facet must be greater than or equal to %2 facet of base type. Die Facette %1 muss größer oder gleich der Facette %2 des Basistyps sein. - Simple type contains not allowed facet %1. Der einfache Typ enthält eine unzulässige Facette %1. - %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. Die Facetten %1, %2, %3, %4, %5 und %6 sind bei Vererbung durch Listen nicht zulässig. - Only %1 and %2 facets are allowed when derived by union. Bei Vererbung durch Vereinigung sind nur die Facetten %1 und %2 zulässig. - - %1 contains %2 facet with invalid data: %3. %1 enthält eine Facette %2 mit ungültigen Daten: %3. - Attribute group %1 contains attribute %2 twice. Die Attributgruppe %1 enthält das Attribut %2 zweimal. - Attribute group %1 contains two different attributes that both have types derived from %2. Die Attributgruppe %1 enthält zwei verschiedene Attribute mit Typen, die von %2 abgeleitet sind. - Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. Die Attributgruppe %1 enthält ein Attribut %2 mit einer Einschränkung des Werts, dessen Typ aber von %3 abgeleitet ist. - Complex type %1 contains attribute %2 twice. Der komplexe Typ %1 enthält das Attribut %2 doppelt. - Complex type %1 contains two different attributes that both have types derived from %2. Die Attributgruppe %1 enthält zwei verschiedene Attribute mit Typen, die beide von %2 abgeleitet sind. - Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. Der komplexe Typ %1 enthält ein Attribut %2 mit einer Einschränkung des Werts, dessen Typ aber von %3 abgeleitet ist. - Element %1 is not allowed to have a value constraint if its base type is complex. Das Element %1 darf keine Einschränkung des Werts haben, wenn der Basistyp komplex ist. - Element %1 is not allowed to have a value constraint if its type is derived from %2. Das Element %1 darf keine Einschränkung des Werts haben, wenn sein Typ von %2 abgeleitet ist. - - Value constraint of element %1 is not of elements type: %2. Die Einschränkung des Werts des Elements %1 ist nicht vom Typ des Elements: %2. - Element %1 is not allowed to have substitution group affiliation as it is no global element. Das Element %1 kann nicht zu einer Substitutionsgruppe gehören, da es kein globales Element ist. - Type of element %1 cannot be derived from type of substitution group affiliation. Der Typ des Elements %1 kann nicht vom Typ der zugehörigen Substitutionsgruppe abgeleitet werden. - Value constraint of attribute %1 is not of attributes type: %2. Die Einschränkung des Werts des Attributs %1 ist nicht vom Typ des Attributs: %2. - Attribute %1 has value constraint but has type derived from %2. Das Attribut %1 hat eine Einschränkung des Werts, während sein Typ von %2 abgeleitet ist. - %1 attribute in derived complex type must be %2 like in base type. Das Attribut %1 in einem abgeleiteten komplexen Typ muss wie im Basistyp '%2' sein. - Attribute %1 in derived complex type must have %2 value constraint like in base type. Das Attribut %1 in einem abgeleiteten komplexen Typ muss wie der Basistyp eine Einschränkung des Werts (%2) haben. - Attribute %1 in derived complex type must have the same %2 value constraint like in base type. Das Attribut %1 in einem abgeleiteten komplexen Typ muss die gleiche Einschränkung des Werts (%2) wie der Basistyp haben. - Attribute %1 in derived complex type must have %2 value constraint. Das Attribut %1 in einem abgeleiteten komplexen Typ muss die Einschränkung des Werts '%2' haben. - processContent of base wildcard must be weaker than derived wildcard. Das 'processContent'-Attribut des Basissuchmusters muss schwächer sein als das des abgeleiteten Suchmusters. - - Element %1 exists twice with different types. Es existieren zwei Vorkommen verschiedenen Typs des Elements %1. - Particle contains non-deterministic wildcards. Der Partikel enthält nicht-deterministische Suchmuster. - - Base attribute %1 is required but derived attribute is not. Das Basisattribut %1 ist erforderlich, nicht jedoch das abgeleitete Attribut. - Type of derived attribute %1 cannot be validly derived from type of base attribute. Der Typ des abgeleiteten Attributs %1 kann nicht aus Typ des Basisattributs bestimmt werden. - Value constraint of derived attribute %1 does not match value constraint of base attribute. Die Einschränkung des Werts des abgeleiteten Attributs %1 entspricht nicht der Einschränkung des Werts des Basisattributs. - Derived attribute %1 does not exist in the base definition. Das abgeleitete Attribut %1 existiert in der Basisdefinition nicht. - Derived attribute %1 does not match the wildcard in the base definition. Das abgeleitete Attribut %1 entspricht nicht dem Suchmuster in der Basisdefinition. - Base attribute %1 is required but missing in derived definition. Das erforderliche Basisattribut %1 fehlt in der abgeleiteten Definition. - Derived definition contains an %1 element that does not exists in the base definition Die abgeleitete Definition enthält ein Element %1, was in der Basisdefinition nicht existiert - Derived wildcard is not a subset of the base wildcard. Das abgeleitete Suchmuster ist keine Untermenge des Basissuchmusters. - %1 of derived wildcard is not a valid restriction of %2 of base wildcard Das Attribut %1 des abgeleiteten Suchmusters ist keine gültige Einschränkung des Attributs '%2' des Basissuchmusters - Attribute %1 from base type is missing in derived type. Das Attribut %1 des Basistyps fehlt im abgeleiteten Typ. - Type of derived attribute %1 differs from type of base attribute. Der Typ des abgeleiteten Attributs %1 unterscheidet sich vom Basistyp. - Base definition contains an %1 element that is missing in the derived definition Das Element %1 des Basistyps fehlt in der abgeleiteten Definition - %1 references unknown %2 or %3 element %4. %1 verweist auf ein unbekanntes Element %4 ('%2' oder '%3'). - %1 references identity constraint %2 that is no %3 or %4 element. %1 verweist auf eine Identitätseinschränkung %2, die weder ein '%3' noch ein '%4' Element ist. - %1 has a different number of fields from the identity constraint %2 that it references. Bei %1 unterscheidet sich die Anzahl der Felder von der der Identitätseinschränkung %2, auf die es verweist. - Base type %1 of %2 element cannot be resolved. Der Basistyp %1 des Elements %2 kann nicht aufgelöst werden. - Item type %1 of %2 element cannot be resolved. Der Subtyp %1 des Elements %2 kann nicht aufgelöst werden. - Member type %1 of %2 element cannot be resolved. Der Subtyp %1 des Elements %2 kann nicht aufgelöst werden. - - - Type %1 of %2 element cannot be resolved. Der Typ %1 des Elements %2 kann nicht aufgelöst werden. - Base type %1 of complex type cannot be resolved. Der Basistyp %1 des komplexen Typs kann nicht aufgelöst werden. - %1 cannot have complex base type that has a %2. %1 kann keinen komplexen Basistyp haben, der '%2' spezifiziert. - Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. Das Inhaltsmodell des komplexen Typs %1enthält ein Element '%2'; es kann daher nicht durch Erweiterung von einem Typ abgeleitet werden, der nicht leer ist. - Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. Der komplexe Typ %1 kann nicht durch Erweiterung von %2 abgeleitet werden, da letzterer ein '%3'-Element in seinem Inhaltsmodell hat. - Type of %1 element must be a simple type, %2 is not. Der Typ des Elements %1 muss ein einfacher Typ sein, was %2 nicht ist. - Substitution group %1 of %2 element cannot be resolved. Die Substitutionsgruppe %1 des Elements %2 kann nicht aufgelöst werden. - Substitution group %1 has circular definition. Die Substitutionsgruppe %1 hat eine zirkuläre Definition. - - Duplicated element names %1 in %2 element. Der Elementname %1 kommt im Element %2 mehrfach vor. - - - - Reference %1 of %2 element cannot be resolved. Der Verweis %1 des Elements %2 kann nicht aufgelöst werden. - Circular group reference for %1. Zirkulärer Verweis bei %1. - %1 element is not allowed in this scope Das Element %1 ist in diesem Bereich nicht zulässig - %1 element cannot have %2 attribute with value other than %3. Der Wert des Attributs %2 des Elements %1 kann nur %3 sein. - %1 element cannot have %2 attribute with value other than %3 or %4. Der Wert des Attributs %2 des Elements %1 kann nur %3 oder %4 sein. - %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. Das Attribut %1 oder %2 des Verweises %3 entspricht nicht der Attributsdeklaration %4. - Attribute group %1 has circular reference. Die Attributgruppe %1 hat einen zirkulären Verweis. - %1 attribute in %2 must have %3 use like in base type %4. Das Attribut %1 aus %2 muss die Verwendung '%3' spezifizieren, wie im Basistyp %4. - Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. Das Attributssuchmuster %1 ist keine gültige Einschränkung des Attributssuchmuster des Basistyps %2. - %1 has attribute wildcard but its base type %2 has not. %1 hat ein Attributssuchmuster, nicht jedoch sein Basistyp %2. - Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. Die Vereinigung der Attributssuchmuster des Typs %1 und seines Basistyps %2 ergibt keinen gültigen Ausdruck. - Enumeration facet contains invalid content: {%1} is not a value of type %2. Ungültiger Inhalt einer Aufzählungsfacette: {%1} ist kein Wert des Typs %2. - Namespace prefix of qualified name %1 is not defined. Der Namensraum-Präfix des qualifizierten Namens %1 ist nicht definiert. - - %1 element %2 is not a valid restriction of the %3 element it redefines: %4. Das Element %2 (%1) ist keine gültige Einschränkung des überschriebenen Elements (%3): %4. - Empty particle cannot be derived from non-empty particle. Es kann kein leerer Partikel von einem Partikel abgeleitet werden, der nicht leer ist. - Derived particle is missing element %1. Das Element %1 fehlt im abgeleiteten Partikel. - Derived element %1 is missing value constraint as defined in base particle. Im abgeleiteten Element %1 fehlt Einschränkung des Wertes, wie sie im Basispartikel definiert ist. - Derived element %1 has weaker value constraint than base particle. Das abgeleitete Element %1 hat eine schwächere Einschränkung des Wertes als der Basispartikel. - Fixed value constraint of element %1 differs from value constraint in base particle. Die feste Einschränkung des Wertes des Elements %1 unterscheidet sich von der Einschränkung des Wertes des Basispartikels. - Derived element %1 cannot be nillable as base element is not nillable. Das abgeleitete Element %1 kann kein 'nillable'-Attribut haben, da das Basiselement keines spezifiziert. - Block constraints of derived element %1 must not be more weaker than in the base element. Die Blockeinschränkung des abgeleiteten Elements %1 darf nicht schwächer sein als im Basiselement. - Simple type of derived element %1 cannot be validly derived from base element. Der einfache Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden. - Complex type of derived element %1 cannot be validly derived from base element. Der komplexe Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden. - Element %1 is missing in derived particle. Das Element %1 fehlt im abgeleiteten Partikel. - Element %1 does not match namespace constraint of wildcard in base particle. Das Element %1 entspricht nicht der Namensraumeinschränkung des Basispartikels. - Wildcard in derived particle is not a valid subset of wildcard in base particle. Das Suchmuster im abgeleiteten Partikel ist keine gültige Untermenge des Suchmusters des Basispartikels. - processContent of wildcard in derived particle is weaker than wildcard in base particle. Das processContent-Attribut des Suchmusters des abgeleiteten Partikels ist schwächer als das Suchmuster des Basispartikels. - Derived particle allows content that is not allowed in the base particle. Der abgeleitete Partikel gestattet Inhalt, der für den Basispartikel nicht zulässig ist. - Can not process unknown element %1, expected elements are: %2. Das unbekannte Element %1 kann nicht verarbeitet werden; zulässig wären: %2. - Element %1 is not allowed in this scope, possible elements are: %2. Das Element %1 ist in diesem Bereich nicht zulässig; möglich wären: %2. - Child element is missing in that scope, possible child elements are: %1. Das Unterelement fehlt im Bereich; mögliche Unterelemente wären: %1. - Document is not a XML schema. Das Dokument ist kein XML-Schema. - %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. Das Attribut %1 des Elements %2 enthält ungültigen Inhalt: {%3} ist kein Wert des Typs %4. - %1 attribute of %2 element contains invalid content: {%3}. Das Attribut %1 des Elements %2 enthält ungültigen Inhalt: {%3}. - Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. Der Zielnamensraum %1 des eingebundenen Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2. - - Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. Der Zielnamensraum %1 des importierten Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2. - %1 element is not allowed to have the same %2 attribute value as the target namespace %3. Das Element %1 kann nicht den Zielnamensraum %3 als Wert des Attributs '%2' spezifizieren. - %1 element without %2 attribute is not allowed inside schema without target namespace. In einem Schema ohne Namensraum muss das Element %1 ein Attribut %2 haben. - - %1 element is not allowed inside %2 element if %3 attribute is present. Wenn das Attribut %3 vorhanden ist, darf das Element %1 nicht im Element %2 vorkommen. - - - %1 element has neither %2 attribute nor %3 child element. Das Element %1 hat weder das Attribut %2 noch ein Unterelement %3. - - - - - - - - - - - - - - %1 element with %2 child element must not have a %3 attribute. Das Element %1 darf kein Attribut %3 haben, wenn das Unterelement %2 vorhanden ist. - %1 attribute of %2 element must be %3 or %4. Das Attribut %1 des Elements %2 kann nur %3 oder %4 sein. - %1 attribute of %2 element must have a value of %3. Das Attribut %1 des Elements %2 muss den Wert %3 haben. - - %1 attribute of %2 element must have a value of %3 or %4. Das Attribut %1 des Elements %2 kann nur einen der Werte %3 oder %4 haben. - - - - - - - - - - - - - - %1 element must not have %2 and %3 attribute together. Die Attribute %2 und %3 können nicht zusammen im Element %1 erscheinen. - - Content of %1 attribute of %2 element must not be from namespace %3. Der Inhalt des Attributs %1 des Elements %2 kann nicht vom Namensraum %3 stammen. - - %1 attribute of %2 element must not be %3. Das Attribut %1 des Elements %2 kann nicht %3 sein. - %1 attribute of %2 element must have the value %3 because the %4 attribute is set. Das Attribut %1 des Elements %2 muss den Wert %3 haben, da das Attribut %4 gesetzt ist. - Specifying use='prohibited' inside an attribute group has no effect. Die Angabe von use='prohibited' in einer Attributgruppe hat keinerlei Auswirkungen. - %1 element must have either %2 or %3 attribute. Das Element %1 muss eines der Attribute %2 oder %3 spezifizieren. - %1 element must have either %2 attribute or %3 or %4 as child element. Das Element %1 muss entweder das Attribut %2 spezifizieren oder über eines der Unterelemente %3 oder %4 verfügen. - %1 element requires either %2 or %3 attribute. Das Element %1 erfordert eines der Attribute %2 oder %3. - Text or entity references not allowed inside %1 element Text- oder Entitätsreferenzen sind innerhalb eines %1-Elements nicht zulässig. - - %1 attribute of %2 element must contain %3, %4 or a list of URIs. Das Attribut %1 des Elements %2 muss %3, %4 oder eine Liste der URIs enthalten. - %1 element is not allowed in this context. Das Element %1 ist in diesem Kontext nicht zulässig. - %1 attribute of %2 element has larger value than %3 attribute. Der Wert des Attributs %1 des Elements %2 ist größer als der des Attributs %3. - Prefix of qualified name %1 is not defined. Der Präfix des qualifizierten Namens %1 ist nicht definiert. - - %1 attribute of %2 element must either contain %3 or the other values. Der Wert des Attributs %1 des Elements %2 muss entweder %3 oder die anderen Werte enthalten. - Component with ID %1 has been defined previously. Es wurde bereits eine Komponente mit der ID %1 definiert. - Element %1 already defined. Das Element %1 ist bereits definiert. - Attribute %1 already defined. Das Attribut %1 ist bereits definiert. - Type %1 already defined. Der Typ %1 ist bereits definiert. - Attribute group %1 already defined. Die Attributgruppe %1 ist bereits definiert. - Element group %1 already defined. Die Elementgruppe %1 ist bereits definiert. - Notation %1 already defined. Die Notation %1 ist bereits definiert. - Identity constraint %1 already defined. Die Identitätseinschränkung %1 ist bereits definiert. - Duplicated facets in simple type %1. Im einfachen Typ %1 kommen Facetten mehrfach vor. - - - %1 is not valid according to %2. %1 ist nach %2 ungültig. - String content does not match the length facet. Der Zeichenketteninhalt entspricht nicht der Längenfacette. - String content does not match the minLength facet. Der Zeichenketteninhalt entspricht nicht der Längenfacette (Minimumangabe). - String content does not match the maxLength facet. Der Zeichenketteninhalt entspricht nicht der Längenfacette (Maximumangabe). - String content does not match pattern facet. Der Zeichenketteninhalt entspricht nicht der Suchmusterfacette. - String content is not listed in the enumeration facet. Der Zeichenketteninhalt ist nicht in der Aufzählungsfacette enthalten. - Signed integer content does not match the maxInclusive facet. Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'maxInclusive'. - Signed integer content does not match the maxExclusive facet. Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'maxExclusive'. - Signed integer content does not match the minInclusive facet. Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'minInclusive'. - Signed integer content does not match the minExclusive facet. Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'minExclusive'. - Signed integer content is not listed in the enumeration facet. Der vorzeichenbehaftete Ganzzahlwert ist nicht in der Aufzählungsfacette enthalten. - Signed integer content does not match pattern facet. Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Suchmusterfacette. - Signed integer content does not match in the totalDigits facet. Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'totalDigits'. - Unsigned integer content does not match the maxInclusive facet. Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'maxInclusive'. - Unsigned integer content does not match the maxExclusive facet. Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'maxExclusive'. - Unsigned integer content does not match the minInclusive facet. Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'minInclusive'. - Unsigned integer content does not match the minExclusive facet. Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'minExclusive'. - Unsigned integer content is not listed in the enumeration facet. Der vorzeichenlose Ganzzahlwert ist nicht in der Aufzählungsfacette enthalten. - Unsigned integer content does not match pattern facet. Der vorzeichenlose Ganzzahlwert entspricht nicht der Suchmusterfacette. - Unsigned integer content does not match in the totalDigits facet. Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'totalDigits'. - Double content does not match the maxInclusive facet. Die Gleitkommazahl entspricht nicht der Facette 'maxInclusive'. - Double content does not match the maxExclusive facet. Die Gleitkommazahl entspricht nicht der Facette 'maxExclusive'. - Double content does not match the minInclusive facet. Die Gleitkommazahl entspricht nicht der Facette 'minInclusive'. - Double content does not match the minExclusive facet. Die Gleitkommazahl entspricht nicht der Facette 'minExclusive'. - Double content is not listed in the enumeration facet. Die Gleitkommazahl ist nicht in der Aufzählungsfacette enthalten. - Double content does not match pattern facet. Die Gleitkommazahl entspricht nicht der Suchmusterfacette. - Decimal content does not match in the fractionDigits facet. Die Dezimalzahl entspricht nicht der Facette 'fractionDigit'. - Decimal content does not match in the totalDigits facet. Die Dezimalzahl entspricht nicht der Facette 'totalDigits'. - Date time content does not match the maxInclusive facet. Die Datumsangabe entspricht nicht der Facette 'maxInclusive'. - Date time content does not match the maxExclusive facet. Die Datumsangabe entspricht nicht der Facette 'maxExclusive'. - Date time content does not match the minInclusive facet. Die Datumsangabe entspricht nicht der Facette 'minInclusive'. - Date time content does not match the minExclusive facet. Die Datumsangabe entspricht nicht der Facette 'minExclusive'. - Date time content is not listed in the enumeration facet. Die Datumsangabe ist nicht in der Aufzählungsfacette enthalten. - Date time content does not match pattern facet. Die Datumsangabe entspricht nicht der Suchmusterfacette. - Duration content does not match the maxInclusive facet. Die Angabe der Zeitdauer entspricht nicht der Facette 'maxInclusive'. - Duration content does not match the maxExclusive facet. Die Angabe der Zeitdauer entspricht nicht der Facette 'maxExclusive'. - Duration content does not match the minInclusive facet. Die Angabe der Zeitdauer entspricht nicht der Facette 'minInclusive'. - Duration content does not match the minExclusive facet. Die Angabe der Zeitdauer entspricht nicht der Facette 'minExclusive'. - Duration content is not listed in the enumeration facet. Die Angabe der Zeitdauer ist nicht in der Aufzählungsfacette enthalten. - Duration content does not match pattern facet. Die Angabe der Zeitdauer entspricht nicht der Suchmusterfacette. - Boolean content does not match pattern facet. Der Boolesche Wert entspricht nicht der Suchmusterfacette. - Binary content does not match the length facet. Der binäre Inhalt entspricht nicht der Längenfacette. - Binary content does not match the minLength facet. Der binäre Inhalt entspricht nicht der Facette 'minLength'. - Binary content does not match the maxLength facet. Der binäre Inhalt entspricht nicht der Facette 'maxLength'. - Binary content is not listed in the enumeration facet. Der binäre Inhalt ist nicht in der Aufzählungsfacette enthalten. - Invalid QName content: %1. Der Inhalt des qualifizierten Namens ist ungültig: %1. - QName content is not listed in the enumeration facet. Der Inhalt des qualifizierten Namens ist nicht in der Aufzählungsfacette enthalten. - QName content does not match pattern facet. Der Inhalt des qualifizierten Namens entspricht nicht der Suchmusterfacette. - Notation content is not listed in the enumeration facet. Der Inhalt der Notation ist nicht in der Aufzählungsfacette enthalten. - List content does not match length facet. Der Listeninhalt entspricht nicht der Längenfacette. - List content does not match minLength facet. Der Listeninhalt entspricht nicht der Facette 'minLength'. - List content does not match maxLength facet. Der Listeninhalt entspricht nicht der Facette 'maxLength'. - List content is not listed in the enumeration facet. Der Listeninhalt ist nicht in der Aufzählungsfacette enthalten. - List content does not match pattern facet. Der Listeninhalt entspricht nicht der Suchmusterfacette. - Union content is not listed in the enumeration facet. Der Inhalt der Vereinigung ist nicht in der Aufzählungsfacette enthalten. - Union content does not match pattern facet. Der Inhalt der Vereinigung entspricht nicht der Suchmusterfacette. - Data of type %1 are not allowed to be empty. Daten vom Typ %1 können nicht leer sein. - Element %1 is missing child element. Beim Element %1 fehlt ein Unterelement. - There is one IDREF value with no corresponding ID: %1. Es existiert ein IDREF-Wert, für den keine zugehörige ID vorhanden ist: %1. - Loaded schema file is invalid. Das geladene Schema ist ungültig. - %1 contains invalid data. %1 enthält ungültige Daten. - xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. xsi:schemaLocation namespace %1 wurde im Instanzdokument bereits spezifiziert. - xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. xsi:noNamespaceSchemaLocation kann nicht nach dem ersten Element oder Attribut ohne Namensraum erscheinen. - No schema defined for validation. Es ist kein Schema für die Validierung definiert. - No definition for element %1 available. Für das Element %1 ist keine Definition verfügbar. - - - Specified type %1 is not known to the schema. Der angegebene Typ %1 ist im Schema nicht spezifiziert. - Element %1 is not defined in this scope. Das Element %1 ist in diesem Bereich nicht definiert. - Declaration for element %1 does not exist. Für das Element %1 ist keine Deklaration verfügbar. - Element %1 contains invalid content. Das Element %1 enthält ungültigen Inhalt. - Element %1 is declared as abstract. Das Element %1 ist als abstrakt deklariert. - Element %1 is not nillable. Das Element %1 hat das Attribut 'nillable' nicht spezifiziert. - Attribute %1 contains invalid data: %2 Das Attribut %1 enthält ungültige Daten: %2 - Element contains content although it is nillable. Das Element hat Inhalt, obwohl es 'nillable' spezifiziert. - Fixed value constraint not allowed if element is nillable. Eine Beschränkung auf einen festen Wert ist nicht zulässig, wenn das Element 'nillable' spezifiziert. - Element %1 cannot contain other elements, as it has a fixed content. Das Element %1 kann keine anderen Element enthalten, da sein Inhalt festgelegt ist. - Specified type %1 is not validly substitutable with element type %2. Der angebenene Typ %1 kann nicht durch den Elementtyp %2 substituiert werden. - Complex type %1 is not allowed to be abstract. Der komplexe Typ %1 kann nicht abstrakt sein. - Element %1 contains not allowed attributes. Das Element %1 enthält unzulässige Attribute. - - Element %1 contains not allowed child element. Das Element %1 enthält ein unzulässiges Unterelement. - - Content of element %1 does not match its type definition: %2. Der Inhalt des Elements %1 entspricht nicht seiner Typdefinition: %2. - - - Content of element %1 does not match defined value constraint. Der Inhalt des Elements %1 entspricht nicht der definierten Einschränkung des Werts. - Element %1 contains not allowed child content. Das Element %1 enthält unzulässigen Unterinhalt. - Element %1 contains not allowed text content. Das Element %1 enthält unzulässigen Textinhalt. - Element %1 is missing required attribute %2. Bei dem Element %1 fehlt ein erforderliches Attribut %2. - Attribute %1 does not match the attribute wildcard. Das Attribut %1 entspricht nicht dem Attributssuchmuster. - Declaration for attribute %1 does not exist. Für das Attribut %1 ist keine Deklaration verfügbar. - Element %1 contains two attributes of type %2. Das Element %1 enthält zwei Attribute des Typs %2. - Attribute %1 contains invalid content. Das Attribut %1 enthält ungültigen Inhalt. - Element %1 contains unknown attribute %2. Das Element %1 enthält ein unbekanntes Attribut %2. - - Content of attribute %1 does not match its type definition: %2. Der Inhalt des Attributs %1 entspricht nicht seiner Typdefinition: %2. - - Content of attribute %1 does not match defined value constraint. Der Inhalt des Attributs %1 entspricht nicht der definierten Einschränkung des Werts. - Non-unique value found for constraint %1. Für die Einschränkung %1 wurde ein nicht eindeutiger Wert gefunden. - Key constraint %1 contains absent fields. Die Einschränkung des Schlüssels %1 enthält nicht vorhandene Felder. - Key constraint %1 contains references nillable element %2. Die Einschränkung des Schlüssels %1 verweist auf das Element %2, was 'nillable' spezifiziert. - No referenced value found for key reference %1. Der referenzierte Wert der Schlüsselreferenz %1 konnte nicht gefunden werden. - More than one value found for field %1. Für das Feld %1 wurden mehrere Werte gefunden. - Field %1 has no simple type. Das Feld %1 hat keinen einfachen Typ. - ID value '%1' is not unique. Der ID-Wert '%1' ist nicht eindeutig. - '%1' attribute contains invalid QName content: %2. Das Attribut '%1' enthält einen ungültigen qualifizierten Namen: %2. diff --git a/translations/qt_help_de.ts b/translations/qt_help_de.ts index c7a8103..1f0cf32 100644 --- a/translations/qt_help_de.ts +++ b/translations/qt_help_de.ts @@ -4,106 +4,92 @@ QCLuceneResultWidget - Search Results Suchergebnisse - Note: Achtung: - The search results may not be complete since the documentation is still being indexed! Es können nicht alle möglichen Ergebnisse angezeigt werden, da die Dokumentation noch indiziert wird. - Your search did not match any documents. Es wurden keine mit Ihrer Suche übereinstimmenden Dokumente gefunden. - (The reason for this might be that the documentation is still being indexed.) (Ein Grund dafür könnte sein, das die Dokumentation noch nicht vollständig indiziert ist.) + QHelp + + Untitled + + + + QHelpCollectionHandler - The collection file '%1' is not set up yet! Die Katalogdatei '%1' ist noch nicht eingerichtet. - Cannot load sqlite database driver! Der Datenbanktreiber für SQLite kann nicht geladen werden. - - Cannot open collection file: %1 Katalogdatei kann nicht geöffnet werden: %1 - Cannot create tables in file %1! In Datei %1 können keine Tabellen angelegt werden. - The collection file '%1' already exists! Die Katalogdatei '%1' existiert bereits. - Unknown filter '%1'! Unbekannter Filter '%1'. - Invalid documentation file '%1'! Ungültige Dokumentationsdatei '%1'. - Cannot register namespace '%1'! Der Namensraum '%1' kann nicht registriert werden. - Cannot open database '%1' to optimize! Die Datenbank '%1' kann nicht zur Optimierung geöffnet werden. - Cannot create directory: %1 Das Verzeichnis kann nicht angelegt werden: %1 - Cannot copy collection file: %1 Die Katalogdatei kann nicht kopiert werden: %1 - Cannot register filter %1! Der Filter kann nicht registriert werden: %1 - Cannot open documentation file %1! Die Dokumentationsdatei kann nicht geöffnet werden: %1 - The namespace %1 was not registered! Der Namensraum %1 wurde nicht registriert. - Namespace %1 already exists! Der Namensraum %1 existiert bereits. @@ -111,7 +97,6 @@ QHelpDBReader - Cannot open database '%1' '%2': %3 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 Kann Datenbank nicht öffnen: '%1' '%2': %3 @@ -120,12 +105,10 @@ QHelpEngineCore - Cannot open documentation file %1: %2! Die Dokumentationsdatei %1 kann nicht geöffnet werden: %2! - The specified namespace does not exist! Der angegebene Namensraum existiert nicht. @@ -133,132 +116,106 @@ QHelpGenerator - Invalid help data! Ungültige Hilfe-Daten. - No output file name specified! Für die Ausgabe-Datei wurde kein Name angegeben. - Building up file structure... Dateistruktur wird erzeugt... - The file %1 cannot be overwritten! Die Datei %1 kann nicht überschrieben werden. - Cannot open data base file %1! Die Datenbank-Datei %1 kann nicht geöffnet werden. - Cannot register namespace %1! Der Namensraum %1 kann nicht registriert werden. - Insert custom filters... Benutzerdefinierte Filter einfügen... - Insert help data for filter section (%1 of %2)... Hilfe-Daten für Filter-Sektion (%1 von %2) einfügen... - Documentation successfully generated. Dokumentation erfolgreich generiert. - Some tables already exist! Einige Tabellen existieren bereits. - Cannot create tables! Tabellen können nicht erstellt werden. - Cannot register virtual folder! Virtuelles Verzeichnis nicht registriert werden. - Insert files... Dateien einfügen... - The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. Die referenzierte Datei %1 muss sich im Verzeichnis %2 oder in einem Unterverzeichnis davon befinden. Sie wird übersprungen. - The file %1 does not exist! Skipping it. Die Datei %1 existiert nicht. Wird übersprungen. - Cannot open file %1! Skipping it. Die Datei %1 kann nicht geöffnet werden. Wird übersprungen. - The filter %1 is already registered! Der Filter %1 ist bereits registriert. - Cannot register filter %1! Der Filter %1 kann nicht registriert werden. - Insert indices... Indizes einfügen... - Insert contents... Inhalt einfügen... - Cannot insert contents! Inhalt kann nicht eingefügt werden. - Cannot register contents! Inhalt kann nicht registriert werden. - File '%1' does not exist. Die Datei '%1' existiert nicht. - File '%1' cannot be opened. Die Datei '%1' kann nicht geöffnet werden. - File '%1' contains an invalid link to file '%2' Die Datei '%1' enthält einen ungültigen Verweis auf die Datei '%2' - Invalid links in HTML files. Es wurden ungültige Verweise in HTML-Dateien gefunden. @@ -266,47 +223,38 @@ QHelpProject - Unknown token. Unbekanntes Token. - Unknown token. Expected "QtHelpProject"! Unbekanntes Token. "QtHelpProject" erwartet. - Error in line %1: %2 Fehler in Zeile %1: %2 - Virtual folder has invalid syntax. Ungültige Syntax bei Angabe des virtuellen Verzeichnisses. - Namespace has invalid syntax. Ungültige Syntax der Namensraum-Angabe. - Missing namespace in QtHelpProject. Fehlender Namensraum in QtHelpProject. - Missing virtual folder in QtHelpProject Fehlendes virtuelles Verzeichnis in QtHelpProject. - Missing attribute in keyword at line %1. Fehlendes Attribut in Schlagwort in Zeile %1. - The input file %1 could not be opened! Die Eingabe-Datei %1 kann nicht geöffnet werden. @@ -314,52 +262,42 @@ QHelpSearchQueryWidget - Search for: Suche nach: - Previous search Vorige Suche - Next search Nächste Suche - Search Suche - Advanced search Erweiterte Suche - words <B>similar</B> to: Worte <B>ähnlich</B> zu: - <B>without</B> the words: <B>ohne</B> die Wörter: - with <B>exact phrase</B>: mit der <B>genauen Wortgruppe</B>: - with <B>all</B> of the words: mit <B>allen</B> Wörtern: - with <B>at least one</B> of the words: mit <B>irgendeinem</B> der Wörter: @@ -367,7 +305,6 @@ QHelpSearchResultWidget - %1 - %2 of %n Hits %1 - %2 - Ein Treffer @@ -375,7 +312,6 @@ - 0 - 0 of 0 Hits 0 - 0 von 0 Treffern -- cgit v0.12 From 689d8f81cdb9beff8974c7672708e0d3dd61302d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 09:29:03 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/getting-started/gettingstartedqml.qdoc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index 93f6f88..6c85776 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -308,7 +308,7 @@ with a header that displays a row of menu names. The list of menus are declared inside a \c VisualItemModel. The \l{VisualItemModel}{\c VisualItemModel} element contains items that already have views such as \c Rectangle elements - and imported UI elements. Other model types such as the \l{ListModel}{\c ListModel} + and imported UI elements. Other model types such as the \l {ListModel}{\c ListModel} element need a delegate to display their data. We declare two visual items in the \c menuListModel, the \c FileMenu and the @@ -361,7 +361,7 @@ } \endcode - Additionally, \c ListView inherits from \l{Flickable}{\c Flickable}, making + Additionally, \c ListView inherits from \l {Flickable}{\c Flickable}, making the list respond to mouse drags and other gestures. The last portion of the code above sets \c Flickable properties to create the desired flicking movement to our view. In particular,the property \c highlightMoveDuration changes the @@ -585,7 +585,7 @@ that the targets' properties will animate for a certain duration of time and using a certain easing curve. An easing curve controls the animation rates and interpolation behavior during state transitions. The easing curve we chose is - \l{PropertyAnimation::easing.type}{Easing.OutQuint}, which slows the movement near + \l{PropertyAnimation::easing.type}{Easing.OutQuint}, which slows the movement near the end of the animation. Pleae read \l {qdeclarativeanimation.html}{QML's Animation} article. @@ -737,7 +737,12 @@ }; \endcode - Our plugin class, \c DialogPlugin is a subclass of \l {QDeclarativeExtensionPlugin}{QDeclarativeExtensionPlugin}. We need to implement the inherited function, \l {QDeclarativeExtensionPlugin::registerTypes}{registerTypes}. The \c dialogPlugin.cpp file looks like this: + + Our plugin class, \c DialogPlugin is a subclass of \l + {QDeclarativeExtensionPlugin}{QDeclarativeExtensionPlugin}. We + need to implement the inherited function, \l + {QDeclarativeExtensionPlugin::registerTypes()}{registerTypes}. The + \c dialogPlugin.cpp file looks like this: \code DialogPlugin.cpp: @@ -756,7 +761,7 @@ Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \endcode - The \l {QDeclarativeExtensionPlugin::registerTypes}{registerTypes} + The \l {QDeclarativeExtensionPlugin::registerTypes()}{registerTypes} function registers our File and Directory classes into QML. This function needs the class name for its template, a major version number, a minor version number, and a name for our classes. @@ -816,7 +821,7 @@ The \c files list property is a list of all the filtered files in a directory. The \c Directory class is implemented to filter out invalid text files; only - files with a \c .txt extension are valid. Further, \l {QLists}{QLists} can be + files with a \c .txt extension are valid. Further, \l {QList}{QLists} can be used in QML files by declaring them as a \c QDeclarativeListProperty in C++. The templated object needs to inherit from a \l {QObject}{QObject}, therefore, the \c File class must also inherit from \c QObject. In the \c Directory class, -- cgit v0.12 From 8b0761d942ced89e34a8ee99de10f2f106f19396 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 09:43:49 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/modules.qdoc | 64 +--------------------------------------------------- 1 file changed, 1 insertion(+), 63 deletions(-) diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc index a81bfb2..c35d71c 100644 --- a/doc/src/modules.qdoc +++ b/doc/src/modules.qdoc @@ -40,7 +40,7 @@ \header \o {2,1} \bold{Modules for general software development} \row \o \l{QtCore} \o Core non-graphical classes used by other modules \row \o \l{QtGui} \o Graphical user interface (GUI) components - \row \o \l{QtMultimedia} \o Classes for low-level multimedia functionality + \row \o \l{qtmultimedia-module.html}{QtMultimedia} \o Classes for low-level multimedia functionality \row \o \l{QtNetwork} \o Classes for network programming \row \o \l{QtOpenGL} \o OpenGL support classes \row \o \l{QtOpenVG} \o OpenVG support classes @@ -82,9 +82,6 @@ /*! \module QtCore \title QtCore Module - \contentspage All Modules - \previouspage All Modules - \nextpage QtGui \ingroup modules \keyword QtCore @@ -101,9 +98,6 @@ /*! \module QtGui \title QtGui Module - \contentspage All Modules - \previouspage QtCore - \nextpage QtNetwork \ingroup modules \brief The QtGui module extends QtCore with GUI functionality. @@ -118,9 +112,6 @@ \module QtMultimedia \page qtmultimedia-module.html \title QtMultimedia Module - \contentspage All Modules - \previouspage QtCore - \nextpage QtNetwork \ingroup modules \brief The QtMultimedia module provides low-level multimedia functionality. @@ -142,9 +133,6 @@ /*! \module QtNetwork \title QtNetwork Module - \contentspage All Modules - \previouspage QtMultimedia - \nextpage QtOpenGL \ingroup modules \brief The QtNetwork module provides classes to make network programming @@ -164,9 +152,6 @@ /*! \module QtOpenGL \title QtOpenGL Module - \contentspage All Modules - \previouspage QtNetwork - \nextpage QtOpenVG \ingroup modules \brief The QtOpenGL module offers classes that make it easy to @@ -217,9 +202,6 @@ \module QtOpenVG \title QtOpenVG Module \since 4.6 - \contentspage All Modules - \previouspage QtOpenGL - \nextpage QtScript \ingroup modules \brief The QtOpenVG module is a plugin that provides support for @@ -272,9 +254,6 @@ \module QtScript \title QtScript Module \since 4.3 - \contentspage All Modules - \previouspage QtOpenVG - \nextpage QtScriptTools \ingroup modules \brief The QtScript module provides classes for making Qt applications scriptable. @@ -332,9 +311,6 @@ \module QtScriptTools \title QtScriptTools Module \since 4.5 - \contentspage All Modules - \previouspage QtScript - \nextpage QtSql \ingroup modules \brief The QtScriptTools module provides additional components for applications that use Qt Script. @@ -356,9 +332,6 @@ /*! \module QtSql \title QtSql Module - \contentspage All Modules - \previouspage QtScript - \nextpage QtSvg \ingroup modules To include the definitions of the module's classes, use the @@ -379,9 +352,6 @@ \module QtSvg \title QtSvg Module \since 4.1 - \contentspage All Modules - \previouspage QtSql - \nextpage QtWebKit \ingroup modules \brief The QtSvg module provides classes for displaying and creating SVG files. @@ -430,9 +400,6 @@ /*! \module QtXml \title QtXml Module - \contentspage All Modules - \previouspage QtSvg - \nextpage QtXmlPatterns \ingroup modules \brief The QtXml module provides a stream reader and writer for @@ -457,9 +424,6 @@ \module QtXmlPatterns \title QtXmlPatterns Module \since 4.4 - \contentspage All Modules - \previouspage QtXml - \nextpage Phonon Module \ingroup modules \brief The QtXmlPatterns module provides support for XPath, @@ -537,9 +501,6 @@ \page phonon-module.html \module Phonon \title Phonon Module - \contentspage All Modules - \previouspage QtXmlPatterns - \nextpage Qt3Support \ingroup modules \brief The Phonon module contains namespaces and classes for multimedia functionality. @@ -607,9 +568,6 @@ /*! \module Qt3Support \title Qt3Support Module - \contentspage All Modules - \previouspage Phonon Module - \nextpage QtDesigner \ingroup modules \keyword Qt3Support @@ -640,9 +598,6 @@ /*! \module QtDesigner \title QtDesigner Module - \contentspage All Modules - \previouspage Qt3Support - \nextpage QtUiTools \ingroup modules \brief The QtDesigner module provides classes that allow you to @@ -667,9 +622,6 @@ \module QtUiTools \title QtUiTools Module \since 4.1 - \contentspage All Modules - \previouspage QtDesigner - \nextpage QtHelp \ingroup modules \brief The QtUiTools module provides classes to handle forms created @@ -703,9 +655,6 @@ /*! \module QtHelp \title QtHelp Module - \contentspage All Modules - \previouspage QtUiTools - \nextpage QtTest \ingroup modules \brief The QtHelp module provides classes for integrating @@ -762,9 +711,6 @@ /*! \module QtTest \title QtTest Module - \contentspage All Modules - \previouspage QtHelp - \nextpage QAxContainer \ingroup modules \keyword QtTest @@ -792,9 +738,6 @@ /*! \module QAxContainer \title QAxContainer Module - \contentspage All Modules - \previouspage QtTest - \nextpage QAxServer \ingroup modules \brief The QAxContainer module is a Windows-only extension for @@ -844,9 +787,6 @@ /*! \module QAxServer \title QAxServer Module - \contentspage All Modules - \previouspage QAxContainer - \nextpage QtDBus module \ingroup modules \brief The QAxServer module is a Windows-only static library that @@ -896,8 +836,6 @@ /*! \module QtDBus \title QtDBus module - \contentspage All Modules - \previouspage QAxServer \ingroup modules \keyword QtDBus -- cgit v0.12 From ac355872573c7131e4b783cabe00c5656dc668af Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 9 Aug 2010 10:14:27 +0200 Subject: Fixed missing link tag in declarativeui.qdoc. Fix for QTBUG-12750 --- doc/src/declarative/declarativeui.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 1fc9d69..b25d000 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -43,7 +43,7 @@ C++ module, you can load and interact with QML files from your Qt application. QML provides mechanisms to declaratively build an object tree using \l {QML Elements}{QML elements}. QML improves the integration between -{http://www.ecma-international.org/publications/standards/Ecma-262.htm}{JavaScript} +\l {http://www.ecma-international.org/publications/standards/Ecma-262.htm}{JavaScript} and Qt's existing QObject based type system, adds support for automatic \l {Property Binding}{property bindings} and provides \l {Network Transparency}{network transparency} -- cgit v0.12 From c5fa9eb1cb02d979502e2c9918d752c6708fb406 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 9 Aug 2010 10:31:16 +0200 Subject: Fix scrollbar randomly popping up in QPlainTextEdit When a line break was detected, we would retain the value of the right bearing for the character after the break instead of resetting it to the right bearing of the previous value. This could in some cases cause the bounding rect of the text to be wrong, and could cause unnecessary horizontal scrollbars to pop up. It was especially visible when using WrapAnywhere. Visible e.g. in the compile output in Creator. Done-by: mae Reviewed-by: Eskil Reviewed-by: Lars --- src/gui/text/qtextlayout.cpp | 21 +++++++++++++++++---- tests/auto/qtextlayout/tst_qtextlayout.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 5a11c87..da43913 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -1709,14 +1709,18 @@ namespace { return glyphs.glyphs[logClusters[currentPosition - 1]]; } + inline void adjustRightBearing(glyph_t glyph) + { + qreal rb; + fontEngine->getGlyphBearings(glyph, 0, &rb); + rightBearing = qMin(QFixed(), QFixed::fromReal(rb)); + } + inline void adjustRightBearing() { if (currentPosition <= 0) return; - - qreal rb; - fontEngine->getGlyphBearings(currentGlyph(), 0, &rb); - rightBearing = qMin(QFixed(), QFixed::fromReal(rb)); + adjustRightBearing(currentGlyph()); } inline void resetRightBearing() @@ -1901,6 +1905,9 @@ void QTextLine::layout_helper(int maxGlyphs) } else { lbh.whiteSpaceOrObject = false; bool sb_or_ws = false; + glyph_t previousGlyph = 0; + if (lbh.currentPosition > 0 && lbh.logClusters[lbh.currentPosition - 1] line.width) lbh.adjustRightBearing(); if (lbh.checkFullOtherwiseExtend(line)) { + // we are too wide, fix right bearing + if (rightBearing <= 0) + lbh.rightBearing = rightBearing; // take from cache + else if (previousGlyph > 0) + lbh.adjustRightBearing(previousGlyph); if (!breakany) { line.textWidth += lbh.softHyphenWidth; } diff --git a/tests/auto/qtextlayout/tst_qtextlayout.cpp b/tests/auto/qtextlayout/tst_qtextlayout.cpp index f798faf..659ba1a 100644 --- a/tests/auto/qtextlayout/tst_qtextlayout.cpp +++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp @@ -122,6 +122,7 @@ private slots: void smallTextLengthWrapAtWordBoundaryOrAnywhere(); void testLineBreakingAllSpaces(); void lineWidthFromBOM(); + void textWidthVsWIdth(); private: @@ -1359,5 +1360,34 @@ void tst_QTextLayout::glyphLessItems() } } +void tst_QTextLayout::textWidthVsWIdth() +{ + QTextLayout layout; + QTextOption opt; + opt.setWrapMode(QTextOption::WrapAnywhere); + layout.setTextOption(opt); + layout.setText(QString::fromLatin1( + "g++ -c -m64 -pipe -g -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DCORE_LIBRARY -DIDE_LIBRARY_BASENAME=\"lib\" -DWITH_TESTS " + "-DQT_NO_CAST_TO_ASCII -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DQT_PLUGIN -DQT_TESTLIB_LIB -DQT_SCRIPT_LIB -DQT_SVG_LIB -DQT_SQL_LIB -DQT_XM" + "L_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../../qt-qml/mkspecs/linux-g++-64 -I. -I../../../../qt-qml/include/QtCore -I../../../." + "./qt-qml/include/QtNetwork -I../../../../qt-qml/include/QtGui -I../../../../qt-qml/include/QtXml -I../../../../qt-qml/include/QtSql -I../../../../qt-qml/inc" + "lude/QtSvg -I../../../../qt-qml/include/QtScript -I../../../../qt-qml/include/QtTest -I../../../../qt-qml/include -I../../../../qt-qml/include/QtHelp -I../." + "./libs -I/home/ettrich/dev/creator/tools -I../../plugins -I../../shared/scriptwrapper -I../../libs/3rdparty/botan/build -Idialogs -Iactionmanager -Ieditorma" + "nager -Iprogressmanager -Iscriptmanager -I.moc/debug-shared -I.uic -o .obj/debug-shared/sidebar.o sidebar.cpp")); + + // textWidth includes right bearing, but it should never be LARGER than width if there is space for at least one character + for (int width = 100; width < 1000; ++width) { + layout.beginLayout(); + QTextLine line = layout.createLine(); + line.setLineWidth(width); + layout.endLayout(); + + qreal textWidthIsLargerBy = qMax(qreal(0), line.naturalTextWidth() - line.width()); + qreal thisMustBeZero = 0; + QCOMPARE(textWidthIsLargerBy, thisMustBeZero); + } +} + + QTEST_MAIN(tst_QTextLayout) #include "tst_qtextlayout.moc" -- cgit v0.12 From 94244ea3c5edf57d4dc258381d37bc99fc23ed0d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 10:43:46 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/declarative/example-slideswitch.qdoc | 2 +- doc/src/tutorials/modelview.qdoc | 4 ++-- src/declarative/graphicsitems/qdeclarativeitem.cpp | 2 +- src/declarative/qml/qdeclarativeimageprovider.cpp | 2 +- src/declarative/util/qdeclarativestate.cpp | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/src/declarative/example-slideswitch.qdoc b/doc/src/declarative/example-slideswitch.qdoc index f056892..1a40f14 100644 --- a/doc/src/declarative/example-slideswitch.qdoc +++ b/doc/src/declarative/example-slideswitch.qdoc @@ -115,7 +115,7 @@ For more information on scripts see \l{Integrating JavaScript}. At this point, when the switch toggles between the two states the knob will instantly change its \c x position between 1 and 78. In order for the the knob to move smoothly we add a transition that will animate the \c x property with an easing curve for a duration of 200ms. -For more information on transitions see \l{state-transitions}{QML Transitions}. +For more information on transitions see \l{qdeclarativeanimation.html#transitions}{QML Transitions}. \section1 Usage The switch can be used in a QML file, like this: diff --git a/doc/src/tutorials/modelview.qdoc b/doc/src/tutorials/modelview.qdoc index 98096a0..b39a01c 100755 --- a/doc/src/tutorials/modelview.qdoc +++ b/doc/src/tutorials/modelview.qdoc @@ -80,8 +80,8 @@ /*! \page modelview-part1.html - \contentspage {modelview-index.html}{Model/View Contents} - \previouspage {modelview-index.html}{Model/View Contents} + \contentspage {modelview.html}{Model/View Contents} + \previouspage {modelview.html}{Model/View Contents} \nextpage {modelview-part2.html}{Developing a Simple Model/View Application} \title An Introduction to Model/View Programming diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index ff05997..5872585 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -2454,7 +2454,7 @@ QDeclarativeListProperty QDeclarativeItemPrivate::states() } \endqml - \sa {state-transitions}{Transitions} + \sa {qdeclarativeanimation.html#transitions}{QML Transitions} */ diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp index 241df87..da5b65e 100644 --- a/src/declarative/qml/qdeclarativeimageprovider.cpp +++ b/src/declarative/qml/qdeclarativeimageprovider.cpp @@ -59,7 +59,7 @@ public: \list \o Loaded using QPixmaps rather than actual image files - \o Loaded asynchronously in a separate thread, if imageType() is \l ImageType::Image + \o Loaded asynchronously in a separate thread, if imageType() is \l Image \endlist To specify that an image should be loaded by an image provider, use the diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp index 7a78a2b..028bacb 100644 --- a/src/declarative/util/qdeclarativestate.cpp +++ b/src/declarative/util/qdeclarativestate.cpp @@ -160,7 +160,8 @@ QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObje \note Setting the state of an object from within another state of the same object is not allowed. - \sa {declarative/animation/states}{states example}, {qmlstates}{States}, {state-transitions}{Transitions}, QtDeclarative + \sa {declarative/animation/states}{states example}, {qmlstates}{States}, + {qdeclarativeanimation.html#transitions}{QML Transitions}, QtDeclarative */ /*! -- cgit v0.12 From 362641ec2bdf5e05b4adfc54275c1c4869759d56 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 9 Aug 2010 11:01:45 +0200 Subject: Doc: typo fixed in qlibraryinfo.cpp Reviewed-by: TrustMe --- src/corelib/global/qlibraryinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index a9ea44a..4b56efc 100644 --- a/src/corelib/global/qlibraryinfo.cpp +++ b/src/corelib/global/qlibraryinfo.cpp @@ -467,7 +467,7 @@ QLibraryInfo::location(LibraryLocation loc) \value PrefixPath The default prefix for all paths. \value DocumentationPath The location for documentation upon install. \value HeadersPath The location for all headers. - \value LibrariesPath The location of installed librarires. + \value LibrariesPath The location of installed libraries. \value BinariesPath The location of installed Qt binaries (tools and applications). \value PluginsPath The location of installed Qt plugins. \value DataPath The location of general Qt data. -- cgit v0.12 From 3ed0f33f7a8a5697d55faf8e4ce8fb003d4f8b93 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Mon, 9 Aug 2010 11:16:40 +0200 Subject: Doc: removing reduntant text from the index page --- doc/src/index.qdoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index f890aa6..ded57f5 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -94,14 +94,14 @@
    -- cgit v0.12 From 66a6183dc30ca1d572274695707f16b84325b459 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 11:23:35 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/widgets-and-layouts/layout.qdoc | 4 ++-- doc/src/widgets-and-layouts/styles.qdoc | 2 +- doc/src/widgets-and-layouts/stylesheet.qdoc | 2 +- doc/src/widgets-and-layouts/widgets.qdoc | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/widgets-and-layouts/layout.qdoc b/doc/src/widgets-and-layouts/layout.qdoc index 798a7a1..d2687ea 100644 --- a/doc/src/widgets-and-layouts/layout.qdoc +++ b/doc/src/widgets-and-layouts/layout.qdoc @@ -37,9 +37,9 @@ \brief A tour of the standard layout managers and an introduction to custom layouts. - \previouspage Widget Classes + \previouspage Widgets and Layouts \contentspage Widgets and Layouts - \nextpage {Implementing Styles and Style Aware Widgets}{Styles} + \nextpage {Styles and Style Aware Widgets}{Styles} \ingroup frameworks-technologies diff --git a/doc/src/widgets-and-layouts/styles.qdoc b/doc/src/widgets-and-layouts/styles.qdoc index eab7014..180260b 100644 --- a/doc/src/widgets-and-layouts/styles.qdoc +++ b/doc/src/widgets-and-layouts/styles.qdoc @@ -33,7 +33,7 @@ /*! \page style-reference.html - \title Styles & Style Aware Widgets + \title Styles and Style Aware Widgets \ingroup qt-gui-concepts \brief Styles and the styling of widgets. diff --git a/doc/src/widgets-and-layouts/stylesheet.qdoc b/doc/src/widgets-and-layouts/stylesheet.qdoc index 1390376..475de3d 100644 --- a/doc/src/widgets-and-layouts/stylesheet.qdoc +++ b/doc/src/widgets-and-layouts/stylesheet.qdoc @@ -32,7 +32,7 @@ \ingroup frameworks-technologies - \previouspage {Implementing Styles and Style Aware Widgets}{Styles} + \previouspage {Styles and Style Aware Widgets}{Styles} \contentspage Widgets and Layouts \nextpage The Style Sheet Syntax diff --git a/doc/src/widgets-and-layouts/widgets.qdoc b/doc/src/widgets-and-layouts/widgets.qdoc index f2475c2..baf3dce 100644 --- a/doc/src/widgets-and-layouts/widgets.qdoc +++ b/doc/src/widgets-and-layouts/widgets.qdoc @@ -68,7 +68,7 @@ \section1 Widget Styles - \l{Styles & Style Aware Widgets}{Styles} draw on behalf of + \l{Styles and Style Aware Widgets}{Styles} draw on behalf of widgets and encapsulate the look and feel of a GUI. Qt's built-in widgets use the QStyle class to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets. -- cgit v0.12 From 4f2f48caae2ae18336bff10bb1e1ab07f2dd4650 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 9 Aug 2010 11:49:43 +0200 Subject: doc: Clarify documentation of QStaticText There has been some confusion concerning what HTML tags can be used when using the rich text format with QStaticText. This patch attempts to make it clearer in the documentation that the tags have to be text related. Reviewed-by: Samuel --- src/gui/text/qstatictext.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp index 7396bcd..21c2e02 100644 --- a/src/gui/text/qstatictext.cpp +++ b/src/gui/text/qstatictext.cpp @@ -109,10 +109,18 @@ QT_BEGIN_NAMESPACE QPainter::drawStaticText() and can change from call to call with a minimal impact on performance. - QStaticText will attempt to guess the format of the input text using Qt::mightBeRichText(). - To force QStaticText to display its contents as either plain text or rich text, use the - function QStaticText::setTextFormat() and pass in, respectively, Qt::PlainText and - Qt::RichText. + For extra convenience, it is possible to apply formatting to the text using the HTML subset + supported by QTextDocument. QStaticText will attempt to guess the format of the input text using + Qt::mightBeRichText(), and interpret it as rich text if this function returns true. To force + QStaticText to display its contents as either plain text or rich text, use the function + QStaticText::setTextFormat() and pass in, respectively, Qt::PlainText and Qt::RichText. + + QStaticText can only represent text, so only HTML tags which alter the layout or appearance of + the text will be respected. Adding an image to the input HTML, for instance, will cause the + image to be included as part of the layout, affecting the positions of the text glyphs, but it + will not be displayed. The result will be an empty area the size of the image in the output. + Similarly, using tables will cause the text to be laid out in table format, but the borders + will not be drawn. If it's the first time the static text is drawn, or if the static text, or the painter's font has been altered since the last time it was drawn, the text's layout has to be -- cgit v0.12 From ddd2a54224e651ff45af834201eec1be2c56d583 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 9 Aug 2010 11:58:40 +0200 Subject: QtDeclarative: get rid of warnings in public header warning: use of old-style cast Reviewed-by: brad --- src/declarative/qml/qdeclarativelist.h | 8 ++++---- src/declarative/qml/qdeclarativeprivate.h | 4 ++-- tests/auto/compilerwarnings/test_cpp.txt | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/declarative/qml/qdeclarativelist.h b/src/declarative/qml/qdeclarativelist.h index 399b2a1..c10bc11 100644 --- a/src/declarative/qml/qdeclarativelist.h +++ b/src/declarative/qml/qdeclarativelist.h @@ -98,16 +98,16 @@ public: private: static void qlist_append(QDeclarativeListProperty *p, T *v) { - ((QList *)p->data)->append(v); + reinterpret_cast *>(p->data)->append(v); } static int qlist_count(QDeclarativeListProperty *p) { - return ((QList *)p->data)->count(); + return reinterpret_cast *>(p->data)->count(); } static T *qlist_at(QDeclarativeListProperty *p, int idx) { - return ((QList *)p->data)->at(idx); + return reinterpret_cast *>(p->data)->at(idx); } static void qlist_clear(QDeclarativeListProperty *p) { - return ((QList *)p->data)->clear(); + return reinterpret_cast *>(p->data)->clear(); } }; #endif diff --git a/src/declarative/qml/qdeclarativeprivate.h b/src/declarative/qml/qdeclarativeprivate.h index cb916bf..d45ddbc 100644 --- a/src/declarative/qml/qdeclarativeprivate.h +++ b/src/declarative/qml/qdeclarativeprivate.h @@ -105,7 +105,7 @@ namespace QDeclarativePrivate template struct StaticCastSelectorClass { - static inline int cast() { return (int)((intptr_t)static_cast((From *)0x10000000)) - 0x10000000; } + static inline int cast() { return int(reinterpret_cast(static_cast(reinterpret_cast(0x10000000)))) - 0x10000000; } }; template @@ -119,7 +119,7 @@ namespace QDeclarativePrivate static inline int cast() { - return StaticCastSelectorClass::cast(); + return StaticCastSelectorClass(0)))>::cast(); } }; diff --git a/tests/auto/compilerwarnings/test_cpp.txt b/tests/auto/compilerwarnings/test_cpp.txt index 62b35eb..1d317b8 100644 --- a/tests/auto/compilerwarnings/test_cpp.txt +++ b/tests/auto/compilerwarnings/test_cpp.txt @@ -58,6 +58,9 @@ #include #endif +#include + + #ifndef Q_OS_MAC int main(int, char **) { -- cgit v0.12 From f45c6c61a0967468b1b80375d8c72db4f4fec438 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 12:18:53 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/examples/qml-examples.qdoc | 2 +- doc/src/examples/simpletreemodel.qdoc | 16 +++++++++------- doc/src/examples/spinboxdelegate.qdoc | 5 +++-- doc/src/objectmodel/metaobjects.qdoc | 3 ++- doc/src/objectmodel/properties.qdoc | 3 ++- doc/src/painting-and-printing/paintsystem.qdoc | 6 +++--- doc/src/windows-and-dialogs/dialogs.qdoc | 2 +- src/gui/styles/qstyle.cpp | 2 +- 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc index 8d3aa25..0d191c9 100644 --- a/doc/src/examples/qml-examples.qdoc +++ b/doc/src/examples/qml-examples.qdoc @@ -562,7 +562,7 @@ \example declarative/ui-components/dialcontrol This example shows how to create a dial-type control. It combines - \l Image elements with \l Rotation transforms and \l SpringAnimatino behaviors + \l Image elements with \l Rotation transforms and \l SpringAnimation behaviors to produce an interactive speedometer-type dial. \image qml-dialcontrol-example.png diff --git a/doc/src/examples/simpletreemodel.qdoc b/doc/src/examples/simpletreemodel.qdoc index c34f4af..16cf8b7 100644 --- a/doc/src/examples/simpletreemodel.qdoc +++ b/doc/src/examples/simpletreemodel.qdoc @@ -36,13 +36,15 @@ \image simpletreemodel-example.png - Qt's model/view architecture provides a standard way for views to manipulate - information in a data source, using an abstract model of the data to - simplify and standardize the way it is accessed. Simple models represent - data as a table of items, and allow views to access this data via an - \l{model-view-model.html}{index-based} system. More generally, models can - be used to represent data in the form of a tree structure by allowing each - item to act as a parent to a table of child items. + Qt's model/view architecture provides a standard way for views to + manipulate information in a data source, using an abstract model + of the data to simplify and standardize the way it is accessed. + Simple models represent data as a table of items, and allow views + to access this data via an + \l{model-view-programming.html#model-indexes} {index-based} + system. More generally, models can be used to represent data in + the form of a tree structure by allowing each item to act as a + parent to a table of child items. Before attempting to implement a tree model, it is worth considering whether the data is supplied by an external source, or whether it is going to be diff --git a/doc/src/examples/spinboxdelegate.qdoc b/doc/src/examples/spinboxdelegate.qdoc index 49e3295..da65831 100644 --- a/doc/src/examples/spinboxdelegate.qdoc +++ b/doc/src/examples/spinboxdelegate.qdoc @@ -42,8 +42,9 @@ \image spinboxdelegate-example.png This concepts behind this example are covered in the - \l{model-view-delegate.html}{Delegate Classes} chapter of the - \l{model-view-programming.html}{Model/View Programming} overview. + \l{model-view-programming.html#delegate-classes}{Delegate Classes} + chapter of the \l{model-view-programming.html}{Model/View + Programming} overview. \section1 SpinBoxDelegate Class Definition diff --git a/doc/src/objectmodel/metaobjects.qdoc b/doc/src/objectmodel/metaobjects.qdoc index dd00c5e..0597cd6 100644 --- a/doc/src/objectmodel/metaobjects.qdoc +++ b/doc/src/objectmodel/metaobjects.qdoc @@ -28,8 +28,9 @@ /*! \page metaobjects.html \title The Meta-Object System - \ingroup qt-basic-concepts \brief An overview of Qt's meta-object system and introspection capabilities. + + \ingroup qt-basic-concepts \keyword meta-object \target Meta-Object System diff --git a/doc/src/objectmodel/properties.qdoc b/doc/src/objectmodel/properties.qdoc index 356aaaf..dca332e 100644 --- a/doc/src/objectmodel/properties.qdoc +++ b/doc/src/objectmodel/properties.qdoc @@ -28,8 +28,9 @@ /*! \page properties.html \title The Property System - \ingroup qt-basic-concepts \brief An overview of Qt's property system. + + \ingroup qt-basic-concepts \target Qt's Property System Qt provides a sophisticated property system similar to the ones diff --git a/doc/src/painting-and-printing/paintsystem.qdoc b/doc/src/painting-and-printing/paintsystem.qdoc index e5eb75d..4c6fd91 100644 --- a/doc/src/painting-and-printing/paintsystem.qdoc +++ b/doc/src/painting-and-printing/paintsystem.qdoc @@ -273,7 +273,7 @@ \previouspage Paint Devices and Backends \contentspage The Paint System - \nextpage The Coordinate System + \nextpage Coordinate System \section1 Drawing @@ -395,7 +395,7 @@ \page paintsystem-images.html \title Reading and Writing Image Files - \previouspage The Coordinate System + \previouspage Coordinate System \contentspage The Paint System \nextpage Styling @@ -554,5 +554,5 @@ \endtable For more information about widget styling and appearance, see the - \l{Styles & Style Aware Widgets}. + \l{Styles and Style Aware Widgets}. */ diff --git a/doc/src/windows-and-dialogs/dialogs.qdoc b/doc/src/windows-and-dialogs/dialogs.qdoc index 74df2aa..f6649fd 100644 --- a/doc/src/windows-and-dialogs/dialogs.qdoc +++ b/doc/src/windows-and-dialogs/dialogs.qdoc @@ -43,7 +43,7 @@ \ingroup qt-gui-concepts \brief An overview over dialog windows. - \previouspage The Application Main Window + \previouspage Application Main Window \contentspage Application Windows and Dialogs \nextpage Desktop Integration diff --git a/src/gui/styles/qstyle.cpp b/src/gui/styles/qstyle.cpp index 687e587..0a75492 100644 --- a/src/gui/styles/qstyle.cpp +++ b/src/gui/styles/qstyle.cpp @@ -325,7 +325,7 @@ static int unpackControlTypes(QSizePolicy::ControlTypes controls, QSizePolicy::C control over size of header items and row and column sizes. \sa QStyleOption, QStylePainter, {Styles Example}, - {Styles & Style Aware Widgets}, QStyledItemDelegate + {Styles and Style Aware Widgets}, QStyledItemDelegate */ /*! -- cgit v0.12 From 58d78590fc29fd6695d60eaf50af604bd1f75588 Mon Sep 17 00:00:00 2001 From: Victor Ostashevsky Date: Mon, 9 Aug 2010 12:49:09 +0200 Subject: Add Ukrainian translation. Merge-request: 761 Reviewed-by: Oswald Buddenhagen --- translations/assistant_uk.ts | 969 +++++++ translations/designer_uk.ts | 5783 ++++++++++++++++++++++++++++++++++++++++++ translations/linguist_uk.ts | 1602 ++++++++++++ translations/qt_help_uk.ts | 320 +++ translations/qtconfig_uk.ts | 717 ++++++ translations/qvfb_uk.ts | 276 ++ 6 files changed, 9667 insertions(+) create mode 100644 translations/assistant_uk.ts create mode 100644 translations/designer_uk.ts create mode 100644 translations/linguist_uk.ts create mode 100644 translations/qt_help_uk.ts create mode 100644 translations/qtconfig_uk.ts create mode 100644 translations/qvfb_uk.ts diff --git a/translations/assistant_uk.ts b/translations/assistant_uk.ts new file mode 100644 index 0000000..78fd59d --- /dev/null +++ b/translations/assistant_uk.ts @@ -0,0 +1,969 @@ + + + + + AboutDialog + + &Close + &Закрити + + + + AboutLabel + + Warning + Попередження + + + Unable to launch external application. + + Неможливо запустити зовнішню програму. + + + + OK + OK + + + + Assistant + + Error registering documentation file '%1': %2 + Помилка реєстрації файлу документації '%1': %2 + + + Error: %1 + Помилка: %1 + + + Could not register documentation file +%1 + +Reason: +%2 + Не можу зареєструвати файл документації +%1 + +Причина: +%2 + + + Documentation successfully registered. + Документацію успішно зареєстровано. + + + Could not unregister documentation file +%1 + +Reason: +%2 + Не можу скасувати реєстрацію файлу документації +%1 + +Причина: +%2 + + + Documentation successfully unregistered. + Реєстрацію документації успішно скасовано. + + + Error reading collection file '%1': %2. + Помилка читання файлу колекції '%1': %2. + + + Error creating collection file '%1': %2. + Помилка створення файлу колекції '%1': %2. + + + Error reading collection file '%1': %2 + Помилка читання файлу колекції '%1': %2 + + + Cannot load sqlite database driver! + Не можу завантажити драйвер бази даний SQLite! + + + + BookmarkDialog + + Add Bookmark + Додати закладку + + + Bookmark: + Закладка: + + + Add in Folder: + Додати в теку: + + + + + + + + + New Folder + Нова тека + + + Rename Folder + Перейменувати теку + + + + BookmarkManager + + Untitled + Без назви + + + Remove + Видалити + + + You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? + Ви збираєтесь видалити теку, що призведе до видалення її змісту.<br>Ви впевнені, що хочете продовжити? + + + Manage Bookmarks... + Керування закладками... + + + Add Bookmark... + Додати закладку... + + + Ctrl+D + + + + Delete Folder + Видалити теку + + + Rename Folder + Перейменувати теку + + + Show Bookmark + Показати закладку + + + Show Bookmark in New Tab + Показати закладку в новій вкладці + + + Delete Bookmark + Видалити закладку + + + Rename Bookmark + Перейменувати закладку + + + + BookmarkManagerWidget + + Manage Bookmarks + Керування закладками + + + Search: + Пошук: + + + Remove + Видалити + + + Import and Backup + Імпорт та резервування + + + OK + OK + + + Import... + Імпортувати... + + + Export... + Експортувати... + + + Open File + Відкрити файл + + + Files (*.xbel) + Файли (*.xbel) + + + Save File + Зберегти файл + + + Qt Assistant + Qt Assistant + + + Unable to save bookmarks. + Не можу зберегти закладки. + + + You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue? + Ви збираєтесь видалити теку, що призведе до видалення її змісту.<br>Ви впевнені, що хочете продовжити? + + + Delete Folder + Видалити теку + + + Rename Folder + Перейменувати теку + + + Show Bookmark + Показати закладку + + + Show Bookmark in New Tab + Показати закладку в новій вкладці + + + Delete Bookmark + Видалити закладку + + + Rename Bookmark + Перейменувати закладку + + + + BookmarkModel + + Name + Ім'я + + + Address + Адреса + + + Bookmarks Menu + Меню закладок + + + + BookmarkWidget + + Bookmarks + Закладки + + + Filter: + Фільтр: + + + Add + Додати + + + Remove + Видалити + + + + CentralWidget + + Add new page + Додати нову сторінку + + + Close current page + Закрити поточну сторінку + + + Print Document + Друкувати документ + + + unknown + невідомо + + + Add New Page + Додати нову сторінку + + + Close This Page + Закрити цю сторінку + + + Close Other Pages + Закрити інші сторінки + + + Add Bookmark for this Page... + Додати закладку для цієї сторінки... + + + Search + Пошук + + + + CmdLineParser + + Unknown option: %1 + Невідома опція: %1 + + + The collection file '%1' does not exist. + Файл колекції '%1' не існує. + + + Missing collection file. + Відсутній файл колекції. + + + Invalid URL '%1'. + Неправильний URL '%1'. + + + Missing URL. + URL відсутній. + + + Unknown widget: %1 + Невідомий віджет: %1 + + + Missing widget. + Відсутній віджет. + + + The Qt help file '%1' does not exist. + Файл довідки Qt '%1' не існує. + + + Missing help file. + Відсутній файл довідки. + + + Missing filter argument. + Відсутній аргумент фільтру. + + + Error + Помилка + + + Notice + Примітка + + + + ContentWindow + + Open Link + Відкрити посилання + + + Open Link in New Tab + Відкрити посилання в новій вкладці + + + + FilterNameDialogClass + + Add Filter Name + Додати назву фільтру + + + Filter Name: + Назва фільтру: + + + + FindWidget + + Previous + Попередній + + + Next + Наступний + + + Case Sensitive + Враховувати регістр + + + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Пошук з початку + + + + FontPanel + + Font + Шрифт + + + &Writing system + Система &письма + + + &Family + &Шрифт + + + &Style + &Стиль + + + &Point size + &Розмір + + + + HelpViewer + + <title>about:blank</title> + <title>about:blank</title> + + + <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> + <title>Помилка 404...</title><div align="center"><br><br><h1>Неможливо знайти сторінку</h1><br><h3>'%1'</h3></div> + + + Copy &Link Location + Копіювати &адресу посилання + + + Open Link in New Tab Ctrl+LMB + Відкрити посилання в новій вкладці Ctrl+LMB + + + Open Link in New Tab + Відкрити посилання в новій вкладці + + + + IndexWindow + + &Look for: + + + + Open Link + Відкрити посилання + + + Open Link in New Tab + Відкрити посилання в новій вкладці + + + + InstallDialog + + Install Documentation + Встановити документацію + + + Available Documentation: + Доступна документація: + + + Install + Встановити + + + Cancel + Скасувати + + + Close + Закрити + + + Installation Path: + Шлях встановлення: + + + ... + ... + + + Downloading documentation info... + Завантажую інформацію про документацію... + + + Download canceled. + Завантаження скасоване. + + + Done. + Виконано. + + + The file %1 already exists. Do you want to overwrite it? + Файл %1 вже існує. Бажаєте перезаписати? + + + Unable to save the file %1: %2. + Не можу зберегти файл %1: %2. + + + Downloading %1... + Завантажую %1... + + + Download failed: %1. + Завантаження провалилось: %1. + + + Documentation info file is corrupt! + Файл інформації про документації пошкоджений! + + + Download failed: Downloaded file is corrupted. + Завантаження провалилось: Завантажений файл пошкоджений. + + + Installing documentation %1... + Встановлюю документацію %1... + + + Error while installing documentation: +%1 + Помилка під час встановлення документації: +%1 + + + + MainWindow + + Index + Індекс + + + Contents + Зміст + + + Bookmarks + Закладки + + + Qt Assistant + Qt Assistant + + + Looking for Qt Documentation... + + + + &File + &Файл + + + New &Tab + &Нова вкладка + + + Page Set&up... + Параметри &сторінки... + + + Print Preview... + Попередній перегляд... + + + &Print... + &Друк... + + + &Close Tab + &Закрити вкладку + + + &Quit + Ви&йти + + + CTRL+Q + + + + &Edit + &Правка + + + &Copy selected Text + &Копіювати виділений текст + + + &Find in Text... + Пошук в &тексті... + + + &Find + По&шук + + + Find &Next + Знайти &наступне + + + Find &Previous + Знайти &попереднє + + + Preferences... + Налаштування... + + + &View + &Вид + + + Zoom &in + З&більшити + + + Zoom &out + З&меншити + + + Normal &Size + &Нормальний розмір + + + Ctrl+0 + + + + ALT+C + + + + ALT+I + + + + ALT+O + + + + Search + Пошук + + + ALT+S + + + + &Go + П&ерейти + + + &Home + &Додому + + + ALT+Home + + + + &Back + &Назад + + + &Forward + &Вперед + + + Sync with Table of Contents + Синхронізувати зі змістом + + + Sync + Синхронізувати + + + Next Page + Наступна сторінка + + + Ctrl+Alt+Right + + + + Previous Page + Попередня сторінка + + + Ctrl+Alt+Left + + + + &Bookmarks + &Закладки + + + &Help + &Довідка + + + About... + Про... + + + Navigation Toolbar + Панель навігації + + + &Window + В&ікно + + + Zoom + Масштабувати + + + Minimize + Мінімізувати + + + Ctrl+M + + + + Toolbars + Панелі + + + Filter Toolbar + Панель фільтру + + + Filtered by: + Фільтрувати по: + + + Address Toolbar + Панель адреси + + + Address: + Адреса: + + + Could not find the associated content item. + Не вдалось знайти елемент, пов'язаний зі змістом. + + + About %1 + Про %1 + + + Updating search index + Оновлюється індекс пошуку + + + Could not register file '%1': %2 + Не можу зареєструвати файл '%1': %2 + + + + PreferencesDialog + + Add Documentation + Додати документацію + + + Qt Compressed Help Files (*.qch) + Стиснені файли довідки Qt (*.qch) + + + The namespace %1 is already registered! + Простір імен %1 вже зареєстровано! + + + The specified file is not a valid Qt Help File! + Вказаний файл не є коректним файлом довідки Qt! + + + Remove Documentation + Видалити документацію + + + Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. + Деякі документи, що зараз відкриті в Assistant пов'язані з документацією, яку ви намагаєтесь видалити. Видалення документації призведе до закриття цих документів. + + + Cancel + Скасувати + + + OK + OK + + + Use custom settings + Використовувати налаштування користувача + + + + PreferencesDialogClass + + Preferences + Налаштування + + + Fonts + Шрифти + + + Font settings: + Параметри шрифту: + + + Browser + Навігатор + + + Application + Додаток + + + Filters + Фільтри + + + Filter: + Фільтр: + + + Attributes: + Атрибути: + + + 1 + 1 + + + Add + Додати + + + Remove + Видалити + + + Documentation + Документація + + + Registered Documentation: + Зареєстрована документація: + + + Add... + Додати... + + + Options + Опції + + + On help start: + При запуску довідки: + + + Show my home page + Показувати мою домашню сторінку + + + Show a blank page + Показувати пусту сторінку + + + Show my tabs from last session + Показувати вкладку з минулого сеансу + + + Homepage + Домашня сторінка + + + Current Page + Поточна сторінка + + + Blank Page + Пуста сторінка + + + Restore to default + Відновити типово + + + + RemoteControl + + Debugging Remote Control + Зневадження віддаленого управління + + + Received Command: %1 %2 + Отримано команду: %1 %2 + + + + SearchWidget + + &Copy + &Копіювати + + + Copy &Link Location + Копіювати &адресу посилання + + + Open Link in New Tab + Відкрити посилання в новій вкладці + + + Select All + Виділити все + + + + TopicChooser + + Choose Topic + Оберіть тему + + + &Topics + &Теми + + + &Display + &Показати + + + &Close + &Закрити + + + Choose a topic for <b>%1</b>: + Оберіть тему для <b>%1</b>: + + + diff --git a/translations/designer_uk.ts b/translations/designer_uk.ts new file mode 100644 index 0000000..24b2a44 --- /dev/null +++ b/translations/designer_uk.ts @@ -0,0 +1,5783 @@ + + + + + AbstractFindWidget + + &Previous + &Попередній + + + &Next + &Наступний + + + &Case sensitive + Враховувати &регістр + + + Whole &words + Цілі &слова + + + <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped + <img src=":/trolltech/shared/images/wrap.png">&nbsp;Пошук з початку + + + + AddLinkDialog + + Insert Link + Вставити посилання + + + Title: + Заголовок: + + + URL: + URL: + + + + AppFontDialog + + Additional Fonts + Додаткові шрифти + + + + AppFontManager + + '%1' is not a file. + '%1' не є файлом. + + + The font file '%1' does not have read permissions. + Файл шрифту '%1' не доступний для читання. + + + The font file '%1' is already loaded. + Файл шрифти '%1' вже завантажено. + + + The font file '%1' could not be loaded. + Неможливо завантажити файл шрифт '%1'. + + + '%1' is not a valid font id. + '%1' не є правильним ідентифікатором шрифт. + + + There is no loaded font matching the id '%1'. + Відсутній завантажений шрифт, що відповідає ідентифікатору '%1'. + + + The font '%1' (%2) could not be unloaded. + Неможливо вивантажити шрифт '%1' (%2). + + + + AppFontWidget + + Fonts + Шрифти + + + Add font files + Додати файли шрифтів + + + Remove current font file + Видалити поточний файл шрифт + + + Remove all font files + Видалити усі файли шрифтів + + + Add Font Files + Додати файли шрифтів + + + Font files (*.ttf) + Файли шрифтів (*.ttf) + + + Error Adding Fonts + Помилка додавання шрифтів + + + Error Removing Fonts + Помилка видалення шрифтів + + + Remove Fonts + Видалити шрифти + + + Would you like to remove all fonts? + Бажаєте видалити усі шрифти? + + + + AppearanceOptionsWidget + + Form + Форма + + + User Interface Mode + Режим інтерфейсу користувача + + + + AssistantClient + + Unable to send request: Assistant is not responding. + Неможливо надіслати запит. Assistant не відповідає. + + + The binary '%1' does not exist. + Виконуваний файл '%1' не існує. + + + Unable to launch assistant (%1). + Неможливо запустити Assistant (%1). + + + + BrushPropertyManager + + No brush + Без пензля + + + Solid + Суцільна + + + Dense 1 + Густина 1 + + + Dense 2 + Густина 2 + + + Dense 3 + Густина 3 + + + Dense 4 + Густина 4 + + + Dense 5 + Густина 5 + + + Dense 6 + Густина 6 + + + Dense 7 + Густина 7 + + + Horizontal + Горизонтальний + + + Vertical + Вертикальний + + + Cross + Хрестоподібний + + + Backward diagonal + Зворотня діагональ + + + Forward diagonal + Пряма діагональ + + + Crossing diagonal + Діагоналі, що перетинаються + + + Style + Стиль + + + Color + Колір + + + [%1, %2] + [%1, %2] + + + + Command + + Add connection + Додати з'єднання + + + Adjust connection + Налаштувати з'єднання + + + Delete connections + Видалити з'єднання + + + Change source + Змінити джерело + + + Change target + Зміни ціль + + + Add '%1' to '%2' + Command description for adding buttons to a QButtonGroup + Додати '%1' до '%2' + + + Morph %1/'%2' into %3 + MorphWidgetCommand description + Перетворити %1/%2 в %3 + + + Insert '%1' + Вставити '%1' + + + Change Z-order of '%1' + Змінити порядок глибина для '%1' + + + Raise '%1' + Підняти '%1' + + + Lower '%1' + Опустити '%1' + + + Delete '%1' + Видалити '%1' + + + Reparent '%1' + Змінити власника '%1' + + + Promote to custom widget + Перетворити на користувацький віджет + + + Demote from custom widget + Перетворити з користувацького віджета + + + Lay out using grid + Розташувати, використовуючи сітку + + + Lay out vertically + Розташувати вертикально + + + Lay out horizontally + Розташувати горизонтально + + + Break layout + Розбити розташування + + + Simplify Grid Layout + Спрощене розташування по сітці + + + Move Page + Пересунути сторінку + + + Delete Page + Видалити сторінку + + + Page + Сторінка + + + Insert Page + Вставити сторінку + + + Change Tab order + Змінити порядок обходу + + + Create Menu Bar + Створити панель меню + + + Delete Menu Bar + Видалити панель меню + + + Create Status Bar + Створити рядок статусу + + + Delete Status Bar + Видалити рядок статусу + + + Add Tool Bar + Додати панель інструментів + + + Add Dock Window + Додати прикріплене вікно + + + Adjust Size of '%1' + Підігнати розмір '%1' + + + Change Form Layout Item Geometry + Змінити геометрію елемента розташування формою + + + Change Layout Item Geometry + Змінити геометрію елемента розташування + + + Delete Subwindow + Видалити підвікно + + + page + сторінка + + + Insert Subwindow + Вставити підвікно + + + subwindow + підвікно + + + Subwindow + Підвікно + + + Change Table Contents + Змінити зміст таблиці + + + Change Tree Contents + Змінити зміст дерева + + + Add action + Додати дію + + + Remove action + Видалити дію + + + Add menu + Додати меню + + + Remove menu + Видалити меню + + + Create submenu + Створити підменю + + + Delete Tool Bar + Видалити панель інструментів + + + Change layout of '%1' from %2 to %3 + Змінити розташування '%1' з %2 на %3 + + + Set action text + Встановити текст дії + + + Insert action + Вставити дію + + + Move action + Пересунути дію + + + Change Title + Змінити заголовок + + + Insert Menu + Вставити меню + + + Changed '%1' of '%2' + Змінено '%1' з '%2' + + + Changed '%1' of %n objects + + Змінено '%1' з '%n' oб'єкта + Змінено '%1' з '%n' oб'єктів + Змінено '%1' з '%n' oб'єктів + + + + Reset '%1' of '%2' + Відновлено '%1' з '%2' + + + Reset '%1' of %n objects + + Відновлено '%1' з %n об'єкта + Відновлено '%1' з %n об'єктів + Відновлено '%1' з %n об'єктів + + + + Add dynamic property '%1' to '%2' + Додати динамічну властивість '%1' до '%2' + + + Add dynamic property '%1' to %n objects + + Додати динамічну властивість '%1' до '%n' об'єкта + Додати динамічну властивість '%1' до '%n' об'єктів + Додати динамічну властивість '%1' до '%n' об'єктів + + + + Remove dynamic property '%1' from '%2' + Видалити динамічну властивість '%1' у '%2' + + + Remove dynamic property '%1' from %n objects + + Видалити динамічну властивість '%1' у '%n' об'єкта + Видалити динамічну властивість '%1' у '%n' об'єктів + Видалити динамічну властивість '%1' у '%n' об'єктів + + + + Change script + Змінити скрипт + + + Change signals/slots + Змінити сигнали/слоти + + + Change signal + Змінити сигнал + + + Change slot + Змінити слот + + + Change signal-slot connection + Змінити з'єднання сигнал-слот + + + Change sender + Змінити відправника + + + Change receiver + Змінити отримувача + + + Create button group + Створити групу кнопок + + + Break button group + Розбити групу кнопок + + + Break button group '%1' + Розбити групу кнопок '%1' + + + Add buttons to group + Додати кнопки до групи + + + Remove buttons from group + Видалити кнопки з групи + + + Remove '%1' from '%2' + Command description for removing buttons from a QButtonGroup + Видалити '%1' з '%2' + + + + ConnectDialog + + Configure Connection + Налаштування з'єднання + + + GroupBox + + + + Edit... + Редагувати... + + + Show signals and slots inherited from QWidget + Показувати сигнали та слоти успадковані від QWidget + + + + ConnectionDelegate + + <object> + <об'єкт> + + + <signal> + <сигнал> + + + <slot> + <слот> + + + + DPI_Chooser + + Standard (96 x 96) + Embedded device standard screen resolution + Стандартна (96 x 96) + + + Greenphone (179 x 185) + Embedded device screen resolution + Greenphone (179 x 185) + + + High (192 x 192) + Embedded device high definition screen resolution + Висока (192 x 192) + + + + Designer + + Unable to launch %1. + Неможливо запустити %1. + + + %1 timed out. + Час очікування %1 вичерпано. + + + Custom Widgets + Віджети користувача + + + Promoted Widgets + Перетворені віджети + + + Qt Designer + Qt Designer + + + This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. + Цей файл містить роздільники верхнього рівня.<br>Вони <b>НЕ</b> будуть збережені в формі. + + + Perhaps you forgot to create a layout? + Можливо, ви забули створити розташування? + + + Invalid UI file: The root element <ui> is missing. + Неправильний файл UI: Кореневий елемент <ui> відсутній. + + + An error has occurred while reading the UI file at line %1, column %2: %3 + Під час читання файлу UI сталася помилка в рядку %1, позиція %2: %3 + + + This file cannot be read because it was created using %1. + Неможливо прочитати файл, бо його було створено з використанням %1. + + + This file was created using Designer from Qt-%1 and cannot be read. + Неможливо прочитати файл, бо його було створено з використанням Designer з Qt-%1. + + + The converted file could not be read. + Неможливо прочитати конвертований файл. + + + This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. + Цей файл було створено з використанням Designer з Qt-%1.і його буде сконвертовано до нової форми. + + + The old form has not been touched, but you will have to save the form under a new name. + Стара форма не змінилася, але ви маєте зберегти форму під новим іменем. + + + This file was created using Designer from Qt-%1 and could not be read: +%2 + Неможливо прочитати файл, бо його було створено з використанням Designer з Qt-%1: +%2 + + + Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. + Будь-ласка, пропустіть його через <b>uic3&nbsp;-convert</b>, щоб сконвертувати до формату Qt-4. + + + This file cannot be read because the extra info extension failed to load. + Неможливо прочитати цей файл, бо трапився збій при завантаженні розширення додаткової інформації. + + + + DesignerMetaEnum + + %1 is not a valid enumeration value of '%2'. + %1 не є правильним значення для переліку '%2'. + + + '%1' could not be converted to an enumeration value of type '%2'. + Неможливо сконвертувати '%1'до типу значень переліку '%2'. + + + + DesignerMetaFlags + + '%1' could not be converted to a flag value of type '%2'. + '%1' не можу бути сконвертовано до прапорця типу '%2'. + + + + DeviceProfile + + '%1' is not a number. + Reading a number for an embedded device profile + '%1' не є числом. + + + An invalid tag <%1> was encountered. + Знайдено неправильний тег <%1>. + + + + DeviceProfileDialog + + &Family + &Сім'я + + + &Point Size + &Розмір точки + + + Style + Стиль + + + Device DPI + DPI пристрою + + + Name + Назва + + + + DeviceSkin + + The image file '%1' could not be loaded. + Неможливо завантажити файл зображення '%1'. + + + The skin directory '%1' does not contain a configuration file. + Тека обкладинки '%1' не містить конфігураційного файлу. + + + The skin configuration file '%1' could not be opened. + Неможливо відкрити конфігураційний файл '%1'. + + + The skin configuration file '%1' could not be read: %2 + Неможливо прочитати конфігураційний файл '%1': %2 + + + Syntax error: %1 + Синтаксична помилка: %1 + + + The skin "up" image file '%1' does not exist. + Зображення обкладинки "вгору" '%1' не існує. + + + The skin "down" image file '%1' does not exist. + Зображення обкладинки "вниз" '%1' не існує. + + + The skin "closed" image file '%1' does not exist. + Зображення обкладинки "закрито" '%1' не існує. + + + The skin cursor image file '%1' does not exist. + Зображення обкладинки для курсору '%1' не існує. + + + Syntax error in area definition: %1 + Синтаксична помилка в описі області: %1 + + + Mismatch in number of areas, expected %1, got %2. + Не співпадає кількість областей, очікувалось %1, отримано %2. + + + + EmbeddedOptionsControl + + <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> + Format embedded device profile description + <html><table><tr><td><b>Шрифт</b></td><td>%1, %2</td></tr><tr><td><b>Стиль</b></td><td>%3</td></tr><tr><td><b>Роздільна здатність</b></td><td>%4 x %5</td></tr></table></html> + + + + EmbeddedOptionsPage + + Embedded Design + Tab in preferences dialog + Дизайн для портативних пристроїв + + + Device Profiles + EmbeddedOptionsControl group box" + Профілі пристроїв + + + + FontPanel + + Font + Шрифт + + + &Writing system + Система &письма + + + &Family + &Сім'я + + + &Style + Сти&ль + + + &Point size + &Розмір точки + + + + FontPropertyManager + + PreferDefault + Надавати перевагу типовому + + + NoAntialias + Без згладжування + + + PreferAntialias + Надавати перевагу згладжування + + + Antialiasing + Згладжування + + + + FormBuilder + + Invalid stretch value for '%1': '%2' + Parsing layout stretch values +---------- +Parsing layout stretch values +---------- +Parsing layout stretch values + Неправильне значення розтягування для '%1': '%2' + + + Invalid minimum size for '%1': '%2' + Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values + Неправильне значення мінімального розміру для '%1': '%2' + + + + FormEditorOptionsPage + + %1 % + %1 % + + + Preview Zoom + Масштаб попереднього перегляду + + + Default Zoom + Типовий масштаб + + + Forms + Tab in preferences dialog + Форми + + + Default Grid + Типова сітка + + + + FormLayoutRowDialog + + Add Form Layout Row + Додати рядок до розташування формою + + + &Label text: + Текст &мітки: + + + Field &type: + &Тип поля: + + + &Field name: + Назва &поля: + + + &Buddy: + Прив'&язка: + + + &Row: + &Рядок: + + + Label &name: + &Назва мітки: + + + + FormWindow + + Unexpected element <%1> + Неочікуваний елемент <%1> + + + Error while pasting clipboard contents at line %1, column %2: %3 + Помилка під час вставки змісту буферу обміну в рядку %1, позиція %2: %3 + + + + FormWindowSettings + + Form Settings + Налаштування форми + + + Layout &Default + &Типове розташування + + + &Spacing: + &Відступ: + + + &Margin: + &Границя: + + + &Layout Function + Функція р&озташування + + + Ma&rgin: + Г&раниця: + + + Spa&cing: + В&ідступ: + + + &Pixmap Function + Функція растрового &зображення + + + &Include Hints + Включити під&казки + + + Grid + Сітка + + + Embedded Design + Дизайн для портативних пристроїв + + + &Author + &Автор + + + + IconSelector + + All Pixmaps ( + Усі растрові зображення ( + + + + ItemPropertyBrowser + + XX Icon Selected off + Sample string to determinate the width for the first column of the list item property browser + XX Значок Виділено вимк + + + + MainWindowBase + + Main + Not currently used (main tool bar) + Головна + + + File + Файл + + + Edit + Правка + + + Tools + Інструменти + + + Form + Форма + + + Qt Designer + Qt Designer + + + + NewForm + + Show this Dialog on Startup + Показувати цей діалог під час запуску + + + C&reate + &Створити + + + Recent + Нещодавні + + + New Form + Нова форма + + + &Close + З&акрити + + + &Open... + &Відкрити... + + + &Recent Forms + Нещодавні &форми + + + Read error + Помилка читання + + + A temporary form file could not be created in %1. + Неможливо створити тимчасовий файл форми в %1. + + + The temporary form file %1 could not be written. + Неможливо записати тимчасовий файл форми %1. + + + + ObjectInspectorModel + + Object + Об'єкт + + + Class + Клас + + + separator + розділювач + + + <noname> + <без назви> + + + + ObjectNameDialog + + Change Object Name + Змінити назву об'єкта + + + Object Name + Назва об'єкта + + + + PluginDialog + + Plugin Information + Інформація про додатки + + + 1 + 1 + + + + PreferencesDialog + + Preferences + Налаштування + + + + PreviewConfigurationWidget + + Form + Форма + + + Print/Preview Configuration + Налаштування друку/попереднього перегляду + + + Style + Стиль + + + Style sheet + Таблиця стилів + + + ... + ... + + + Device skin + Обкладинка пристрою + + + + PromotionModel + + Not used + Usage of promoted widgets + Не використовується + + + + Q3WizardContainer + + Page + Сторінка + + + + QAbstractFormBuilder + + Unexpected element <%1> + Неочікуваний елемент <%1> + + + An error has occurred while reading the UI file at line %1, column %2: %3 + Під час читання файлу UI '%1' сталася помилка в рядку %2, позиція %3 + + + Invalid UI file: The root element <ui> is missing. + Неправильний файл UI: Кореневий елемент <ui> відсутній. + + + The creation of a widget of the class '%1' failed. + Збій створення віджета класу '%1'. + + + Attempt to add child that is not of class QWizardPage to QWizard. + Спроба додати до QWizard нащадка, який не є класом QWizardPage. + + + 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. + Спроба додати розташування для віджета '%1' (%2), який вже має розташування %3. +Це вказує на некоректність в файлі UI. + + + Empty widget item in %1 '%2'. + Пустий елемент віджета в %1 '%2'. + + + Flags property are not supported yet. + Властивості-прапорці ще не підтримуються. + + + While applying tab stops: The widget '%1' could not be found. + Під час застосування позицій табуляції: Неможливо знайти віджет '%1'. + + + Invalid QButtonGroup reference '%1' referenced by '%2'. + '%2' містить неправильне посилання на QButtonGroup '%1'. + + + This version of the uitools library is linked without script support. + Ця версія бібліотеки uitools зібрана без підтримки скриптів. + + + + QAxWidgetPlugin + + ActiveX control + Елемент керування ActiveX + + + ActiveX control widget + Віджет елемента керування ActiveX + + + + QAxWidgetTaskMenu + + Set Control + Встановити елемент керування + + + Reset Control + Скинути елемент керування + + + Licensed Control + Ліцензований елемент керування + + + The control requires a design-time license + Цей елемент управління вимагає ліцензії для розробки + + + + QCoreApplication + + Exception at line %1: %2 + Виключна ситуація в рядку %1: %2 + + + Unknown error + Невідома помилка + + + An error occurred while running the script for %1: %2 +Script: %3 + Під час виконання скрипту для %1 сталася помилка: %2 +Скрипт: %3 + + + %1 is not a promoted class. + %1 не є перетвореним класом. + + + The base class %1 is invalid. + Неправильний базовий клас %1. + + + The class %1 already exists. + Клас %1 вже існує. + + + Promoted Widgets + Перетворені віджети + + + The class %1 cannot be removed + Неможливо видалити клас %1 + + + The class %1 cannot be removed because it is still referenced. + Неможливо видалити клас %1, оскільки на нього досі є посилання. + + + The class %1 cannot be renamed + Неможливо перейменувати клас %1 + + + The class %1 cannot be renamed to an empty name. + Неможливо дати класу %1 пусте ім'я. + + + There is already a class named %1. + Вже існує клас з іменем %1. + + + Cannot set an empty include file. + Неможливо встановити порожнє ім'я файлу заголовків. + + + + QDesigner + + %1 - warning + %1 - попередження + + + Qt Designer + Qt Designer + + + This application cannot be used for the Console edition of Qt + Ця програма не може бути використана консольною редакцією Qt + + + + QDesignerActions + + Saved %1. + Збережено %1. + + + %1 already exists. +Do you want to replace it? + %1 вже існує. +Бажаєте замінити його? + + + Edit Widgets + Редагувати віджети + + + &New... + &Новий... + + + &Open... + &Відкрити... + + + &Save + &Зберегти + + + Save &As... + Зберегти &як... + + + Save A&ll + Зберегти &усе + + + Save As &Template... + Зберегти як &шаблон... + + + &Close + З&акрити + + + Save &Image... + Зберегти з&ображення... + + + &Print... + &Друк... + + + &Quit + Ви&йти + + + View &Code... + Переглянути &код... + + + &Minimize + &Мінімізувати + + + Bring All to Front + Усе на передній план + + + Preferences... + Налаштування... + + + Additional Fonts... + Додаткові шрифти... + + + ALT+CTRL+S + + + + CTRL+SHIFT+S + + + + CTRL+R + + + + CTRL+M + + + + Qt Designer &Help + &Довідка по Qt Designer + + + Current Widget Help + Довідка по поточному віджету + + + What's New in Qt Designer? + Що нового в Qt Designer? + + + About Plugins + Про додатки + + + About Qt Designer + Про Qt Designer + + + About Qt + Про Qt + + + Clear &Menu + Очистити &меню + + + &Recent Forms + Нещодавні &форми + + + Open Form + Відкрити форму + + + Designer UI files (*.%1);;All Files (*) + UI файли Designer (*.%1);;Всі файли (*) + + + Save Form As + Зберегти форму як + + + Designer + Designer + + + Feature not implemented yet! + Можливість ще не реалізована! + + + Code generation failed + Збій генерації коду + + + Read error + Помилка читання + + + %1 +Do you want to update the file location or generate a new form? + %1 +Бажаєте оновити розташування файлу чи згенерувати нову форму? + + + &Update + &Оновити + + + &New Form + &Нова форма + + + Save Form? + Зберегти форму? + + + Could not open file + Неможливо відкрити файл + + + The file %1 could not be opened. +Reason: %2 +Would you like to retry or select a different file? + Неможливо відкрити файл %1. +Причина: %2 +Чи не хотіли б ви спробувати ще раз чи вибрати інший файл? + + + Select New File + Оберіть новий файл + + + Could not write file + Неможливо записати файл + + + It was not possible to write the entire file %1 to disk. +Reason:%2 +Would you like to retry? + Не вдалось записати цілий файл %1 на диск. +Причина:%2 +Бажаєте спробувати ще раз? + + + Assistant + Assistant + + + &Close Preview + З&акрити попередній перегляд + + + The backup file %1 could not be written. + Неможливо записати файл резервної копії %1. + + + The backup directory %1 could not be created. + Неможливо створити теку резервних копій %1. + + + The temporary backup directory %1 could not be created. + Неможливо створити тимчасову теку резервних копій %1. + + + Preview failed + Збій попереднього перегляду + + + Image files (*.%1) + Файли зображень (*.%1) + + + Save Image + Зберегти зображення + + + Saved image %1. + Збережено зображення %1. + + + The file %1 could not be written. + Неможливо записати файл %1. + + + Please close all forms to enable the loading of additional fonts. + Будь-ласка, закрийте усі форми, щоб дозволити завантаження додаткових шрифтів. + + + Printed %1. + Надруковано %1. + + + + QDesignerAppearanceOptionsPage + + Appearance + Tab in preferences dialog + + + + + QDesignerAppearanceOptionsWidget + + Docked Window + Прикріплені вікна + + + Multiple Top-Level Windows + Декілька вікон верхнього рівня + + + Toolwindow Font + Шрифт інструментальних вікон + + + + QDesignerAxWidget + + Reset control + Скинути елемент керування + + + Set control + Встановити елемент керування + + + Control loaded + Елемент керування завантажено + + + A COM exception occurred when executing a meta call of type %1, index %2 of "%3". + Виникла виключна ситуація COM під час здійснення мета-виклику типу %1, індекс %2 з "%3". + + + + QDesignerFormBuilder + + Script errors occurred: + Трапились помилки скрипту: + + + The preview failed to build. + Збій побудови попереднього перегляду. + + + Designer + Designer + + + + QDesignerFormWindow + + %1 - %2[*] + %1 - %2[*] + + + Save Form? + Зберегти форму? + + + Do you want to save the changes to this document before closing? + Бажаєте зберегти зміни до цього документи перед тим як закрити? + + + If you don't save, your changes will be lost. + Якщо ви не збережете, ваші зміни будуть втрачені. + + + + QDesignerMenu + + Type Here + Набирайте тут + + + Add Separator + Додати розділювач + + + Insert separator + Вставити розділювач + + + Remove separator + Видалити розділювач + + + Remove action '%1' + Видалити дію '%1' + + + Add separator + Додати розділювач + + + Insert action + Вставити дію + + + + QDesignerMenuBar + + Type Here + Набирайте тут + + + Remove Menu '%1' + Видалити меню '%1' + + + Remove Menu Bar + Видалити панель меню + + + Menu + Меню + + + + QDesignerPluginManager + + An XML error was encountered when parsing the XML of the custom widget %1: %2 + Під час розбору XML користувацького віджета %1 сталась помилка XML: %2 + + + A required attribute ('%1') is missing. + Обов'язковий атрибут ('%1') відсутній. + + + An invalid property specification ('%1') was encountered. Supported types: %2 + Знайдено неправильну специфікацію властивості ('%1'). Підтримувані типи: %2 + + + '%1' is not a valid string property specification. + '%1' не є правильною специфікацією рядкової властивості. + + + The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. + XML користувацького віджета %1 не містить жодного з елементів <widget> або <ui>. + + + The class attribute for the class %1 is missing. + Відсутній атрибут для класу %1. + + + The class attribute for the class %1 does not match the class name %2. + Атрибут "клас" для класу %1 не співпадає з іменем класу %2. + + + + QDesignerPropertySheet + + Dynamic Properties + Динамічні властивості + + + + QDesignerResource + + The layout type '%1' is not supported, defaulting to grid. + Тип розташування '%1' не підтримується, використовуємо сітку. + + + 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. + Контейнерне розширення '%1' (%2) повернуло віджет, який не може бути керований за допомогою Qt Designer '%3' (%4) під час запиту сторінки №%5. +Сторінки контейнера повинні додаватись лише за допомогою вказування їх в XML, що повертається методом domXml() віджета користувача. + + + Unexpected element <%1> + Parsing clipboard contents + Неочікуваний елемент <%1> + + + Error while pasting clipboard contents at line %1, column %2: %3 + Parsing clipboard contents + Помилка під час вставки змісту буферу обміну в рядку %1, позиція %2: %3 + + + Error while pasting clipboard contents: The root element <ui> is missing. + Parsing clipboard contents + Помилка під час вставки змісту буферу обміну. Кореневий елемент <ui> відсутній. + + + + QDesignerSharedSettings + + The template path %1 could not be created. + Неможливо створити шлях до шаблону %1. + + + An error has been encountered while parsing device profile XML: %1 + Трапилась помилка під час розбору XML профілю пристрою: %1 + + + + QDesignerToolWindow + + Property Editor + Редактор властивостей + + + Action Editor + Редактор дій + + + Object Inspector + Інспектор об'єктів + + + Resource Browser + Оглядач ресурсів + + + Signal/Slot Editor + Редактор сигналів/слотів + + + Widget Box + Панель віджетів + + + + QDesignerWorkbench + + &File + &Файл + + + Edit + Правка + + + F&orm + Ф&орма + + + Preview in + Попередній перегляд в + + + &View + &Вид + + + &Settings + &Налаштування + + + &Window + В&ікно + + + &Help + &Довідка + + + Toolbars + Панелі інструментів + + + Widget Box + Панель віджетів + + + Save Forms? + Зберегти форми? + + + There are %n forms with unsaved changes. Do you want to review these changes before quitting? + + Є %n форма з незбереженими змінами. Бажаєте переглянути ці зміни перед виходом? + Є %n форми з незбереженими змінами. Бажаєте переглянути ці зміни перед виходом? + Є %n форм з незбереженими змінами. Бажаєте переглянути ці зміни перед виходом? + + + + If you do not review your documents, all your changes will be lost. + Якщо ви не переглянете ваші документи, усі ваші зміну будуть втрачені. + + + Discard Changes + Відхилити зміни + + + Review Changes + Переглянути зміни + + + Backup Information + Інформація про резервні копії + + + The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? + Останній сеанс Qt Designer не був правильно завершений. Залишились резервні копії файлів. Бажаєте їх завантажити? + + + The file <b>%1</b> could not be opened. + Неможливо відкрити файл <b>%1</b>. + + + The file <b>%1</b> is not a valid Designer UI file. + Файл <b>%1</b> не є правильним файлом UI Qt Designer. + + + + QFormBuilder + + An empty class name was passed on to %1 (object name: '%2'). + Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method + До %1 було передане пусте ім'я класу (ім'я об'єкта: '%2'). + + + QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. + QFormBuilder не зміг створити користувацький віджет класу '%1'; було створено базовий клас '%2'. + + + QFormBuilder was unable to create a widget of the class '%1'. + QFormBuilder не зміг створити віджет класу '%1'. + + + The layout type `%1' is not supported. + Тип розташування '%1' не підтримується. + + + The set-type property %1 could not be read. + Неможливо прочитати властивість %1 типу "множина". + + + The enumeration-type property %1 could not be read. + Неможливо прочитати властивість %1 типу "перелік". + + + Reading properties of the type %1 is not supported yet. + Читання властивостей типу %1 ще не підтримується. + + + The property %1 could not be written. The type %2 is not supported yet. + Неможливо записати властивість %1. Тип %2 ще не підтримується. + + + The enumeration-value '%1' is invalid. The default value '%2' will be used instead. + Неправильне значення '%1' для переліку. Натомість, буде використано типове значення '%2'. + + + The flag-value '%1' is invalid. Zero will be used instead. + Неправильне значення '%1' для прапорців. Натомість, буде використано нуль. + + + + QStackedWidgetEventFilter + + Previous Page + Попередня сторінка + + + Next Page + Наступна сторінка + + + Delete + Видалити + + + Before Current Page + Перед поточною сторінкою + + + After Current Page + Після поточною сторінкою + + + Change Page Order... + Змінити порядок сторінок... + + + Change Page Order + Змінити порядок сторінок + + + Page %1 of %2 + Сторінка %1 з %2 + + + Insert Page + Вставити сторінку + + + + QStackedWidgetPreviewEventFilter + + Go to previous page of %1 '%2' (%3/%4). + Перейти до попередньої сторінки з %1 '%2' (%3/%4). + + + Go to next page of %1 '%2' (%3/%4). + Перейти до наступної сторінки з %1 '%2' (%3/%4). + + + + QTabWidgetEventFilter + + Delete + Видалити + + + Before Current Page + Перед поточною сторінкою + + + After Current Page + Після поточної сторінки + + + Page %1 of %2 + Сторінка %1 з %2 + + + Insert Page + Вставити сторінку + + + + QToolBoxHelper + + Delete Page + Видалити сторінку + + + Before Current Page + Перед поточною сторінкою + + + After Current Page + Після поточної сторінки + + + Change Page Order... + Змінити порядок сторінок... + + + Change Page Order + Змінити порядок сторінок + + + Page %1 of %2 + Сторінка %1 з %2 + + + Insert Page + Вставити сторінку + + + + QtBoolEdit + + True + Істинно + + + False + Хибно + + + + QtBoolPropertyManager + + True + Істинно + + + False + Хибно + + + + QtCharEdit + + Clear Char + Стерти символ + + + + QtColorEditWidget + + ... + ... + + + + QtColorPropertyManager + + Red + Червоний + + + Green + Зелений + + + Blue + Блакитний + + + Alpha + Альфа + + + + QtCursorDatabase + + Arrow + Стрілка + + + Up Arrow + Стрілка вгору + + + Cross + Хрест + + + Wait + Очікування + + + IBeam + Текстовий + + + Size Vertical + Вертикальний розмір + + + Size Horizontal + Горизонтальний розмір + + + Size Backslash + Зворотній слеш + + + Size Slash + Слеш + + + Size All + В усі сторони + + + Blank + Пусто + + + Split Vertical + Розділити вертикально + + + Split Horizontal + Розділити вертикально + + + Pointing Hand + Вказівний перст + + + Forbidden + Заборонено + + + Open Hand + Відкрита рука + + + Closed Hand + Закрита рука + + + What's This + Що це + + + Busy + Зайнятий + + + + QtFontEditWidget + + ... + ... + + + Select Font + Оберіть шрифт + + + + QtFontPropertyManager + + Family + Сім'я + + + Point Size + Розмір точки + + + Bold + Жирний + + + Italic + Курсив + + + Underline + Підкреслений + + + Strikeout + Перекреслений + + + Kerning + Кернінг + + + + QtGradientDialog + + Edit Gradient + Редагувати градієнт + + + + QtGradientEditor + + Form + Форма + + + Gradient Editor + Редактор градієнту + + + 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. + В цій області відображається попередній перегляд градієнту, що редагується. Вона також дозволяє за допомогою "drag & drop" редагувати специфічні до типу градієнта параметри, такі як: початкова та кінцева точки, радіус та ін. + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + 5 + 5 + + + Gradient Stops Editor + Редактор точок градієнту + + + 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. + Ця область дозволяє вам редагувати точки градієнту. Подвійне клацання на існуючій точці створює її дублікат. Подвійне клацання поза межами існуючої точки створює нову точку. Перетягніть точку мишею, щоб змінити її позицію. Використовуйте праву кнопку миші, щоб отримати контекстне меню з додатковими діями. + + + Zoom + Масштаб + + + Reset Zoom + Скинути + + + Position + Положення + + + Hue + Відтінок + + + H + H + + + Saturation + Насиченість + + + S + S + + + Sat + Насиченість + + + Value + Значення + + + V + V + + + Val + Значення + + + Alpha + Альфа + + + A + A + + + Type + Тип + + + Spread + Заливка + + + Color + Колір + + + Current stop's color + Колір поточної точки + + + Show HSV specification + Показати у вигляді HSV + + + HSV + HSV + + + Show RGB specification + Показати у вигляді RGB + + + RGB + RGB + + + Current stop's position + Позиція поточної точки + + + % + % + + + Zoom In + Збільшити + + + Zoom Out + Зменшити + + + Toggle details extension + Показати/приховати деталі + + + > + > + + + Linear Type + Лінійний тип + + + ... + ... + + + Radial Type + Радіальний тип + + + Conical Type + Конічний тип + + + Pad Spread + Рівномірна заливка + + + Repeat Spread + Повторна заливка + + + Reflect Spread + Дзеркальна заливка + + + Start X + X початку + + + Start Y + Y початку + + + Final X + X кінця + + + Final Y + Y кінця + + + Central X + X центру + + + Central Y + Y центру + + + Focal X + X фокусу + + + Focal Y + Y фокусу + + + Radius + Радіус + + + Angle + Кут + + + Linear + Лінійний + + + Radial + Радіальний + + + Conical + Конічний + + + Pad + Рівномірна + + + Repeat + Повторна + + + Reflect + Дзеркальна + + + + QtGradientStopsWidget + + New Stop + Нова точка + + + Delete + Видалити + + + Flip All + Відобразити дзеркально + + + Select All + Виділити все + + + Zoom In + Збільшити + + + Zoom Out + Зменшити + + + Reset Zoom + Скинути + + + + QtGradientView + + Gradient View + Перегляд градієнту + + + New... + Новий... + + + Edit... + Редагувати... + + + Rename + Перейменувати + + + Remove + Видалити + + + Grad + Градієнт + + + Remove Gradient + Видалити градієнт + + + Are you sure you want to remove the selected gradient? + Ви впевнені, що бажаєте видалити виділений градієнт? + + + + QtGradientViewDialog + + Select Gradient + Обрати градієнт + + + + QtKeySequenceEdit + + Clear Shortcut + Видалити поєднання клавіш + + + + QtLocalePropertyManager + + %1, %2 + %1, %2 + + + Language + Мова + + + Country + Країна + + + + QtPointFPropertyManager + + (%1, %2) + (%1, %2) + + + X + X + + + Y + Y + + + + QtPointPropertyManager + + (%1, %2) + (%1, %2) + + + X + X + + + Y + Y + + + + QtPropertyBrowserUtils + + [%1, %2, %3] (%4) + [%1, %2, %3] (%4) + + + [%1, %2] + [%1, %2] + + + + QtRectFPropertyManager + + [(%1, %2), %3 x %4] + [(%1, %2), %3 x %4] + + + X + X + + + Y + Y + + + Width + Ширина + + + Height + Висота + + + + QtRectPropertyManager + + [(%1, %2), %3 x %4] + [(%1, %2), %3 x %4] + + + X + X + + + Y + Y + + + Width + Ширина + + + Height + Висота + + + + QtResourceEditorDialog + + Dialog + Діалог + + + New File + Новий файл + + + N + Н + + + Remove File + Видалити файл + + + R + В + + + I + Ф + + + New Resource + Новий ресурс + + + A + Д + + + Remove Resource or File + Видалити ресурс або файл + + + %1 already exists. +Do you want to replace it? + %1 вже існує. +Бажаєте замінити його? + + + The file does not appear to be a resource file; element '%1' was found where '%2' was expected. + Не схоже, що файл є файлом ресурсів, елемент '%1' було знайдено, замість '%2'. + + + %1 [read-only] + %1 [лише для читання] + + + %1 [missing] + %1 [відсутній] + + + <no prefix> + <без префіксу> + + + New Resource File + Новий файл ресурсів + + + Resource files (*.qrc) + Файли ресурсів (*.qrc) + + + Import Resource File + Імпортувати файл ресурсів + + + newPrefix + + + + <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> + <p><b>Попередження:</b> Файл</p><p>%1</p><p>знаходиться поза межами батьківської теки поточного файлу ресурсів.</p> + + + <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> + <p>Щоб вирішити цю проблему, натисніть:</p><table><tr><th align="left">Копіювати</th><td>, щоб скопіювати файл до батьківської теки файлу ресурсів.</td></tr><tr><th align="left">Копіювати як...</th><td>, щоб скопіювати файл в підтеку батьківської теки файлу ресурсів.</td></tr><tr><th align="left">Залишити</th><td>, щоб використовувати поточне розміщення.</td></tr></table> + + + Add Files + Додати файли + + + Incorrect Path + Неправильний шлях + + + Copy + Копіювати + + + Copy As... + Копіювати як... + + + Keep + Залишити + + + Skip + Пропустити + + + Clone Prefix + Префікс клонування + + + 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". + Введіть суфікс, який ви хочете додавати до імен клонованих файлів. +Це може бути, наприклад, мовне розширення, як "_uk". + + + Copy As + Копіювати як + + + <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> + <p>Обраний файл</p><p>%1</p><p>знаходиться поза межами батьківської теки поточного файлу ресурсів.</p><p>%2</p>Будь-ласка, оберіть інший шлях всередині цієї теки.<p><p> + + + Could not overwrite %1. + Неможливо перезаписати %1. + + + Could not copy +%1 +to +%2 + Неможливо копіювати +%1 +до +%2 + + + A parse error occurred at line %1, column %2 of %3: +%4 + Сталась помилка розбору в рядку %1, позиція %2 з %3 +%4 + + + Save Resource File + Зберегти файл ресурсів + + + Could not write %1: %2 + Неможливо записати %1: %2 + + + Edit Resources + Редагування ресурсів + + + New... + Новий... + + + Open... + Відкрити... + + + Open Resource File + Відкрити файл ресурсів + + + Remove + Видалити + + + Move Up + Пересунути вгору + + + Move Down + Пересунути вниз + + + Add Prefix + Додати префікс + + + Add Files... + Додати файли... + + + Change Prefix + Змінити префікс + + + Change Language + Змінити мову + + + Change Alias + Додати псевдонім + + + Clone Prefix... + Префікс клонування... + + + Prefix / Path + Префікс / Шлях + + + Language / Alias + Мова / Псевдонім + + + <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> + <html><p><b>Попередження:</b> Під час перезавантаження ресурсів виникли проблеми:</p><pre>%1</pre></html> + + + Resource Warning + Попередження про ресурси + + + + QtResourceView + + Size: %1 x %2 +%3 + Розмір: %1 x %2 +%3 + + + Edit Resources... + Редагувати ресурси... + + + Reload + Перезавантажити + + + Copy Path + Копіювати шлях + + + + QtResourceViewDialog + + Select Resource + Оберіть ресурс + + + + QtSizeFPropertyManager + + %1 x %2 + %1 x %2 + + + Width + Ширина + + + Height + Висота + + + + QtSizePolicyPropertyManager + + <Invalid> + <Неправильний> + + + [%1, %2, %3, %4] + [%1, %2, %3, %4] + + + Horizontal Policy + Горизонтальна політика + + + Vertical Policy + Вертикальна політика + + + Horizontal Stretch + Горизонтальне розтягування + + + Vertical Stretch + Вертикальне розтягування + + + + QtSizePropertyManager + + %1 x %2 + %1 x %2 + + + Width + Ширина + + + Height + Висота + + + + QtToolBarDialog + + Customize Toolbars + Налаштувати панелі інструментів + + + 1 + 1 + + + Actions + Дії + + + Toolbars + Панелі інструментів + + + Add new toolbar + Додати нову панель інструментів + + + New + Нова + + + Remove selected toolbar + Видалити виділену панель інструментів + + + Remove + Видалити + + + Rename toolbar + Перейменувати панель інструментів + + + Rename + Перейменувати + + + Move action up + Пересунути дію вгору + + + Up + Вгору + + + Remove action from toolbar + Видалити дію з панелі інструментів + + + <- + <- + + + Add action to toolbar + Додати дію до панелі інструментів + + + -> + -> + + + Move action down + Пересунути дію вниз + + + Down + Вниз + + + Current Toolbar Actions + Поточні дії панелі інструментів + + + Custom Toolbar + Користувацька панель інструментів + + + < S E P A R A T O R > + < Р О З Д І Л Ю В А Ч > + + + + QtTreePropertyBrowser + + Property + Властивість + + + Value + Значення + + + + SaveFormAsTemplate + + Save Form As Template + Зберегти форму як шаблон + + + &Name: + &Назва: + + + &Category: + &Категорія: + + + Add path... + Додати шлях... + + + Template Exists + Шаблон існує + + + A template with the name %1 already exists. +Do you want overwrite the template? + Шаблон з іменем %1 вже існує. +Бажаєте перезаписати його? + + + Overwrite Template + Перезаписати шаблон + + + Open Error + Помилка відкриття + + + There was an error opening template %1 for writing. Reason: %2 + Під час відкриття шаблону %1 для запису сталася помилка. Причина: %2 + + + Write Error + Помилка запису + + + There was an error writing the template %1 to disk. Reason: %2 + Під час запису шаблону %1 на диск сталася помилка. Причина: %2 + + + Pick a directory to save templates in + Виберіть теку для збереження шаблонів + + + + ScriptErrorDialog + + An error occurred while running the scripts for "%1": + + Під час виконання скриптів для "%1" сталася помилка: + + + + + SelectSignalDialog + + Go to slot + Перейти до слота + + + Select signal + Оберіть сигнал + + + signal + сигнал + + + class + клас + + + + SignalSlotConnection + + SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) + НАДСИЛАЧ(%1), СИГНАЛ(%2), ОТРИМУВАЧ(%3), СЛОТ(%4) + + + + SignalSlotDialogClass + + Signals and slots + Сигнали та слоти + + + Slots + Слоти + + + Add + Додати + + + ... + ... + + + Delete + Видалити + + + Signals + Сигнали + + + + Spacer + + Horizontal Spacer '%1', %2 x %3 + Горизонтальний роздільник '%1', %2 x %3 + + + Vertical Spacer '%1', %2 x %3 + Вертикальний роздільник '%1', %2 x %3 + + + + TemplateOptionsPage + + Template Paths + Tab in preferences dialog + Шляхи до шаблонів + + + + ToolBarManager + + Configure Toolbars... + Налаштувати панелі інструментів... + + + Window + Вікно + + + Help + Довідка + + + Style + Стиль + + + Dock views + Прикріплюванні панелі + + + File + Файл + + + Edit + Правка + + + Tools + Інструменти + + + Form + Форма + + + Toolbars + Панелі інструментів + + + + VersionDialog + + <h3>%1</h3><br/><br/>Version %2 + <h3>%1</h3><br/><br/>Версія %2 + + + Qt Designer + Qt Designer + + + <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> + <br/>Qt Designer - це дизайнер графічного інтерфейсу користувача для програм Qt.<br/> + + + %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + %1<br/>Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії. + + + + VideoPlayerTaskMenu + + Available Mime Types + Доступні типи MIME + + + Display supported mime types... + Показати підтримувані типи MIME... + + + Load... + Завантажити... + + + Play + Грати + + + Pause + Пауза + + + Stop + Зупинити + + + Choose Video Player Media Source + Оберіть джерело медіа для відеопрогравача + + + An error has occurred in '%1': %2 + Сталась помилка в '%1': %2 + + + Video Player Error + Помилка відеопрогравача + + + + WidgetDataBase + + 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. + Цей файл містить користувацький віджет '%1', чий базовий клас (%2) відрізняється від поточного елементу в базі даних віджетів (%3). Базу даних віджетів залишено без змін. + + + + qdesigner_internal::ActionEditor + + New... + Новий... + + + Edit... + Редагувати... + + + Go to slot... + Перейти до слота... + + + Copy + Копіювати + + + Cut + Вирізати + + + Paste + Вставити + + + Select all + Виділити все + + + Delete + Видалити + + + Actions + Дії + + + Configure Action Editor + Налаштувати редактор дій + + + Icon View + Значками + + + Detailed View + Детально + + + New action + Нова дія + + + Edit action + Редагувати дію + + + Remove action '%1' + Видалити дію '%1' + + + Remove actions + Видалити дії + + + Used In + Використовується в + + + + qdesigner_internal::ActionModel + + Name + Назва + + + Used + Використовується + + + Text + Текст + + + Shortcut + Поєднання клавіш + + + Checkable + Прапорець + + + ToolTip + Спливаюча підказка + + + + qdesigner_internal::BrushManagerProxy + + The element '%1' is missing the required attribute '%2'. + У елемента '%1' відсутній обов'язковий атрибут '%2'. + + + Empty brush name encountered. + Знайдено порожня назва пензля. + + + An unexpected element '%1' was encountered. + Знайдено неочікуваний елемент '%1'. + + + An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 + Під час читання файлу опису пензля '%1' сталася помилка в рядку %2, позиція %3: %4 + + + An error occurred when reading the resource file '%1' at line %2, column %3: %4 + Під час читання файлу ресурсів '%1' сталася помилка в рядку %2, позиція %3: %4 + + + + qdesigner_internal::BuddyEditor + + Add buddy + Додати прив'язку + + + Remove buddies + Видалити прив'язки + + + Remove %n buddies + + Видалити %n прив'язку + Видалити %n прив'язки + Видалити %n прив'язок + + + + Add %n buddies + + Додати %n прив'язку + Додати %n прив'язки + Додати %n прив'язок + + + + Set automatically + Встановити автоматично + + + + qdesigner_internal::BuddyEditorPlugin + + Edit Buddies + Редагувати прив'язки + + + + qdesigner_internal::BuddyEditorTool + + Edit Buddies + Редагувати прив'язки + + + + qdesigner_internal::ButtonGroupMenu + + Select members + Обрати членів + + + Break + Розбити + + + + qdesigner_internal::ButtonTaskMenu + + Assign to button group + Призначити до групи кнопок + + + Button group + Група кнопок + + + New button group + Нова група кнопок + + + Change text... + Змінити текст... + + + None + Немає + + + Button group '%1' + Група кнопок '%1' + + + + qdesigner_internal::CodeDialog + + Save... + Зберегти... + + + Copy All + Копіювати все + + + &Find in Text... + &Знайти в тексті... + + + A temporary form file could not be created in %1. + Неможливо створити тимчасовий файл форми в %1. + + + The temporary form file %1 could not be written. + Неможливо записати тимчасовий файл форми %1. + + + %1 - [Code] + %1 - [код] + + + Save Code + Зберегти код + + + Header Files (*.%1) + Файли заголовків (*.%1) + + + The file %1 could not be opened: %2 + Неможливо відкрити файл %1: %2 + + + The file %1 could not be written: %2 + Неможливо записати файл %1: %2 + + + %1 - Error + %1 - Помилка + + + + qdesigner_internal::ColorAction + + Text Color + Колір тексту + + + + qdesigner_internal::ComboBoxTaskMenu + + Edit Items... + Редагувати елементи... + + + Change Combobox Contents + Змінити зміст випадаючого списку + + + + qdesigner_internal::CommandLinkButtonTaskMenu + + Change description... + Змінити опис... + + + + qdesigner_internal::ConnectionEdit + + Select All + Виділити все + + + Deselect All + Зняти виділення + + + Delete + Видалити + + + + qdesigner_internal::ConnectionModel + + Sender + Надсилач + + + Signal + Сигнал + + + Receiver + Отримувач + + + Slot + Слот + + + <sender> + <надсилач> + + + <signal> + <сигнал> + + + <receiver> + <отримувач> + + + <slot> + <слот> + + + The connection already exists!<br>%1 + З'єднання вже існує!<br>%1 + + + Signal and Slot Editor + Редактор сигналів та слотів + + + + qdesigner_internal::ContainerWidgetTaskMenu + + Delete + Видалити + + + Insert + Вставити + + + Insert Page Before Current Page + Вставити сторінку перед поточною сторінкою + + + Insert Page After Current Page + Вставити сторінку після поточної сторінки + + + Add Subwindow + Додати підвікно + + + Subwindow + Підвікно + + + Page + Сторінка + + + Page %1 of %2 + Сторінка %1 з %2 + + + + qdesigner_internal::DPI_Chooser + + System (%1 x %2) + System resolution + Системна (%1 x %2) + + + User defined + Визначена користувачем + + + x + DPI X/Y separator + x + + + + qdesigner_internal::DesignerPropertyManager + + AlignLeft + Вліво + + + AlignHCenter + По центру + + + AlignRight + Вправо + + + AlignJustify + По ширині + + + AlignTop + Догори + + + AlignVCenter + По центру + + + AlignBottom + Донизу + + + %1, %2 + %1, %2 + + + Customized (%n roles) + + Користувацька (%n роль) + Користувацька (%n ролі) + Користувацька (%n ролей) + + + + Inherited + Успадкована + + + Horizontal + Горизонтальне + + + Vertical + Вертикальне + + + Normal Off + Нормальний, вимк + + + Normal On + Нормальний, увімк + + + Disabled Off + Вимкнений, вимк + + + Disabled On + Вимкнений, увімк + + + Active Off + Активний, вимк + + + Active On + Активний, увімк + + + Selected Off + Обраний, вимк + + + Selected On + Обраний, увімк + + + translatable + перекладати + + + disambiguation + уточнення + + + comment + коментар + + + + qdesigner_internal::DeviceProfileDialog + + Device Profiles (*.%1) + Профілі пристроїв (*.%1) + + + Default + Типовий + + + Save Profile + Зберегти профіль + + + Save Profile - Error + Збереження профілю - Помилка + + + Unable to open the file '%1' for writing: %2 + Неможливо відкрити файл '%1' для запису: %2 + + + Open profile + Відкрити профіль + + + Open Profile - Error + Відкриття профілю - Помилка + + + Unable to open the file '%1' for reading: %2 + Неможливо відкрити файл '%1' для читання: %2 + + + '%1' is not a valid profile: %2 + '%1' не є правильним профілем: %2 + + + + qdesigner_internal::Dialog + + Dialog + Діалог + + + StringList + Список рядків + + + New String + Новий рядок + + + &New + &Новий + + + Delete String + Видалити рядок + + + &Delete + Ви&далити + + + &Value: + &Значення: + + + Move String Up + Пересунути рядок вгору + + + Up + Вгору + + + Move String Down + Пересунути рядок донизу + + + Down + Вниз + + + + qdesigner_internal::EmbeddedOptionsControl + + None + Немає + + + Add a profile + Додати профіль + + + Edit the selected profile + Редагувати виділений профіль + + + Delete the selected profile + Видалити виділений профіль + + + Add Profile + Додати профіль + + + New profile + Новий профіль + + + Edit Profile + Редагувати профіль + + + Delete Profile + Видалити профіль + + + Would you like to delete the profile '%1'? + Бажаєте видалити профіль '%1'? + + + Default + Типовий + + + + qdesigner_internal::FilterWidget + + Filter + Фільтр + + + Clear text + Очистити текст + + + + qdesigner_internal::FormEditor + + Resource File Changed + Файли ресурсів було змінено + + + The file "%1" has changed outside Designer. Do you want to reload it? + Файл "%1" було змінено поза Qt Designer. Бажаєте перезавантажити його? + + + + qdesigner_internal::FormLayoutMenu + + Add form layout row... + Додати рядок до розташування формою... + + + + qdesigner_internal::FormWindow + + Edit contents + Редагувати зміст + + + F2 + + + + Insert widget '%1' + Вставити віджет '%1' + + + Resize + Змінити розмір + + + Key Resize + Зміна розміру клавішею + + + Key Move + Переміщення клавішею + + + Paste %n action(s) + + Вставити %n дію + Вставити %n дії + Вставити %n дій + + + + Paste %n widget(s) + + Вставити %n віджет + Вставити %n віджети + Вставити %n віджетів + + + + Paste (%1 widgets, %2 actions) + Вставити (%1 віджетів, %2 дії) + + + Cannot paste widgets. Designer could not find a container without a layout to paste into. + Неможливо вставити віджети. Qt Designer не зміг знайти контейнер без розташування для вставки. + + + Break the layout of the container you want to paste into, select this container and then paste again. + Розбийте розташування контейнеру, в який ви бажаєте вставити, виділіть цей контейнер та вставте знову. + + + Paste error + Помилка вставки + + + Raise widgets + Підняти віджети + + + Lower widgets + Опустити віджети + + + Select Ancestor + Обрати предка + + + Lay out + Розташування + + + Drop widget + Кинути віджет + + + A QMainWindow-based form does not contain a central widget. + Форма, що базується на QMainWindow не містить центрального віджета. + + + + qdesigner_internal::FormWindowBase + + Delete '%1' + Видалити '%1' + + + Delete + Видалити + + + + qdesigner_internal::FormWindowManager + + Cu&t + Вирі&зати + + + Cuts the selected widgets and puts them on the clipboard + Вирізає виділені віджети та розміщує їх в буфері обміну + + + &Copy + &Копіювати + + + Copies the selected widgets to the clipboard + Копіює виділені віджети до буферу обміну + + + &Paste + &Вставити + + + Pastes the clipboard's contents + Вставляє зміст буферу обміну + + + &Delete + Ви&далити + + + Deletes the selected widgets + Видаляє виділені віджети + + + Select &All + Виділити в&се + + + Selects all widgets + Виділяє усі віджети + + + Bring to &Front + На &передній план + + + Raises the selected widgets + Піднімає виділені віджети + + + Send to &Back + На зад&ній план + + + Lowers the selected widgets + Опускає виділені віджети + + + Adjust &Size + Підігнати &розмір + + + Adjusts the size of the selected widget + Підганяє розмір виділених віджетів + + + Lay Out &Horizontally + Розташувати &горизонтально + + + Lays out the selected widgets horizontally + Розташовує виділені віджети горизонтально + + + Lay Out &Vertically + Розташувати &вертикально + + + Lays out the selected widgets vertically + Розташовує виділені віджети вертикально + + + Lay Out in a &Form Layout + Розташувати по &формі + + + Lays out the selected widgets in a form layout + Розташовує виділені віджети по формі + + + Lay Out in a &Grid + Розташувати, використовуючи &сітку + + + Lays out the selected widgets in a grid + Розташовує виділені віджети по сітці + + + Lay Out Horizontally in S&plitter + Розташувати г&оризонтально з розділювачем + + + Lays out the selected widgets horizontally in a splitter + Розташовує виділені віджети горизонтально з розділювачем + + + Lay Out Vertically in Sp&litter + Розташувати в&ертикально з розділювачем + + + Lays out the selected widgets vertically in a splitter + Розташовує виділені віджети вертикально з розділювачем + + + &Break Layout + Розби&ти розташування + + + Breaks the selected layout + Розбиває виділено розташування + + + Si&mplify Grid Layout + Спро&щене розташування по сітці + + + Removes empty columns and rows + Видаляє пусті рядки та колонки + + + &Preview... + Попередній перегля&д... + + + Preview current form + Попередній перегляд поточної форми + + + Form &Settings... + Нала&штування форми... + + + Break Layout + Розбити розташування + + + Adjust Size + Підігнати розмір + + + Could not create form preview + Title of warning message box + Неможливо створити попередній перегляд форми + + + Form Settings - %1 + Налаштування форми - %1 + + + + qdesigner_internal::FormWindowSettings + + None + Немає + + + Device Profile: %1 + Профіль пристрою: %1 + + + + qdesigner_internal::GridPanel + + Form + Форма + + + Grid + Сітка + + + Visible + Видима + + + Grid &X + Сітка &X + + + Snap + Прив'язка + + + Reset + Скинути + + + Grid &Y + Сітка &Y + + + + qdesigner_internal::GroupBoxTaskMenu + + Change title... + Змінити заголовок... + + + + qdesigner_internal::HtmlTextEdit + + Insert HTML entity + Вставити елемент HTML + + + + qdesigner_internal::IconSelector + + The pixmap file '%1' cannot be read. + Неможливо прочитати файл растрового зображення '%1'. + + + The file '%1' does not appear to be a valid pixmap file: %2 + Файл '%1' не схожий на правильний файл растрового зображення: %2 + + + The file '%1' could not be read: %2 + Неможливо прочитати файл '%1': %2 + + + Choose a Pixmap + Оберіть растрове зображення + + + Pixmap Read Error + Помилка читання растрового зображення + + + ... + ... + + + Normal Off + Нормальний, вимк + + + Normal On + Нормальний, увімк + + + Disabled Off + Вимкнений, вимк + + + Disabled On + Вимкнений, увімк + + + Active Off + Активний, вимк + + + Active On + Активний, увімк + + + Selected Off + Обраний, вимк + + + Selected On + Обраний, увімк + + + Choose Resource... + Оберіть ресурс... + + + Choose File... + Оберіть файл... + + + Reset + Скинути + + + Reset All + Скинути все + + + + qdesigner_internal::ItemListEditor + + Items List + Список елементів + + + New Item + Новий елемент + + + &New + &Новий + + + Delete Item + Видалити елемент + + + &Delete + Ви&далити + + + Move Item Up + Пересунути елемент вгору + + + U + В + + + Move Item Down + Пересунути елемент вниз + + + D + Н + + + Properties &>> + Властивост&і >> + + + Properties &<< + Властивост&і << + + + + qdesigner_internal::LabelTaskMenu + + Change rich text... + Змінити форматований текст... + + + Change plain text... + Змінити простий текст... + + + + qdesigner_internal::LanguageResourceDialog + + Choose Resource + Оберіть ресурс + + + + qdesigner_internal::LineEditTaskMenu + + Change text... + Змінити текст... + + + + qdesigner_internal::ListWidgetEditor + + New Item + Новий елемент + + + Edit List Widget + Редагування віджета "Список" + + + Edit Combobox + Редагування віджета "Випадаючий список" + + + + qdesigner_internal::ListWidgetTaskMenu + + Edit Items... + Редагувати елементи... + + + Change List Contents + Змінити зміст списку + + + + qdesigner_internal::MdiContainerWidgetTaskMenu + + Next Subwindow + Наступне підвікно + + + Previous Subwindow + Попереднє підвікно + + + Tile + Плиткою + + + Cascade + Каскадом + + + + qdesigner_internal::MenuTaskMenu + + Remove + Видалити + + + + qdesigner_internal::MorphMenu + + Morph into + Перетворити на + + + + qdesigner_internal::NewActionDialog + + New Action... + Нова дія... + + + &Text: + &Текст: + + + Object &name: + &Ім'я об'єкта: + + + &Icon: + &Значок: + + + Shortcut: + Поєднання клавіш: + + + Checkable: + Прапорець: + + + ToolTip: + Спливаюча підказка: + + + ... + ... + + + + qdesigner_internal::NewDynamicPropertyDialog + + Create Dynamic Property + Створити динамічну властивість + + + Property Name + Ім'я властивості + + + horizontalSpacer + + + + Property Type + Тип властивості + + + Set Property Name + Встановіть ім'я властивості + + + The current object already has a property named '%1'. +Please select another, unique one. + Поточний об'єкт вже має властивість з іменем '%1'. +Будь-ласка, оберіть інше, унікальне ім'я. + + + The '_q_' prefix is reserved for the Qt library. +Please select another name. + Префікс '_q_' зарезервовано для бібліотеки Qt. +Будь-ласка, оберіть інше ім'я. + + + + qdesigner_internal::NewFormWidget + + 0 + 0 + + + Choose a template for a preview + Оберіть шаблон для попереднього перегляду + + + Embedded Design + Дизайн для портативних пристроїв + + + Device: + Пристрій: + + + Screen Size: + Розмір екрану: + + + Default size + Типовий розмір + + + QVGA portrait (240x320) + QVGA книжкою (240x320) + + + QVGA landscape (320x240) + QVGA альбомом (320x240) + + + VGA portrait (480x640) + VGA книжкою (480x640) + + + VGA landscape (640x480) + VGA альбомом (640x480) + + + Widgets + New Form Dialog Categories + Віджети + + + Custom Widgets + Віджети користувача + + + None + Немає + + + Error loading form + Помилка завантаження форми + + + Unable to open the form template file '%1': %2 + Неможливо відкрити файл шаблону форми '%1': %2 + + + Internal error: No template selected. + Внутрішня помилка. Не обрано шаблон. + + + + qdesigner_internal::NewPromotedClassPanel + + Add + Додати + + + New Promoted Class + Новий перетворений клас + + + Base class name: + Ім'я базового класу: + + + Promoted class name: + Ім'я перетвореного класу: + + + Header file: + Файл заголовків: + + + Global include + Глобальне включення + + + Reset + Скинути + + + + qdesigner_internal::ObjectInspector + + Change Current Page + Змінити поточну сторінку + + + &Find in Text... + &Знайти в тексті... + + + + qdesigner_internal::OrderDialog + + Change Page Order + Змінити порядок сторінок + + + Page Order + Порядок сторінок + + + Move page up + Пересунути сторінку вгору + + + Move page down + Пересунути сторінку вниз + + + Index %1 (%2) + Індекс %1 (%2) + + + %1 %2 + %1 %2 + + + + qdesigner_internal::PaletteEditor + + Edit Palette + Редагувати палітру + + + Tune Palette + Налаштувати палітру + + + Show Details + Показати деталі + + + Compute Details + Розраховувати деталі + + + Quick + Швидко + + + Preview + Попередній перегляд + + + Disabled + Вимкнений + + + Inactive + Неактивний + + + Active + Активний + + + + qdesigner_internal::PaletteEditorButton + + Change Palette + Змінити палітру + + + + qdesigner_internal::PaletteModel + + Color Role + Кольорова роль + + + Active + Активна + + + Inactive + Неактивний + + + Disabled + Вимкнений + + + + qdesigner_internal::PixmapEditor + + Choose Resource... + Оберіть ресурс... + + + Choose File... + Оберіть файл... + + + Copy Path + Копіювати шлях + + + Paste Path + Вставити шлях + + + ... + ... + + + + qdesigner_internal::PlainTextEditorDialog + + Edit text + Редагувати текст + + + + qdesigner_internal::PluginDialog + + Components + Компоненти + + + Plugin Information + Інформація про додаток + + + Refresh + Оновити + + + Scan for newly installed custom widget plugins. + Шукати нові встановлені додатки користувацьких віджетів. + + + Qt Designer couldn't find any plugins + Qt Designer не зміг знайти жодного додатку + + + Qt Designer found the following plugins + Qt Designer знайшов наступні додатки + + + New custom widget plugins have been found. + Були знайдені нові додатки користувацьких віджетів. + + + + qdesigner_internal::PreviewActionGroup + + %1 Style + Стиль %1 + + + + qdesigner_internal::PreviewConfigurationWidget + + Default + Типово + + + None + Немає + + + Browse... + Огляд... + + + Load Custom Device Skin + Завантажити користувацьку обкладинку пристрою + + + All QVFB Skins (*.%1) + Усі обкладинки QVFB (*.%1) + + + %1 - Duplicate Skin + %1 - Обкладинка-дублікат + + + The skin '%1' already exists. + Обкладинка '%1' вже існує. + + + %1 - Error + %1 - Помилка + + + %1 is not a valid skin directory: +%2 + %1 не є правильною текою обкладинки: +%2 + + + + qdesigner_internal::PreviewDeviceSkin + + &Portrait + Книжка + + + Landscape (&CCW) + Rotate form preview counter-clockwise + Альбом (проти ГС) + + + &Landscape (CW) + Rotate form preview clockwise + Альбом (за ГС) + + + &Close + Закрити + + + + qdesigner_internal::PreviewManager + + %1 - [Preview] + %1 - [Перегляд] + + + + qdesigner_internal::PreviewMdiArea + + The moose in the noose +ate the goose who was loose. + Palette editor background + Кричав Архип, Архип охрип, +Не треба Архипу кричати до хрипу. + + + + qdesigner_internal::PreviewWidget + + Preview Window + Вікно попереднього перегляду + + + LineEdit + Поле введення + + + ComboBox + Випадаючий список + + + PushButton + Кнопка + + + ButtonGroup2 + Група кнопок 2 + + + CheckBox1 + Прапорець 1 + + + CheckBox2 + Прапорець 2 + + + ButtonGroup + Група кнопок + + + RadioButton1 + Перемикач 1 + + + RadioButton2 + Перемикач 2 + + + RadioButton3 + Перемикач 3 + + + + qdesigner_internal::PromotionModel + + Name + Назва + + + Header file + Файл заголовків + + + Global include + Глобальне включення + + + Usage + Використання + + + + qdesigner_internal::PromotionTaskMenu + + Promoted widgets... + Перетворені віджети... + + + Promote to ... + Перетворити на... + + + Change signals/slots... + Змінити сигнали/слоти... + + + Promote to + Перетворити на + + + Demote to %1 + Перетворити на %1 + + + + qdesigner_internal::PropertyEditor + + Add Dynamic Property... + Додати динамічну властивість... + + + Remove Dynamic Property + Видалити динамічну властивість + + + Sorting + Сортування + + + Color Groups + Групи кольорів + + + Tree View + Деревом + + + Drop Down Button View + Випадаючим списком + + + String... + Рядки... + + + Bool... + Булева... + + + Other... + Інше... + + + Configure Property Editor + Налаштувати редактор властивостей + + + Object: %1 +Class: %2 + Об'єкт: %1 +Клас: %2 + + + + qdesigner_internal::PropertyLineEdit + + Insert line break + Insert розрив рядка + + + + qdesigner_internal::QDesignerPromotionDialog + + Promoted Widgets + Перетворені віджети + + + Promoted Classes + Перетворені класи + + + Promote + Перетворити + + + Change signals/slots... + Змінити сигнали/слоти... + + + %1 - Error + %1 - Помилка + + + + qdesigner_internal::QDesignerResource + + Loading qrc file + Завантаження файлу qrc + + + The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> + Неможливо знайти вказаний файл qrc <p><b>%1</b></p><p>. Бажаєте оновити розташування файлу?</p> + + + New location for %1 + Нове розташування для %1 + + + Resource files (*.qrc) + Файли ресурсів (*.qrc) + + + + qdesigner_internal::QDesignerTaskMenu + + Change objectName... + Змінити objectName... + + + Change toolTip... + Змінити toolTip... + + + Change whatsThis... + Змінити whatsThis... + + + Change styleSheet... + Змінити styleSheet... + + + Create Menu Bar + Створити панель меню + + + Add Tool Bar + Додати панель інструментів + + + Create Status Bar + Створити рядок статусу + + + Remove Status Bar + Видалити рядок статусу + + + Change script... + Змінити скрипт... + + + Change signals/slots... + Змінити сигнали/слоти... + + + Go to slot... + Перейти до слота... + + + Size Constraints + Обмеження розміру + + + Set Minimum Width + Встановити мінімальну ширину + + + Set Minimum Height + Встановити мінімальну висоту + + + Set Minimum Size + Встановити мінімальний розмір + + + Set Maximum Width + Встановити максимальну ширину + + + Set Maximum Height + Встановити максимальну висоту + + + Set Maximum Size + Встановити максимальний розмір + + + Edit ToolTip + Редагувати спливаючу підказку + + + Edit WhatsThis + Редагування підказки "Що це?" + + + no signals available + немає доступних сигналів + + + Set size constraint on %n widget(s) + + Встановити обмеження розміру для %n віджета + Встановити обмеження розміру для %n віджетів + Встановити обмеження розміру для %n віджетів + + + + + qdesigner_internal::QDesignerWidgetBox + + Unexpected element <%1> + Неочікуваний елемент <%1> + + + A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 +%5 + Під час розбору XML коду, вказаного для віджета %3, сталась помилка в рядку %1, позиція %2: %4 +%5 + + + The XML code specified for the widget %1 does not contain any widget elements. +%2 + XML код, вказаний для віджета %1, не містить жодного елемента віджета. +%2 + + + An error has been encountered at line %1 of %2: %3 + Сталась помилка в рядку %1 з %2: %3 + + + Unexpected element <%1> encountered when parsing for <widget> or <ui> + Під час розбору <widget> або <ui> було знайдено неочікуваний елемент <%1> + + + Unexpected end of file encountered when parsing widgets. + Під час розбору віджетів несподівано закінчився файл. + + + A widget element could not be found. + Неможливо знайти елемент віджета. + + + + qdesigner_internal::QtGradientStopsController + + H + H + + + S + S + + + V + V + + + Hue + Відтінок + + + Sat + Насиченість + + + Val + Значення + + + Saturation + Насиченість + + + Value + Значення + + + R + R + + + G + G + + + B + B + + + Red + Червоний + + + Green + Зелений + + + Blue + Блакитний + + + + qdesigner_internal::RichTextEditorDialog + + Edit text + Редагувати текст + + + Rich Text + Форматований текст + + + Source + Код + + + &OK + &OK + + + &Cancel + &Скасувати + + + + qdesigner_internal::RichTextEditorToolBar + + Bold + Жирний + + + CTRL+B + + + + Italic + Курсив + + + CTRL+I + + + + Underline + Підкреслений + + + CTRL+U + + + + Left Align + Вліво + + + Center + По центру + + + Right Align + Вправо + + + Justify + По ширині + + + Superscript + Верхній індекс + + + Subscript + Нижній індекс + + + Insert &Link + Вставити &посилання + + + Insert &Image + Вставити &зображення + + + + qdesigner_internal::ScriptDialog + + Edit script + Редагування скрипту + + + <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. + <html>Введіть фрагмент коду Qt Script, що має виконуватись під час завантаження форми.<br>Віджет та його діти доступні через змінні <i>widget</i> та <i>childWidgets</i>, відповідно. + + + Syntax error + Синтаксична помилка + + + + qdesigner_internal::ScriptErrorDialog + + Script errors + Помилки скрипту + + + + qdesigner_internal::SignalSlotDialog + + There is already a slot with the signature '%1'. + Вже існує слот з сигнатурою '%1'. + + + There is already a signal with the signature '%1'. + Вже існує сигнал з сигнатурою '%1'. + + + %1 - Duplicate Signature + %1 - Повторна сигнатура + + + Signals/Slots of %1 + Сигнали/слоти %1 + + + + qdesigner_internal::SignalSlotEditorPlugin + + Edit Signals/Slots + Редагувати сигнали/слоти + + + F4 + F4 + + + + qdesigner_internal::SignalSlotEditorTool + + Edit Signals/Slots + Редагувати сигнали/слоти + + + + qdesigner_internal::StatusBarTaskMenu + + Remove + Видалити + + + + qdesigner_internal::StringListEditorButton + + Change String List + Змінити список рядків + + + + qdesigner_internal::StyleSheetEditorDialog + + Valid Style Sheet + Коректна таблиця стилів + + + Add Resource... + Додати ресурс... + + + Add Gradient... + Додати градієнт... + + + Add Color... + Додати колір... + + + Add Font... + Додати шрифт... + + + Edit Style Sheet + Редагувати таблицю стилів + + + Invalid Style Sheet + Неправильна таблиця стилів + + + + qdesigner_internal::TabOrderEditor + + Start from Here + Почати звідси + + + Restart + Почати спочатку + + + Tab Order List... + Список порядку обходу... + + + Tab Order List + Список порядку обходу + + + Tab Order + Порядок обходу + + + + qdesigner_internal::TabOrderEditorPlugin + + Edit Tab Order + Редагувати порядок обходу + + + + qdesigner_internal::TabOrderEditorTool + + Edit Tab Order + Редагувати порядок обходу + + + + qdesigner_internal::TableWidgetEditor + + Edit Table Widget + Редагування віджета "Таблиця" + + + &Items + &Елементи + + + Table Items + Елементи таблиці + + + Properties &>> + Властивост&і >> + + + New Column + Новий стовпчик + + + New Row + Новий рядок + + + &Columns + &Стовпці + + + &Rows + &Рядки + + + Properties &<< + Властивост&і << + + + + qdesigner_internal::TableWidgetTaskMenu + + Edit Items... + Редагувати елементи... + + + + qdesigner_internal::TemplateOptionsWidget + + Form + Форма + + + Additional Template Paths + Додаткові шляхи до шаблонів + + + ... + ... + + + Pick a directory to save templates in + Виберіть теку для збереження шаблонів + + + + qdesigner_internal::TextEditTaskMenu + + Edit HTML + Редагувати HTML + + + Change HTML... + Змінити HTML... + + + Edit Text + Редагувати текст + + + Change Plain Text... + Змінити простий текст... + + + + qdesigner_internal::TextEditor + + Choose Resource... + Оберіть ресурс... + + + Choose File... + Оберіть файл... + + + ... + ... + + + Choose a File + Оберіть файл + + + + qdesigner_internal::ToolBarEventFilter + + Insert Separator before '%1' + Вставити розділювач перед %1 + + + Append Separator + Приєднати розділювач + + + Remove action '%1' + Видалити дію '%1' + + + Remove Toolbar '%1' + Видалити панель інструментів '%1' + + + Insert Separator + Вставити розділювач + + + + qdesigner_internal::TreeWidgetEditor + + Edit Tree Widget + Редагування віджета "Дерево" + + + &Items + &Елементи + + + Tree Items + Елементи дерева + + + 1 + 1 + + + New Item + Новий елемент + + + &New + &Новий + + + New Subitem + Новий піделемент + + + New &Subitem + Новий &піделемент + + + Delete Item + Видалити елемент + + + &Delete + Ви&далити + + + Move Item Left (before Parent Item) + Пересунути елемент вліво (перед батьківським) + + + L + Л + + + Move Item Right (as a First Subitem of the Next Sibling Item) + Пересунути елемент вправо (як перший піделемент наступного сусіда) + + + R + П + + + Move Item Up + Пересунути елемент вгору + + + U + В + + + Move Item Down + Пересунути елемент вниз + + + D + Н + + + Properties &>> + Властивост&і >> + + + New Column + Новий стовпчик + + + &Columns + &Стовпці + + + Per column properties + Властивості стовпця + + + Common properties + Загальні властивості + + + Properties &<< + Властивост&і << + + + + qdesigner_internal::TreeWidgetTaskMenu + + Edit Items... + Редагувати елементи... + + + + qdesigner_internal::WidgetBox + + Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. + Попередження: Збій створення віджета в панелі віджетів. Причиною цього може бути неправильний XML користувацького віджета. + + + + qdesigner_internal::WidgetBoxTreeWidget + + Scratchpad + Нотатник + + + Custom Widgets + Віджети користувача + + + Expand all + Розгорнути все + + + Collapse all + Згорнути все + + + List View + Списком + + + Icon View + Значками + + + Remove + Видалити + + + Edit name + Редагувати ім'я + + + + qdesigner_internal::WidgetDataBase + + A custom widget plugin whose class name (%1) matches that of an existing class has been found. + Користувацький додаток віджета з іменем класу (%1) співпадає з існуючим класом. + + + + qdesigner_internal::WidgetEditorTool + + Edit Widgets + Редагувати віджети + + + + qdesigner_internal::WidgetFactory + + The custom widget factory registered for widgets of class %1 returned 0. + Користувацька фабрика віджетів, що зареєстрована для класу %1, повернула 0. + + + A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. + Сталося неспівпадіння імені класу під час створення віджета, використовуючи користувацьку фабрику віджетів, що зареєстрована для класу %1. Вона повернула віджет класу %2. + + + %1 Widget + Віджет %1 + + + The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. + Неможливо визначити поточну сторінку контейнера '%1' (%2) під час створення розташування. Це вказує на некоректність файлу UI, можливо, розташування було створене на контейнерному віджеті. + + + Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. +This indicates an inconsistency in the ui-file. + Спроба додати розташування для віджета '%1' (%2), який вже має некероване розташування %3. +Це вказує на некоректність в файлі UI. + + + Cannot create style '%1'. + Неможливо створити стиль '%1'. + + + + qdesigner_internal::WizardContainerWidgetTaskMenu + + Next + Далі + + + Back + Назад + + + + qdesigner_internal::ZoomMenu + + %1 % + Zoom factor + %1 % + + + + qdesigner_internal::ZoomablePreviewDeviceSkin + + &Zoom + Масштаб + + + diff --git a/translations/linguist_uk.ts b/translations/linguist_uk.ts new file mode 100644 index 0000000..92d16dd --- /dev/null +++ b/translations/linguist_uk.ts @@ -0,0 +1,1602 @@ + + + + + AboutDialog + + Qt Linguist + Qt Linguist + + + + BatchTranslationDialog + + Qt Linguist - Batch Translation + Qt Linguist - Пакетний переклад + + + Options + Опції + + + Set translated entries to finished + Помічати перекладені елементи як завершені + + + Retranslate entries with existing translation + Повторно перекласти елементи, що вже мають переклад + + + Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked + Майте на увазі, що модифіковані елементи будуть помічені як незавершені, якщо параметр 'Помічати перекладені елементи як завершені' вимкнено + + + Translate also finished entries + Перекладати також завершені елементи + + + Phrase book preference + Використання глосарію + + + Move up + Вгору + + + Move down + Вниз + + + The batch translator will search through the selected phrase books in the order given above + Пакетний перекладач буде шукати серед обраних глосаріїв у вказаному вище порядку + + + &Run + &Запустити + + + Cancel + Скасувати + + + Batch Translation of '%1' - Qt Linguist + Пакетний переклад '%1' - Qt Linguist + + + Searching, please wait... + Здійснюється пошук, будь-ласка, зачекайте... + + + &Cancel + &Скасувати + + + Linguist batch translator + Пакетний переклад Linguist'а + + + Batch translated %n entries + + Пакетно перекладено %n елемент + Пакетно перекладено %n елементи + Пакетно перекладено %n елементів + + + + + DataModel + + <qt>Duplicate messages found in '%1': + <qt>Повідомлення-дублікати знайдено в '%1': + + + <p>[more duplicates omitted] + <p>[решта дублікатів пропущено] + + + <p>* ID: %1 + <p>* ID: %1 + + + <p>* Context: %1<br>* Source: %2 + <p>* Контекст: %1<br>* Оригінал: %2 + + + <br>* Comment: %3 + <br>* Коментар: %3 + + + Linguist does not know the plural rules for '%1'. +Will assume a single universal form. + Linguist не знає правил множини для '%1'. +Буде застосована універсальна форма однини. + + + Cannot create '%2': %1 + Не можу створити '%2': %1 + + + Universal Form + Універсальна форма + + + + ErrorsView + + Accelerator possibly superfluous in translation. + В перекладі, можливо, пропущено акселератор. + + + Accelerator possibly missing in translation. + В перекладі, можливо, пропущено акселератор. + + + Translation does not end with the same punctuation as the source text. + Переклад не закінчується тим самим знаком пунктуації, що й оригінал. + + + A phrase book suggestion for '%1' was ignored. + Пропозицію глосарію для '%1' було проігноровано. + + + Translation does not refer to the same place markers as in the source text. + Переклад не містить тих самих маркерів позиції, що й оригінал. + + + Translation does not contain the necessary %n place marker. + Переклад не містить необхідних маркерів позиції %n. + + + Unknown error + Невідома помилка + + + + FindDialog + + Find + Знайти + + + This window allows you to search for some text in the translation source file. + Це вікно дозволяє вам шукати текст в файлі перекладу. + + + &Find what: + &Шукати: + + + Type in the text to search for. + Введіть текст для пошуку. + + + Options + Опції + + + Source texts are searched when checked. + Якщо відмічено, то пошук здійснюватиметься серед оригінальних текстів. + + + &Source texts + &Оригінальні тексти + + + Translations are searched when checked. + Якщо відмічено, то пошук здійснюватиметься серед перекладів. + + + &Translations + &Переклади + + + Texts such as 'TeX' and 'tex' are considered as different when checked. + Якщо відмічено, то рядки 'приклад' та 'прИкЛад' будуть вважатись різними. + + + &Match case + Враховувати &регістр + + + Comments and contexts are searched when checked. + Якщо відмічено, то пошук здійснюватиметься серед коментарів та контекстів. + + + &Comments + &Коментарі + + + Ignore &accelerators + Ігнорувати &акселератори + + + Click here to find the next occurrence of the text you typed in. + Клацніть тут, щоб знайти наступне співпадіння для введеного вами тексту. + + + Find Next + Знайти наступний + + + Click here to close this window. + Клацніть тут щоб закрити вікно. + + + Cancel + Скасувати + + + + Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog + Виберіть Правка|Пошук з головного меню чи натисніть Ctrl+F, щоб відкрити діалог пошуку + + + + + FormMultiWidget + + Alt+Delete + translate, but don't change + + + + Shift+Alt+Insert + translate, but don't change + + + + Alt+Insert + translate, but don't change + + + + Confirmation - Qt Linguist + Підтвердження - Qt Linguist + + + Delete non-empty length variant? + Видалити непустий варіант перекладу? + + + + LRelease + + Dropped %n message(s) which had no ID. + + Видалено %n повідомлення, яке не має ID. + Видалено %n повідомлення, які не мають ID. + Видалено %n повідомлень, які не мають ID. + + + + Excess context/disambiguation dropped from %n message(s). + + Видалено зайвий контекст/неоднозначність з %n повідомлення. + Видалено зайвий контекст/неоднозначність з %n повідомлень. + Видалено зайвий контекст/неоднозначність з %n повідомлень. + + + + Generated %n translation(s) (%1 finished and %2 unfinished) + + Згенеровано %n переклад (%1 завершено та %2 незавершено) + Згенеровано %n переклади (%1 завершено та %2 незавершено) + Згенеровано %n перекладів (%1 завершено та %2 незавершено) + + + + Ignored %n untranslated source text(s) + + Зігноровано %n неперекладений оригінальний текст + Зігноровано %n неперекладені оригінальні тексти + Зігноровано %n неперекладених оригінальних текстів + + + + + MainWindow + + MainWindow + Головне вікно + + + &Phrases + Фра&зи + + + &Close Phrase Book + &Закрити глосарій + + + &Edit Phrase Book + &Редагувати глосарій + + + &Print Phrase Book + &Друк глосарію + + + V&alidation + Перев&ірка + + + &View + &Вид + + + Vie&ws + &Види + + + &Toolbars + Панелі &інструментів + + + &Help + &Довідка + + + &Translation + Пере&клад + + + &File + &Файл + + + Recently Opened &Files + &Нещодавно відкриті файли + + + &Edit + &Правка + + + &Open... + &Відкрити... + + + Open a Qt translation source file (TS file) for editing + Відкрити файл перекладу Qt (файл TS) для редагування + + + Ctrl+O + + + + E&xit + Ви&йти + + + Close this window and exit. + Закрити вікно та вийти. + + + Ctrl+Q + + + + Save + Зберегти + + + Save changes made to this Qt translation source file + Зберегти зміни зроблені до цього файлу перекладу Qt + + + Save &As... + Зберегти &як... + + + Save As... + Зберегти як... + + + Save changes made to this Qt translation source file into a new file. + Зберегти зміни зроблені до цього файлу перекладу Qt до нового файлу. + + + Release + Скомпілювати + + + Create a Qt message file suitable for released applications from the current message file. + Створити файл повідомлень Qt придатний для використання програмами з поточного файлу повідомлень. + + + &Print... + &Друк... + + + Print a list of all the translation units in the current translation source file. + Друкувати список усіх елементів перекладу з поточного файлу перекладу. + + + Ctrl+P + + + + &Undo + &Повернути + + + Undo the last editing operation performed on the current translation. + Скасувати останню операцію редагування здійснену над поточним перекладом. + + + Ctrl+Z + + + + &Redo + П&овторити + + + Redo an undone editing operation performed on the translation. + Повторити скасовану операцію редагування здійснену над поточним перекладом. + + + Ctrl+Y + + + + Cu&t + Ви&різати + + + Copy the selected translation text to the clipboard and deletes it. + Копіювати виділений текст перекладу в буфер обміну та видалити його. + + + Ctrl+X + + + + &Copy + &Копіювати + + + Copy the selected translation text to the clipboard. + Копіювати виділений текст перекладу до буферу обміну. + + + Ctrl+C + + + + &Paste + &Вставити + + + Paste the clipboard text into the translation. + Вставити текст з буферу обміну до перекладу. + + + Ctrl+V + + + + Select &All + Виділити в&се + + + Select the whole translation text. + Виділити все текст перекладу. + + + Ctrl+A + + + + &Find... + &Знайти... + + + Search for some text in the translation source file. + Шукати деякий текст в файлі перекладу. + + + Ctrl+F + + + + Find &Next + Знайти &наступне + + + Continue the search where it was left. + Продовжити пошук з місця, де він був зупинений. + + + F3 + + + + &Prev Unfinished + &Попередній незавершений + + + Previous unfinished item + Попередній незавершений елемент + + + Move to the previous unfinished item. + Перейти до попереднього незавершеного елементу. + + + Ctrl+K + + + + &Next Unfinished + &Наступний незавершений + + + Next unfinished item + Наступний незавершений елемент + + + Move to the next unfinished item. + Перейти до наступного незавершеного елементу. + + + Ctrl+J + + + + P&rev + П&опередній + + + Move to previous item + Перейти до попереднього елементу + + + Move to the previous item. + Перейти до попереднього елементу. + + + Ctrl+Shift+K + + + + Ne&xt + Н&аступний + + + Next item + Наступний елемент + + + Move to the next item. + Перейти до наступного елементу. + + + Ctrl+Shift+J + + + + &Done and Next + &Готово і наступний + + + Mark item as done and move to the next unfinished item + Помітити елемент як завершений та перейти до наступного незавершеного елементу + + + Mark this item as done and move to the next unfinished item. + Помітити цей елемент як завершений та перейти до наступного незавершеного елементу. + + + Copy from source text + Копіювати з оригінального тексту + + + Copies the source text into the translation field + Копіює оригінальний текст в поле перекладу + + + Copies the source text into the translation field. + Копіює оригінальний текст в поле перекладу. + + + Ctrl+B + + + + &Accelerators + &Акселератори + + + Toggle the validity check of accelerators + Перемикання перевірки правильності акселераторів + + + 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. + Перемикання перевірки акселераторів, тобто чи співпадає кількість амперсандів в оригінальному та перекладеному тексті. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + + + &Ending Punctuation + &Кінцева пунктуація + + + Toggle the validity check of ending punctuation + Перемикання перевірки правильності кінцевої пунктуації + + + Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. + Перемикання перевірки кінцевої пунктуації. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + + + &Phrase matches + Співпадіння &фраз + + + Toggle checking that phrase suggestions are used + Перемикання перевірки, що пропозиції фраз були застосовані + + + Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. + Перемикання перевірки про використання запропонованих фраз. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + + + Place &Marker Matches + Співпадіння &маркерів положення + + + Toggle the validity check of place markers + Перемикання перевірки правильності маркерів розташування + + + 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. + Перемикання перевірки правильності маркерів розташування, тобто чи усі %1, %2, ... співпадають в оригінальному та перекладеному тексті. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + + + &New Phrase Book... + &Новий глосарій... + + + Create a new phrase book. + Створити новий глосарій. + + + Ctrl+N + + + + &Open Phrase Book... + &Відкрити глосарій... + + + Open a phrase book to assist translation. + Відкрити глосарій для допомоги в перекладі. + + + Ctrl+H + + + + &Reset Sorting + С&кинути сортування + + + Sort the items back in the same order as in the message file. + Сортувати елементи в тому ж порядку, що й в файлі повідомлень. + + + &Display guesses + &Показувати підказки + + + Set whether or not to display translation guesses. + Встановлює показувати чи ні підказки перекладу. + + + &Statistics + &Статистика + + + Display translation statistics. + Показати статистку перекладу. + + + &Manual + &Посібник + + + F1 + + + + About Qt Linguist + Про Qt Linguist + + + About Qt + Про Qt + + + Display information about the Qt toolkit by Nokia. + Показати інформацію про інструментарій Qt від Nokia. + + + &What's This? + &Що це? + + + What's This? + Що це? + + + Enter What's This? mode. + Перехід в режим "Що це?". + + + Shift+F1 + Shift+F1 + + + &Search And Translate... + Знайти &та перекласти... + + + Replace the translation on all entries that matches the search source text. + Замінити переклад усіх елементів, що співпадають з оригінальним текстом, що шукається. + + + &Batch Translation... + Пакетний перекла&д... + + + Batch translate all entries using the information in the phrase books. + Пакетно перекласти усі елементи використовуючи інформацію з глосаріїв. + + + Release As... + Скомпілювати як... + + + 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. + Створення файла повідомлень Qt придатного для використання програмами з поточного файлу повідомлень. Ім'я файла буде автоматично визначено з імені файлу TS. + + + File + Файл + + + Edit + Правка + + + Translation + Переклад + + + Validation + Перевірка + + + Help + Довідка + + + Open/Refresh Form &Preview + &Відкрити/оновити попередній перегляд форм + + + Form Preview Tool + Засіб попереднього перегляду форм + + + F5 + + + + Translation File &Settings... + Налаштування &файлу перекладу... + + + &Add to Phrase Book + Дод&ати до глосарію + + + Ctrl+T + + + + Open Read-O&nly... + Відкрити лише для &читання... + + + &Save All + &Зберегти усе + + + Ctrl+S + + + + &Release All + &Скомпілювати все + + + Close + Закрити + + + &Close All + З&акрити усе + + + Ctrl+W + + + + Length Variants + Варіанти перекладу + + + + This is the application's main window. + Це головне вікно програми. + + + + Source text + Оригінальний текст + + + Index + Індекс + + + Context + Контекст + + + Items + Елементи + + + This panel lists the source contexts. + В цій панелі перераховані оригінальні контексти. + + + Strings + Рядки + + + Phrases and guesses + Фрази та підказки + + + Sources and Forms + Коди та форми + + + Warnings + Попередження + + + MOD + status bar: file(s) modified + ЗМІ + + + Loading... + Завантажується... + + + Loading File - Qt Linguist + Завантаження файлу - Qt Linguist + + + The file '%1' does not seem to be related to the currently open file(s) '%2'. + +Close the open file(s) first? + Не схоже, що файл '%1' пов'язаний з жодним з відкритим зараз файлом '%2'. + +Закрити спочатку відкриті файли? + + + 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? + Не схоже, що файл '%1' пов'язаний з файлом '%2', що також завантажується. + +Пропустити завантаження першого вказаного файлу? + + + %n translation unit(s) loaded. + + %n одиниця перекладу завантажена. + %n одиниці перекладу завантажені. + %n одиниць перекладу завантажено. + + + + Related files (%1);; + Пов'язані файли (%1);; + + + Open Translation Files + Відкрити файли перекладу + + + File saved. + Файл збережено. + + + Qt message files for released applications (*.qm) +All files (*) + Файли повідомлень Qt для готовий програм (*.qm) +Всі файли (*) + + + File created. + Файл створено. + + + Printing... + Друкується... + + + Context: %1 + Контекст: %1 + + + finished + завершено + + + unresolved + нерозв'язаний + + + obsolete + застарілий + + + Printing... (page %1) + Друк... (сторінка %1) + + + Printing completed + Друк завершено + + + Printing aborted + Друк перервано + + + Search wrapped. + Пошук з початку. + + + Qt Linguist + Qt Linguist + + + Cannot find the string '%1'. + Неможливо знайти рядок '%1. + + + Search And Translate in '%1' - Qt Linguist + Пошук та переклад і '%1' - Qt Linguist + + + Translate - Qt Linguist + Переклад - Qt Linguist + + + Translated %n entry(s) + + Перекладено %n елемент + Перекладено %n елементи + Перекладено %n елементів + + + + No more occurrences of '%1'. Start over? + Більше співпадінь '%1' немає. Почати спочатку? + + + Create New Phrase Book + Створити новий глосарій + + + Qt phrase books (*.qph) +All files (*) + Глосарії Q (*.qph) +Всі файли (*) + + + Phrase book created. + Глосарій створено. + + + Open Phrase Book + Відкрити глосарій + + + Qt phrase books (*.qph);;All files (*) + Глосарії Q (*.qph);;Всі файли (*) + + + %n phrase(s) loaded. + + %n фразу завантажено. + %n фрази завантажено. + %n фраз завантажено. + + + + Add to phrase book + Додати до глосарію + + + No appropriate phrasebook found. + Не знайдено відповідного глосарію. + + + Adding entry to phrasebook %1 + Додавання елементу до глосарію %1 + + + Select phrase book to add to + Оберіть глосарій, в який бажаєте додати + + + Unable to launch Qt Assistant (%1) + Неможливо запустити Qt Assistant (%1) + + + Version %1 + Версія %1 + + + <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). + <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist - це засіб для додавання перекладів до програм на Qt.</p><p>Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії. + + + Do you want to save the modified files? + Бажаєте зберегти модифіковані файли? + + + Do you want to save '%1'? + Бажаєте зберегти '%1'? + + + Qt Linguist[*] + Qt Linguist[*] + + + %1[*] - Qt Linguist + %1[*] - Qt Linguist + + + No untranslated translation units left. + Неперекладених одиниць не залишилось. + + + &Window + Вікн&о + + + Minimize + Мінімізувати + + + Ctrl+M + + + + Display the manual for %1. + Показати посібник для %1. + + + Display information about %1. + Показати інформацію про %1. + + + &Save '%1' + &Зберегти '%1' + + + Save '%1' &As... + Зберегти '%1' &як... + + + Release '%1' + Скомпілювати '%1' + + + Release '%1' As... + Скомпілювати '%1' як... + + + &Close '%1' + З&акрити '%1' + + + &Save + &Зберегти + + + &Close + З&акрити + + + Save All + Зберегти усе + + + Close All + Закрити усе + + + &Release + &Скомпілювати + + + Translation File &Settings for '%1'... + Налаштування &файлу перекладу для '%1'... + + + &Batch Translation of '%1'... + Пакетний перекла&д '%1'... + + + Search And &Translate in '%1'... + Знайти &та переклад '%1'... + + + Search And &Translate... + Знайти &та перекласти... + + + Cannot read from phrase book '%1'. + Неможливо прочитати з глосарію '%1'. + + + Close this phrase book. + Закрити цей глосарій. + + + Enables you to add, modify, or delete entries in this phrase book. + Дозволяє вам додавати, модифікувати та видаляти елементи глосарію. + + + Print the entries in this phrase book. + Друку елементів цього глосарію. + + + Cannot create phrase book '%1'. + Неможливо створити глосарій '%1'. + + + Do you want to save phrase book '%1'? + Бажаєте зберегти глосарій '%1'? + + + All + Усе + + + + MessageEditor + + + This is the right panel of the main window. + Це права панель основного вікна. + + + + Russian + Російська + + + German + Німецька + + + Japanese + Японська + + + French + Французька + + + Polish + Польська + + + Chinese + Китайська + + + This whole panel allows you to view and edit the translation of some source text. + Ця панель дозволяє вам переглядати та редагувати переклад деякого оригінального тексту. + + + Source text + Оригінальний текст + + + This area shows the source text. + В цій області відображається оригінальний текст. + + + Source text (Plural) + Оригінальний текст (множина) + + + This area shows the plural form of the source text. + В цій області відображається множина оригінального тексту. + + + Developer comments + Коментарі розробника + + + This area shows a comment that may guide you, and the context in which the text occurs. + В цій області відображається коментар, який може допомогти вам та контекст, в якому зустрічається текст. + + + Here you can enter comments for your own use. They have no effect on the translated applications. + Тут ви можете вводити коментарі для власного вжитку. Вони не впливають на перекладені програми. + + + %1 translation (%2) + %1 переклад (%2) + + + This is where you can enter or modify the translation of the above source text. + Тут ви можете чи змінювати переклад оригінального тексту, наведеного вище. + + + %1 translation + %1 переклад + + + %1 translator comments + %1 коментар перекладача + + + '%1' +Line: %2 + '%1' +Рядок: %2 + + + + MessageModel + + Completion status for %1 + Статус завершеності для %1 + + + <file header> + <заголовок файлу> + + + <context comment> + <контекстний коментар> + + + <unnamed context> + <контекст без назви> + + + + PhraseBookBox + + Edit Phrase Book + Редагування глосарію + + + This window allows you to add, modify, or delete entries in a phrase book. + Це вікно дозволяє вам додавати, модифікувати та видаляти елементи глосарію. + + + &Translation: + &Переклад: + + + This is the phrase in the target language corresponding to the source phrase. + Це фраза на мові перекладу, що відповідає оригінальній фразі. + + + S&ource phrase: + &Оригінальна фраза: + + + This is a definition for the source phrase. + Це визначення оригінальної фрази. + + + This is the phrase in the source language. + Це фраза мовою оригіналу. + + + &Definition: + &Визначення: + + + Click here to add the phrase to the phrase book. + Клацніть тут, щоб додати фразу до глосарію. + + + &New Entry + &Новий запис + + + Click here to remove the entry from the phrase book. + Клацніть тут, щоб видалити фразу з глосарію. + + + &Remove Entry + Ви&далити запис + + + Settin&gs... + Нала&штування... + + + Click here to save the changes made. + Клацніть тут, щоб зберегти зроблені зміни. + + + &Save + &Зберегти + + + Click here to close this window. + Клацніть тут щоб закрити вікно. + + + Close + Закрити + + + + Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox. + Йдіть в Фрази > Редагувати глосарій... З'явиться діалог PhraseBookBox. + + + + (New Entry) + (Новий запис) + + + %1[*] - Qt Linguist + %1[*] - Qt Linguist + + + Qt Linguist + Qt Linguist + + + Cannot save phrase book '%1'. + Неможливо зберегти глосарій '%1'. + + + + PhraseModel + + Source phrase + Оригінальна фраза + + + Translation + Переклад + + + Definition + Визначення + + + + PhraseView + + Insert + Вставити + + + Edit + Редагувати + + + Guess (%1) + Підказка (%1) + + + Guess + Підказка + + + + QObject + + Translation files (%1);; + Файли перекладу (%1);; + + + All files (*) + Всі файли (*) + + + Qt Linguist + Qt Linguist + + + GNU Gettext localization files + Файли локалізації GNU Gettext + + + GNU Gettext localization template files + Файли шаблонів локалізації GNU Gettext + + + Compiled Qt translations + Скомпільовані переклади Qt + + + Qt Linguist 'Phrase Book' + 'Глосарій' Qt Linguist + + + Qt translation sources (format 1.1) + Файли перекладу Qt (формат 1.1) + + + Qt translation sources (format 2.0) + Файли перекладу Qt (формат 2.0) + + + Qt translation sources (latest format) + Файли перекладу Qt (останній формат) + + + XLIFF localization files + Файли локалізації XLIFF + + + + SourceCodeView + + <i>Source code not available</i> + <i>Код недоступний</i> + + + <i>File %1 not available</i> + <i>Файл %1 не доступний</i> + + + <i>File %1 not readable</i> + <i>Неможливо прочитати файл %1</i> + + + + Statistics + + Statistics + Статистика + + + Close + Закрити + + + Translation + Переклад + + + Source + Оригінал + + + 0 + 0 + + + Words: + Слів: + + + Characters: + Символів: + + + Characters (with spaces): + Символів (з пропусками): + + + + TranslateDialog + + This window allows you to search for some text in the translation source file. + Це вікно дозволяє вам шукати текст в файлі перекладу. + + + Type in the text to search for. + Введіть текст для пошуку. + + + Find &source text: + &Знайти оригінальний текст: + + + &Translate to: + &Перекласти як: + + + Search options + Опції пошуку + + + Texts such as 'TeX' and 'tex' are considered as different when checked. + Якщо відмічено, то рядки 'приклад' та 'прИкЛад' будуть вважатись різними. + + + Match &case + Враховувати &регістр + + + Mark new translation as &finished + Позначати нові переклади &як завершені + + + Click here to find the next occurrence of the text you typed in. + Клацніть тут, щоб знайти наступне співпадіння для введеного вами тексту. + + + Find Next + Знайти наступний + + + Translate + Перекласти + + + Translate All + Перекласти усе + + + Click here to close this window. + Клацніть тут щоб закрити вікно. + + + Cancel + Скасувати + + + + TranslationSettingsDialog + + Source language + Мова оригіналу + + + Language + Мова + + + Country/Region + Країна/регіон + + + Target language + Мова перекладу + + + Settings for '%1' - Qt Linguist + Налаштування для '%1' - Qt Linguist + + + Any Country + Будь-яка країна + + + diff --git a/translations/qt_help_uk.ts b/translations/qt_help_uk.ts new file mode 100644 index 0000000..1687959 --- /dev/null +++ b/translations/qt_help_uk.ts @@ -0,0 +1,320 @@ + + + + + QCLuceneResultWidget + + Search Results + Результати пошуку + + + Note: + Примітка: + + + The search results may not be complete since the documentation is still being indexed! + Результати пошуку можуть бути не повні, оскільки документація досі індексується! + + + Your search did not match any documents. + Ваш пошук не повернув результатів. + + + (The reason for this might be that the documentation is still being indexed.) + (Причиною цього може бути те, що документація досі індексується.) + + + + QHelp + + Untitled + Без назви + + + + QHelpCollectionHandler + + The collection file '%1' is not set up yet! + Файл колекції '%1' ще не встановлено! + + + Cannot load sqlite database driver! + Неможливо завантажити драйвер бази даних sqlite! + + + Cannot open collection file: %1 + Неможливо відкрити файл колекції: %1 + + + Cannot create tables in file %1! + Неможливо створити таблиці в файлі %1! + + + The collection file '%1' already exists! + Файл колекції '%1' вже існує! + + + Cannot create directory: %1 + Неможливо створити теку: %1 + + + Cannot copy collection file: %1 + Неможливо скопіювати файл колекції: %1 + + + Unknown filter '%1'! + Невідомий фільтр '%1'! + + + Cannot register filter %1! + Неможливо зареєструвати фільтр %1! + + + Cannot open documentation file %1! + Неможливо відкрити файл документації %1! + + + Invalid documentation file '%1'! + Неправильний файл документації '%1'! + + + The namespace %1 was not registered! + Простір імен %1 не зареєстровано! + + + Namespace %1 already exists! + Простір імен %1 вже існує! + + + Cannot register namespace '%1'! + Неможливо зареєструвати простір імен '%1'! + + + Cannot open database '%1' to optimize! + Неможливо відкрити базу даних '%1' для оптимізації! + + + + QHelpDBReader + + Cannot open database '%1' '%2': %3 + 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 + Не можу відкрити базу даних '%1' '%2': %3 + + + + QHelpEngineCore + + Cannot open documentation file %1: %2! + Не можу відкрити файл документації %1: %2! + + + The specified namespace does not exist! + Вказаний простір імен не існує! + + + + QHelpGenerator + + Invalid help data! + Неправильні дані довідки! + + + No output file name specified! + Не вказане ім'я вихідного файлу! + + + The file %1 cannot be overwritten! + Неможливо перезаписати файл %1! + + + Building up file structure... + Побудова структури файлу.... + + + Cannot open data base file %1! + Неможливо відкрити файл бази даних %1! + + + Cannot register namespace %1! + Неможливо зареєструвати простір імен %1! + + + Insert custom filters... + Вставка фільтрів користувача... + + + Insert help data for filter section (%1 of %2)... + Вставка даних довідки для розділу фільтра (%1 з %2)... + + + Documentation successfully generated. + Документацію успішно згенеровано. + + + Some tables already exist! + Деякі таблиці вже існують! + + + Cannot create tables! + Неможливо створити таблиці! + + + Cannot register virtual folder! + Неможливо зареєструвати віртуальну теку! + + + Insert files... + Вставка файлів... + + + The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. + Файл %1 має бути всередині підтеки (%2). Пропускаємо його. + + + The file %1 does not exist! Skipping it. + Файл %1 не існує! Пропускаємо його. + + + Cannot open file %1! Skipping it. + Неможливо відкрити файл %1! Пропускаємо його. + + + The filter %1 is already registered! + Фільтр %1 вже зареєстровано! + + + Cannot register filter %1! + Неможливо зареєструвати фільтр %1! + + + Insert indices... + Вставка індексів... + + + Insert contents... + Вставка змісту... + + + Cannot insert contents! + Неможливо вставити зміст! + + + Cannot register contents! + Неможливо зареєструвати зміст! + + + File '%1' does not exist. + Файл '%1' не існує. + + + File '%1' cannot be opened. + Неможливо відкрити файл '%1'. + + + File '%1' contains an invalid link to file '%2' + Файл '%1' містить неправильне посилання до файлу '%2' + + + Invalid links in HTML files. + Неправильні посилання в файлах HTML. + + + + QHelpProject + + Unknown token. + Невідомий токен. + + + Unknown token. Expected "QtHelpProject"! + Невідомий токен. Очікувався "QtHelpProject"! + + + Error in line %1: %2 + Помилка в рядку %1: %2 + + + Virtual folder has invalid syntax. + Віртуальна тека має неправильний синтаксис. + + + Namespace has invalid syntax. + Простір імен має неправильний синтаксис. + + + Missing namespace in QtHelpProject. + Відсутній простір імен в QtHelpProject. + + + Missing virtual folder in QtHelpProject + Відсутня віртуальна тека в QtHelpProject + + + Missing attribute in keyword at line %1. + Відсутній атрибут в ключовому слові на рядку %1. + + + The input file %1 could not be opened! + Неможливо відкрити вхідний файл %1! + + + + QHelpSearchQueryWidget + + Search for: + Шукати: + + + Previous search + Попередній пошук + + + Next search + Наступний пошук + + + Search + Шукати + + + Advanced search + Розширений пошук + + + words <B>similar</B> to: + слова <B>схожі</B> на: + + + <B>without</B> the words: + <B>без</B> слів: + + + with <B>exact phrase</B>: + з <B>точною фразою</B>: + + + with <B>all</B> of the words: + з <B>усіма</B> словами: + + + with <B>at least one</B> of the words: + з <B>щонайменше одним</B> зі слів: + + + + QHelpSearchResultWidget + + %1 - %2 of %n Hits + + %1 - %2 з %n співпадіння + %1 - %2 з %n співпадінь + %1 - %2 з %n співпадінь + + + + 0 - 0 of 0 Hits + 0 - 0 з 0 співпадінь + + + diff --git a/translations/qtconfig_uk.ts b/translations/qtconfig_uk.ts new file mode 100644 index 0000000..9d5b0a7 --- /dev/null +++ b/translations/qtconfig_uk.ts @@ -0,0 +1,717 @@ + + + + + MainWindow + + Desktop Settings (Default) + Налаштування стільниці (Типово) + + + Choose style and palette based on your desktop settings. + Оберіть стиль та палітру відповідно до ваших налаштувань стільниці. + + + On The Spot + У вікні документу + + + Auto (default) + Автоматично (типово) + + + Choose audio output automatically. + Вибрати аудіо вихід автоматично. + + + aRts + aRts + + + Experimental aRts support for GStreamer. + Експериментальна підтримка aRts для GStreamer. + + + Phonon GStreamer backend not available. + Підтримка GStreamer для Phonon не доступна. + + + Choose render method automatically + Обрати метод вімальовки автоматично + + + X11 + X11 + + + Use X11 Overlays + Використовувати оверлеї X11 + + + OpenGL + OpenGL + + + Use OpenGL if available + Використовувати OpenGL, якщо доступно + + + Software + Програмно + + + Use simple software rendering + Використовувати простий програмний рендеринг + + + No changes to be saved. + Немає змін для збереження. + + + Saving changes... + Збереження змін... + + + Over The Spot + Над вікном документу + + + Off The Spot + В рядку стану + + + Root + В додатковому вікні + + + Select a Directory + Оберіть теку + + + <h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + <h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + + + Qt Configuration + Конфігурація Qt + + + Save Changes + Зберегти зміни + + + Save changes to settings? + Зберегти зміни до налаштувань? + + + &Yes + &Так + + + &No + &Ні + + + &Cancel + &Скасувати + + + + MainWindowBase + + Qt Configuration + Конфігурація Qt + + + Appearance + Вигляд + + + GUI Style + Стиль GUI + + + Select GUI &Style: + Оберіть &стиль GUI: + + + Preview + Попередній перегляд + + + Select &Palette: + Виберіть &палітру: + + + Active Palette + Активна палітра + + + Inactive Palette + Неактивна палітра + + + Disabled Palette + Вимкнена палітра + + + Build Palette + Створити палітру + + + &3-D Effects: + &3-D ефекти: + + + Window Back&ground: + Фон &вікна: + + + &Tune Palette... + &Налаштувати палітру... + + + Please use the KDE Control Center to set the palette. + Будь-ласка, використовуйте Системні параметри KDE, щоб встановити палітру. + + + Fonts + Шрифти + + + Default Font + Типовий шрифт + + + &Style: + &Стиль: + + + &Point Size: + &Розмір: + + + F&amily: + &Шрифт: + + + Sample Text + Зразок тексту + + + Font Substitution + Заміна шрифтів + + + S&elect or Enter a Family: + &Виберіть чи введіть шрифт: + + + Current Substitutions: + Поточні заміни: + + + Up + Вгору + + + Down + Вниз + + + Remove + Видалити + + + Select s&ubstitute Family: + &Оберіть шрифт, яким заміняти: + + + Add + Додати + + + Interface + Інтерфейс + + + Feel Settings + Поведінка миші + + + ms + мс + + + &Double Click Interval: + &Інтервал подвійного клацання: + + + No blinking + Без блимання + + + &Cursor Flash Time: + &Час блимання курсору: + + + lines + рядків + + + Wheel &Scroll Lines: + &Коліщатко прокручує: + + + Resolve symlinks in URLs + Вирішувати символьні посилання в URL + + + GUI Effects + Ефекти GUI + + + &Enable + &Увімкнути + + + Alt+E + + + + &Menu Effect: + Ефект &меню: + + + C&omboBox Effect: + Ефект випадаючого &списку: + + + &ToolTip Effect: + Ефект &підказки: + + + Tool&Box Effect: + Ефект панелі &інструментів: + + + Disable + Вимкнуто + + + Animate + Анімація + + + Fade + Згасання + + + Global Strut + Мінімальний розмір віджетів + + + Minimum &Width: + Мінімальна &ширина: + + + Minimum Hei&ght: + Мінімальна &висота: + + + pixels + пікселів + + + Enhanced support for languages written right-to-left + Розширена підтримка для, що пишуться справа наліво + + + XIM Input Style: + Стиль введення XIM: + + + On The Spot + У вікні документу + + + Over The Spot + Над вікном документу + + + Off The Spot + В рядку стану + + + Root + В додатковому вікні + + + Default Input Method: + Типовий метод введення: + + + Printer + Принтер + + + Enable Font embedding + Увімкнути вживлення шрифтів + + + Font Paths + Шляхи до шрифтів + + + Browse... + Огляд... + + + Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. + Натисніть кнопку <b>Огляд</b> чи введіть теку та натисніть Enter, щоб додати її до списку. + + + Phonon + Phonon + + + About Phonon + Про Phonon + + + Current Version: + Поточна версія: + + + Not available + Не доступна + + + Website: + Веб-сайт: + + + <!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> + + + + About GStreamer + Про GStreamer + + + <!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> + + + + GStreamer backend settings + Налаштування модуля GStreamer + + + Preferred audio sink: + Бажаний аудіо вихід: + + + Preferred render method: + Бажаний метод рендерингу: + + + <!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;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> + <!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;"><span style=" font-style:italic;">Примітка: зміни до цих налаштувань можуть заважати правильному запуску програм.</span></p></body></html> + + + &File + &Файл + + + &Help + &Довідка + + + &Save + &Зберегти + + + Save + Зберегти + + + Ctrl+S + Ctrl+S + + + E&xit + Ви&йти + + + Exit + Вийти + + + &About + &Про + + + About + Про + + + About &Qt + Про &Qt + + + About Qt + Про Qt + + + + PaletteEditorAdvancedBase + + Tune Palette + Налаштувати палітру + + + <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> + <b>Редагування палітри</b><p>Змінити палітру поточного віджета чи форми.</p><p>Використовуйте згенеровану палітру чи оберіть кольори для кожної групи кольорів та кожної кольорової ролі.</p><p>Палітру можна протестувати з різними розміщеннями віджетів в секції попереднього перегляду.</p> + + + Select &Palette: + Виберіть &палітру: + + + Active Palette + Активна палітра + + + Inactive Palette + Неактивна палітра + + + Disabled Palette + Вимкнена палітра + + + Auto + Автоматично + + + Build inactive palette from active + Будувати неактивну палітру з активної + + + Build disabled palette from active + Будувати вимкнену палітру з активної + + + Central color &roles + Головні кольорові &ролі + + + Choose central color role + Оберіть головну кольорову роль + + + <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> + <b>Вибір кольорової ролі.</b><p>Доступні наступні головні ролі: <ul> <li>Вікно - загальний колір фону.</li> <li>Текст вікна - загальний колір переднього плану. </li> <li>Базовий - використовується як колір фону, наприклад, для віджетів для введення тексту, зазвичай білий або інший світлий колір. </li> <li>Текст - колір переднього плану, що використовується разом з базовим. Зазвичай співпадає з "Текст вікна", і в цьому випадку має забезпечувати гарний контраст і з "Вікном", і з "Базовим". </li> <li>Кнопка - загальний колір фону кнопки, там де кнопки потребуються інший від "Вікна" фон, як в стилі Macintosh. </li> <li>Текст кнопки - колір переднього плану, що застосовується разом з кольором "Кнопки". </li> <li>Підсвічений - колір для індикації виділеного чи підсвіченого елементу. </li> <li>Підсвічений текст - колір тексту, що контрастує з "Підсвіченим". </li> <li>Яскравий текст - колір тексту, що суттєво відрізняється від "Тексту вікна" та добре контрастує з чорним, наприклад. </li> </ul> </p> + + + Window + Вікно + + + WindowText + Текст вікна + + + Button + Кнопка + + + Base + Базовий + + + Text + Текст + + + BrightText + Яскравий текст + + + ButtonText + Текст кнопки + + + Highlight + Підсвічений + + + HighlightedText + Підсвічений текст + + + &Select Color: + &Оберіть колір: + + + Choose a color + Оберіть колір + + + Choose a color for the selected central color role. + Виберіть колір для вказаної головної кольорової ролі. + + + 3-D shadow &effects + 3-D &ефекти тіні + + + Build &from button color + Будувати &з кольору кнопки + + + Generate shadings + Генерувати тіні + + + Check to let 3D-effect colors be calculated from button-color. + Увімкніть, щоб кольори 3D-ефектів розраховувались з кольору кнопки. + + + Choose 3D-effect color role + Оберіть роль для 3D-ефектів + + + <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> + <b>Оберіть кольорову роль.</b><p>Доступні наступні ролі ефектів: <ul> <li>Світлий - світліше ніж колір кнопки. </li> <li>Напівсвітлий - між "Кнопкою" та "Світлим". </li> <li>Напівтемний - між "Кнопкою" та "Темним". </li> <li>Темний - темніший ніж "Кнопка". </li> <li>Тінь - дуже темний колір. </li> </ul> + + + Light + Світлий + + + Midlight + Напівсвітлий + + + Mid + Напівтемний + + + Dark + Темний + + + Shadow + Тінь + + + Select Co&lor: + Оберіть &колір: + + + Choose a color for the selected effect color role. + Оберіть колір для вказаної кольорової ролі ефектів. + + + OK + OK + + + Close dialog and apply all changes. + Закрити діалог та застосувати усі зміни. + + + Cancel + Скасувати + + + Close dialog and discard all changes. + Закрити діалог та відкинути усі зміни. + + + + PreviewFrame + + Desktop settings will only take effect after an application restart. + Налаштування стільниці будуть застосовані лише після перезапуску програми. + + + + PreviewWidgetBase + + Preview Window + Вікно попереднього перегляду + + + ButtonGroup + Група кнопок + + + RadioButton1 + Перемикач 1 + + + RadioButton2 + Перемикач 2 + + + RadioButton3 + Перемикач 3 + + + ButtonGroup2 + Група кнопок 2 + + + CheckBox1 + Прапорець 1 + + + CheckBox2 + Прапорець 2 + + + LineEdit + Поле введення + + + ComboBox + Випадаючий список + + + PushButton + Кнопка + + + <p> +<a href="http://qt.nokia.com">http://qt.nokia.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p> + <p> +<a href="http://qt.nokia.com">http://qt.nokia.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p> + + + diff --git a/translations/qvfb_uk.ts b/translations/qvfb_uk.ts new file mode 100644 index 0000000..142863b --- /dev/null +++ b/translations/qvfb_uk.ts @@ -0,0 +1,276 @@ + + + + + AnimationSaveWidget + + Record + Записати + + + Reset + Відновити + + + Save + Зберегти + + + Save in MPEG format (requires netpbm package installed) + Зберегти в форматі MPEG (необхідний встановлений пакунок netpbm) + + + Click record to begin recording. + Клацніть "Записати", щоб розпочати запис. + + + Finished saving. + Збереження завершено. + + + Paused. Click record to resume, or save if done. + Зупинено. Клацніть "Записати", щоб продовжити, або "Зберегти" якщо готово. + + + Pause + Пауза + + + Recording... + Записую... + + + Saving... + Зберігаю... + + + Save animation... + Зберегти анімацію... + + + Save canceled. + Збереження скасовано. + + + Save failed! + Збереження провалилось! + + + + Config + + Configure + Конфігурування + + + Size + Розмір + + + 176x220 "SmartPhone" + 176x220 "Смартфон" + + + 240x320 "PDA" + 240x320 "PDA" + + + 320x240 "TV" / "QVGA" + 320x240 "TV" / "QVGA" + + + 640x480 "VGA" + 640x480 "VGA" + + + 800x480 + 800x480 + + + 800x600 + 800x600 + + + 1024x768 + 1024x768 + + + Custom + Користувацький + + + Depth + Глибина кольору + + + 1 bit monochrome + 1 біт монохромний + + + 2 bit grayscale + 2 біти сірий + + + 4 bit grayscale + 4 біти сірий + + + 8 bit + 8 біт + + + 12 (16) bit + 12 (16) біт + + + 15 bit + 15 біт + + + 16 bit + 16 біт + + + 18 bit + 18 біт + + + 24 bit + 24 біти + + + 32 bit + 32 біти + + + 32 bit ARGB + 32 біти ARGB + + + Swap red and blue channels + Поміняти червоний та блакитний канали + + + BGR format + Формат BGR + + + Skin + Обкладинка + + + None + Немає + + + Emulate touch screen (no mouse move) + Емулювати тачскрін (без пересувань миші) + + + Emulate LCD screen (Only with fixed zoom of 3.0 times magnification) + Емулювати LCD-екран (Лише фіксований масштаб з 3x збільшенням) + + + <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>. + <p>Зверніть увагу, що будь-який додаток, який використовує віртуальний фреймбуфер буде закрито, якщо ви зміните розмір чи глибину кольору <i>зверху</i>. Ви можете довільно змінювати гамму <i>знизу</i>. + + + Gamma + Гамма + + + Blue + Блакитний + + + 1.0 + 1,0 + + + Green + Зелений + + + All + Усі + + + Red + Червоний + + + Set all to 1.0 + Встановити усі в 1.0 + + + &OK + &OK + + + &Cancel + &Скасувати + + + + DeviceSkin + + The image file '%1' could not be loaded. + Неможливо завантажити файл зображення '%1'. + + + The skin directory '%1' does not contain a configuration file. + Тека обкладинки '%1' не містить конфігураційного файлу. + + + The skin configuration file '%1' could not be opened. + Неможливо відкрити конфігураційний файл '%1'. + + + The skin configuration file '%1' could not be read: %2 + Неможливо прочитати конфігураційний файл '%1': %2 + + + Syntax error: %1 + Синтаксична помилка: %1 + + + The skin "up" image file '%1' does not exist. + Зображення обкладинки "вгору" '%1' не існує. + + + The skin "down" image file '%1' does not exist. + Зображення обкладинки "вниз" '%1' не існує. + + + The skin "closed" image file '%1' does not exist. + Зображення обкладинки "закрито" '%1' не існує. + + + The skin cursor image file '%1' does not exist. + Зображення обкладинки для курсору '%1' не існує. + + + Syntax error in area definition: %1 + Синтаксична помилка в описі області: %1 + + + Mismatch in number of areas, expected %1, got %2. + Не співпадає кількість областей, очікувалось %1, отримано %2. + + + + QVFb + + Browse... + Оглянути... + + + Load Custom Skin... + Завантажити обкладинку користувача... + + + All QVFB Skins (*.skin) + Усі обкладинки QVFB (*.skin) + + + -- cgit v0.12 From 23e5a48e77f1b30905fbc6d4fa8d91b88d152c0d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 12:59:14 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/index.qdoc | 3 ++- doc/src/overviews.qdoc | 1 - doc/src/windows-and-dialogs/dialogs.qdoc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index ded57f5..1032e30 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -66,7 +66,8 @@
      -
    • Basic Qt Architecture
    • +
    • Qt Basic Concepts
    • +
    • Qt GUI Concepts
    • Cross-platform & Platform-specific Development
    • Qt & standard technologies
    • Qt How-to's & best practices
    • diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc index b72df98..a1773a3 100644 --- a/doc/src/overviews.qdoc +++ b/doc/src/overviews.qdoc @@ -29,7 +29,6 @@ \page overviews.html \title All Overviews and HOWTOs - \ingroup qt-basic-concepts \generatelist overviews */ diff --git a/doc/src/windows-and-dialogs/dialogs.qdoc b/doc/src/windows-and-dialogs/dialogs.qdoc index f6649fd..960d7be 100644 --- a/doc/src/windows-and-dialogs/dialogs.qdoc +++ b/doc/src/windows-and-dialogs/dialogs.qdoc @@ -28,12 +28,12 @@ /*! \group standard-dialogs \ingroup qt-basic-concepts - \title Standard Dialog Classes + \title Standard Dialogs + \brief A list of Qt classes for implementing standard dialogs. */ /*! \group dialog-classes - \ingroup qt-basic-concepts \title Classes for Building Dialogs */ -- cgit v0.12 From d3ab1fccea2b1e011e7518269a29045a53f0a30b Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Mon, 9 Aug 2010 09:47:31 +0300 Subject: Pending surface might not get destroyed if no flush() happens in between graphics system change. This patch ensures that all old surfaces are destroyed before new graphics system is activated. Reviewed-by: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 2 +- src/gui/painting/qgraphicssystem_runtime.cpp | 19 ++++++------------- src/gui/painting/qgraphicssystem_runtime_p.h | 4 ++-- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index a14b1a7..c3824f9 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1067,7 +1067,7 @@ void QSymbianControl::Draw(const TRect& controlRect) const if (QApplicationPrivate::runtime_graphics_system) { QRuntimeWindowSurface *rtSurface = static_cast(qwidget->windowSurface()); - s60Surface = static_cast(rtSurface->m_windowSurface); + s60Surface = static_cast(rtSurface->m_windowSurface.data()); } else #endif s60Surface = static_cast(qwidget->windowSurface()); diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp index be04df6..e1e0ad0 100644 --- a/src/gui/painting/qgraphicssystem_runtime.cpp +++ b/src/gui/painting/qgraphicssystem_runtime.cpp @@ -251,7 +251,7 @@ QPixmapData* QRuntimePixmapData::runtimeData() const } QRuntimeWindowSurface::QRuntimeWindowSurface(const QRuntimeGraphicsSystem *gs, QWidget *window) - : QWindowSurface(window), m_windowSurface(0), m_pendingWindowSurface(0), m_graphicsSystem(gs) + : QWindowSurface(window), m_graphicsSystem(gs) { } @@ -259,7 +259,6 @@ QRuntimeWindowSurface::QRuntimeWindowSurface(const QRuntimeGraphicsSystem *gs, Q QRuntimeWindowSurface::~QRuntimeWindowSurface() { m_graphicsSystem->removeWindowSurface(this); - delete m_windowSurface; } QPaintDevice *QRuntimeWindowSurface::paintDevice() @@ -278,8 +277,7 @@ void QRuntimeWindowSurface::flush(QWidget *widget, const QRegion ®ion, #ifdef QT_DEBUG qDebug() << "QRuntimeWindowSurface::flush() - destroy pending window surface"; #endif - delete m_pendingWindowSurface; - m_pendingWindowSurface = 0; + m_pendingWindowSurface.reset(); } } @@ -355,7 +353,7 @@ QWindowSurface *QRuntimeGraphicsSystem::createWindowSurface(QWidget *widget) con { Q_ASSERT(m_graphicsSystem); QRuntimeWindowSurface *rtSurface = new QRuntimeWindowSurface(this, widget); - rtSurface->m_windowSurface = m_graphicsSystem->createWindowSurface(widget); + rtSurface->m_windowSurface.reset(m_graphicsSystem->createWindowSurface(widget)); widget->setWindowSurface(rtSurface); m_windowSurfaces << rtSurface; return rtSurface; @@ -379,7 +377,6 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name) for (int i = 0; i < m_pixmapDatas.size(); ++i) { QRuntimePixmapData *proxy = m_pixmapDatas.at(i); QPixmapData *newData = m_graphicsSystem->createPixmapData(proxy->m_data); - // ### TODO Optimize. Openvg and s60raster graphics systems could switch internal ARGB32_PRE QImage buffers. newData->fromImage(proxy->m_data->toImage(), Qt::NoOpaqueDetection); delete proxy->m_data; proxy->m_data = newData; @@ -390,14 +387,10 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name) QRuntimeWindowSurface *proxy = m_windowSurfaces.at(i); QWidget *widget = proxy->m_windowSurface->window(); - if(m_windowSurfaceDestroyPolicy == DestroyImmediately) { - delete proxy->m_windowSurface; - proxy->m_pendingWindowSurface = 0; - } else { - proxy->m_pendingWindowSurface = proxy->m_windowSurface; - } + if(m_windowSurfaceDestroyPolicy == DestroyAfterFirstFlush) + proxy->m_pendingWindowSurface.reset(proxy->m_windowSurface.take()); - proxy->m_windowSurface = m_graphicsSystem->createWindowSurface(widget); + proxy->m_windowSurface.reset(m_graphicsSystem->createWindowSurface(widget)); qt_widget_private(widget)->invalidateBuffer(widget->rect()); } } diff --git a/src/gui/painting/qgraphicssystem_runtime_p.h b/src/gui/painting/qgraphicssystem_runtime_p.h index d4c9152..0232241 100644 --- a/src/gui/painting/qgraphicssystem_runtime_p.h +++ b/src/gui/painting/qgraphicssystem_runtime_p.h @@ -129,8 +129,8 @@ public: virtual QPoint offset(const QWidget *widget) const; - QWindowSurface *m_windowSurface; - QWindowSurface *m_pendingWindowSurface; + QScopedPointer m_windowSurface; + QScopedPointer m_pendingWindowSurface; private: const QRuntimeGraphicsSystem *m_graphicsSystem; -- cgit v0.12 From 24742e54332a71db0bc5ae7b1632924ae592aea7 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Mon, 9 Aug 2010 13:39:51 +0200 Subject: OpenGL: Fix multisample renderbuffer creation when MAX_SAMPLES is 0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, we would try to create one with samples = 1 anyway, potentially resulting in an INVALID_VALUE error. Task-number: QTBUG-12757 Reviewed-by: Samuel Rødal --- src/opengl/qglframebufferobject.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp index deffc20..9b8a3d1 100644 --- a/src/opengl/qglframebufferobject.cpp +++ b/src/opengl/qglframebufferobject.cpp @@ -445,11 +445,11 @@ void QGLFramebufferObjectPrivate::init(QGLFramebufferObject *q, const QSize &sz, GLint maxSamples; glGetIntegerv(GL_MAX_SAMPLES_EXT, &maxSamples); - samples = qBound(1, int(samples), int(maxSamples)); + samples = qBound(0, int(samples), int(maxSamples)); glGenRenderbuffers(1, &color_buffer); glBindRenderbuffer(GL_RENDERBUFFER_EXT, color_buffer); - if (glRenderbufferStorageMultisampleEXT) { + if (glRenderbufferStorageMultisampleEXT && samples > 0) { glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, internal_format, size.width(), size.height()); } else { -- cgit v0.12 From 7d39a66fe88c039876285b21b592de20cf2e78ed Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 13:40:48 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/widgets-and-layouts/widgets.qdoc | 1 - doc/src/windows-and-dialogs/dialogs.qdoc | 7 +------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/doc/src/widgets-and-layouts/widgets.qdoc b/doc/src/widgets-and-layouts/widgets.qdoc index baf3dce..fbce744 100644 --- a/doc/src/widgets-and-layouts/widgets.qdoc +++ b/doc/src/widgets-and-layouts/widgets.qdoc @@ -29,7 +29,6 @@ \page widgets-and-layouts.html \title Widgets and Layouts \ingroup qt-gui-concepts - \ingroup qt-basic-concepts \brief The primary elements for designing user interfaces in Qt. \section1 Widgets diff --git a/doc/src/windows-and-dialogs/dialogs.qdoc b/doc/src/windows-and-dialogs/dialogs.qdoc index 960d7be..bcf9c0e 100644 --- a/doc/src/windows-and-dialogs/dialogs.qdoc +++ b/doc/src/windows-and-dialogs/dialogs.qdoc @@ -27,17 +27,12 @@ /*! \group standard-dialogs - \ingroup qt-basic-concepts + \ingroup qt-gui-concepts \title Standard Dialogs \brief A list of Qt classes for implementing standard dialogs. */ /*! - \group dialog-classes - \title Classes for Building Dialogs -*/ - -/*! \page dialogs.html \title Dialog Windows \ingroup qt-gui-concepts -- cgit v0.12 From 631b56c7e8e628c3399faeab3932338195073a38 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 13:45:12 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/index.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index 1032e30..c1c63da 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -68,7 +68,7 @@
    • Qt Basic Concepts
    • Qt GUI Concepts
    • -
    • Cross-platform & Platform-specific Development
    • +
    • Cross-platform & Platform-specific dev
    • Qt & standard technologies
    • Qt How-to's & best practices
    -- cgit v0.12 From 75bd4d9b1f14b1aea085af3f6714c06ab6ae1cd2 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 9 Aug 2010 16:11:30 +1000 Subject: PathView required some diagonal movement before a drag was initiated. Any movement beyond the threshold is sufficient. Task-number: 12747 Reviewed-by: Joona Petrell --- src/declarative/graphicsitems/qdeclarativepathview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 06ac275..5771f84 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -1061,7 +1061,7 @@ void QDeclarativePathView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) if (!d->stealMouse) { QPointF delta = event->pos() - d->startPoint; - if (qAbs(delta.x()) > QApplication::startDragDistance() && qAbs(delta.y()) > QApplication::startDragDistance()) + if (qAbs(delta.x()) > QApplication::startDragDistance() || qAbs(delta.y()) > QApplication::startDragDistance()) d->stealMouse = true; } -- cgit v0.12 From 5f611f5a68a0994b46dbe696e5275c4fb40b7470 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 10:58:23 +1000 Subject: Explain Flipable example further --- src/declarative/graphicsitems/qdeclarativeflipable.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp index 8c9d2dd..b266273 100644 --- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp @@ -83,10 +83,16 @@ public: \image flipable.gif - The \l Rotation element is used to specify the angle and axis of the flip, - and the \l State defines the changes in angle which produce the flipping - effect. Finally, the \l Transition creates the animation that changes the - angle over one second. + The \l Rotation element is used to specify the angle and axis of the flip. + When \c flipped is \c true, the item changes to the "back" state, where + the angle is changed to 180 degrees to produce the flipping effect. + Finally, the \l Transition creates the animation that changes the + angle over one second: when the item changes between its "back" and + default states, the NumberAnimation animates the angle between + its old and new values. + + See the \l {QML States} and \l {QML Animation} documentation for more + details on state changes and how animations work within transitions. \sa {declarative/ui-components/flipable}{Flipable example} */ -- cgit v0.12 From 7c05fdc74c6ad04c549bf367f68e3f9d8d2c438d Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 10:58:43 +1000 Subject: Merge sections about when property and default state --- doc/src/declarative/qdeclarativestates.qdoc | 95 ++++++++++++++++++----------- 1 file changed, 59 insertions(+), 36 deletions(-) diff --git a/doc/src/declarative/qdeclarativestates.qdoc b/doc/src/declarative/qdeclarativestates.qdoc index 0b91756..274040a 100644 --- a/doc/src/declarative/qdeclarativestates.qdoc +++ b/doc/src/declarative/qdeclarativestates.qdoc @@ -84,18 +84,34 @@ Rectangle. \snippet doc/src/snippets/declarative/states.qml 0 -A \l State item defines all the changes to be made in the new state. You +The \l State item defines all the changes to be made in the new state. It could specify additional properties to be changed, or create additional -PropertyChanges for other objects. (Note that a \l State can modify the -properties of other objects, not just the object that owns the state.) +PropertyChanges for other objects. It can also modify the properties of other +objects, not just the object that owns the state. For example: -For example: +\qml +Rectangle { + ... + states: [ + State { + name: "moved" + PropertyChanges { target: myRect; x: 50; y: 50; color: "blue" } + PropertyChanges { target: someOtherItem; width: 1000 } + } + ] +} +\endqml + +As a convenience, if an item only has one state, its \l {Item::}{states} +property can be defined as a single \l State, without the square-brace list +syntax: \qml -State { - name: "moved" - PropertyChanges { target: myRect; x: 50; y: 50; color: "blue" } - PropertyChanges { target: someOtherItem; width: 1000 } +Item { + ... + states: State { + ... + } } \endqml @@ -118,54 +134,61 @@ transitions between them. Of course, the \l Rectangle in the example above could have simply been moved by setting its position to (50, 50) in the mouse area's \c onClicked handler. -However, aside from enabling batched property changes, the use of states allows -an item to revert to its \e {default state}, which contains all of the items' -initial property values before they were modified in a state change. +However, aside from enabling batched property changes, one of the features of +QML states is the ability of an item to revert to its \e {default state}. +The default state contains all of an item's initial property values before +they were modified in a state change. -The default state is specified by an empty string. If the MouseArea in the -above example was changed to this: +For example, suppose the \l Rectangle should move to (50,50) when the mouse is +pressed, and then move back to its original position when the mouse is +released. This can be achieved by using the \l {State::}{when} property, +like this: -\qml -MouseArea { - anchors.fill: parent - onClicked: myRect.state == 'moved' ? myRect.state = "" : myRect.state = 'moved'; -} -\endqml - -This would toggle the \l Rectangle's state between the \e moved and \e default -states when clicked. The properties can be reverted to their initial -values without requiring the definition of another \l State that defines these -value changes. +\qml +Rectangle { + ... + MouseArea { + id: mouseArea + anchors.fill: parent + } + states: State { + name: "moved"; when: mouseArea.pressed + ... + } +} +\endqml -\section1 The "when" property +The \l {State::}{when} property is set to an expression that evaluates to +\c true when the item should be set to that state. When the mouse is pressed, +the state is changed to \e moved. When it is released, the item reverts to its +\e default state, which defines all of the item's original property values. -The \l {State::}{when} property is useful for specifying when a state should be -applied. This can be set to an expression that evaluates to \c true when an -item should change to a particular state. +Alternatively, an item can be explicitly set to its default state by setting its +\l {Item::}{state} property to an empty string (""). For example, instead of +using the \l {State::}{when} property, the above code could be changed to: -If the above example was changed to this: - \qml Rectangle { ... MouseArea { - id: mouseArea anchors.fill: parent + onPressed: myRect.state = 'moved'; + onReleased: myRect.state = ''; } states: State { - name: "moved"; when: mouseArea.pressed + name: "moved" ... } +} \endqml -The \l Rectangle would automatically change to the \e moved state when the -mouse is pressed, and revert to the default state when it is released. This is -simpler (and a better, more declarative method) than creating \c onPressed -and \c onReleased handlers in the MouseArea to set the current state. +Obviously it makes sense to use the \l {State::}{when} property when possible +as it provides a simpler (and a better, more declarative) solution than +assigning the state from signal handlers. \section1 Animating state changes -- cgit v0.12 From 380335c8b8afd302f2f3f783163b2563ee9a122a Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 11:10:22 +1000 Subject: Mention QML_IMPORT_TRACE in Modules docs --- doc/src/declarative/modules.qdoc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 9e51a40..467b7d0 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -302,5 +302,13 @@ For examples of \c qmldir files for plugins, see the \l {declarative/cppextensions/plugins}{Plugins} example and \l {Tutorial: Writing QML extensions with C++}. + +\section1 Debugging + +The \c QML_IMPORT_TRACE environment variable can be useful for debugging +when there are problems with finding and loading modules. See +\l{Debugging module imports} for more information. + + */ / -- cgit v0.12 From 45f6c749ff5f1773a5a52f1b40278ad390f3ae59 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 9 Aug 2010 17:08:23 +1000 Subject: XmlListModel doc fixes Task-number: QTBUG-12749 --- src/declarative/util/qdeclarativexmllistmodel.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp index 7c1e1fd..8bd829e 100644 --- a/src/declarative/util/qdeclarativexmllistmodel.cpp +++ b/src/declarative/util/qdeclarativexmllistmodel.cpp @@ -560,7 +560,7 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListPropertyprogress; } +/*! + \qmlmethod void XmlListModel::errorString() + + Returns a string description of the last error that occurred + if \l status is XmlListModel::Error. +*/ QString QDeclarativeXmlListModel::errorString() const { Q_D(const QDeclarativeXmlListModel); -- cgit v0.12 From 7829343dc9e12befd6c471cc72d00139bad5d42b Mon Sep 17 00:00:00 2001 From: Carlos Manuel Duclos Vergara Date: Mon, 9 Aug 2010 13:42:26 +0200 Subject: CreateFileMapping returns NULL on error , only tested with INVALID_HANDLE_VALUE. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit That code is deprecated for the most part, however under certain circumstances could be run. The fix is to check the value when using the deprecated code and change the return value to follow the logic of the new code. Task-number: QTBUG-12732 Reviewed-by: João Abecasis --- src/corelib/io/qfsfileengine_win.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 21930e1..35fa04b 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -1958,6 +1958,10 @@ uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + // Since this is a special case, we check if the return value was NULL and if so + // we change it to INVALID_HANDLE_VALUE to follow the logic inside this function. + if(0 == handle) + handle = INVALID_HANDLE_VALUE; #endif if (handle == INVALID_HANDLE_VALUE) { -- cgit v0.12 From eea84818e98af917d3cf2bf04ea17a416ef9d55e Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 9 Aug 2010 13:55:23 +0200 Subject: Correcting spelling mistakes in documentation. Part of fix for QTBUG-11938. Reviewer: David Boddie Task number: QTBUG-11938 --- demos/books/bookwindow.cpp | 2 +- demos/browser/browsermainwindow.cpp | 2 +- demos/browser/webview.cpp | 2 +- demos/qtdemo/menumanager.cpp | 2 +- src/corelib/concurrent/qtconcurrentfilter.cpp | 2 +- src/corelib/concurrent/qtconcurrentmap.cpp | 2 +- src/corelib/concurrent/qtconcurrentresultstore.cpp | 2 +- src/corelib/io/qfileinfo.cpp | 4 ++-- src/corelib/thread/qmutexpool.cpp | 2 +- src/corelib/tools/qbytearraymatcher.h | 2 +- src/corelib/tools/qstringmatcher.h | 2 +- src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp | 2 +- src/declarative/qml/qdeclarativecompiledbindings.cpp | 2 +- src/declarative/qml/qdeclarativecomponent.cpp | 4 ++-- src/declarative/qml/qdeclarativeimageprovider.cpp | 2 +- src/declarative/qml/qdeclarativeinstruction.cpp | 2 +- src/declarative/qml/qdeclarativeproperty.cpp | 2 +- src/declarative/qml/qdeclarativescriptparser.cpp | 2 +- src/gui/embedded/qkbdlinuxinput_qws.cpp | 2 +- src/gui/embedded/qkbdqnx_qws.cpp | 2 +- src/gui/itemviews/qsortfilterproxymodel.cpp | 2 +- src/gui/kernel/qapplication_s60.cpp | 4 ++-- src/gui/kernel/qwidget_win.cpp | 4 ++-- src/gui/widgets/qcommandlinkbutton.cpp | 2 +- src/gui/widgets/qmainwindowlayout.cpp | 2 +- src/gui/widgets/qmenu.cpp | 4 ++-- src/gui/widgets/qmenubar.cpp | 2 +- src/gui/widgets/qprintpreviewwidget.cpp | 2 +- src/gui/widgets/qtoolbarextension.cpp | 2 +- src/network/kernel/qhostinfo.cpp | 2 +- src/network/socket/qabstractsocket.cpp | 2 +- src/network/socket/qlocalsocket_win.cpp | 2 +- src/network/socket/qnativesocketengine_unix.cpp | 2 +- src/network/ssl/qsslsocket.cpp | 2 +- src/opengl/qgl.cpp | 2 +- src/qt3support/widgets/q3gridview.cpp | 2 +- src/script/api/qscriptcontext.cpp | 2 +- src/tools/moc/moc.cpp | 2 +- tools/qdoc3/htmlgenerator.cpp | 4 ++-- 39 files changed, 45 insertions(+), 45 deletions(-) diff --git a/demos/books/bookwindow.cpp b/demos/books/bookwindow.cpp index 089d5e0..c801283 100644 --- a/demos/books/bookwindow.cpp +++ b/demos/books/bookwindow.cpp @@ -64,7 +64,7 @@ BookWindow::BookWindow() model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->setTable("books"); - // Remeber the indexes of the columns + // Remember the indexes of the columns authorIdx = model->fieldIndex("author"); genreIdx = model->fieldIndex("genre"); diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp index 8c2ed89..50c2cf8 100644 --- a/demos/browser/browsermainwindow.cpp +++ b/demos/browser/browsermainwindow.cpp @@ -670,7 +670,7 @@ void BrowserMainWindow::slotPrivateBrowsing() " items are automatically removed from the Downloads window," \ " new cookies are not stored, current cookies can't be accessed," \ " site icons wont be stored, session wont be saved, " \ - " and searches are not addded to the pop-up menu in the Google search box." \ + " and searches are not added to the pop-up menu in the Google search box." \ " Until you close the window, you can still click the Back and Forward buttons" \ " to return to the webpages you have opened.").arg(title); diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp index 2f9b3e6..2cbd2f1 100644 --- a/demos/browser/webview.cpp +++ b/demos/browser/webview.cpp @@ -260,7 +260,7 @@ void WebView::setProgress(int progress) void WebView::loadFinished() { if (100 != m_progress) { - qWarning() << "Recieved finished signal while progress is still:" << progress() + qWarning() << "Received finished signal while progress is still:" << progress() << "Url:" << url(); } m_progress = 0; diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp index c9ffecb..5b851b4 100644 --- a/demos/qtdemo/menumanager.cpp +++ b/demos/qtdemo/menumanager.cpp @@ -449,7 +449,7 @@ void MenuManager::init(MainWindow *window) window->scene->setStickyFocus(true); window->setFocus(); }else{ - qDebug() << "Error intializing QML subsystem, Declarative examples will not work"; + qDebug() << "Error initializing QML subsystem, Declarative examples will not work"; } } diff --git a/src/corelib/concurrent/qtconcurrentfilter.cpp b/src/corelib/concurrent/qtconcurrentfilter.cpp index 36febe7..29c3edb 100644 --- a/src/corelib/concurrent/qtconcurrentfilter.cpp +++ b/src/corelib/concurrent/qtconcurrentfilter.cpp @@ -117,7 +117,7 @@ function, and should merge the \e{intermediate} into the \e{result} variable. QtConcurrent::filteredReduced() guarantees that only one thread will call reduce at a time, so using a mutex to lock the result variable - is not neccesary. The QtConcurrent::ReduceOptions enum provides a way to + is not necessary. The QtConcurrent::ReduceOptions enum provides a way to control the order in which the reduction is done. \section1 Additional API Features diff --git a/src/corelib/concurrent/qtconcurrentmap.cpp b/src/corelib/concurrent/qtconcurrentmap.cpp index e74d69c..4303ff6 100644 --- a/src/corelib/concurrent/qtconcurrentmap.cpp +++ b/src/corelib/concurrent/qtconcurrentmap.cpp @@ -161,7 +161,7 @@ function, and should merge the \e{intermediate} into the \e{result} variable. QtConcurrent::mappedReduced() guarantees that only one thread will call reduce at a time, so using a mutex to lock the result variable - is not neccesary. The QtConcurrent::ReduceOptions enum provides a way to + is not necessary. The QtConcurrent::ReduceOptions enum provides a way to control the order in which the reduction is done. If QtConcurrent::UnorderedReduce is used (the default), the order is undefined, while QtConcurrent::OrderedReduce ensures that the reduction diff --git a/src/corelib/concurrent/qtconcurrentresultstore.cpp b/src/corelib/concurrent/qtconcurrentresultstore.cpp index ad4b2cf..65f3afa 100644 --- a/src/corelib/concurrent/qtconcurrentresultstore.cpp +++ b/src/corelib/concurrent/qtconcurrentresultstore.cpp @@ -236,7 +236,7 @@ int ResultStoreBase::count() const return resultCount; } -// returns the insert index, calling this funciton with +// returns the insert index, calling this function with // index equal to -1 returns the next available index. int ResultStoreBase::updateInsertIndex(int index, int _count) { diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 37591c5..61f7180 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -797,12 +797,12 @@ QString QFileInfo::suffix() const \bold{Note:} The QDir returned always corresponds to the object's parent directory, even if the QFileInfo represents a directory. - For each of the follwing, dir() returns a QDir for + For each of the following, dir() returns a QDir for \c{"~/examples/191697"}. \snippet doc/src/snippets/fileinfo/main.cpp 0 - For each of the follwing, dir() returns a QDir for + For each of the following, dir() returns a QDir for \c{"."}. \snippet doc/src/snippets/fileinfo/main.cpp 1 diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp index d9abdc5..59211fb 100644 --- a/src/corelib/thread/qmutexpool.cpp +++ b/src/corelib/thread/qmutexpool.cpp @@ -46,7 +46,7 @@ QT_BEGIN_NAMESPACE -// qt_global_mutexpool is here for backwards compatability only, +// qt_global_mutexpool is here for backwards compatibility only, // use QMutexpool::instance() in new clode. Q_CORE_EXPORT QMutexPool *qt_global_mutexpool = 0; Q_GLOBAL_STATIC_WITH_ARGS(QMutexPool, globalMutexPool, (QMutex::Recursive)) diff --git a/src/corelib/tools/qbytearraymatcher.h b/src/corelib/tools/qbytearraymatcher.h index 8e7bc21..d3db4e9 100644 --- a/src/corelib/tools/qbytearraymatcher.h +++ b/src/corelib/tools/qbytearraymatcher.h @@ -78,7 +78,7 @@ private: QByteArrayMatcherPrivate *d; QByteArray q_pattern; #ifdef Q_CC_RVCT -// explicitely allow anonymous unions for RVCT to prevent compiler warnings +// explicitly allow anonymous unions for RVCT to prevent compiler warnings # pragma push # pragma anon_unions #endif diff --git a/src/corelib/tools/qstringmatcher.h b/src/corelib/tools/qstringmatcher.h index 1aafcb8..451aeb6 100644 --- a/src/corelib/tools/qstringmatcher.h +++ b/src/corelib/tools/qstringmatcher.h @@ -78,7 +78,7 @@ private: QString q_pattern; Qt::CaseSensitivity q_cs; #ifdef Q_CC_RVCT -// explicitely allow anonymous unions for RVCT to prevent compiler warnings +// explicitly allow anonymous unions for RVCT to prevent compiler warnings # pragma push # pragma anon_unions #endif diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index ceb1961..a489b5a 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -525,7 +525,7 @@ QVariant QDeclarativeVisualDataModelDataMetaObject::initialValue(int propId) QVariant value = model->m_listModelInterface->data(data->m_index, *it); return value; } else if (model->m_roles.count() == 1 && propName == "modelData") { - //for compatability with other lists, assign modelData if there is only a single role + //for compatibility with other lists, assign modelData if there is only a single role QVariant value = model->m_listModelInterface->data(data->m_index, model->m_roles.first()); return value; } diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp index 507e47b..723da94 100644 --- a/src/declarative/qml/qdeclarativecompiledbindings.cpp +++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp @@ -1628,7 +1628,7 @@ void QDeclarativeBindingCompiler::dump(const QByteArray &programData) /*! Clear the state associated with attempting to compile a specific binding. -This does not clear the global "commited binding" states. +This does not clear the global "committed binding" states. */ void QDeclarativeBindingCompilerPrivate::resetInstanceState() { diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 1d48b1a..5f4a063 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -192,7 +192,7 @@ class QByteArray; \value Null This QDeclarativeComponent has no data. Call loadUrl() or setData() to add QML content. \value Ready This QDeclarativeComponent is ready and create() may be called. \value Loading This QDeclarativeComponent is loading network data. - \value Error An error has occured. Call errors() to retrieve a list of \{QDeclarativeError}{errors}. + \value Error An error has occurred. Call errors() to retrieve a list of \{QDeclarativeError}{errors}. */ void QDeclarativeComponentPrivate::typeDataReady() @@ -518,7 +518,7 @@ void QDeclarativeComponent::loadUrl(const QUrl &url) } /*! - Return the list of errors that occured during the last compile or create + Return the list of errors that occurred during the last compile or create operation. An empty list is returned if isError() is not set. */ QList QDeclarativeComponent::errors() const diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp index 241df87..27269b7 100644 --- a/src/declarative/qml/qdeclarativeimageprovider.cpp +++ b/src/declarative/qml/qdeclarativeimageprovider.cpp @@ -112,7 +112,7 @@ public: } \endcode - Now the images can be succesfully loaded in QML: + Now the images can be successfully loaded in QML: \image imageprovider.png diff --git a/src/declarative/qml/qdeclarativeinstruction.cpp b/src/declarative/qml/qdeclarativeinstruction.cpp index 0f7b09d..1767d2f 100644 --- a/src/declarative/qml/qdeclarativeinstruction.cpp +++ b/src/declarative/qml/qdeclarativeinstruction.cpp @@ -218,7 +218,7 @@ void QDeclarativeCompiledData::dump(QDeclarativeInstruction *instr, int idx) qWarning().nospace() << idx << "\t\t" << line << "\t" << "DEFER" << "\t\t\t" << instr->defer.deferCount; break; default: - qWarning().nospace() << idx << "\t\t" << line << "\t" << "XXX UNKOWN INSTRUCTION" << "\t" << instr->type; + qWarning().nospace() << idx << "\t\t" << line << "\t" << "XXX UNKNOWN INSTRUCTION" << "\t" << instr->type; break; } #endif // QT_NO_DEBUG_STREAM diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index 071dd07..515c4d6 100644 --- a/src/declarative/qml/qdeclarativeproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -640,7 +640,7 @@ QDeclarativePropertyPrivate::binding(const QDeclarativeProperty &that) is assumed by the caller. \a flags is passed through to the binding and is used for the initial update (when - the binding sets the intial value, it will use these flags for the write). + the binding sets the initial value, it will use these flags for the write). */ QDeclarativeAbstractBinding * QDeclarativePropertyPrivate::setBinding(const QDeclarativeProperty &that, diff --git a/src/declarative/qml/qdeclarativescriptparser.cpp b/src/declarative/qml/qdeclarativescriptparser.cpp index f703cf5..0657f49 100644 --- a/src/declarative/qml/qdeclarativescriptparser.cpp +++ b/src/declarative/qml/qdeclarativescriptparser.cpp @@ -760,7 +760,7 @@ bool ProcessAST::visit(AST::UiArrayBinding *node) prop->listValueRange.offset = node->lbracketToken.offset; prop->listValueRange.length = node->rbracketToken.offset + node->rbracketToken.length - node->lbracketToken.offset; - // Store the positions of the comma token too, again for the DOM to be able to retreive it. + // Store the positions of the comma token too, again for the DOM to be able to retrieve it. prop->listCommaPositions = collectCommas(node->members); while (propertyCount--) diff --git a/src/gui/embedded/qkbdlinuxinput_qws.cpp b/src/gui/embedded/qkbdlinuxinput_qws.cpp index 6c91a08..f53c444 100644 --- a/src/gui/embedded/qkbdlinuxinput_qws.cpp +++ b/src/gui/embedded/qkbdlinuxinput_qws.cpp @@ -138,7 +138,7 @@ QWSLinuxInputKbPrivate::QWSLinuxInputKbPrivate(QWSLinuxInputKeyboardHandler *h, // record the original mode so we can restore it again in the destructor. ::ioctl(m_tty_fd, KDGKBMODE, &m_orig_kbmode); - // setting this tranlation mode is even needed in INPUT mode to prevent + // setting this translation mode is even needed in INPUT mode to prevent // the shell from also interpreting codes, if the process has a tty // attached: e.g. Ctrl+C wouldn't copy, but kill the application. ::ioctl(m_tty_fd, KDSKBMODE, K_MEDIUMRAW); diff --git a/src/gui/embedded/qkbdqnx_qws.cpp b/src/gui/embedded/qkbdqnx_qws.cpp index fbc683e..72d1cb5 100644 --- a/src/gui/embedded/qkbdqnx_qws.cpp +++ b/src/gui/embedded/qkbdqnx_qws.cpp @@ -150,7 +150,7 @@ void QWSQnxKeyboardHandler::socketActivated() // figure out whether it's a press bool isPress = packet.data.key_cap & KEY_DOWN; - // figure out wheter the key is still pressed and the key event is repeated + // figure out whether the key is still pressed and the key event is repeated bool isRepeat = packet.data.key_cap & KEY_REPEAT; Qt::Key key = Qt::Key_unknown; diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp index f9b6b94..953a7f1 100644 --- a/src/gui/itemviews/qsortfilterproxymodel.cpp +++ b/src/gui/itemviews/qsortfilterproxymodel.cpp @@ -774,7 +774,7 @@ void QSortFilterProxyModelPrivate::source_items_inserted( if (model->rowCount(source_parent) == delta_item_count) { // Items were inserted where there were none before. // If it was new rows make sure to create mappings for columns so that a - // valid mapping can be retreived later and vice-versa. + // valid mapping can be retrieved later and vice-versa. QVector &orthogonal_proxy_to_source = (orient == Qt::Horizontal) ? m->source_rows : m->source_columns; QVector &orthogonal_source_to_proxy = (orient == Qt::Horizontal) ? m->proxy_rows : m->proxy_columns; diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 1f6a4ae..e36ebb9 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1328,7 +1328,7 @@ void qt_init(QApplicationPrivate * /* priv */, int) // framework destruction. TTrapHandler *origTrapHandler = User::TrapHandler(); - // The S60 framework has not been initalized. We need to do it. + // The S60 framework has not been initialized. We need to do it. TApaApplicationFactory factory(S60->s60ApplicationFactory ? S60->s60ApplicationFactory : newS60Application); CApaCommandLine* commandLine = 0; @@ -1506,7 +1506,7 @@ void qt_init(QApplicationPrivate * /* priv */, int) */ // Register WId with the metatype system. This is to enable - // QWidgetPrivate::create_sys to used delayed slot invokation in order + // QWidgetPrivate::create_sys to used delayed slot invocation in order // to destroy WId objects during reparenting. qRegisterMetaType("WId"); } diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index 23f57da..59035b1 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -166,7 +166,7 @@ static void qt_tablet_init() qt_tablet_widget = new QWidget(0); qt_tablet_widget->createWinId(); qt_tablet_widget->setObjectName(QLatin1String("Qt internal tablet widget")); - // We dont need this internal widget to appear in QApplication::topLevelWidgets() + // We don't need this internal widget to appear in QApplication::topLevelWidgets() if (QWidgetPrivate::allWidgets) QWidgetPrivate::allWidgets->remove(qt_tablet_widget); LOGCONTEXT lcMine; @@ -1547,7 +1547,7 @@ bool QWidgetPrivate::shouldShowMaximizeButton() { if (data.window_flags & Qt::MSWindowsFixedSizeDialogHint) return false; - // if the user explicitely asked for the maximize button, we try to add + // if the user explicitly asked for the maximize button, we try to add // it even if the window has fixed size. if (data.window_flags & Qt::CustomizeWindowHint && data.window_flags & Qt::WindowMaximizeButtonHint) diff --git a/src/gui/widgets/qcommandlinkbutton.cpp b/src/gui/widgets/qcommandlinkbutton.cpp index d3b5869..a6f5f7d 100644 --- a/src/gui/widgets/qcommandlinkbutton.cpp +++ b/src/gui/widgets/qcommandlinkbutton.cpp @@ -349,7 +349,7 @@ void QCommandLinkButton::paintEvent(QPaintEvent *) QStyleOptionButton option; initStyleOption(&option); - //Enable command link appearence on Vista + //Enable command link appearance on Vista option.features |= QStyleOptionButton::CommandLinkButton; option.text = QString(); option.icon = QIcon(); //we draw this ourselves diff --git a/src/gui/widgets/qmainwindowlayout.cpp b/src/gui/widgets/qmainwindowlayout.cpp index 593e391..62ee398 100644 --- a/src/gui/widgets/qmainwindowlayout.cpp +++ b/src/gui/widgets/qmainwindowlayout.cpp @@ -943,7 +943,7 @@ void QMainWindowLayout::toggleToolBarsVisible() #ifdef Q_WS_MAC if (layoutState.mainWindow->unifiedTitleAndToolBarOnMac()) { // If we hit this case, someone has pressed the "toolbar button" which will - // toggle the unified toolbar visiblity, because that's what the user wants. + // toggle the unified toolbar visibility, because that's what the user wants. // We might be in a situation where someone has hidden all the toolbars // beforehand (maybe in construction), but now they've hit this button and // and are expecting the items to show. What do we do? diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index 7941c4e..4bea6de 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -262,7 +262,7 @@ void QMenuPrivate::updateActionRects() const const int deskFw = style->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, &opt, q); const int tearoffHeight = tearoff ? style->pixelMetric(QStyle::PM_MenuTearoffHeight, &opt, q) : 0; - //for compatability now - will have to refactor this away.. + //for compatibility now - will have to refactor this away tabWidth = 0; maxIconWidth = 0; hasCheckableItems = false; @@ -1154,7 +1154,7 @@ void QMenuPrivate::_q_actionHovered() bool QMenuPrivate::hasMouseMoved(const QPoint &globalPos) { - //determines if the mouse has moved (ie its intial position has + //determines if the mouse has moved (ie its initial position has //changed by more than QApplication::startDragDistance() //or if there were at least 6 mouse motions) return motions > 6 || diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp index e8e80b7..df16f7f 100644 --- a/src/gui/widgets/qmenubar.cpp +++ b/src/gui/widgets/qmenubar.cpp @@ -102,7 +102,7 @@ void QMenuBarExtension::paintEvent(QPaintEvent *) QStylePainter p(this); QStyleOptionToolButton opt; initStyleOption(&opt); - // We do not need to draw both extention arrows + // We do not need to draw both extension arrows opt.features &= ~QStyleOptionToolButton::HasMenu; p.drawComplexControl(QStyle::CC_ToolButton, opt); } diff --git a/src/gui/widgets/qprintpreviewwidget.cpp b/src/gui/widgets/qprintpreviewwidget.cpp index 45b15ef..ea311d3 100644 --- a/src/gui/widgets/qprintpreviewwidget.cpp +++ b/src/gui/widgets/qprintpreviewwidget.cpp @@ -469,7 +469,7 @@ void QPrintPreviewWidgetPrivate::setZoomFactor(qreal _zoomFactor) \o Create the QPrintPreviewWidget Construct the QPrintPreviewWidget either by passing in an - exisiting QPrinter object, or have QPrintPreviewWidget create a + existing QPrinter object, or have QPrintPreviewWidget create a default constructed QPrinter object for you. \o Connect the paintRequested() signal to a slot. diff --git a/src/gui/widgets/qtoolbarextension.cpp b/src/gui/widgets/qtoolbarextension.cpp index 032c6f0..574a775 100644 --- a/src/gui/widgets/qtoolbarextension.cpp +++ b/src/gui/widgets/qtoolbarextension.cpp @@ -75,7 +75,7 @@ void QToolBarExtension::paintEvent(QPaintEvent *) QStylePainter p(this); QStyleOptionToolButton opt; initStyleOption(&opt); - // We do not need to draw both extention arrows + // We do not need to draw both extension arrows opt.features &= ~QStyleOptionToolButton::HasMenu; p.drawComplexControl(QStyle::CC_ToolButton, opt); } diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp index 8ae1305..348b0d2 100644 --- a/src/network/kernel/qhostinfo.cpp +++ b/src/network/kernel/qhostinfo.cpp @@ -647,7 +647,7 @@ void QHostInfoLookupManager::lookupFinished(QHostInfoRunnable *r) work(); } -// This function returns immediatly when we had a result in the cache, else it will later emit a signal +// This function returns immediately when we had a result in the cache, else it will later emit a signal QHostInfo qt_qhostinfo_lookup(const QString &name, QObject *receiver, const char *member, bool *valid, int *id) { *valid = false; diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index b604e89..505db71 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1380,7 +1380,7 @@ void QAbstractSocket::connectToHostImplementation(const QString &hostName, quint #endif } else { if (d->threadData->eventDispatcher) { - // this internal API for QHostInfo either immediatly gives us the desired + // this internal API for QHostInfo either immediately gives us the desired // QHostInfo from cache or later calls the _q_startConnecting slot. bool immediateResultValid = false; QHostInfo hostInfo = qt_qhostinfo_lookup(hostName, diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index 4907f2c..1e0bced 100644 --- a/src/network/socket/qlocalsocket_win.cpp +++ b/src/network/socket/qlocalsocket_win.cpp @@ -306,7 +306,7 @@ void QLocalSocketPrivate::startAsyncRead() /*! \internal Sets the correct size of the read buffer after a read operation. - Returns false, if an error occured or the connection dropped. + Returns false, if an error occurred or the connection dropped. */ bool QLocalSocketPrivate::completeAsyncRead() { diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index f91ce5f..fe28863 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -562,7 +562,7 @@ int QNativeSocketEnginePrivate::nativeAccept() #else int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0); #endif - //check if we have vaild descriptor at all + //check if we have valid descriptor at all if(acceptedDescriptor > 0) { // Ensure that the socket is closed on exec*() ::fcntl(acceptedDescriptor, F_SETFD, FD_CLOEXEC); diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index f73068e..91265f3 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -210,7 +210,7 @@ valid. On failure, QSslSocket will emit the QSslSocket::sslErrors() signal. This mode is the default for clients. - \value AutoVerifyPeer QSslSocket will automaticaly use QueryPeer for + \value AutoVerifyPeer QSslSocket will automatically use QueryPeer for server sockets and VerifyPeer for client sockets. \sa QSslSocket::peerVerifyMode() diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 6120a85..4daa866 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -1991,7 +1991,7 @@ struct DDSFormat { option helps preserve this default behavior. \omitvalue CanFlipNativePixmapBindOption Used by x11 from pixmap to choose - wether or not it can bind the pixmap upside down or not. + whether or not it can bind the pixmap upside down or not. \omitvalue MemoryManagedBindOption Used by paint engines to indicate that the pixmap should be memory managed along side with diff --git a/src/qt3support/widgets/q3gridview.cpp b/src/qt3support/widgets/q3gridview.cpp index 343b49f..b270a38 100644 --- a/src/qt3support/widgets/q3gridview.cpp +++ b/src/qt3support/widgets/q3gridview.cpp @@ -84,7 +84,7 @@ using namespace Qt; size in a potentially scrollable canvas. If you need rows and columns with different sizes, use a Q3Table instead. If you need a simple list of items, use a Q3ListBox. If you need to present - hierachical data use a Q3ListView, and if you need random objects + hierarichal data use a Q3ListView, and if you need random objects at random positions, consider using either a Q3IconView or a Q3Canvas. */ diff --git a/src/script/api/qscriptcontext.cpp b/src/script/api/qscriptcontext.cpp index 1a11100..abaf5f9 100644 --- a/src/script/api/qscriptcontext.cpp +++ b/src/script/api/qscriptcontext.cpp @@ -324,7 +324,7 @@ QScriptValue QScriptContext::argumentsObject() const When a function is called as constructor, the thisObject() contains the newly constructed object to be initialized. - \note This function is only guarenteed to work for a context + \note This function is only guaranteed to work for a context corresponding to native functions. */ bool QScriptContext::isCalledAsConstructor() const diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index 84d1567..ac49d65 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -1211,7 +1211,7 @@ bool Moc::until(Token target) { //when searching commas within the default argument, we should take care of template depth (anglecount) // unfortunatelly, we do not have enough semantic information to know if '<' is the operator< or - // the begining of a template type. so we just use heuristics. + // the beginning of a template type. so we just use heuristics. int possible = -1; while (index < symbols.size()) { diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index d23b41e..eb33ce9 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -2027,7 +2027,7 @@ void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) } /*! - Generates a table of contents begining at \a node. + Generates a table of contents beginning at \a node. */ void HtmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker, @@ -2113,7 +2113,7 @@ void HtmlGenerator::generateTableOfContents(const Node *node, /*! Revised for the new doc format. - Generates a table of contents begining at \a node. + Generates a table of contents beginning at \a node. */ void HtmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker, -- cgit v0.12 From 6648d81c880012bad52380bd73bbe92d68260f7e Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 9 Aug 2010 14:27:50 +0200 Subject: doc: Fixed some qdoc errors. --- doc/src/frameworks-technologies/dnd.qdoc | 1 - doc/src/index.qdoc | 14 +++++++------- doc/src/overviews.qdoc | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/doc/src/frameworks-technologies/dnd.qdoc b/doc/src/frameworks-technologies/dnd.qdoc index c5dd27c..ebfa39e 100644 --- a/doc/src/frameworks-technologies/dnd.qdoc +++ b/doc/src/frameworks-technologies/dnd.qdoc @@ -30,7 +30,6 @@ \title Drag and Drop \brief An overview of the drag and drop system provided by Qt. - \ingroup technology-apis \ingroup qt-gui-concepts Drag and drop provides a simple visual mechanism which users can use diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index c1c63da..0609eb8 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -65,11 +65,10 @@
    @@ -78,8 +77,9 @@
  • Qt Quick
  • Introduction to QML
  • QML Elements
  • -
  • UI components
  • - +
  • Model/View Programming
  • +
  • Network Programming
  • +
  • Graphics and Printing
  • diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc index a1773a3..3c02705 100644 --- a/doc/src/overviews.qdoc +++ b/doc/src/overviews.qdoc @@ -63,7 +63,7 @@ /*! \group qt-graphics - \title Qt Graphics and Painting + \title Qt Graphics and Printing \brief The Qt components for doing graphics. -- cgit v0.12 From 720f4ca0ec3b42a101ac24b2cf74cdc87d29eac9 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 9 Aug 2010 14:11:46 +0200 Subject: Fix QString::arg: When specifying %L1, the group separator would be added even if the local specify QLocale::OmitGroupSeparator Task-number: QTBUG-9281 Reviewed-by: Denis --- src/corelib/tools/qstring.cpp | 13 ++++++++----- tests/auto/qstring/tst_qstring.cpp | 12 ++++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index d6ab5da..2fd9a0b 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -6645,8 +6645,9 @@ QString QString::arg(qlonglong a, int fieldWidth, int base, const QChar &fillCha QString locale_arg; if (d.locale_occurrences > 0) { QLocale locale; - locale_arg = locale.d()->longLongToString(a, -1, base, fieldWidth, - flags | QLocalePrivate::ThousandsGroup); + if (!locale.numberOptions() & QLocale::OmitGroupSeparator) + flags |= QLocalePrivate::ThousandsGroup; + locale_arg = locale.d()->longLongToString(a, -1, base, fieldWidth, flags); } return replaceArgEscapes(*this, d, fieldWidth, arg, locale_arg, fillChar); @@ -6688,8 +6689,9 @@ QString QString::arg(qulonglong a, int fieldWidth, int base, const QChar &fillCh QString locale_arg; if (d.locale_occurrences > 0) { QLocale locale; - locale_arg = locale.d()->unsLongLongToString(a, -1, base, fieldWidth, - flags | QLocalePrivate::ThousandsGroup); + if (!locale.numberOptions() & QLocale::OmitGroupSeparator) + flags |= QLocalePrivate::ThousandsGroup; + locale_arg = locale.d()->unsLongLongToString(a, -1, base, fieldWidth, flags); } return replaceArgEscapes(*this, d, fieldWidth, arg, locale_arg, fillChar); @@ -6822,7 +6824,8 @@ QString QString::arg(double a, int fieldWidth, char fmt, int prec, const QChar & if (d.locale_occurrences > 0) { QLocale locale; - flags |= QLocalePrivate::ThousandsGroup; + if (!locale.numberOptions() & QLocale::OmitGroupSeparator) + flags |= QLocalePrivate::ThousandsGroup; locale_arg = locale.d()->doubleToString(a, prec, form, fieldWidth, flags); } diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp index c887936..ef82769 100644 --- a/tests/auto/qstring/tst_qstring.cpp +++ b/tests/auto/qstring/tst_qstring.cpp @@ -208,6 +208,7 @@ private slots: void repeated_data() const; void task262677remove(); void QTBUG10404_compareRef(); + void QTBUG9281_arg_locale(); }; typedef QList IntList; @@ -4860,6 +4861,17 @@ void tst_QString::QTBUG10404_compareRef() QVERIFY(QStringRef(&a2, 1, 2).compare(QStringRef(&a, 1, 3), Qt::CaseInsensitive) < 0); } +void tst_QString::QTBUG9281_arg_locale() +{ + QLocale l(QLocale::English, QLocale::UnitedKingdom); + l.setNumberOptions(QLocale::OmitGroupSeparator); + QLocale::setDefault(l); + QString str("*%L1*%L2*"); + str = str.arg(123456).arg(1234.56); + QCOMPARE(str, QString::fromLatin1("*123456*1234.56*")); + QLocale::setDefault(QLocale::C); +} + QTEST_APPLESS_MAIN(tst_QString) -- cgit v0.12 From 163458f6363d32be453a186e02216f574f62dda3 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 9 Aug 2010 14:48:47 +0200 Subject: Added comment about calendarPopup in setCalendarWidget function documentation. Reviewer: David Boddie Task: QTBUG-12300 --- src/gui/widgets/qdatetimeedit.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/widgets/qdatetimeedit.cpp b/src/gui/widgets/qdatetimeedit.cpp index 50fa9c9..7a61dc7 100644 --- a/src/gui/widgets/qdatetimeedit.cpp +++ b/src/gui/widgets/qdatetimeedit.cpp @@ -754,6 +754,7 @@ QCalendarWidget *QDateTimeEdit::calendarWidget() const Sets the given \a calendarWidget as the widget to be used for the calendar pop-up. The editor does not automatically take ownership of the calendar widget. + \note calendarPopup must be set to true before setting the calendar widget. \sa calendarPopup */ void QDateTimeEdit::setCalendarWidget(QCalendarWidget *calendarWidget) -- cgit v0.12 From 3b9c811a658d45f6e84a98ac26a5d122b34254fc Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Mon, 9 Aug 2010 13:27:31 +0200 Subject: Fix invalid memory write during recursive timer activation The handler for one timer recurses the event loop, and the handler for another timer removes the first timer, returning from the recursion and the handler for the first timer causes an invalid write (since the timer info for the first timer has been deleted). Fix this by keeping an active reference in QTimerInfo (instead of just a bool inTimerEvent). If this is non-zero, the timer is currently being delivered, so we prevent more delivery. When a timer is removed and it's activateRef is set, we clear it so that the delivery code knows now to write to memory that's already been freed. A side effect of this change is that we no longer need to track the currentTimerInfo "globally" anymore, it can be a normal local variable in the QTimerInfoList::activateTimers() function. Task-number: QT-3553 Reviewed-by: olivier Reviewed-by: joao --- src/corelib/kernel/qeventdispatcher_unix.cpp | 31 ++++++++------------ src/corelib/kernel/qeventdispatcher_unix_p.h | 4 +-- tests/auto/qtimer/tst_qtimer.cpp | 44 ++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 20 deletions(-) diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index f7d45ac..9dadd82 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -331,7 +331,7 @@ QTimerInfoList::QTimerInfoList() } #endif - firstTimerInfo = currentTimerInfo = 0; + firstTimerInfo = 0; } timeval QTimerInfoList::updateCurrentTime() @@ -445,7 +445,7 @@ bool QTimerInfoList::timerWait(timeval &tm) // Find first waiting timer not already active QTimerInfo *t = 0; for (QTimerInfoList::const_iterator it = constBegin(); it != constEnd(); ++it) { - if (!(*it)->inTimerEvent) { + if (!(*it)->activateRef) { t = *it; break; } @@ -474,7 +474,7 @@ void QTimerInfoList::registerTimer(int timerId, int interval, QObject *object) t->interval.tv_usec = (interval % 1000) * 1000; t->timeout = updateCurrentTime() + t->interval; t->obj = object; - t->inTimerEvent = false; + t->activateRef = 0; timerInsert(t); } @@ -489,8 +489,8 @@ bool QTimerInfoList::unregisterTimer(int timerId) removeAt(i); if (t == firstTimerInfo) firstTimerInfo = 0; - if (t == currentTimerInfo) - currentTimerInfo = 0; + if (t->activateRef) + *(t->activateRef) = 0; // release the timer id if (!QObjectPrivate::get(t->obj)->inThreadChangeEvent) @@ -515,8 +515,8 @@ bool QTimerInfoList::unregisterTimers(QObject *object) removeAt(i); if (t == firstTimerInfo) firstTimerInfo = 0; - if (t == currentTimerInfo) - currentTimerInfo = 0; + if (t->activateRef) + *(t->activateRef) = 0; // release the timer id if (!QObjectPrivate::get(t->obj)->inThreadChangeEvent) @@ -552,10 +552,7 @@ int QTimerInfoList::activateTimers() bool firstTime = true; timeval currentTime; int n_act = 0, maxCount = count(); - - QTimerInfo *saveFirstTimerInfo = firstTimerInfo; - QTimerInfo *saveCurrentTimerInfo = currentTimerInfo; - firstTimerInfo = currentTimerInfo = 0; + firstTimerInfo = 0; while (maxCount--) { currentTime = updateCurrentTime(); @@ -567,7 +564,7 @@ int QTimerInfoList::activateTimers() if (isEmpty()) break; - currentTimerInfo = first(); + QTimerInfo *currentTimerInfo = first(); if (currentTime < currentTimerInfo->timeout) break; // no timer has expired @@ -594,21 +591,19 @@ int QTimerInfoList::activateTimers() if (currentTimerInfo->interval.tv_usec > 0 || currentTimerInfo->interval.tv_sec > 0) n_act++; - if (!currentTimerInfo->inTimerEvent) { + if (!currentTimerInfo->activateRef) { // send event, but don't allow it to recurse - currentTimerInfo->inTimerEvent = true; + currentTimerInfo->activateRef = ¤tTimerInfo; QTimerEvent e(currentTimerInfo->id); QCoreApplication::sendEvent(currentTimerInfo->obj, &e); if (currentTimerInfo) - currentTimerInfo->inTimerEvent = false; + currentTimerInfo->activateRef = 0; } } - firstTimerInfo = saveFirstTimerInfo; - currentTimerInfo = saveCurrentTimerInfo; - + firstTimerInfo = 0; return n_act; } diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h index cbe58de..060a163 100644 --- a/src/corelib/kernel/qeventdispatcher_unix_p.h +++ b/src/corelib/kernel/qeventdispatcher_unix_p.h @@ -77,7 +77,7 @@ struct QTimerInfo { timeval interval; // - timer interval timeval timeout; // - when to sent event QObject *obj; // - object to receive event - bool inTimerEvent; + QTimerInfo **activateRef; // - ref from activateTimers }; class QTimerInfoList : public QList @@ -92,7 +92,7 @@ class QTimerInfoList : public QList #endif // state variables used by activateTimers() - QTimerInfo *firstTimerInfo, *currentTimerInfo; + QTimerInfo *firstTimerInfo; public: QTimerInfoList(); diff --git a/tests/auto/qtimer/tst_qtimer.cpp b/tests/auto/qtimer/tst_qtimer.cpp index a0408ef..8d213ed 100644 --- a/tests/auto/qtimer/tst_qtimer.cpp +++ b/tests/auto/qtimer/tst_qtimer.cpp @@ -86,6 +86,7 @@ private slots: void timerIdPersistsAfterThreadExit(); void cancelLongTimer(); void singleShotStaticFunctionZeroTimeout(); + void recurseOnTimeoutAndStopTimer(); }; class TimerHelper : public QObject @@ -623,5 +624,48 @@ void tst_QTimer::singleShotStaticFunctionZeroTimeout() QCOMPARE(helper.count, 1); } +class RecursOnTimeoutAndStopTimerTimer : public QObject +{ + Q_OBJECT + +public: + QTimer *one; + QTimer *two; + +public slots: + void onetrigger() + { + QCoreApplication::processEvents(); + } + + void twotrigger() + { + one->stop(); + } +}; + +void tst_QTimer::recurseOnTimeoutAndStopTimer() +{ + QEventLoop eventLoop; + QTimer::singleShot(1000, &eventLoop, SLOT(quit())); + + RecursOnTimeoutAndStopTimerTimer t; + t.one = new QTimer(&t); + t.two = new QTimer(&t); + + QObject::connect(t.one, SIGNAL(timeout()), &t, SLOT(onetrigger())); + QObject::connect(t.two, SIGNAL(timeout()), &t, SLOT(twotrigger())); + + t.two->setSingleShot(true); + + t.one->start(); + t.two->start(); + + (void) eventLoop.exec(); + + QVERIFY(!t.one->isActive()); + QVERIFY(!t.two->isActive()); +} + QTEST_MAIN(tst_QTimer) #include "tst_qtimer.moc" -- cgit v0.12 From af3a204b8b3e780438c39425ba74338cc6a46a80 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 9 Aug 2010 17:38:05 +0200 Subject: configure: fix error message when calling config.status Calling configure in a shadow build directory led to error messages when trying to delete the content of $$QT_BUILD_TREE/mkspecs. Task-number: QTBUG-12764 Reviewed-by: ossi --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 74f5505..25f1ef5 100755 --- a/configure +++ b/configure @@ -2407,7 +2407,7 @@ if [ "$OPT_SHADOW" = "yes" ]; then # symlink the mkspecs directory mkdir -p "$outpath/mkspecs" - rm -f "$outpath"/mkspecs/* + rm -rf "$outpath"/mkspecs/* ln -s "$relpath"/mkspecs/* "$outpath/mkspecs" rm -f "$outpath/mkspecs/default" -- cgit v0.12 From 3833dc0a0535fa8320e17c741ca2746e9bebcaa9 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 9 Aug 2010 20:27:42 +0200 Subject: qdoc: Fixed non-well-formed markup. Reviewed-by: Trust Me To-be-really-reviewed-by: Qt Doc Team --- tools/qdoc3/htmlgenerator.cpp | 24 +++++++++++------------- tools/qdoc3/test/qt-html-templates.qdocconf | 3 ++- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index b1a8336..27d5b0f 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1717,7 +1717,7 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, out() << "\n"; } if (!cn->name().isEmpty()) - out() << "
  • " << cn->name() << "
  • \n"; + out() << "
  • " << protect(cn->name()) << "
  • \n"; } else if (node->type() == Node::Fake) { const FakeNode* fn = static_cast(node); @@ -1725,52 +1725,50 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, out() << "
  • Modules
  • "; QString name = node->name(); if (!name.isEmpty()) - out() << "
  • " << name << "
  • \n"; + out() << "
  • " << protect(name) << "
  • \n"; } else if (node->subType() == Node::Group) { if (fn->name() == QString("modules")) out() << "
  • Modules
  • "; else { - out() << "
  • " << title << "
  • "; + out() << "
  • " << protect(title) << "
  • "; } } else if (node->subType() == Node::Page) { if (fn->name() == QString("qdeclarativeexamples.html")) { out() << "
  • Examples
  • "; - out() << "
  • QML Examples & Demos
  • "; + out() << "
  • QML Examples & Demos
  • "; } else if (fn->name().startsWith("examples-")) { out() << "
  • Examples
  • "; - out() << "
  • " << title << "
  • "; + out() << "
  • " << protect(title) << "
  • "; } else if (fn->name() == QString("namespaces.html")) { out() << "
  • Namespaces
  • "; } else { - out() << "
  • " << title << "
  • "; + out() << "
  • " << protect(title) << "
  • "; } } else if (node->subType() == Node::QmlClass) { out() << "
  • QML Elements
  • "; - out() << "
  • " << title << "
  • "; + out() << "
  • " << protect(title) << "
  • "; } else if (node->subType() == Node::Example) { out() << "
  • Examples
  • "; QStringList sl = fn->name().split('/'); if (sl.contains("declarative")) - out() << "
  • QML Examples & Demos
  • "; + out() << "
  • QML Examples & Demos
  • "; else { - QString name = "examples-" + sl.at(0) + ".html"; // this generates an empty link + QString name = protect("examples-" + sl.at(0) + ".html"); // this generates an empty link QString t = CodeParser::titleFromName(name); - // out() << "
  • " - // << t << "
  • "; } - out() << "
  • " << title << "
  • "; + out() << "
  • " << protect(title) << "
  • "; } } else if (node->type() == Node::Namespace) { out() << "
  • Namespaces
  • "; - out() << "
  • " << title << "
  • "; + out() << "
  • " << protect(title) << "
  • "; } } diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index cf15628..67d7165 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -168,4 +168,5 @@ HTML.footer = " \n" \ " \n" \ " \n" \ "
    \n" \ - "
    \n" + " \n" \ + " \n" -- cgit v0.12 From f33359fb0c56fe88e0ae3c564b7847f90889eac2 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 9 Aug 2010 20:50:45 +0200 Subject: Doc: Fixes to Qt Quick documentation. Reviewed-by: Trust Me To-be-verified-by: Qt Doc Team --- doc/src/declarative/declarativeui.qdoc | 99 +- doc/src/declarative/dynamicobjects.qdoc | 2 +- doc/src/declarative/elements.qdoc | 6 +- doc/src/declarative/qml-intro.qdoc | 414 +--- doc/src/declarative/qtprogrammers.qdoc | 3 +- doc/src/external-resources.qdoc | 15 + doc/src/getting-started/demos.qdoc | 18 +- doc/src/getting-started/gettingstartedqml.qdoc | 2044 ++++++++++---------- doc/src/getting-started/gettingstartedqt.qdoc | 6 +- doc/src/qt4-intro.qdoc | 8 +- .../ui-components/dialcontrol/content/Dial.qml | 2 + .../ui-components/dialcontrol/dialcontrol.qml | 4 +- src/declarative/qml/qdeclarativecomponent.cpp | 2 +- src/declarative/qml/qdeclarativeengine.cpp | 6 +- 14 files changed, 1159 insertions(+), 1470 deletions(-) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 42189c0..ed8b734 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -33,7 +33,7 @@ dynamic, custom user interfaces. Qt Quick provides a declarative framework for building highly dynamic, -custom user interfaces from a rich set of \l {QML Elements}{QML elements}. +custom user interfaces from a rich set of \l{QML Elements}{QML elements}. Qt Quick helps programmers and designers collaborate to build the fluid user interfaces that are becoming common in portable consumer devices, such as mobile phones, media players, set-top boxes @@ -41,73 +41,74 @@ and netbooks. Qt Quick consists of the QtDeclarative C++ module, QML, and the integration of both of these into the Qt Creator IDE. Using the QtDeclarative C++ module, you can load and interact with QML files from your Qt application. -QML is an extension to \l -{http://www.ecma-international.org/publications/standards/Ecma-262.htm} -{JavaScript}, that provides a mechanism to declaratively build an -object tree of \l {QML Elements}{QML elements}. QML improves the -integration between JavaScript and Qt's existing QObject based type -system, adds support for automatic \l {Property Binding}{property -bindings} and provides \l {Network Transparency}{network transparency} -at the language level. +QML is an extension to \l{About JavaScript}{JavaScript}, that provides +a mechanism to declaratively build an object tree of +\l{QML Elements}{QML elements}. QML improves the integration between +JavaScript and Qt's existing QObject-based type system, adds support for +automatic \l{Property Binding}{property bindings} and provides +\l{Network Transparency}{network transparency} at the language level. -The \l {QML Elements}{QML elements} are a sophisticated set of +The \l{QML Elements}{QML elements} are a sophisticated set of graphical and behavioral building blocks. These different elements -are combined together in \l {QML Documents}{QML documents} to build +are combined together in \l{QML Documents}{QML documents} to build components ranging in complexity from simple buttons and sliders, to -complete internet-enabled applications like a \l -{http://www.flickr.com}{Flickr} photo browser. +complete Internet-enabled applications like a photo browser for the +popular \l{http://www.flickr.com}{Flickr} photo-sharing site. -Qt Quick builds on \l {QML for Qt programmers}{Qt's existing -strengths}. QML can be be used to incrementally extend an existing -application or to build completely new applications. QML is fully \l -{Extending QML in C++}{extensible from C++} through the QtDeclarative Module. +Qt Quick builds on \l{QML for Qt programmers}{Qt's existing strengths}. +QML can be be used to incrementally extend an existing application or +to build completely new applications. QML is fully +\l{Extending QML in C++}{extensible from C++} through the QtDeclarative +Module. \section1 Getting Started \list -\o \l {Introduction to the QML language} -\o \l {QML Tutorial}{Tutorial: 'Hello World'} -\o \l {QML Advanced Tutorial}{Tutorial: 'Same Game'} -\o \l {QML Examples and Demos} -\o \l {QML for Qt programmers} +\o \l{Introduction to the QML language} +\o \l{QML Tutorial}{Tutorial: 'Hello World'} +\o \l{QML Advanced Tutorial}{Tutorial: 'Same Game'} +\o \l{QML Examples and Demos} +\o \l{QML for Qt Programmers} +\o \l{Getting Started Programming with QML} +\o \l{Beginning Qt Quick} \endlist \section1 Core QML Features \list -\o \l {QML Documents} -\o \l {Property Binding} -\o \l {Network Transparency} -\o \l {QML Scope} -\o \l {Integrating JavaScript} -\o \l {Data Models} -\o \l {anchor-layout.html}{Anchor-based Layout} -\o \l {qdeclarativestates.html}{States} -\o \l {qdeclarativeanimation.html}{Animation} -\o \l {qdeclarativefocus.html}{Keyboard Focus} -\o \l {qdeclarativemodules.html}{Modules} -\o \l {Extending types from QML} -\o \l {qdeclarativedynamicobjects.html}{Dynamic Object Creation} -\o \l {qmlruntime.html}{The Qt Declarative Runtime} +\o \l{QML Documents} +\o \l{Property Binding} +\o \l{Network Transparency} +\o \l{QML Scope} +\o \l{Integrating JavaScript} +\o \l{Data Models} +\o \l{Anchor-based Layout in QML} +\o \l{QML States} +\o \l{QML Animation} +\o \l{Keyboard Focus in QML} +\o \l{QML Modules} +\o \l{Extending types from QML} +\o \l{Dynamic Object Management in QML} +\o \l{Qt Declarative UI Runtime} \endlist \section1 Using QML with C++ \list -\o \l {Using QML in C++ Applications} -\o \l {Integrating QML with existing Qt UI code} -\o \l {Tutorial: Writing QML extensions with C++} -\o \l {Extending QML in C++} +\o \l{Using QML in C++ Applications} +\o \l{Integrating QML with existing Qt UI code} +\o \l{Tutorial: Writing QML extensions with C++} +\o \l{Extending QML in C++} \endlist \section1 Reference \list -\o \l {QML Elements} -\o \l {QML Global Object} -\o \l {QML Internationalization} -\o \l {QML Security} -\o \l {QtDeclarative Module} -\o \l {Debugging QML} -\o \l {QML Viewer} -\o \l {QML Performance} -\o \l {QML Coding Conventions} +\o \l{QML Elements} +\o \l{QML Global Object} +\o \l{QML Internationalization} +\o \l{QML Security} +\o \l{QtDeclarative Module} +\o \l{Debugging QML} +\o \l{QML Viewer} +\o \l{QML Performance} +\o \l{QML Coding Conventions} \endlist */ diff --git a/doc/src/declarative/dynamicobjects.qdoc b/doc/src/declarative/dynamicobjects.qdoc index 997f601..e735bce 100644 --- a/doc/src/declarative/dynamicobjects.qdoc +++ b/doc/src/declarative/dynamicobjects.qdoc @@ -27,7 +27,7 @@ /*! \page qdeclarativedynamicobjects.html -\title Dynamic Object Management +\title Dynamic Object Management in QML QML provides a number of ways to dynamically create and manage QML objects. The \l{Loader}, \l{Repeater}, \l{ListView}, \l{GridView} and \l{PathView} elements diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index c2930b3..55b71e1 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -26,11 +26,11 @@ ****************************************************************************/ /*! -\page qdeclarativeelements.html +\page qmlelements.html \target elements \title QML Elements -The following table lists the QML elements provided by the \l {QtDeclarative}{Qt Declarative} module. +The following table lists the QML elements provided by the \l{QtDeclarative} module. \table \header \o {2,1} \bold {Basic Visual Items} @@ -54,7 +54,7 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \row \o \l {Flickable} \o Provides a surface that can be "flicked" \row \o \l {Flipable} \o Provides a surface that produces flipping effects \row \o \l {GestureArea} (experimental) \o Enables simple gesture handling - + \header \o {2,1} \bold {States} \row \o \l {State} \o Defines sets of configurations of objects and properties \row \o \l {PropertyChanges} \o Describes property changes within a state diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc index fbab001..69dd500 100644 --- a/doc/src/declarative/qml-intro.qdoc +++ b/doc/src/declarative/qml-intro.qdoc @@ -28,14 +28,11 @@ /*! - -\page qml-intro.html +\page qml-intro.html \title Beginning Qt Quick - \section1 Overview - QML is a high level, scripted language. Its commands, more correctly \e elements, leverage the power and efficiency of the Qt libraries to make easy to use commands that perform intuitive functions. Draw a rectangle, display an image at @@ -61,12 +58,7 @@ would be a property. The basic syntax of an \l {QML Elements}{element} is - \code - SomeElement { - id: myObject - ... some other things here ... - } - \endcode +\snippet doc/src/snippets/declarative/qml-intro/basic-syntax.qml basic syntax Here we are defining a new object. We specify its 'type' first as SomeElement. Then within matching braces { ... } we specify the various parts of our @@ -90,61 +82,38 @@ want a rectangle that is 500 pixels by 400 pixels in the x and y directions We can implement this \l Rectangle with these properties this way - \code - import Qt 4.7 - - // This is a comment. And below myRectangle is defined. - Rectangle { - id: myRectangle - width: 500 - height: 400 - } - \endcode +\quotefile doc/src/snippets/declarative/qml-intro/rectangle.qml This is a valid QML script. To run it, copy it and save it to a file, say -myexample.qml, and on the command line run the command +myexample.qml, and on the command line run the following command: - \code - qmlviewer myexample.qml - \endcode +\code +qmlviewer myexample.qml +\endcode On Mac OS X, open the "QMLViewer" application instead and open the \c myexample.qml file, or run it from the command line: - \code - QMLViewer.app/Contents/MacOS/QMLViewer myexample.qml - \endcode - +\code +QMLViewer.app/Contents/MacOS/QMLViewer myexample.qml +\endcode It will create a very boring rectangle in its own window. - \section1 Hello World! We can now add some color and text to make a Hello World QML program. -\l Rectangle has the property \l {Rectangle::color}{color} to produce a +\l Rectangle has the property \l{Rectangle::color}{color} to produce a background color. Text is handled by a different element called \l Text. We need to create a -\l Text object inside the \l Rectangle and set its \l {Text::text}{text} -property to "Hello World!". So to set the text to 'Hello world' and the +\l Text object inside the \l Rectangle and set its \l{Text::}{text} +property to "Hello World!". So to set the text to "Hello world" and the background colour to light gray, - \code - import Qt 4.7 - - Rectangle { - id: myRectangle - width: 500 - height: 400 - - Text { text: "Hello World!" } - - color: "lightgray" - } - \endcode +\quotefile doc/src/snippets/declarative/qml-intro/hello-world1.qml \section1 Hello World Again @@ -158,12 +127,7 @@ position belongs to the \l Text element so we set the position inside its definition. Note that we separate different QML statements on the same line with a semi-colon, or we could have simply put each statement on a new line - \code - Text { - text: "

    Hello World

    "; color: "darkgreen" - x: 100; y:100 - } - \endcode +\snippet doc/src/snippets/declarative/qml-intro/hello-world2.qml updated text Not only did we reposition the text, but the text was altered by adding HTML tags to change the font size. The text color was also changed from the @@ -174,13 +138,7 @@ We could also have used a hexadecimal string for the RGB (red-green-blue, as #rrggbb) values of the color similar to the method used in HTML. For example, mostly blue with a green tint, - \code - Text { - text: "

    Hello world again

    " - color: "#002288" - x: 100; y: 100 - } - \endcode +\snippet doc/src/snippets/declarative/qml-intro/hello-world3.qml updated text All of these changes occurred within the \l Text object which is the scope of these property changes. @@ -198,11 +156,7 @@ source of the image, the path to the file, is a URL. Therefore the file can be local: \e {mydir/myimage1.png}. Or it can be remote: \e {"http://www.example.com/images/myimage1.png"}. - \code - Image { - source: "images/qt-logo.png" - } - \endcode +\snippet doc/src/snippets/declarative/qml-intro/hello-world4.qml added an image This displays the image, as we would expect, at the top left of the window. The position of the default x = 0, y = 0 coordinate. The example here uses @@ -213,44 +167,12 @@ Let us reposition the image and enlarge it. Place it at the same 'x' offset as the "Hello world again" text, but put it another 50 pixels below the text, also make it 150 by 150 pixels in size, - \code - Image { - source: "images/qt-logo.png" - x: 100; y: 150 - width: 150; height: 150 - } - \endcode +\snippet doc/src/snippets/declarative/qml-intro/hello-world5.qml positioning the image Adding the Hello World example, with the text and the image example we can write a simple piece of QML that starts to look a bit better. - \code - import Qt 4.7 - - Rectangle { - id: myRectangle - width: 500 - height: 400 - - // A light gray background - color: "lightgray" - - // Position and color some text - Text { - text: "

    Hello world again

    " - color: "darkgreen" - x: 100; y: 100 - } - - // Using the opportunity to resize the image. - Image { - source: "images/qt-logo.png" - x: 100; y: 150 - width: 150; height: 150 - } - - } - \endcode +\quotefile doc/src/snippets/declarative/qml-intro/hello-world5.qml The result is still quite simple @@ -281,22 +203,7 @@ If we want to position an image at the bottom of the rectangle it is inside. I have to specify that the bottom of the image is also at the bottom of the rectangle - \code - import Qt 4.7 - - Rectangle { - id: myWin - width: 500 - height: 400 - - Image { - id: image1 - source: "images/qt-logo.png" - width: 150; height: 150 - anchors.bottom: myWin.bottom - } - } - \endcode +\quotefile doc/src/snippets/declarative/qml-intro/anchors1.qml This places the logo at the bottom left of the window. @@ -315,25 +222,7 @@ the bottomMargin property is used. So the new actions for the script are Encoded into QML the script becomes - \code - import Qt 4.7 - - Rectangle { - id: myWin - width: 500 - height: 400 - - Image { - id: image1 - source: "images/qt-logo.png" - width: 150; height: 150 - anchors.bottom: myWin.bottom - anchors.horizontalCenter: myWin.horizontalCenter - anchors.bottomMargin: 10 - } - } - \endcode - +\quotefile doc/src/snippets/declarative/qml-intro/anchors2.qml Run this and resize the window. You will see that now the position of the image adjusts during the resize. @@ -344,14 +233,7 @@ You can also add another object say a block of descriptive text and place it above or below the image or to the side. This code places some text just above the image - \code - Text { - text: "

    The Qt Logo

    " - anchors.bottom: image1.top - anchors.horizontalCenter: myWin.horizontalCenter - anchors.bottomMargin: 15 - } - \endcode +\snippet doc/src/snippets/declarative/qml-intro/anchors3.qml adding some text \image qml-intro-anchors3.png @@ -359,17 +241,15 @@ above the image referencing these properties from another object we use the property directly, instead of saying: - \code - myRectangle.anchors.top // Wrong - \endcode +\qml +myRectangle.anchors.top // Wrong +\endqml we use - \code - myRectangle.top // Correct - \endcode - - +\qml +myRectangle.top // Correct +\endqml \section1 Transformations @@ -391,9 +271,9 @@ Rotation of text was also suggested. It could also be useful to scale the text. We can do both. The \l {Item::transform}{transform} property is a \e list of \l Transform elements, so using the list syntax - \code - myList: [ listElement1, listElement2, ... } ] - \endcode +\qml +myList: [ listElement1, listElement2, ... } ] +\endqml we can produce a list of transformations. @@ -402,46 +282,7 @@ vertically by a factor of 1.5 and by 1.2 horizontally. Using the example above as the basis for this we have, - \code - import Qt 4.7 - - Rectangle { - id: myWin - width: 500 - height: 400 - - Image { - id: image1 - source: "images/qt-logo.png" - width: 150; height: 150 - anchors.bottom: myWin.bottom - anchors.horizontalCenter: myWin.horizontalCenter - anchors.bottomMargin: 10 - - transform: Rotation { - origin.x: 75; origin.y: 75 - axis{ x: 0; y: 0; z:1 } angle: -90 - } - - } - - Text { - text: "

    The Qt Logo -- taking it easy

    " - anchors.bottom: image1.top - anchors.horizontalCenter: myWin.horizontalCenter - anchors.bottomMargin: 15 - - transform: [ - Scale { xScale: 1.5; yScale: 1.2 } , - - Rotation { - origin.x: 75; origin.y: 75 - axis{ x: 0; y: 0; z:1 } angle: -45 - } - ] - } - } - \endcode +\quotefile doc/src/snippets/declarative/qml-intro/transformations1.qml The code block in \c image1 starting with \c transform specifies that the \l {Item::transform}{transform} property will be a Rotation through -90 @@ -479,30 +320,7 @@ from \l Item. The rotation property is a real number that specifies the angle in a clockwise direction for the rotation of the object. Here is the code for our animated rotating image. - \code - import Qt 4.7 - - Rectangle { - id: mainRec - width: 600 - height: 400 - - Image { - id: image1 - source: "images/qt-logo.png" - x: 200; y: 100 - width: 100; height: 100 - - // Animate a rotation - transformOrigin: Item.Center - NumberAnimation on rotation { - from: 0; to: 360 - duration: 2000 - loops: Animation.Infinite - } - } - } - \endcode +\quotefile doc/src/snippets/declarative/number-animation1.qml The \c {transformOrigin: Item.Center} is redundant since this is the default axis of rotation anyway. But if you change \c Center to \c BottomRight you @@ -515,32 +333,7 @@ combination. For example, if the task had been to animate the rotation about the y-axis passing through the center of the image then the following code would do it. - \code - import Qt 4.7 - - Rectangle { - id: mainRec - width: 600 - height: 400 - - Image { - id: image1 - source: "images/qt-logo.png" - x: 200; y: 100 - width: 100; height: 100 - - // Animate a rotation - transform: Rotation { - origin.x: 50; origin.y: 50; axis {x:0; y:1; z:0} angle:0 - NumberAnimation on angle { - from: 0; to: 360; - duration: 3000; - loops: Animation.Infinite - } - } - } - } - \endcode +\quotefile doc/src/snippets/declarative/number-animation2.qml Here there is a rectangle 600 by 400 pixels. Placed within that rectangle is an image 100 by 100 pixels. It is rotated about the center of the image @@ -569,31 +362,7 @@ will be animating the position and the size of the image. First create two images - \code - import Qt 4.7 - - Rectangle { - id: mainRec - width: 600 - height: 400 - z: 0 - - Image { - id: image1 - source: "images/qt-logo.png" - x: 20; y: 20 ; z: 1 - width: 100; height: 100 - } - - Image { - id: image2 - source: "images/qt-logo.png" - width: 100; height: 100 - x: (mainRec.width - 100)/2; y: (mainRec.height - 100)/2 - z: 2 - } - } - \endcode +\quotefile doc/src/snippets/declarative/sequential-animation1.qml We will add to 'image1' a SequentialAnimation from x = 20 to the target of x = 450. The 'from' values will be used because we will be repeating the @@ -606,14 +375,7 @@ between the x values and over a given duration. After the NumberAnimation there will be a PauseAnimation that will pause the animation for 500 milliseconds (half a second) simply for the visual effect. - \code - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { from: 20; to: 450; easing.type: "InOutQuad"; -duration: 2000 } - PauseAnimation { duration: 500 } - } - \endcode +\snippet doc/src/snippets/declarative/sequential-animation2.qml adding a sequential animation A similar block of code is written for the animation of the 'y' value of the position. @@ -628,54 +390,7 @@ and image1 to 1 and image2 to 2 then image2 will be in the foreground and image1 in the background. When image1 passes image2 it will pass behind it. The completed code looks like - \code - Rectangle { - id: mainRec - width: 600 - height: 400 - z: 0 - - Image { - id: image2 - source: "images/qt-logo.png" - width: 100; height: 100 - x: (mainRec.width - 100)/2; y: (mainRec.height - 100)/2 - z: 2 - } - - Image { - id: image1 - source: "images/qt-logo.png" - x: 20; y: 20 ; z: 1 - width: 100; height: 100 - - SequentialAnimation on x { - loops: Animation.Infinite - NumberAnimation { - from: 20; to: 450 - easing.type: "InOutQuad"; duration: 2000 - } - PauseAnimation { duration: 500 } - } - - SequentialAnimation on y { - loops: Animation.Infinite - NumberAnimation { - from: 20; to: 250 - easing.type: "InOutQuad"; duration: 2000 - } - PauseAnimation { duration: 500 } - } - - SequentialAnimation on scale { - loops: Animation.Infinite - NumberAnimation { from: 1; to: 0.5; duration: 1000 } - NumberAnimation { from: 0.5; to: 1; duration: 1000 } - PauseAnimation { duration: 500 } - } - } - } - \endcode +\quotefile doc/src/snippets/declarative/sequential-animation3.qml The \c {easing.type} has many options, expressed as a string. It specifies the kind of equation that describes the acceleration of the property value, not @@ -756,60 +471,7 @@ will be the default state. We will just go to 'night' by clicking and holding the left mouse button down, releasing the mouse button will reverse the process - \code - import Qt 4.7 - - Rectangle { - id: mainRectangle - width: 600 - height: 400 - color: "black" - - Rectangle { - id: sky - width: 600 - height: 200 - y: 0 - color: "lightblue" - } - - Rectangle { - id: ground - width: 600; height: 200 - y: 200 - color: "green" - } - - MouseArea { - id: mousearea - anchors.fill: mainRectangle - } - - states: [ State { - name: "night" - when: mousearea.pressed == true - PropertyChanges { target: sky; color: "darkblue" } - PropertyChanges { target: ground; color: "black" } - }, - State { - name: "daylight" - when: mousearea.pressed == false - PropertyChanges { target: sky; color: "lightblue" } - PropertyChanges { target: ground; color: "green" } - } - ] - - transitions: [ Transition { - from: "daylight"; to: "night" - ColorAnimation { duration: 1000 } - }, - Transition { - from: "night"; to: "daylight" - ColorAnimation { duration: 500 } - } - ] - } - \endcode +\quotefile doc/src/snippets/declarative/states1.qml Several new things appear in this sample. Firstly, we use a \l MouseArea element to detect mouse clicks in the \e mainRectangle. Secondly, we use diff --git a/doc/src/declarative/qtprogrammers.qdoc b/doc/src/declarative/qtprogrammers.qdoc index 68d56bf..c0639db 100644 --- a/doc/src/declarative/qtprogrammers.qdoc +++ b/doc/src/declarative/qtprogrammers.qdoc @@ -26,10 +26,9 @@ ****************************************************************************/ /*! - \page qtprogrammers.html \target qtprogrammers -\title QML for Qt programmers +\title QML for Qt Programmers \section1 Overview diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc index e901124c..61620f5 100644 --- a/doc/src/external-resources.qdoc +++ b/doc/src/external-resources.qdoc @@ -428,3 +428,18 @@ \externalpage http://developer.symbian.org/wiki/index.php/Deploying_a_Qt_Application \title Deploying a Qt Application article */ + +/*! + \externalpage http://www.ecma-international.org/publications/standards/Ecma-262.htm + \title ECMAScript Language Specification +*/ + +/*! + \externalpage https://developer.mozilla.org/en/JavaScript + \title JavaScript +*/ + +/*! + \externalpage https://developer.mozilla.org/en/JavaScript/About_JavaScript + \title About JavaScript +*/ diff --git a/doc/src/getting-started/demos.qdoc b/doc/src/getting-started/demos.qdoc index ef16224..719c861 100644 --- a/doc/src/getting-started/demos.qdoc +++ b/doc/src/getting-started/demos.qdoc @@ -46,7 +46,7 @@ \o \inlineimage qtdemo-small.png \o If you run the \l{Examples and Demos Launcher}, you'll see many of Qt's widgets in action. - + The \l{Qt Widget Gallery} also provides overviews of selected Qt widgets in each of the styles used on various supported platforms. \endtable @@ -134,15 +134,23 @@ \section1 QtWebKit \list - \o \l{Web Browser} demonstrates how Qt's \l{QtWebKit Module}{WebKit module} - can be used to implement a small Web browser. + \o \l{Web Browser} demonstrates how Qt's \l{QtWebKit} module can be used to + implement a small Web browser. + \endlist + + \section1 Multimedia + + \list + \o \l{demos/spectrum}{Spectrum Analyser} shows how the \l{QtMultimedia} + module can be used to manipulate audio as it is played. \endlist \section1 Phonon \list - \o \l{demos/qmediaplayer}{Media Player} demonstrates how the \l{Phonon Module} can be - used to implement a basic media player application. + \o \l{demos/qmediaplayer}{Media Player} demonstrates how the + \l{Phonon Module}{Phonon module} can be used to implement a basic media player + application. \endlist \note The Phonon demos are currently not available for the MinGW platform. diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index 2bfb71c..885e6ce 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -26,1025 +26,1025 @@ ****************************************************************************/ /*! - \page qml-textEditor.html - - \title Getting Started programming with QML - \ingroup gettingStarted - - Welcome to the world of QML - the declarative UI language. In this Getting - Started guide, we will create a simple text editor application using QML. - After reading this guide, you should be ready to develop your own applications - using QML and Qt C++. - - \section1 QML to Build User Interfaces - - The application we are building is a simple text editor that will load, save, - and perform some text manipulation. This guide will consist of two parts. The - first part will involve designing the application layout and behaviors using - declarative language in QML. For the second part, file loading and saving will - be implemented using Qt C++. Using - \l {The Meta-Object System}{Qt's Meta-Object System}, we can expose C++ functions - as properties that QML elements can use. Utilizing QML and Qt C++, we can - efficiently decouple the interface logic from the application logic. - - \image qml-texteditor5_editmenu.png - - To run the QML example code, merely provide the included \l{QML Viewer}{qmlviewer} - tool with the QML file as the argument. The C++ portion of this tutorial assumes - that the reader possesses basic knowledge of Qt's compilation procedures. - - Tutorial chapters: - \list 1 - \o \l {Defining a Button and a Menu}{Defining a Button and a Menu} - \o \l {Implementing a Menu Bar}{Implementing a Menu Bar} - \o \l {Building a Text Editor}{Building a Text Editor} - \o \l {Decorating the Text Editor}{Decorating the Text Editor} - \o \l {Extending QML using Qt C++}{Extending QML using Qt C++} - \endlist - - \section1 Defining a Button and a Menu - - \section2 Basic Component - a Button - - We start our text editor by building a button. Functionally, a button has a mouse - sensitive area and a label. Buttons perform actions when a user presses the button. - - In QML, the basic visual item is the \l {Rectangle}{Rectangle} element. The - \c Rectangle element has properties to control the element's appearance and location. - - \code - import Qt 4.7 - Rectangle { - id: simplebutton - color: "grey" - width: 150; height: 75 - - Text{ - id: buttonLabel - anchors.centerIn: parent - text: "button label" - } - } - \endcode - - First, the \c { import Qt 4.7 } allows the qmlviewer tool to import the QML elements - we will later use. This line must exist for every QML file. Notice that the version - of Qt modules is included in the import statement. - - This simple rectangle has a unique identifier, \c simplebutton, which is bound to the - id property. The \c Rectangle element's properties are bound to values by listing the - property, followed by a colon, then the value. In the code sample, the color \c grey - is bound to the the Rectangle's \c color property. Similarly, we bind the \c width - and \c height of the Rectangle. - - The \l {Text}{Text} element is a non-editable text field. We name this \c Text element - \c buttonLabel. To set the string content of the Text field, we bind a value to the - \c text property. The label is contained within the Rectangle and in order to center - it in the middle, we assign the \c anchors of the Text element to its parent, which - is called \c simplebutton. Anchors may bind to other items' anchors, allowing layout - assignments simpler. - - We shall save this code as \c SimpleButton.qml. Running qmlviewer with the file as the - argument will display the grey rectangle with a text label. - - \image qml-texteditor1_simplebutton.png - - To implement the button click functionality, we can use QML's event handling. QML's event - handling is very similar to \l {Signals & Slots}{Qt's signal and slot} mechanism. Signals - are emitted and the connected slot is called. - - \code - Rectangle{ - id:simplebutton - ... - - MouseArea{ - id: buttonMouseArea - - anchors.fill: parent //anchor all sides of the mouse area to the rectangle's anchors - //onClicked handles valid mouse button clicks - onClicked: console.log(buttonLabel.text + " clicked" ) - } - } - \endcode - - We include a \l{MouseArea} element in our simplebutton. \c MouseArea elements describe - the interactive area where mouse movements are detected. For our button, we anchor the - whole MouseArea to its parent, which is \c simplebutton. The \c anchors.fill syntax is - one way of accessing a specific property called \c fill inside a group of properties - called \c anchors. QML uses \l {Anchor-based Layout in QML}{anchor based layouts} where - items can anchor to another item, creating robust layouts. - - The \c MouseArea has many signal handlers that are called during mouse movements within - the specfied \c MouseArea boundaries. One of them is \c onClicked and it is called - whenever the acceptable mouse button is clicked, the left click being the default. We - can bind actions to the onClicked handler. In our example, \c console.log() outputs text - whenever the mouse area is clicked. The function \c console.log() is a useful tool for - debugging purposes and for outputting text. - - The code in \c SimpleButton.qml is sufficient to display a button on the screen and - output text whenever it is clicked with a mouse. - - \code - Rectangle { - id:Button - ... - - property color buttonColor: "lightblue" - property color onHoverColor: "gold" - property color borderColor: "white" - - signal buttonClick() - onButtonClick: { - console.log(buttonLabel.text + " clicked" ) - } - - MouseArea{ - onClicked: buttonClick() - hoverEnabled: true - onEntered: parent.border.color = onHoverColor - onExited: parent.border.color = borderColor - } - - //determines the color of the button by using the conditional operator - color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor - } - \endcode - - A fully functioning button is in \c Button.qml. The code snippets in this article - have some code omitted, denoted by ellipses because they were either introduced - earlier in the previous sections or irrelevant to the current code discussion. - - Custom properties are declared using the \c {property type name} syntax. In the - code, the property \c buttonColor, of type \c color, is declared and bound to - the value \c{"lightblue"}. The \c buttonColor is later used in a conditional - operation to determine the buttons's fill color. Note that property value - assignment is possible using the \c= equals sign, in addition to value binding - using the \c : colon character. Custom properties allow internal items to be - accessible outside of the Rectangle's scope. There are basic - \l{QML Basic Types}{QML types} such as \c int, \c string, \c real, as well as - a type called \c variant. - - By binding the \c onEntered and \c onExited signal handlers to colors, the - button's border will turn yellow when the mouse hovers above the button and - reverts the color when the mouse exits the mouse area. - - A \c buttonClick() signal is declared in \c Button.qml by placing the \c signal - keyword in front of the signal name. All signals have their handlers automatically - created, their names starting with \c on. As a result, the \c onButtonClick is - \c buttonClick's handler. The \c onButtonClick is then assigned an action to - perform. In our button example, the \c onClicked mouse handler will simply call - \c onButtonClick, which displays a text. The \c onButtonClick enables outside - objects to access the \c {Button}'s mouse area easily. For example, items may - have more than one \c MouseArea declarations and a \c buttonClick signal can - make the distinction between the several \c MouseArea signal handlers better. - - We now have the basic knowledge to implement items in QML that can handle - basic mouse movements. We created a \c Text label inside a \c Rectangle, - customized its properties, and implemented behaviors that respond to mouse - movements. This idea of creating elements within elements is repeated - throughout the text editor application. - - This button is not useful unless used as a component to perform an action. - In the next section, we will soon create a menu containing several of these - buttons. - - \image qml-texteditor1_button.png - - \section2 Creating a Menu Page - - Up to this stage, we covered how to create elements and assign behaviors inside - a single QML file. In this section, we will cover how to import QML elements and how - to reuse some of the created components to build other components. - - Menus display the contents of a list, each item having the ability to perform an action. - In QML, we can create a menu in several ways. First, we will create a menu containing - buttons which will eventually perform different actions. The menu code is in - \c FileMenu.qml. - - \code - import Qt 4.7 \\import the main Qt QML module - import folderName \\import the contents of the folder - import Button.qml \\import a QML file - import NewButton.qml as ButtonModule \\import a QML file and give it a name - import script.js as Script \\import a Javascript file and name it as Script - \endcode - - To use the \c Button element in \c FileMenu.qml, we need to import \c Button.qml. - The syntax shown above, shows how to use the \c import keyword. However, the - \c {import Button.qml} is not necessary; qmlviewer will import all the contents - of the current directory. We can directly create a \c Button element by declaring - \c Button{}, similar to a \c Rectangle{} declaration. - - \code - In FileMenu.qml: - - Row{ - anchors.centerIn: parent - spacing: parent.width/6 - - Button{ - id: loadButton - buttonColor: "lightgrey" - label: "Load" - } - Button{ - buttonColor: "grey" - id: saveButton - label: "Save" - } - Button{ - id: exitButton - label: "Exit" - buttonColor: "darkgrey" - - onButtonClick: Qt.quit() - } - } - \endcode - - In \c FileMenu.qml, we declare three \c Button elements. They are declared - inside a \l {Row}{Row} element, a positioner that will position its children - along a vertical row. The \c Button declaration resides in Button.qml, - which is the same as the \c Button.qml we used in the previous section. - New property bindings can be declared within the newly created buttons, - effectively overwriting the properties set in \c Button.qml. The button - called \c exitButton will quit and close the window when it is clicked. - Note that the signal handler \c onButtonClick in \c Button.qml will be - called in addition to the \c onButtonClick handler in \c exitButton. - - \image qml-texteditor1_filemenu.png - - The \c Row declaration is declared in a \c Rectangle, creating a rectangle - container for the row of buttons. This additional rectangle creates an indirect - way of organizing the row of buttons inside a menu. - - The declaration of the edit menu is very similar at this stage. The menu has - buttons that have the labels: \c Copy, \c Paste, and \c {Select All}. - - \image qml-texteditor1_editmenu.png - - Armed with our knowledge of importing and customizing previously made - components, we may now combine these menu pages to create a menu bar, - consisting of buttons to select the menu, and look at how we may structure - data using QML. - - \section1 Implementing a Menu Bar - - Our text editor application will need a way to display menus using a menu bar. - The menu bar will switch the different menus and the user can choose which menu - to display. Menu switching implies that the menus need more structure than - merely displaying them in a row. QML uses models and views to structure data - and display the structured data. - - \section2 Using Data Models and Views - - QML has different \l {Data Models}{data views} that display - \l {Data Models}{data models}. Our menu bar will display the menus in a list, - with a header that displays a row of menu names. The list of menus are declared - inside a \c VisualItemModel. The \l{VisualItemModel}{\c VisualItemModel} - element contains items that already have views such as \c Rectangle elements - and imported UI elements. Other model types such as the \l{ListModel}{\c ListModel} - element need a delegate to display their data. - - We declare two visual items in the \c menuListModel, the \c FileMenu and the - \c EditMenu. We customize the two menus and display them using a - \l {ListView}{ListView}. The \c MenuBar.qml file contains the QML declarations - and a simple edit menu is defined in \c EditMenu.qml. - - \code - VisualItemModel{ - id: menuListModel - FileMenu{ - width: menuListView.width - height: menuBar.height - color: fileColor - } - EditMenu{ - color: editColor - width: menuListView.width - height: menuBar.height - } - } - \endcode - - The \l {ListView}{ListView} element will display a model according to a delegate. - The delegate may declare the model items to display in a \c Row element or display - the items in a grid. Our \c menuListModel already has visible items, therefore, - we do not need to declare a delegate. - - \code - ListView{ - id: menuListView - - //Anchors are set to react to window anchors - anchors.fill:parent - anchors.bottom: parent.bottom - width:parent.width - height: parent.height - - //the model contains the data - model: menuListModel - - //control the movement of the menu switching - snapMode: ListView.SnapOneItem - orientation: ListView.Horizontal - boundsBehavior: Flickable.StopAtBounds - flickDeceleration: 5000 - highlightFollowsCurrentItem: true - highlightMoveDuration:240 - highlightRangeMode: ListView.StrictlyEnforceRange - } - \endcode - - Additionally, \c ListView inherits from \l{Flickable}{\c Flickable}, making - the list respond to mouse drags and other gestures. The last portion of the - code above sets \c Flickable properties to create the desired flicking movement - to our view. In particular,the property \c highlightMoveDuration changes the - duration of the flick transition. A higher \c highlightMoveDuration value - results in slower menu switching. - - The \c ListView maintains the model items through an \c index and each visual - item in the model is accessible through the \c index, in the order of the - declaration. Changing the \c currentIndex effectively changes the highlighted - item in the \c ListView. The header of our menu bar exemplify this effect. - There are two buttons in a row, both changing the current menu when clicked. - The \c fileButton changes the current menu to the file menu when clicked, - the \c index being \c 0 because \c FileMenu is declared first in the - \c menuListModel. Similarly, the \c editButton will change the current - menu to the \c EditMenu when clicked. - - The \c labelList rectangle has \c z value of \c 1, denoting that it is displayed - at the front of the menu bar. Items with higher \c z values are displayed in front - of items with lower \c z values. The default \c z value is \c 0. - - \code - Rectangle{ - id: labelList - ... - z: 1 - Row{ - anchors.centerIn: parent - spacing:40 - Button{ - label: "File" - id: fileButton - ... - onButtonClick: menuListView.currentIndex = 0 - } - Button{ - id: editButton - label: "Edit" - ... - onButtonClick: menuListView.currentIndex = 1 - } - } - } - \endcode - - The menu bar we just created can be flicked to access the menus or by clicking - on the menu names at the top. Switching menu screens feel intuitive and responsive. - - \image qml-texteditor2_menubar.png - - */ - - /*! - \page qml-textEditor3.html - \title Building a Text Editor - - \section1 Declaring a TextArea - - Our text editor is not a text editor if it didn't contain an editable text area. - QML's \l {TextEdit}{TextEdit} element allows the declaration of a multi-line - editable text area. \l {TextEdit}{TextEdit} is different from a \l {Text}{Text} - element, which doesn't allow the user to directly edit the text. - - \code - TextEdit{ - id: textEditor - anchors.fill:parent - width:parent.width; height:parent.height - color:"midnightblue" - focus: true - - wrapMode: TextEdit.Wrap - - onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle) - } - \endcode - - The editor has its font color property set and set to wrap the text. The - \c TextEdit area is inside a flickable area that will scroll the text if the - text cursor is outside the visible area. The function \c ensureVisible() will - check if the cursor rectangle is outside the visible boundaries and move the - text area accordingly. QML uses Javascript syntax for its scripts, and as previously - mentioned, Javascript files can be imported and used within a QML file. - - \code - function ensureVisible(r){ - if (contentX >= r.x) - contentX = r.x; - else if (contentX+width <= r.x+r.width) - contentX = r.x+r.width-width; - if (contentY >= r.y) - contentY = r.y; - else if (contentY+height <= r.y+r.height) - contentY = r.y+r.height-height; - } - \endcode - - \section1 Combining Components for the Text Editor - - We are now ready to create the layout of our text editor using QML. The text - editor has two components, the menu bar we created and the text area. QML allows - us to reuse components, therefore making our code simpler, by importing components - and customizing when necessary. Our text editor splits the window into two; - one-third of the screen is dedicated to the menu bar and two-thirds of the screen - displays the text area. The menu bar is displayed in front of any other elements. - - \code - Rectangle{ - - id: screen - width: 1000; height: 1000 - - //the screen is partitioned into the MenuBar and TextArea. 1/3 of the screen is assigned to the MenuBar - property int partition: height/3 - - MenuBar{ - id:menuBar - height: partition - width:parent.width - z: 1 - } - - TextArea{ - id:textArea - anchors.bottom:parent.bottom - y: partition - color: "white" - height: partition*2 - width:parent.width - } - } - \endcode - - By importing reusable components, our \c TextEditor code looks much simpler. - We can then customize the main application, without worrying about properties - that already have defined behaviors. Using this approach, application layouts - and UI components can be created easily. - - \image qml-texteditor3_texteditor.png - - */ - - /*! - \page qml-textEditor4 - \title Decorating the Text Editor - \section1 Implementing a Drawer Interface - - Our text editor looks simple and we need to decorate it. Using QML, we can declare - transitions and animate our text editor. Our menu bar is occupying one-third of the - screen and it would be nice to have it only appear when we want it. - - We can add a drawer interface, that will contract or expand the menu bar when clicked. - In our implementation, we have a thin rectangle that responds to mouse clicks. The - \c drawer, as well as the application, has two sates: the "drawer is open" state and - the "drawer is closed" state. The \c drawer item is a strip of rectangle with a small - height. There is a nested \l {Image}{Image} element declaring that an arrow icon will - be centered inside the drawer. The drawer assigns a state to the whole application, - with the identifier \c screen, whenever a user clicks the mouse area. - - \code - Rectangle{ - id:drawer - height:15 - - Image{ - id: arrowIcon - source: "images/arrow.png" - anchors.horizontalCenter: parent.horizontalCenter - } - - MouseArea{ - id: drawerMouseArea - anchors.fill:parent - onClicked:{ - if (screen.state == "DRAWER_CLOSED"){ - screen.state = "DRAWER_OPEN" - } - else if (screen.state == "DRAWER_OPEN"){ - screen.state = "DRAWER_CLOSED" - } - } - ... - } - } - \endcode - - A state is simply a collection of configurations and it is declared in a - \l{State}{State} element. A list of states can be listed and bound to the - \c states property. In our application, the two states are called - \c DRAWER_CLOSED and \c DRAWER_OPEN. Item configurations are declared in - \l {PropertyChanges}{PropertyChanges} elements. In the \c DRAWER_OPEN state, - there are four items that will receive property changes. The first target, - \c menuBar, will change its \c y property to \c 0. Similarly, the \c textArea - will lower to a new position when the state is \c DRAWER_OPEN. The \c textArea, - the \c drawer, and the drawer's icon will undergo property changes to meet the - current state. - - \code - - states:[ - State{ - name: "DRAWER_OPEN" - PropertyChanges { target: menuBar; y:0} - PropertyChanges { target: textArea; y: partition + drawer.height} - PropertyChanges { target: drawer; y: partition} - PropertyChanges { target: arrowIcon; rotation: 180} - }, - State{ - name: "DRAWER_CLOSED" - PropertyChanges { target: menuBar; y:-partition} - PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height} - PropertyChanges { target: drawer; y: 0} - PropertyChanges { target: arrowIcon; rotation: 0} - } - - ] - - \endcode - - State changes are abrupt and needs smoother transitions. Transitions between states - are defined using the \l {Transition}{Transition} element, which can then bind to - the item's \c transitions property. Our text editor has a state transition whenever - the state changes to either \c DRAWER_OPEN or \c DRAWER_CLOSED. Importantly, the - transition needs a \c from and a \c to state but for our transitions, we can use - the wild card \c * symbol to denote that the transition applies to all state changes. - - During transitions, we can assign animations to the property changes. Our - \c menuBar switches position from \c {y:0} to \c {y:-partition} and we can animate - this transition using the \l {NumberAnimation}{NumberAnimation} element. We declare - that the targets' properties will animate for a certain duration of time and using - a certain easing curve. An easing curve controls the animation rates and - interpolation behavior during state transitions. The easing curve we chose is - \l{PropertyAnimation::easing.type}{Easing.OutQuint}, which slows the movement near - the end of the animation. Pleae read \l {qdeclarativeanimation.html}{QML's Animation} - article. - - \code - transitions: [ - Transition{ - to: "*" - NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type: Easing.OutQuint } - NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutQuint } - NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutQuint } - } - ] - \endcode - - Another way of animating property changes is by declaring a \l {Behavior}{Behavior} - element. A transition only works during state changes and \c Behavior can set an - animation for a general property change. In the text editor, the arrow has a - \c NumberAnimation animating its \c rotation property whenever the property changes. - - \code - In TextEditor.qml: - - Behavior{ - NumberAnimation{property: "rotation";easing.type: Easing.OutExpo } - } - \endcode - - Going back to our components with knowledge of states and animations, we can improve - the appearances of the components. In \c Button.qml, we can add \c color and \c scale - property changes when the button is clicked. Color types are animated using - \l {ColorAnimation}{ColorAnimation} and numbers are animated using - \l {NumberAnimation}{NumberAnimation}. The \c {on propertyName} syntax displayed below - is helpful when targeting a single property. - - \code - In Button.qml: - ... - - color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor - Behavior on color { ColorAnimation{ duration: 55} } - - scale: buttonMouseArea.pressed ? 1.1 : 1.00 - Behavior on scale { NumberAnimation{ duration: 55} } - \endcode - - Additionally, we can enhance the appearances of our QML components by adding color - effects such as gradients and opacity effects. Declaring a \l {Gradient}{Gradient} - element will override the \c color property of the element. You may declare a color - in the gradient using the \l {GradientStop}{GradientStop} element. The gradient is - positioned using a scale, between \c 0.0 and \c 1.0. - - \code - In MenuBar.qml - gradient: Gradient { - GradientStop { position: 0.0; color: "#8C8F8C" } - GradientStop { position: 0.17; color: "#6A6D6A" } - GradientStop { position: 0.98;color: "#3F3F3F" } - GradientStop { position: 1.0; color: "#0e1B20" } - } - \endcode - - This gradient is used by the menu bar to display a gradient simulating depth. - The first color starts at \c 0.0 and the last color is at \c 1.0. - - - \section2 Where to Go from Here - - We are finished building the user interface of a very simple text editor. - Going forward, the user interface is complete, and we can implement the - application logic using regular Qt and C++. QML works nicely as a prototyping - tool, separating the application logic away from the UI design. - - \image qml-texteditor4_texteditor.png - - \section1 Extending QML using Qt C++ - - Now that we have our text editor layout, we may now implement the text editor - functionalities in C++. Using QML with C++ enables us to create our application - logic using Qt. We can create a QML context in a C++ application using the - \l {Using QML in C++ Applications}{Qt's Declarative} classes and display the QML - elements using a Graphics Scene. Alternatively, we can export our C++ code into - a plugin that the \l {QML Viewer}{qmlviewer} tool can read. For our application, - we shall implement the load and save functions in C++ and export it as a plugin. - This way, we only need to load the QML file directly instead of running an executable. - - \section2 Exposing C++ Classes to QML - - We will be implementing file loading and saving using Qt and C++. C++ classes - and functions can be used in QML by registering them. The class also needs to be - compiled as a Qt plugin and the QML file will need to know where the plugin is located. - - For our application, we need to create the following items: - \list 1 - \o \c Directory class that will handle directory related operations - \o \c File class which is a QObject, simulating the list of files in a directory - \o plugin class that will register the class to the QML context - \o Qt project file that will compile the plugin - \o A \c qmldir file telling the qmlviewer tool where to find the plugin - \endlist - - \section2 Building a Qt Plugin - - To build a plugin, we need to set the following in a Qt project file. First, - the necessary sources, headers, and Qt modules need to be added into our - project file. All the C++ code and project files are in the \c filedialog - directory. - - \code - In cppPlugins.pro: - - TEMPLATE = lib - CONFIG += qt plugin - QT += declarative - - DESTDIR += ../plugins - OBJECTS_DIR = tmp - MOC_DIR = tmp - - TARGET = FileDialog - - HEADERS += directory.h \ - file.h \ - dialogPlugin.h - - SOURCES += directory.cpp \ - file.cpp \ - dialogPlugin.cpp - \endcode - - In particular, we compile Qt with the \c declarative module and configure it as a - \c plugin, needing a \c lib template. We shall put the compiled plugin into the - parent's \c plugins directory. - - - \section2 Registering a Class into QML - - \code - In dialogPlugin.h: - - #include - - class DialogPlugin : public QDeclarativeExtensionPlugin - { - Q_OBJECT - - public: - void registerTypes(const char *uri); - - }; - - \endcode - Our plugin class, \c DialogPlugin is a subclass of \l {QDeclarativeExtensionPlugin}{QDeclarativeExtensionPlugin}. We need to implement the inherited function, \l {QDeclarativeExtensionPlugin::registerTypes}{registerTypes}. The \c dialogPlugin.cpp file looks like this: - - \code - DialogPlugin.cpp: - - #include "dialogPlugin.h" - #include "directory.h" - #include "file.h" - #include - - void DialogPlugin::registerTypes(const char *uri){ - - qmlRegisterType(uri, 1, 0, "Directory"); - qmlRegisterType(uri, 1, 0,"File"); - } - - Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); - \endcode - - The \l {QDeclarativeExtensionPlugin::registerTypes}{registerTypes} - function registers our File and Directory classes into QML. This function - needs the class name for its template, a major version number, a minor version - number, and a name for our classes. - - We need to export the plugin using the \l {Q_EXPORT_PLUGIN2}{Q_EXPORT_PLUGIN2} - macro. Note that in our \c dialogPlugin.h file, we have the \l {Q_OBJECT}{Q_OBJECT} - macro at the top of our class. As well, we need to run \c qmake on the project - file to generate the necessary meta-object code. - - - \section2 Creating QML Properties in a C++ class - - We can create QML elements and properties using C++ and - \l {The Meta-Object System}{Qt's Meta-Object System}. We can implement - properties using slots and signals, making Qt aware of these properties. - These properties can then be used in QML. - - For the text editor, we need to be able to load and save files. Typically, - these features are contained in a file dialog. Fortunately, we can use - \l {QDir}{QDir}, \l {QFile}{QFile}, and \l {QTextStream}{QTextStream} to - implement directory reading and input/output streams. - - \code - class Directory : public QObject{ - - Q_OBJECT - - Q_PROPERTY(int filesCount READ filesCount CONSTANT) - Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) - Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged) - Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) - - ... - \endcode - - The \c Directory class uses Qt's Meta-Object System to register properties it - needs to accomplish file handling. The \c Directory class is exported as a plugin - and is useable in QML as the \c Directory element. Each of the listed properties - using the \l {Q_PROPERTY()}{Q_PROPERTY} macro is a QML property. - - The \l {Q_PROPERTY()} {Q_PROPERTY} declares a property as well as its read and - write functions into Qt's Meta-Object System. For example, the \c filename - property, of type \l {QString}{QString}, is readable using the \c filename() - function and writable using the function \c setFilename(). Additionally, there - is a signal associated to the filename property called \c filenameChanged(), - which is emitted whenever the property changes. The read and write functions - are declared as \c public in the header file. - - Similarly, we have the other properties declared according to their uses. The - \c filesCount property indicates the number of files in a directory. The filename - property is set to the currently selected file's name and the loaded/saved file - content is stored in \c fileContent property. - - \code - Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) - \endcode - - The \c files list property is a list of all the filtered files in a directory. - The \c Directory class is implemented to filter out invalid text files; only - files with a \c .txt extension are valid. Further, \l {QLists}{QLists} can be - used in QML files by declaring them as a \c QDeclarativeListProperty in C++. - The templated object needs to inherit from a \l {QObject}{QObject}, therefore, - the \c File class must also inherit from \c QObject. In the \c Directory class, - the list of \c File objects is stored in a \c QList called \c m_fileList. - - \code - class File : public QObject{ - - Q_OBJECT - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - - ... - }; - \endcode - - The properties can then be used in QML as part of the \c Directory element's - properties. Note that we do not have to create an identifier \c id property - in our C++ code. - - \code - Directory{ - id: directory - - filesCount - filename - fileContent - files - - files[0].name - } - - \endcode - - Because QML uses Javascript's syntax and structure, we can iterate through - the list of files and retrieve its properties. To retrieve the first file's - name property, we can call \c { files[0].name }. - - Regular C++ functions are also accessible from QML. The file loading and saving - functions are implemented in C++ and declared using the - \l {Q_INVOKABLE}{Q_INVOKABLE} macro. Alternatively, we can declare the functions - as a \c slot and the functions will be accessible from QML. - - \code - In Directory.h: - - Q_INVOKABLE void saveFile(); - Q_INVOKABLE void loadFile(); - \endcode - - The \c Directory class also has to notify other objects whenever the directory - contents change. This feature is performed using a \c signal. As previously - mentioned, QML signals have a corresponding handler with their names prepended - with \c on. The signal is called \c directoryChanged and it is emitted whenever - there is a directory refresh. The refresh simply reloads the directory contents - and updates the list of valid files in the directory. QML items can then be - notified by attaching an action to the \c onDirectoryChanged signal handler. - - The \c list properties need to be explored further. This is because list - properties use callbacks to access and modify the list contents. The list - property is of type \c QDeclarativeListProperty. Whenever the list - is accessed, the accessor function needs to return a - \c QDeclarativeListProperty. The template type, \c File, needs to be a - \c QObject derivative. Further, to create the - \l {QDeclarativeListProperty}{QDeclarativeListProperty}, the list's accessor - and modifiers need to be passed to the consructor as function pointers. The list, - a \c QList in our case, also needs to be a list of \c File pointers. - - The constructor of \l {QDeclarativeListProperty}{QDeclarativeListProperty} - constructor and the \c Directory implementation: - \code - QDeclarativeListProperty ( QObject * object, void * data, AppendFunction append, CountFunction count = 0, AtFunction at = 0, ClearFunction clear = 0 ) - QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); - \endcode - - The constructor passes pointers to functions that will append the list, count - the list, retrieve the item using an index, and empty the list. Only the append - function is mandatory. Note that the function pointers must match the definition - of \l {QDeclarativeListProperty::AppendFunction}{AppendFunction}, - \l {QDeclarativeListProperty::CountFunction}{CountFunction}, - \l {QDeclarativeListProperty::AtFunction}{AtFunction}, or - \l {QDeclarativeListProperty::ClearFunction}{ClearFunction}. - - \code - void appendFiles(QDeclarativeListProperty * property, File * file) - File* fileAt(QDeclarativeListProperty * property, int index) - int filesSize(QDeclarativeListProperty * property) - void clearFilesPtr(QDeclarativeListProperty *property) - \endcode - - To simplify our file dialog, the \c Directory class filters out invalid text - files, which are files that do not have a \c .txt extension. If a file name - doesn't have the \c .txt extension, then it won't be seen in our file dialog. - Also, the implementation makes sure that saved files have a \c .txt extension in - the file name. \c Directory uses \l {QTextStream}{QTextStream} to read the file - and to output the file contents to a file. - - With our \c Directory element, we can retrieve the files as a list, know how many - text files is in the application directory, get the file's name and content as a - string, and be notified whenever there are changes in the directory contents. - - To build the plugin, run \c qmake on the \c cppPlugins.pro project file, then run - \c make to build and transfer the plugin to the \c plugins directory. - - - \section2 Importing a Plugin in QML - - The qmlviewer tool imports files that are in the same directory as the - application. We can also create a \c qmldir file containing the locations of - QML files we wish to import. The \c qmldir file can also store locations of - plugins and other resources. - - \code - In qmldir: - - Button ./Button.qml - FileDialog ./FileDialog.qml - TextArea ./TextArea.qml - TextEditor ./TextEditor.qml - EditMenu ./EditMenu.qml - - plugin FileDialog plugins - \endcode - - The plugin we just created is called \c FileDialog, as indicated by the - \c TARGET field in the project file. The compiled plugin is in the \c plugins directory. - - - \section2 Integrating a File Dialog into the File Menu - - Our \c FileMenu needs to display the \c FileDialog element, containing a list of - the text files in a directory thus allowing the user to select the file by - clicking on the list. We also need to assign the save, load, and new buttons - to their respective actions. The FileMenu contains an editable text input to - allow the user to type a file name using the keyboard. - - The \c Directory element is used in the \c FileMenu.qml file and it notifies the - \c FileDialog element that the directory refreshed its contents. This notification - is performed in the signal handler, \c onDirectoryChanged. - - \code - In FileMenu.qml: - - Directory{ - id:directory - filename: textInput.text - onDirectoryChanged: fileDialog.notifyRefresh() - } - \endcode - - Keeping with the simplicity of our application, the file dialog will always be - visible and will not display invalid text files, which do not have a \c .txt - extension to their filenames. - - \code - In FileDialog.qml: - - signal notifyRefresh() - onNotifyRefresh: dirView.model = directory.files - \endcode - - The \c FileDialog element will display the contents of a directory by reading its - list property called \c files. The files are used as the model of a - \l {GridView}{GridView} element, which displays data items in a grid according - to a delegate. The delegate handles the appearance of the model and our file - dialog will simply create a grid with text centered in the middle. Clicking on - the file name will result in the appearance of a rectangle to highlight the file - name. The \c FileDialog is notified whenever the \c notifyRefresh signal is emitted, - reloading the files in the directory. - - \code - In FileMenu.qml: - - Button{ - id: newButton - label: "New" - onButtonClick:{ - textArea.textContent = "" - } - } - Button{ - id: loadButton - label: "Load" - onButtonClick:{ - directory.filename = textInput.text - directory.loadFile() - textArea.textContent = directory.fileContent - } - } - Button{ - id: saveButton - label: "Save" - onButtonClick:{ - directory.fileContent = textArea.textContent - directory.filename = textInput.text - directory.saveFile() - } - } - Button{ - id: exitButton - label: "Exit" - onButtonClick:{ - Qt.quit() - } - } - \endcode - - Our \c FileMenu can now connect to their respective actions. The \c saveButton - will transfer the text from the \c TextEdit onto the directory's \c fileContent - property, then copy its file name from the editable text input. Finally, the button - calls the \c saveFile() function, saving the file. The \c sloadButton has a similar - execution. Also, the \c New action will empty the contents of the \c TextEdit. - - Further, the \c EditMenu buttons are connected to the \c TextEdit functions to copy, - paste, and select all the text in the text editor. - - \image qml-texteditor5_filemenu.png - - \section1 Text Editor Completion - - \image qml-texteditor5_newfile.png - - The application can function as a simple text editor, able to accept text - and save the text into a file. The text editor can also load from a file and - perform text manipulation. - - -*/ \ No newline at end of file + \page gettingstartedqml.html + \title Getting Started Programming with QML + \ingroup gettingStarted + + Welcome to the world of QML, the declarative UI language. In this Getting + Started guide, we will create a simple text editor application using QML. + After reading this guide, you should be ready to develop your own applications + using QML and Qt C++. + + \section1 QML to Build User Interfaces + + The application we are building is a simple text editor that will load, save, + and perform some text manipulation. This guide will consist of two parts. The + first part will involve designing the application layout and behaviors using + declarative language in QML. For the second part, file loading and saving will + be implemented using Qt C++. Using + \l {The Meta-Object System}{Qt's Meta-Object System}, we can expose C++ functions + as properties that QML elements can use. Utilizing QML and Qt C++, we can + efficiently decouple the interface logic from the application logic. + + \image qml-texteditor5_editmenu.png + + To run the QML example code, merely provide the included \l{QML Viewer}{qmlviewer} + tool with the QML file as the argument. The C++ portion of this tutorial assumes + that the reader possesses basic knowledge of Qt's compilation procedures. + + Tutorial chapters: + \list 1 + \o \l {Defining a Button and a Menu}{Defining a Button and a Menu} + \o \l {Implementing a Menu Bar}{Implementing a Menu Bar} + \o \l {Building a Text Editor}{Building a Text Editor} + \o \l {Decorating the Text Editor}{Decorating the Text Editor} + \o \l {Extending QML using Qt C++}{Extending QML using Qt C++} + \endlist + + \section1 Defining a Button and a Menu + + \section2 Basic Component - a Button + + We start our text editor by building a button. Functionally, a button has a mouse + sensitive area and a label. Buttons perform actions when a user presses the button. + + In QML, the basic visual item is the \l {Rectangle}{Rectangle} element. The + \c Rectangle element has properties to control the element's appearance and location. + + \code + import Qt 4.7 + Rectangle { + id: simplebutton + color: "grey" + width: 150; height: 75 + + Text{ + id: buttonLabel + anchors.centerIn: parent + text: "button label" + } + } + \endcode + + First, the \c { import Qt 4.7 } allows the qmlviewer tool to import the QML elements + we will later use. This line must exist for every QML file. Notice that the version + of Qt modules is included in the import statement. + + This simple rectangle has a unique identifier, \c simplebutton, which is bound to the + id property. The \c Rectangle element's properties are bound to values by listing the + property, followed by a colon, then the value. In the code sample, the color \c grey + is bound to the the Rectangle's \c color property. Similarly, we bind the \c width + and \c height of the Rectangle. + + The \l {Text}{Text} element is a non-editable text field. We name this \c Text element + \c buttonLabel. To set the string content of the Text field, we bind a value to the + \c text property. The label is contained within the Rectangle and in order to center + it in the middle, we assign the \c anchors of the Text element to its parent, which + is called \c simplebutton. Anchors may bind to other items' anchors, allowing layout + assignments simpler. + + We shall save this code as \c SimpleButton.qml. Running qmlviewer with the file as the + argument will display the grey rectangle with a text label. + + \image qml-texteditor1_simplebutton.png + + To implement the button click functionality, we can use QML's event handling. QML's event + handling is very similar to \l {Signals & Slots}{Qt's signal and slot} mechanism. Signals + are emitted and the connected slot is called. + + \code + Rectangle{ + id:simplebutton + ... + + MouseArea{ + id: buttonMouseArea + + anchors.fill: parent //anchor all sides of the mouse area to the rectangle's anchors + //onClicked handles valid mouse button clicks + onClicked: console.log(buttonLabel.text + " clicked" ) + } + } + \endcode + + We include a \l{MouseArea} element in our simplebutton. \c MouseArea elements describe + the interactive area where mouse movements are detected. For our button, we anchor the + whole MouseArea to its parent, which is \c simplebutton. The \c anchors.fill syntax is + one way of accessing a specific property called \c fill inside a group of properties + called \c anchors. QML uses \l {Anchor-based Layout in QML}{anchor based layouts} where + items can anchor to another item, creating robust layouts. + + The \c MouseArea has many signal handlers that are called during mouse movements within + the specfied \c MouseArea boundaries. One of them is \c onClicked and it is called + whenever the acceptable mouse button is clicked, the left click being the default. We + can bind actions to the onClicked handler. In our example, \c console.log() outputs text + whenever the mouse area is clicked. The function \c console.log() is a useful tool for + debugging purposes and for outputting text. + + The code in \c SimpleButton.qml is sufficient to display a button on the screen and + output text whenever it is clicked with a mouse. + + \code + Rectangle { + id:Button + ... + + property color buttonColor: "lightblue" + property color onHoverColor: "gold" + property color borderColor: "white" + + signal buttonClick() + onButtonClick: { + console.log(buttonLabel.text + " clicked" ) + } + + MouseArea{ + onClicked: buttonClick() + hoverEnabled: true + onEntered: parent.border.color = onHoverColor + onExited: parent.border.color = borderColor + } + + //determines the color of the button by using the conditional operator + color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor + } + \endcode + + A fully functioning button is in \c Button.qml. The code snippets in this article + have some code omitted, denoted by ellipses because they were either introduced + earlier in the previous sections or irrelevant to the current code discussion. + + Custom properties are declared using the \c {property type name} syntax. In the + code, the property \c buttonColor, of type \c color, is declared and bound to + the value \c{"lightblue"}. The \c buttonColor is later used in a conditional + operation to determine the buttons's fill color. Note that property value + assignment is possible using the \c= equals sign, in addition to value binding + using the \c : colon character. Custom properties allow internal items to be + accessible outside of the Rectangle's scope. There are basic + \l{QML Basic Types}{QML types} such as \c int, \c string, \c real, as well as + a type called \c variant. + + By binding the \c onEntered and \c onExited signal handlers to colors, the + button's border will turn yellow when the mouse hovers above the button and + reverts the color when the mouse exits the mouse area. + + A \c buttonClick() signal is declared in \c Button.qml by placing the \c signal + keyword in front of the signal name. All signals have their handlers automatically + created, their names starting with \c on. As a result, the \c onButtonClick is + \c buttonClick's handler. The \c onButtonClick is then assigned an action to + perform. In our button example, the \c onClicked mouse handler will simply call + \c onButtonClick, which displays a text. The \c onButtonClick enables outside + objects to access the \c {Button}'s mouse area easily. For example, items may + have more than one \c MouseArea declarations and a \c buttonClick signal can + make the distinction between the several \c MouseArea signal handlers better. + + We now have the basic knowledge to implement items in QML that can handle + basic mouse movements. We created a \c Text label inside a \c Rectangle, + customized its properties, and implemented behaviors that respond to mouse + movements. This idea of creating elements within elements is repeated + throughout the text editor application. + + This button is not useful unless used as a component to perform an action. + In the next section, we will soon create a menu containing several of these + buttons. + + \image qml-texteditor1_button.png + + \section2 Creating a Menu Page + + Up to this stage, we covered how to create elements and assign behaviors inside + a single QML file. In this section, we will cover how to import QML elements and how + to reuse some of the created components to build other components. + + Menus display the contents of a list, each item having the ability to perform an action. + In QML, we can create a menu in several ways. First, we will create a menu containing + buttons which will eventually perform different actions. The menu code is in + \c FileMenu.qml. + + \code + import Qt 4.7 \\import the main Qt QML module + import "folderName" \\import the contents of the folder + import "Button.qml" \\import a QML file + import "NewButton.qml" as ButtonModule \\import a QML file and give it a name + import "script.js" as Script \\import a Javascript file and name it as Script + \endcode + + To use the \c Button element in \c FileMenu.qml, we need to import \c Button.qml. + The syntax shown above, shows how to use the \c import keyword. However, the + \c {import Button.qml} is not necessary; qmlviewer will import all the contents + of the current directory. We can directly create a \c Button element by declaring + \c Button{}, similar to a \c Rectangle{} declaration. + + \code + In FileMenu.qml: + + Row{ + anchors.centerIn: parent + spacing: parent.width/6 + + Button{ + id: loadButton + buttonColor: "lightgrey" + label: "Load" + } + Button{ + buttonColor: "grey" + id: saveButton + label: "Save" + } + Button{ + id: exitButton + label: "Exit" + buttonColor: "darkgrey" + + onButtonClick: Qt.quit() + } + } + \endcode + + In \c FileMenu.qml, we declare three \c Button elements. They are declared + inside a \l {Row}{Row} element, a positioner that will position its children + along a vertical row. The \c Button declaration resides in Button.qml, + which is the same as the \c Button.qml we used in the previous section. + New property bindings can be declared within the newly created buttons, + effectively overwriting the properties set in \c Button.qml. The button + called \c exitButton will quit and close the window when it is clicked. + Note that the signal handler \c onButtonClick in \c Button.qml will be + called in addition to the \c onButtonClick handler in \c exitButton. + + \image qml-texteditor1_filemenu.png + + The \c Row declaration is declared in a \c Rectangle, creating a rectangle + container for the row of buttons. This additional rectangle creates an indirect + way of organizing the row of buttons inside a menu. + + The declaration of the edit menu is very similar at this stage. The menu has + buttons that have the labels: \c Copy, \c Paste, and \c {Select All}. + + \image qml-texteditor1_editmenu.png + + Armed with our knowledge of importing and customizing previously made + components, we may now combine these menu pages to create a menu bar, + consisting of buttons to select the menu, and look at how we may structure + data using QML. + + \section1 Implementing a Menu Bar + + Our text editor application will need a way to display menus using a menu bar. + The menu bar will switch the different menus and the user can choose which menu + to display. Menu switching implies that the menus need more structure than + merely displaying them in a row. QML uses models and views to structure data + and display the structured data. + + \section2 Using Data Models and Views + + QML has different \l {Data Models}{data views} that display + \l {Data Models}{data models}. Our menu bar will display the menus in a list, + with a header that displays a row of menu names. The list of menus are declared + inside a \c VisualItemModel. The \l{VisualItemModel}{\c VisualItemModel} + element contains items that already have views such as \c Rectangle elements + and imported UI elements. Other model types such as the \l{ListModel}{\c ListModel} + element need a delegate to display their data. + + We declare two visual items in the \c menuListModel, the \c FileMenu and the + \c EditMenu. We customize the two menus and display them using a + \l {ListView}{ListView}. The \c MenuBar.qml file contains the QML declarations + and a simple edit menu is defined in \c EditMenu.qml. + + \code + VisualItemModel{ + id: menuListModel + FileMenu{ + width: menuListView.width + height: menuBar.height + color: fileColor + } + EditMenu{ + color: editColor + width: menuListView.width + height: menuBar.height + } + } + \endcode + + The \l {ListView}{ListView} element will display a model according to a delegate. + The delegate may declare the model items to display in a \c Row element or display + the items in a grid. Our \c menuListModel already has visible items, therefore, + we do not need to declare a delegate. + + \code + ListView{ + id: menuListView + + //Anchors are set to react to window anchors + anchors.fill:parent + anchors.bottom: parent.bottom + width:parent.width + height: parent.height + + //the model contains the data + model: menuListModel + + //control the movement of the menu switching + snapMode: ListView.SnapOneItem + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + flickDeceleration: 5000 + highlightFollowsCurrentItem: true + highlightMoveDuration:240 + highlightRangeMode: ListView.StrictlyEnforceRange + } + \endcode + + Additionally, \c ListView inherits from \l{Flickable}{\c Flickable}, making + the list respond to mouse drags and other gestures. The last portion of the + code above sets \c Flickable properties to create the desired flicking movement + to our view. In particular,the property \c highlightMoveDuration changes the + duration of the flick transition. A higher \c highlightMoveDuration value + results in slower menu switching. + + The \c ListView maintains the model items through an \c index and each visual + item in the model is accessible through the \c index, in the order of the + declaration. Changing the \c currentIndex effectively changes the highlighted + item in the \c ListView. The header of our menu bar exemplify this effect. + There are two buttons in a row, both changing the current menu when clicked. + The \c fileButton changes the current menu to the file menu when clicked, + the \c index being \c 0 because \c FileMenu is declared first in the + \c menuListModel. Similarly, the \c editButton will change the current + menu to the \c EditMenu when clicked. + + The \c labelList rectangle has \c z value of \c 1, denoting that it is displayed + at the front of the menu bar. Items with higher \c z values are displayed in front + of items with lower \c z values. The default \c z value is \c 0. + + \code + Rectangle{ + id: labelList + ... + z: 1 + Row{ + anchors.centerIn: parent + spacing:40 + Button{ + label: "File" + id: fileButton + ... + onButtonClick: menuListView.currentIndex = 0 + } + Button{ + id: editButton + label: "Edit" + ... + onButtonClick: menuListView.currentIndex = 1 + } + } + } + \endcode + + The menu bar we just created can be flicked to access the menus or by clicking + on the menu names at the top. Switching menu screens feel intuitive and responsive. + + \image qml-texteditor2_menubar.png + + */ + + /*! + \page qml-textEditor3.html + \title Building a Text Editor + + \section1 Declaring a TextArea + + Our text editor is not a text editor if it didn't contain an editable text area. + QML's \l {TextEdit}{TextEdit} element allows the declaration of a multi-line + editable text area. \l {TextEdit}{TextEdit} is different from a \l {Text}{Text} + element, which doesn't allow the user to directly edit the text. + + \code + TextEdit{ + id: textEditor + anchors.fill:parent + width:parent.width; height:parent.height + color:"midnightblue" + focus: true + + wrapMode: TextEdit.Wrap + + onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle) + } + \endcode + + The editor has its font color property set and set to wrap the text. The + \c TextEdit area is inside a flickable area that will scroll the text if the + text cursor is outside the visible area. The function \c ensureVisible() will + check if the cursor rectangle is outside the visible boundaries and move the + text area accordingly. QML uses Javascript syntax for its scripts, and as previously + mentioned, Javascript files can be imported and used within a QML file. + + \code + function ensureVisible(r){ + if (contentX >= r.x) + contentX = r.x; + else if (contentX+width <= r.x+r.width) + contentX = r.x+r.width-width; + if (contentY >= r.y) + contentY = r.y; + else if (contentY+height <= r.y+r.height) + contentY = r.y+r.height-height; + } + \endcode + + \section1 Combining Components for the Text Editor + + We are now ready to create the layout of our text editor using QML. The text + editor has two components, the menu bar we created and the text area. QML allows + us to reuse components, therefore making our code simpler, by importing components + and customizing when necessary. Our text editor splits the window into two; + one-third of the screen is dedicated to the menu bar and two-thirds of the screen + displays the text area. The menu bar is displayed in front of any other elements. + + \code + Rectangle{ + + id: screen + width: 1000; height: 1000 + + //the screen is partitioned into the MenuBar and TextArea. 1/3 of the screen is assigned to the MenuBar + property int partition: height/3 + + MenuBar{ + id:menuBar + height: partition + width:parent.width + z: 1 + } + + TextArea{ + id:textArea + anchors.bottom:parent.bottom + y: partition + color: "white" + height: partition*2 + width:parent.width + } + } + \endcode + + By importing reusable components, our \c TextEditor code looks much simpler. + We can then customize the main application, without worrying about properties + that already have defined behaviors. Using this approach, application layouts + and UI components can be created easily. + + \image qml-texteditor3_texteditor.png + + */ + + /*! + \page qml-textEditor4 + \title Decorating the Text Editor + \section1 Implementing a Drawer Interface + + Our text editor looks simple and we need to decorate it. Using QML, we can declare + transitions and animate our text editor. Our menu bar is occupying one-third of the + screen and it would be nice to have it only appear when we want it. + + We can add a drawer interface, that will contract or expand the menu bar when clicked. + In our implementation, we have a thin rectangle that responds to mouse clicks. The + \c drawer, as well as the application, has two sates: the "drawer is open" state and + the "drawer is closed" state. The \c drawer item is a strip of rectangle with a small + height. There is a nested \l {Image}{Image} element declaring that an arrow icon will + be centered inside the drawer. The drawer assigns a state to the whole application, + with the identifier \c screen, whenever a user clicks the mouse area. + + \code + Rectangle{ + id:drawer + height:15 + + Image{ + id: arrowIcon + source: "images/arrow.png" + anchors.horizontalCenter: parent.horizontalCenter + } + + MouseArea{ + id: drawerMouseArea + anchors.fill:parent + onClicked:{ + if (screen.state == "DRAWER_CLOSED"){ + screen.state = "DRAWER_OPEN" + } + else if (screen.state == "DRAWER_OPEN"){ + screen.state = "DRAWER_CLOSED" + } + } + ... + } + } + \endcode + + A state is simply a collection of configurations and it is declared in a + \l{State}{State} element. A list of states can be listed and bound to the + \c states property. In our application, the two states are called + \c DRAWER_CLOSED and \c DRAWER_OPEN. Item configurations are declared in + \l {PropertyChanges}{PropertyChanges} elements. In the \c DRAWER_OPEN state, + there are four items that will receive property changes. The first target, + \c menuBar, will change its \c y property to \c 0. Similarly, the \c textArea + will lower to a new position when the state is \c DRAWER_OPEN. The \c textArea, + the \c drawer, and the drawer's icon will undergo property changes to meet the + current state. + + \code + + states:[ + State{ + name: "DRAWER_OPEN" + PropertyChanges { target: menuBar; y:0} + PropertyChanges { target: textArea; y: partition + drawer.height} + PropertyChanges { target: drawer; y: partition} + PropertyChanges { target: arrowIcon; rotation: 180} + }, + State{ + name: "DRAWER_CLOSED" + PropertyChanges { target: menuBar; y:-partition} + PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height} + PropertyChanges { target: drawer; y: 0} + PropertyChanges { target: arrowIcon; rotation: 0} + } + + ] + + \endcode + + State changes are abrupt and needs smoother transitions. Transitions between states + are defined using the \l {Transition}{Transition} element, which can then bind to + the item's \c transitions property. Our text editor has a state transition whenever + the state changes to either \c DRAWER_OPEN or \c DRAWER_CLOSED. Importantly, the + transition needs a \c from and a \c to state but for our transitions, we can use + the wild card \c * symbol to denote that the transition applies to all state changes. + + During transitions, we can assign animations to the property changes. Our + \c menuBar switches position from \c {y:0} to \c {y:-partition} and we can animate + this transition using the \l {NumberAnimation}{NumberAnimation} element. We declare + that the targets' properties will animate for a certain duration of time and using + a certain easing curve. An easing curve controls the animation rates and + interpolation behavior during state transitions. The easing curve we chose is + \l{PropertyAnimation::easing.type}{Easing.OutQuint}, which slows the movement near + the end of the animation. Pleae read \l {qdeclarativeanimation.html}{QML's Animation} + article. + + \code + transitions: [ + Transition{ + to: "*" + NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type: Easing.OutQuint } + NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutQuint } + NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutQuint } + } + ] + \endcode + + Another way of animating property changes is by declaring a \l {Behavior}{Behavior} + element. A transition only works during state changes and \c Behavior can set an + animation for a general property change. In the text editor, the arrow has a + \c NumberAnimation animating its \c rotation property whenever the property changes. + + \code + In TextEditor.qml: + + Behavior{ + NumberAnimation{property: "rotation";easing.type: Easing.OutExpo } + } + \endcode + + Going back to our components with knowledge of states and animations, we can improve + the appearances of the components. In \c Button.qml, we can add \c color and \c scale + property changes when the button is clicked. Color types are animated using + \l {ColorAnimation}{ColorAnimation} and numbers are animated using + \l {NumberAnimation}{NumberAnimation}. The \c {on propertyName} syntax displayed below + is helpful when targeting a single property. + + \code + In Button.qml: + ... + + color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor + Behavior on color { ColorAnimation{ duration: 55} } + + scale: buttonMouseArea.pressed ? 1.1 : 1.00 + Behavior on scale { NumberAnimation{ duration: 55} } + \endcode + + Additionally, we can enhance the appearances of our QML components by adding color + effects such as gradients and opacity effects. Declaring a \l {Gradient}{Gradient} + element will override the \c color property of the element. You may declare a color + in the gradient using the \l {GradientStop}{GradientStop} element. The gradient is + positioned using a scale, between \c 0.0 and \c 1.0. + + \code + In MenuBar.qml + gradient: Gradient { + GradientStop { position: 0.0; color: "#8C8F8C" } + GradientStop { position: 0.17; color: "#6A6D6A" } + GradientStop { position: 0.98;color: "#3F3F3F" } + GradientStop { position: 1.0; color: "#0e1B20" } + } + \endcode + + This gradient is used by the menu bar to display a gradient simulating depth. + The first color starts at \c 0.0 and the last color is at \c 1.0. + + + \section2 Where to Go from Here + + We are finished building the user interface of a very simple text editor. + Going forward, the user interface is complete, and we can implement the + application logic using regular Qt and C++. QML works nicely as a prototyping + tool, separating the application logic away from the UI design. + + \image qml-texteditor4_texteditor.png + + \section1 Extending QML using Qt C++ + + Now that we have our text editor layout, we may now implement the text editor + functionalities in C++. Using QML with C++ enables us to create our application + logic using Qt. We can create a QML context in a C++ application using the + \l {Using QML in C++ Applications}{Qt's Declarative} classes and display the QML + elements using a Graphics Scene. Alternatively, we can export our C++ code into + a plugin that the \l {QML Viewer}{qmlviewer} tool can read. For our application, + we shall implement the load and save functions in C++ and export it as a plugin. + This way, we only need to load the QML file directly instead of running an executable. + + \section2 Exposing C++ Classes to QML + + We will be implementing file loading and saving using Qt and C++. C++ classes + and functions can be used in QML by registering them. The class also needs to be + compiled as a Qt plugin and the QML file will need to know where the plugin is located. + + For our application, we need to create the following items: + \list 1 + \o \c Directory class that will handle directory related operations + \o \c File class which is a QObject, simulating the list of files in a directory + \o plugin class that will register the class to the QML context + \o Qt project file that will compile the plugin + \o A \c qmldir file telling the qmlviewer tool where to find the plugin + \endlist + + \section2 Building a Qt Plugin + + To build a plugin, we need to set the following in a Qt project file. First, + the necessary sources, headers, and Qt modules need to be added into our + project file. All the C++ code and project files are in the \c filedialog + directory. + + \code + In cppPlugins.pro: + + TEMPLATE = lib + CONFIG += qt plugin + QT += declarative + + DESTDIR += ../plugins + OBJECTS_DIR = tmp + MOC_DIR = tmp + + TARGET = FileDialog + + HEADERS += directory.h \ + file.h \ + dialogPlugin.h + + SOURCES += directory.cpp \ + file.cpp \ + dialogPlugin.cpp + \endcode + + In particular, we compile Qt with the \c declarative module and configure it as a + \c plugin, needing a \c lib template. We shall put the compiled plugin into the + parent's \c plugins directory. + + + \section2 Registering a Class into QML + + \code + In dialogPlugin.h: + + #include + + class DialogPlugin : public QDeclarativeExtensionPlugin + { + Q_OBJECT + + public: + void registerTypes(const char *uri); + + }; + + \endcode + + Our plugin class, \c DialogPlugin is a subclass of \l{QDeclarativeExtensionPlugin}. + We need to implement the inherited function, \l {QDeclarativeExtensionPlugin::}{registerTypes()}. + The \c dialogPlugin.cpp file looks like this: + + \code + DialogPlugin.cpp: + + #include "dialogPlugin.h" + #include "directory.h" + #include "file.h" + #include + + void DialogPlugin::registerTypes(const char *uri){ + + qmlRegisterType(uri, 1, 0, "Directory"); + qmlRegisterType(uri, 1, 0,"File"); + } + + Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); + \endcode + + The \l{QDeclarativeExtensionPlugin::}{registerTypes()} function registers + our File and Directory classes into QML. This function needs the class name + for its template, a major version number, a minor version number, and a name + for our classes. + + We need to export the plugin using the \l {Q_EXPORT_PLUGIN2}{Q_EXPORT_PLUGIN2} + macro. Note that in our \c dialogPlugin.h file, we have the \l {Q_OBJECT}{Q_OBJECT} + macro at the top of our class. As well, we need to run \c qmake on the project + file to generate the necessary meta-object code. + + + \section2 Creating QML Properties in a C++ class + + We can create QML elements and properties using C++ and + \l {The Meta-Object System}{Qt's Meta-Object System}. We can implement + properties using slots and signals, making Qt aware of these properties. + These properties can then be used in QML. + + For the text editor, we need to be able to load and save files. Typically, + these features are contained in a file dialog. Fortunately, we can use + \l {QDir}{QDir}, \l {QFile}{QFile}, and \l {QTextStream}{QTextStream} to + implement directory reading and input/output streams. + + \code + class Directory : public QObject{ + + Q_OBJECT + + Q_PROPERTY(int filesCount READ filesCount CONSTANT) + Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) + Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged) + Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) + + ... + \endcode + + The \c Directory class uses Qt's Meta-Object System to register properties it + needs to accomplish file handling. The \c Directory class is exported as a plugin + and is useable in QML as the \c Directory element. Each of the listed properties + using the \l {Q_PROPERTY()}{Q_PROPERTY} macro is a QML property. + + The \l {Q_PROPERTY()} {Q_PROPERTY} declares a property as well as its read and + write functions into Qt's Meta-Object System. For example, the \c filename + property, of type \l {QString}{QString}, is readable using the \c filename() + function and writable using the function \c setFilename(). Additionally, there + is a signal associated to the filename property called \c filenameChanged(), + which is emitted whenever the property changes. The read and write functions + are declared as \c public in the header file. + + Similarly, we have the other properties declared according to their uses. The + \c filesCount property indicates the number of files in a directory. The filename + property is set to the currently selected file's name and the loaded/saved file + content is stored in \c fileContent property. + + \code + Q_PROPERTY(QDeclarativeListProperty files READ files CONSTANT ) + \endcode + + The \c files list property is a list of all the filtered files in a directory. + The \c Directory class is implemented to filter out invalid text files; only + files with a \c .txt extension are valid. Further, \l {QLists}{QLists} can be + used in QML files by declaring them as a \c QDeclarativeListProperty in C++. + The templated object needs to inherit from a \l {QObject}{QObject}, therefore, + the \c File class must also inherit from \c QObject. In the \c Directory class, + the list of \c File objects is stored in a \c QList called \c m_fileList. + + \code + class File : public QObject{ + + Q_OBJECT + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + + ... + }; + \endcode + + The properties can then be used in QML as part of the \c Directory element's + properties. Note that we do not have to create an identifier \c id property + in our C++ code. + + \code + Directory{ + id: directory + + filesCount + filename + fileContent + files + + files[0].name + } + + \endcode + + Because QML uses Javascript's syntax and structure, we can iterate through + the list of files and retrieve its properties. To retrieve the first file's + name property, we can call \c { files[0].name }. + + Regular C++ functions are also accessible from QML. The file loading and saving + functions are implemented in C++ and declared using the + \l {Q_INVOKABLE}{Q_INVOKABLE} macro. Alternatively, we can declare the functions + as a \c slot and the functions will be accessible from QML. + + \code + In Directory.h: + + Q_INVOKABLE void saveFile(); + Q_INVOKABLE void loadFile(); + \endcode + + The \c Directory class also has to notify other objects whenever the directory + contents change. This feature is performed using a \c signal. As previously + mentioned, QML signals have a corresponding handler with their names prepended + with \c on. The signal is called \c directoryChanged and it is emitted whenever + there is a directory refresh. The refresh simply reloads the directory contents + and updates the list of valid files in the directory. QML items can then be + notified by attaching an action to the \c onDirectoryChanged signal handler. + + The \c list properties need to be explored further. This is because list + properties use callbacks to access and modify the list contents. The list + property is of type \c QDeclarativeListProperty. Whenever the list + is accessed, the accessor function needs to return a + \c QDeclarativeListProperty. The template type, \c File, needs to be a + \c QObject derivative. Further, to create the + \l {QDeclarativeListProperty}{QDeclarativeListProperty}, the list's accessor + and modifiers need to be passed to the consructor as function pointers. The list, + a \c QList in our case, also needs to be a list of \c File pointers. + + The constructor of \l {QDeclarativeListProperty}{QDeclarativeListProperty} + constructor and the \c Directory implementation: + \code + QDeclarativeListProperty ( QObject * object, void * data, AppendFunction append, CountFunction count = 0, AtFunction at = 0, ClearFunction clear = 0 ) + QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); + \endcode + + The constructor passes pointers to functions that will append the list, count + the list, retrieve the item using an index, and empty the list. Only the append + function is mandatory. Note that the function pointers must match the definition + of \l {QDeclarativeListProperty::AppendFunction}{AppendFunction}, + \l {QDeclarativeListProperty::CountFunction}{CountFunction}, + \l {QDeclarativeListProperty::AtFunction}{AtFunction}, or + \l {QDeclarativeListProperty::ClearFunction}{ClearFunction}. + + \code + void appendFiles(QDeclarativeListProperty * property, File * file) + File* fileAt(QDeclarativeListProperty * property, int index) + int filesSize(QDeclarativeListProperty * property) + void clearFilesPtr(QDeclarativeListProperty *property) + \endcode + + To simplify our file dialog, the \c Directory class filters out invalid text + files, which are files that do not have a \c .txt extension. If a file name + doesn't have the \c .txt extension, then it won't be seen in our file dialog. + Also, the implementation makes sure that saved files have a \c .txt extension in + the file name. \c Directory uses \l {QTextStream}{QTextStream} to read the file + and to output the file contents to a file. + + With our \c Directory element, we can retrieve the files as a list, know how many + text files is in the application directory, get the file's name and content as a + string, and be notified whenever there are changes in the directory contents. + + To build the plugin, run \c qmake on the \c cppPlugins.pro project file, then run + \c make to build and transfer the plugin to the \c plugins directory. + + + \section2 Importing a Plugin in QML + + The qmlviewer tool imports files that are in the same directory as the + application. We can also create a \c qmldir file containing the locations of + QML files we wish to import. The \c qmldir file can also store locations of + plugins and other resources. + + \code + In qmldir: + + Button ./Button.qml + FileDialog ./FileDialog.qml + TextArea ./TextArea.qml + TextEditor ./TextEditor.qml + EditMenu ./EditMenu.qml + + plugin FileDialog plugins + \endcode + + The plugin we just created is called \c FileDialog, as indicated by the + \c TARGET field in the project file. The compiled plugin is in the \c plugins directory. + + + \section2 Integrating a File Dialog into the File Menu + + Our \c FileMenu needs to display the \c FileDialog element, containing a list of + the text files in a directory thus allowing the user to select the file by + clicking on the list. We also need to assign the save, load, and new buttons + to their respective actions. The FileMenu contains an editable text input to + allow the user to type a file name using the keyboard. + + The \c Directory element is used in the \c FileMenu.qml file and it notifies the + \c FileDialog element that the directory refreshed its contents. This notification + is performed in the signal handler, \c onDirectoryChanged. + + \code + In FileMenu.qml: + + Directory{ + id:directory + filename: textInput.text + onDirectoryChanged: fileDialog.notifyRefresh() + } + \endcode + + Keeping with the simplicity of our application, the file dialog will always be + visible and will not display invalid text files, which do not have a \c .txt + extension to their filenames. + + \code + In FileDialog.qml: + + signal notifyRefresh() + onNotifyRefresh: dirView.model = directory.files + \endcode + + The \c FileDialog element will display the contents of a directory by reading its + list property called \c files. The files are used as the model of a + \l {GridView}{GridView} element, which displays data items in a grid according + to a delegate. The delegate handles the appearance of the model and our file + dialog will simply create a grid with text centered in the middle. Clicking on + the file name will result in the appearance of a rectangle to highlight the file + name. The \c FileDialog is notified whenever the \c notifyRefresh signal is emitted, + reloading the files in the directory. + + \code + In FileMenu.qml: + + Button{ + id: newButton + label: "New" + onButtonClick:{ + textArea.textContent = "" + } + } + Button{ + id: loadButton + label: "Load" + onButtonClick:{ + directory.filename = textInput.text + directory.loadFile() + textArea.textContent = directory.fileContent + } + } + Button{ + id: saveButton + label: "Save" + onButtonClick:{ + directory.fileContent = textArea.textContent + directory.filename = textInput.text + directory.saveFile() + } + } + Button{ + id: exitButton + label: "Exit" + onButtonClick:{ + Qt.quit() + } + } + \endcode + + Our \c FileMenu can now connect to their respective actions. The \c saveButton + will transfer the text from the \c TextEdit onto the directory's \c fileContent + property, then copy its file name from the editable text input. Finally, the button + calls the \c saveFile() function, saving the file. The \c sloadButton has a similar + execution. Also, the \c New action will empty the contents of the \c TextEdit. + + Further, the \c EditMenu buttons are connected to the \c TextEdit functions to copy, + paste, and select all the text in the text editor. + + \image qml-texteditor5_filemenu.png + + \section1 Text Editor Completion + + \image qml-texteditor5_newfile.png + + The application can function as a simple text editor, able to accept text + and save the text into a file. The text editor can also load from a file and + perform text manipulation. +*/ diff --git a/doc/src/getting-started/gettingstartedqt.qdoc b/doc/src/getting-started/gettingstartedqt.qdoc index 1b3770f..25d0ccd 100644 --- a/doc/src/getting-started/gettingstartedqt.qdoc +++ b/doc/src/getting-started/gettingstartedqt.qdoc @@ -28,8 +28,8 @@ /*! \page gettingstartedqt.html - \title Getting Started programming with Qt - \ingroup gettingStarted + \title Getting Started Programming with Qt + \ingroup gettingStarted Welcome to the world of Qt--the cross-platform GUI toolkit. In this getting started guide, we teach basic Qt knowledge by @@ -85,7 +85,7 @@ other widgets), it is possible to show a single widget in its own window. Widgets are not visible by default; the function \l{QWidget::}{show()} makes the widget visible. - + Line 11 makes the QApplication enter its event loop. When a Qt application is running, events are generated and sent to the widgets of the application. Examples of events are mouse presses diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 8867fd9..3771bcc 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -455,10 +455,10 @@ \image quick_screens.png - Qt 4.7 introduces Quick, the Qt UI Creation Kit. that enables the creation - of dynamic user interfaces, easier and more effective than possible - with existing UI technologies. This UI Creation Kit consist of three - technologies: + Qt 4.7 introduces \l{Qt Quick}, the Qt UI Creation Kit. that enables + the creation of dynamic user interfaces, easier and more effective + than possible with existing UI technologies. This UI Creation Kit + consists of three technologies: \list \i QML is a declarative language oriented on JavaScript that utilizes diff --git a/examples/declarative/ui-components/dialcontrol/content/Dial.qml b/examples/declarative/ui-components/dialcontrol/content/Dial.qml index b5074a64..3ffa09a 100644 --- a/examples/declarative/ui-components/dialcontrol/content/Dial.qml +++ b/examples/declarative/ui-components/dialcontrol/content/Dial.qml @@ -68,6 +68,7 @@ Item { transform: Rotation { id: needleRotation origin.x: 5; origin.y: 65 + //! [needle angle] angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133) Behavior on angle { SpringAnimation { @@ -75,6 +76,7 @@ Item { damping: .15 } } + //! [needle angle] } } //! [needle] diff --git a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml index 95df68c..46cc3e6 100644 --- a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml +++ b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml @@ -38,8 +38,10 @@ ** ****************************************************************************/ +//! [imports] import Qt 4.7 import "content" +//! [imports] //! [0] Rectangle { @@ -87,4 +89,4 @@ Rectangle { } } } -//! [0] \ No newline at end of file +//! [0] diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 1d48b1a..e3e1840 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -599,7 +599,7 @@ QDeclarativeComponent::QDeclarativeComponent(QDeclarativeComponentPrivate &dd, Q property, or else the object will not be visible. Dynamically created instances can be deleted with the \c destroy() method. - See \l {Dynamic Object Management} for more information. + See \l {Dynamic Object Management in QML} for more information. */ /*! diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 3822373..a476629 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -240,7 +240,7 @@ The format specification is described at \l{QML:Qt::formatDateTime}{Qt.formatDat \section1 Dynamic Object Creation The following functions on the global object allow you to dynamically create QML -items from files or strings. See \l{Dynamic Object Management} for an overview +items from files or strings. See \l{Dynamic Object Management in QML} for an overview of their use. \list @@ -1118,7 +1118,7 @@ For example: \snippet doc/src/snippets/declarative/createComponent-simple.qml 0 -See \l {Dynamic Object Management} for more information on using this function. +See \l {Dynamic Object Management in QML} for more information on using this function. To create a QML object from an arbitrary string of QML (instead of a file), use \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()}. @@ -1170,7 +1170,7 @@ Note that this function returns immediately, and therefore may not work if the \a qml string loads new components (that is, external QML files that have not yet been loaded). If this is the case, consider using \l{QML:Qt::createComponent()}{Qt.createComponent()} instead. -See \l {Dynamic Object Management} for more information on using this function. +See \l {Dynamic Object Management in QML} for more information on using this function. */ QScriptValue QDeclarativeEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngine *engine) -- cgit v0.12 From 48cd20335f838db5aa31031c10352ca7058d84e8 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 Aug 2010 10:20:14 +1000 Subject: Associate qmlInfo() documentation with QDeclarativeEngine Task-number: QTBUG-12755 --- src/declarative/qml/qdeclarativeinfo.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/declarative/qml/qdeclarativeinfo.cpp b/src/declarative/qml/qdeclarativeinfo.cpp index c980a2a..c6560dd 100644 --- a/src/declarative/qml/qdeclarativeinfo.cpp +++ b/src/declarative/qml/qdeclarativeinfo.cpp @@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE /*! \fn QDeclarativeInfo qmlInfo(const QObject *object) + \relates QDeclarativeEngine \brief Prints warnings messages that include the file and line number for QML types. -- cgit v0.12 From bacf934f35c51baf49d0b73cf4fb79e860e24303 Mon Sep 17 00:00:00 2001 From: Arvid Ephraim Picciani Date: Mon, 9 Aug 2010 15:28:59 -0700 Subject: add performance comparisons to qregexp benchmark Reviewed-by: hjk --- tests/benchmarks/corelib/tools/qregexp/main.cpp | 304 +++++++++++++++++++++ tests/benchmarks/corelib/tools/qregexp/qregexp.pro | 11 +- tests/benchmarks/corelib/tools/qregexp/qregexp.qrc | 6 + 3 files changed, 320 insertions(+), 1 deletion(-) create mode 100644 tests/benchmarks/corelib/tools/qregexp/qregexp.qrc diff --git a/tests/benchmarks/corelib/tools/qregexp/main.cpp b/tests/benchmarks/corelib/tools/qregexp/main.cpp index ab9ed71..51cde95 100644 --- a/tests/benchmarks/corelib/tools/qregexp/main.cpp +++ b/tests/benchmarks/corelib/tools/qregexp/main.cpp @@ -38,16 +38,27 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + #include #include #include +#include #include +#ifdef HAVE_BOOST +#include +#endif + +#include +#include "pcre/pcre.h" +#define ZLIB_VERSION "1.2.3.4" class tst_qregexp : public QObject { Q_OBJECT +public: + tst_qregexp(); private slots: void escape_old(); void escape_old_data() { escape_data(); } @@ -59,10 +70,56 @@ private slots: void escape_new3_data() { escape_data(); } void escape_new4(); void escape_new4_data() { escape_data(); } +/* + JSC outperforms everything. + Boost is less impressive then expected. + */ + void simpleFind1(); + void rangeReplace1(); + void matchReplace1(); + + void simpleFind2(); + void rangeReplace2(); + void matchReplace2(); + + void simpleFindJSC(); + void rangeReplaceJSC(); + void matchReplaceJSC(); + +#ifdef HAVE_BOOST + void simpleFindBoost(); + void rangeReplaceBoost(); + void matchReplaceBoost(); +#endif + +/* those apply an (incorrect) regexp on entire source + (this main.cpp). JSC appears to handle this + (ab)use case best. QRegExp performs extremly bad. + */ + void horribleWrongReplace1(); + void horribleReplace1(); + void horribleReplace2(); + void horribleWrongReplace2(); + void horribleWrongReplaceJSC(); + void horribleReplaceJSC(); +#ifdef HAVE_BOOST + void horribleWrongReplaceBoost(); + void horribleReplaceBoost(); +#endif private: + QString str1; + QString str2; void escape_data(); }; +tst_qregexp::tst_qregexp() + :QObject() + ,str1("We are all happy monkeys") +{ + QFile f(":/main.cpp"); + f.open(QFile::ReadOnly); + str2=f.readAll(); +} static void verify(const QString "ed, const QString &expected) { @@ -285,6 +342,253 @@ void tst_qregexp::escape_new4() // "return quoted" } } + + +void tst_qregexp::simpleFind1() +{ + int roff; + QRegExp rx("happy"); + rx.setPatternSyntax(QRegExp::RegExp); + QBENCHMARK{ + roff = rx.indexIn(str1); + } + QCOMPARE(roff, 11); +} + +void tst_qregexp::rangeReplace1() +{ + QString r; + QRegExp rx("[a-f]"); + rx.setPatternSyntax(QRegExp::RegExp); + QBENCHMARK{ + r = QString(str1).replace(rx, "-"); + } + QCOMPARE(r, QString("W- -r- -ll h-ppy monk-ys")); +} + +void tst_qregexp::matchReplace1() +{ + QString r; + QRegExp rx("[^a-f]*([a-f]+)[^a-f]*"); + rx.setPatternSyntax(QRegExp::RegExp); + QBENCHMARK{ + r = QString(str1).replace(rx, "\\1"); + } + QCOMPARE(r, QString("eaeaae")); +} + +void tst_qregexp::horribleWrongReplace1() +{ + QString r; + QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*"); + rx.setPatternSyntax(QRegExp::RegExp); + QBENCHMARK{ + r = QString(str2).replace(rx, "\\1.\\2.\\3"); + } + QCOMPARE(r, str2); +} + +void tst_qregexp::horribleReplace1() +{ + QString r; + QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*"); + rx.setPatternSyntax(QRegExp::RegExp); + QBENCHMARK{ + r = QString(str2).replace(rx, "\\1.\\2.\\3"); + } + QCOMPARE(r, QString("1.2.3")); +} + + +void tst_qregexp::simpleFind2() +{ + int roff; + QRegExp rx("happy"); + rx.setPatternSyntax(QRegExp::RegExp2); + QBENCHMARK{ + roff = rx.indexIn(str1); + } + QCOMPARE(roff, 11); +} + +void tst_qregexp::rangeReplace2() +{ + QString r; + QRegExp rx("[a-f]"); + rx.setPatternSyntax(QRegExp::RegExp2); + QBENCHMARK{ + r = QString(str1).replace(rx, "-"); + } + QCOMPARE(r, QString("W- -r- -ll h-ppy monk-ys")); +} + +void tst_qregexp::matchReplace2() +{ + QString r; + QRegExp rx("[^a-f]*([a-f]+)[^a-f]*"); + rx.setPatternSyntax(QRegExp::RegExp2); + QBENCHMARK{ + r = QString(str1).replace(rx, "\\1"); + } + QCOMPARE(r, QString("eaeaae")); +} + +void tst_qregexp::horribleWrongReplace2() +{ + QString r; + QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*"); + rx.setPatternSyntax(QRegExp::RegExp2); + QBENCHMARK{ + r = QString(str2).replace(rx, "\\1.\\2.\\3"); + } + QCOMPARE(r, str2); +} + +void tst_qregexp::horribleReplace2() +{ + QString r; + QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*"); + rx.setPatternSyntax(QRegExp::RegExp2); + QBENCHMARK{ + r = QString(str2).replace(rx, "\\1.\\2.\\3"); + } + QCOMPARE(r, QString("1.2.3")); +} + + +void tst_qregexp::simpleFindJSC() +{ + int numr; + const char * errmsg=" "; + QString rxs("happy"); + JSRegExp *rx = jsRegExpCompile(rxs.utf16(), rxs.length(), JSRegExpDoNotIgnoreCase, JSRegExpSingleLine, 0, &errmsg); + QVERIFY(rx != 0); + QString s(str1); + int offsetVector[3]; + QBENCHMARK{ + numr = jsRegExpExecute(rx, s.utf16(), s.length(), 0, offsetVector, 3); + } + jsRegExpFree(rx); + QCOMPARE(numr, 1); + QCOMPARE(offsetVector[0], 11); +} + +void tst_qregexp::rangeReplaceJSC() +{ + QScriptValue r; + QScriptEngine engine; + engine.globalObject().setProperty("s", str1); + QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/[a-f]/g, '-') } )"); + QVERIFY(replaceFunc.isFunction()); + QBENCHMARK{ + r = replaceFunc.call(QScriptValue()); + } + QCOMPARE(r.toString(), QString("W- -r- -ll h-ppy monk-ys")); +} + +void tst_qregexp::matchReplaceJSC() +{ + QScriptValue r; + QScriptEngine engine; + engine.globalObject().setProperty("s", str1); + QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/[^a-f]*([a-f]+)[^a-f]*/g, '$1') } )"); + QVERIFY(replaceFunc.isFunction()); + QBENCHMARK{ + r = replaceFunc.call(QScriptValue()); + } + QCOMPARE(r.toString(), QString("eaeaae")); +} + +void tst_qregexp::horribleWrongReplaceJSC() +{ + QScriptValue r; + QScriptEngine engine; + engine.globalObject().setProperty("s", str2); + QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/.*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*/gm, '$1.$2.$3') } )"); + QVERIFY(replaceFunc.isFunction()); + QBENCHMARK{ + r = replaceFunc.call(QScriptValue()); + } + QCOMPARE(r.toString(), str2); +} + +void tst_qregexp::horribleReplaceJSC() +{ + QScriptValue r; + QScriptEngine engine; + // the m flag doesnt actually work here; dunno + engine.globalObject().setProperty("s", str2.replace('\n', ' ')); + QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/.*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*/gm, '$1.$2.$3') } )"); + QVERIFY(replaceFunc.isFunction()); + QBENCHMARK{ + r = replaceFunc.call(QScriptValue()); + } + QCOMPARE(r.toString(), QString("1.2.3")); +} + + +#ifdef HAVE_BOOST +void tst_qregexp::simpleFindBoost(){ + int roff; + boost::regex rx ("happy", boost::regex_constants::perl); + std::string s = str1.toStdString(); + std::string::const_iterator start, end; + start = s.begin(); + end = s.end(); + boost::match_flag_type flags = boost::match_default; + QBENCHMARK{ + boost::match_results what; + regex_search(start, end, what, rx, flags); + roff = (what[0].first)-start; + } + QCOMPARE(roff, 11); +} + +void tst_qregexp::rangeReplaceBoost() +{ + boost::regex pattern ("[a-f]", boost::regex_constants::perl); + std::string s = str1.toStdString(); + std::string r; + QBENCHMARK{ + r = boost::regex_replace (s, pattern, "-"); + } + QCOMPARE(r, std::string("W- -r- -ll h-ppy monk-ys")); +} + +void tst_qregexp::matchReplaceBoost() +{ + boost::regex pattern ("[^a-f]*([a-f]+)[^a-f]*",boost::regex_constants::perl); + std::string s = str1.toStdString(); + std::string r; + QBENCHMARK{ + r = boost::regex_replace (s, pattern, "$1"); + } + QCOMPARE(r, std::string("eaeaae")); +} + +void tst_qregexp::horribleWrongReplaceBoost() +{ + boost::regex pattern (".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*", boost::regex_constants::perl); + std::string s = str2.toStdString(); + std::string r; + QBENCHMARK{ + r = boost::regex_replace (s, pattern, "$1.$2.$3"); + } + QCOMPARE(r, s); +} + +void tst_qregexp::horribleReplaceBoost() +{ + boost::regex pattern (".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*", boost::regex_constants::perl); + std::string s = str2.toStdString(); + std::string r; + QBENCHMARK{ + r = boost::regex_replace (s, pattern, "$1.$2.$3"); + } + QCOMPARE(r, std::string("1.2.3")); +} +#endif //HAVE_BOOST + QTEST_MAIN(tst_qregexp) #include "main.moc" diff --git a/tests/benchmarks/corelib/tools/qregexp/qregexp.pro b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro index e0f47c9..ffdad12 100644 --- a/tests/benchmarks/corelib/tools/qregexp/qregexp.pro +++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro @@ -3,10 +3,19 @@ TEMPLATE = app TARGET = tst_bench_qregexp DEPENDPATH += . INCLUDEPATH += . - +RESOURCES+=qregexp.qrc QT -= gui +QT += script CONFIG += release # Input SOURCES += main.cpp + +include( $${QT_SOURCE_TREE}/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri ) + +exists( /usr/include/boost/regex.hpp ){ +DEFINES+=HAVE_BOOST +LIBS+=-lboost_regex +} + diff --git a/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc new file mode 100644 index 0000000..a7fe13c --- /dev/null +++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc @@ -0,0 +1,6 @@ + + + main.cpp + + + -- cgit v0.12 From 6feb5b75ce96aeeefee189af003949db8c031519 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 10 Aug 2010 11:50:49 +1000 Subject: Don't double-add item change listeners. When a Repeater was used as the child of an Item binding to childrenRect, the item change listener was being added twice for the items created by the Repeater. Task-number: QTBUG-12722 --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 4 ++-- .../qdeclarativeitem/data/childrenRectBug3.qml | 15 +++++++++++++++ .../declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp | 12 ++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index ff05997..9d782b9 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -2724,12 +2724,12 @@ QVariant QDeclarativeItem::itemChange(GraphicsItemChange change, } break; case ItemChildAddedChange: - if (d->_contents) + if (d->_contents && d->componentComplete) d->_contents->childAdded(qobject_cast( value.value())); break; case ItemChildRemovedChange: - if (d->_contents) + if (d->_contents && d->componentComplete) d->_contents->childRemoved(qobject_cast( value.value())); break; diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml new file mode 100644 index 0000000..f19ab4f --- /dev/null +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml @@ -0,0 +1,15 @@ +import Qt 4.7 + +Rectangle { + width: 300 + height: 300 + + Rectangle { + height: childrenRect.height + + Repeater { + model: 1 + Rectangle { } + } + } +} diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp index d76d360..25ca157 100644 --- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp +++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp @@ -75,6 +75,7 @@ private slots: void childrenRect(); void childrenRectBug(); void childrenRectBug2(); + void childrenRectBug3(); void childrenProperty(); void resourcesProperty(); @@ -780,6 +781,17 @@ void tst_QDeclarativeItem::childrenRectBug2() delete canvas; } +// QTBUG-12722 +void tst_QDeclarativeItem::childrenRectBug3() +{ + QDeclarativeView *canvas = new QDeclarativeView(0); + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/childrenRectBug3.qml")); + canvas->show(); + + //don't crash on delete + delete canvas; +} + template T *tst_QDeclarativeItem::findItem(QGraphicsObject *parent, const QString &objectName) { -- cgit v0.12 From f3ac9de816c0bff9961110c5a734871da2e129cf Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Tue, 10 Aug 2010 07:21:10 +0200 Subject: Correct spelling (UNKOWN -> UNKNOWN) to fix recent test regression Commit eea84818e98af917d3cf2bf04ea17a416ef9d55e corrected some spelling mistakes, one of which this test was relying on. Reviewed-by: trustme --- .../declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp index d5a911a..db1f191 100644 --- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp +++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp @@ -585,7 +585,7 @@ void tst_qdeclarativeinstruction::dump() << "45\t\t48\tDEFER\t\t\t7" << "46\t\tNA\tDEFER\t\t\t7" << "47\t\t48\tSTORE_IMPORTED_SCRIPT\t2" - << "48\t\t50\tXXX UNKOWN INSTRUCTION\t1234" + << "48\t\t50\tXXX UNKNOWN INSTRUCTION\t1234" << "49\t\t51\tSTORE_VARIANT_INTEGER\t\t32\t11" << "50\t\t52\tSTORE_VARIANT_DOUBLE\t\t19\t33.7" << "-------------------------------------------------------------------------------"; -- cgit v0.12 From a1641e27d2e2f5e29362e3737be6b9d75714d138 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Mon, 9 Aug 2010 15:56:34 +0200 Subject: Add text decoration support to QStaticText The original code path of QStaticText does not include decoration drawing, this patch generalized the drawTextItemDecoration() function to draw decoration for drawText(), then use that to draw decoration for QStaticText. A helper function called drawDecorationForGlyphs() is made to allow easier extension for direct glyphs drawing support. Task-number: QTBUG-12121 Reviewed-by: Eskil --- src/gui/painting/qpainter.cpp | 84 +++++++++++++++++++---- tests/auto/qstatictext/tst_qstatictext.cpp | 106 +++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 13 deletions(-) diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 9dadbd5..b694d9c 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -90,6 +90,15 @@ void qt_format_text(const QFont &font, const QRectF &_r, int tf, const QTextOption *option, const QString& str, QRectF *brect, int tabstops, int* tabarray, int tabarraylen, QPainter *painter); +static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QFontEngine *fe, + QTextCharFormat::UnderlineStyle underlineStyle, + const QTextItem::RenderFlags flags, qreal width, + const QTextCharFormat &charFormat); +// Helper function to calculate left most position, width and flags for decoration drawing +static void drawDecorationForGlyphs(QPainter *painter, const glyph_t *glyphArray, + const QFixedPoint *positions, int glyphCount, + QFontEngine *fontEngine, const QFont &font, + const QTextCharFormat &charFormat); static inline QGradient::CoordinateMode coordinateMode(const QBrush &brush) { @@ -5923,6 +5932,10 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText currentColor = item->color; } d->extended->drawStaticTextItem(item); + + drawDecorationForGlyphs(this, item->glyphs, item->glyphPositions, + item->numGlyphs, item->fontEngine, staticText_d->font, + QTextCharFormat()); } if (currentColor != oldPen.color()) setPen(oldPen); @@ -6290,15 +6303,15 @@ static QPixmap generateWavyPixmap(qreal maxRadius, const QPen &pen) return pixmap; } -static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QTextItemInt &ti) +static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QFontEngine *fe, + QTextCharFormat::UnderlineStyle underlineStyle, + const QTextItem::RenderFlags flags, qreal width, + const QTextCharFormat &charFormat) { - QTextCharFormat::UnderlineStyle underlineStyle = ti.underlineStyle; if (underlineStyle == QTextCharFormat::NoUnderline - && !(ti.flags & (QTextItem::StrikeOut | QTextItem::Overline))) + && !(flags & (QTextItem::StrikeOut | QTextItem::Overline))) return; - QFontEngine *fe = ti.fontEngine; - const QPen oldPen = painter->pen(); const QBrush oldBrush = painter->brush(); painter->setBrush(Qt::NoBrush); @@ -6307,7 +6320,7 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const pen.setWidthF(fe->lineThickness().toReal()); pen.setCapStyle(Qt::FlatCap); - QLineF line(pos.x(), pos.y(), pos.x() + ti.width.toReal(), pos.y()); + QLineF line(pos.x(), pos.y(), pos.x() + width, pos.y()); const qreal underlineOffset = fe->underlinePosition().toReal(); // deliberately ceil the offset to avoid the underline coming too close to @@ -6322,21 +6335,21 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const painter->save(); painter->translate(0, pos.y() + 1); - QColor uc = ti.charFormat.underlineColor(); + QColor uc = charFormat.underlineColor(); if (uc.isValid()) pen.setColor(uc); // Adapt wave to underlineOffset or pen width, whatever is larger, to make it work on all platforms const QPixmap wave = generateWavyPixmap(qMax(underlineOffset, pen.widthF()), pen); - const int descent = (int) ti.descent.toReal(); + const int descent = (int) fe->descent().toReal(); painter->setBrushOrigin(painter->brushOrigin().x(), 0); - painter->fillRect(pos.x(), 0, qCeil(ti.width.toReal()), qMin(wave.height(), descent), wave); + painter->fillRect(pos.x(), 0, qCeil(width), qMin(wave.height(), descent), wave); painter->restore(); } else if (underlineStyle != QTextCharFormat::NoUnderline) { QLineF underLine(line.x1(), underlinePos, line.x2(), underlinePos); - QColor uc = ti.charFormat.underlineColor(); + QColor uc = charFormat.underlineColor(); if (uc.isValid()) pen.setColor(uc); @@ -6348,14 +6361,14 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const pen.setStyle(Qt::SolidLine); pen.setColor(oldPen.color()); - if (ti.flags & QTextItem::StrikeOut) { + if (flags & QTextItem::StrikeOut) { QLineF strikeOutLine = line; strikeOutLine.translate(0., - fe->ascent().toReal() / 3.); painter->setPen(pen); painter->drawLine(strikeOutLine); } - if (ti.flags & QTextItem::Overline) { + if (flags & QTextItem::Overline) { QLineF overLine = line; overLine.translate(0., - fe->ascent().toReal()); painter->setPen(pen); @@ -6366,6 +6379,50 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const painter->setBrush(oldBrush); } +static void drawDecorationForGlyphs(QPainter *painter, const glyph_t *glyphArray, + const QFixedPoint *positions, int glyphCount, + QFontEngine *fontEngine, const QFont &font, + const QTextCharFormat &charFormat) +{ + if (!(font.underline() || font.strikeOut() || font.overline())) + return; + + QFixed leftMost; + QFixed rightMost; + QFixed baseLine; + for (int i=0; iboundingBox(glyphArray[i]); + if (i == 0 || leftMost > positions[i].x) + leftMost = positions[i].x; + + // We don't support glyphs that do not share a common baseline. If this turns out to + // be a relevant use case, then we need to find clusters of glyphs that share a baseline + // and do a drawTextItemDecorations call per cluster. + if (i == 0 || baseLine < positions[i].y) + baseLine = positions[i].y; + + // We use the advance rather than the actual bounds to match the algorithm in drawText() + if (i == 0 || rightMost < positions[i].x + gm.xoff) + rightMost = positions[i].x + gm.xoff; + } + + QFixed width = rightMost - leftMost; + QTextItem::RenderFlags flags = 0; + + if (font.underline()) + flags |= QTextItem::Underline; + if (font.overline()) + flags |= QTextItem::Overline; + if (font.strikeOut()) + flags |= QTextItem::StrikeOut; + + drawTextItemDecoration(painter, QPointF(leftMost.toReal(), baseLine.toReal()), + fontEngine, + font.underline() ? QTextCharFormat::SingleUnderline + : QTextCharFormat::NoUnderline, flags, + width.toReal(), charFormat); +} + void QPainter::drawTextItem(const QPointF &p, const QTextItem &_ti) { #ifdef QT_DEBUG_DRAW @@ -6496,7 +6553,8 @@ void QPainter::drawTextItem(const QPointF &p, const QTextItem &_ti) else d->engine->drawTextItem(p, ti); } - drawTextItemDecoration(this, p, ti); + drawTextItemDecoration(this, p, ti.fontEngine, ti.underlineStyle, ti.flags, ti.width.toReal(), + ti.charFormat); if (d->state->renderHints != oldRenderHints) { d->state->renderHints = oldRenderHints; diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp index 1d166f4..0ae5320 100644 --- a/tests/auto/qstatictext/tst_qstatictext.cpp +++ b/tests/auto/qstatictext/tst_qstatictext.cpp @@ -85,6 +85,10 @@ private slots: void setPenPlainText(); void setPenRichText(); void richTextOverridesPen(); + + void drawStruckOutText(); + void drawOverlinedText(); + void drawUnderlinedText(); }; void tst_QStaticText::init() @@ -620,5 +624,107 @@ void tst_QStaticText::richTextOverridesPen() } } +void tst_QStaticText::drawStruckOutText() +{ + QPixmap imageDrawText(1000, 1000); + QPixmap imageDrawStaticText(1000, 1000); + + imageDrawText.fill(Qt::white); + imageDrawStaticText.fill(Qt::white); + + QString s = QString::fromLatin1("Foobar"); + + QFont font; + font.setStrikeOut(true); + + { + QPainter p(&imageDrawText); + p.setFont(font); + p.drawText(QPointF(50, 50), s); + } + + { + QPainter p(&imageDrawStaticText); + QStaticText text = QStaticText(s); + p.setFont(font); + p.drawStaticText(QPointF(50, 50 - QFontMetricsF(p.font()).ascent()), text); + } + +#if defined(DEBUG_SAVE_IMAGE) + imageDrawText.save("drawStruckOutText_imageDrawText.png"); + imageDrawStaticText.save("drawStruckOutText_imageDrawStaticText.png"); +#endif + + QCOMPARE(imageDrawText, imageDrawStaticText); +} + +void tst_QStaticText::drawOverlinedText() +{ + QPixmap imageDrawText(1000, 1000); + QPixmap imageDrawStaticText(1000, 1000); + + imageDrawText.fill(Qt::white); + imageDrawStaticText.fill(Qt::white); + + QString s = QString::fromLatin1("Foobar"); + + QFont font; + font.setOverline(true); + + { + QPainter p(&imageDrawText); + p.setFont(font); + p.drawText(QPointF(50, 50), s); + } + + { + QPainter p(&imageDrawStaticText); + QStaticText text = QStaticText(s); + p.setFont(font); + p.drawStaticText(QPointF(50, 50 - QFontMetricsF(p.font()).ascent()), text); + } + +#if defined(DEBUG_SAVE_IMAGE) + imageDrawText.save("drawOverlinedText_imageDrawText.png"); + imageDrawStaticText.save("drawOverlinedText_imageDrawStaticText.png"); +#endif + + QCOMPARE(imageDrawText, imageDrawStaticText); +} + +void tst_QStaticText::drawUnderlinedText() +{ + QPixmap imageDrawText(1000, 1000); + QPixmap imageDrawStaticText(1000, 1000); + + imageDrawText.fill(Qt::white); + imageDrawStaticText.fill(Qt::white); + + QString s = QString::fromLatin1("Foobar"); + + QFont font; + font.setUnderline(true); + + { + QPainter p(&imageDrawText); + p.setFont(font); + p.drawText(QPointF(50, 50), s); + } + + { + QPainter p(&imageDrawStaticText); + QStaticText text = QStaticText(s); + p.setFont(font); + p.drawStaticText(QPointF(50, 50 - QFontMetricsF(p.font()).ascent()), text); + } + +#if defined(DEBUG_SAVE_IMAGE) + imageDrawText.save("drawUnderlinedText_imageDrawText.png"); + imageDrawStaticText.save("drawUnderlinedText_imageDrawStaticText.png"); +#endif + + QCOMPARE(imageDrawText, imageDrawStaticText); +} + QTEST_MAIN(tst_QStaticText) #include "tst_qstatictext.moc" -- cgit v0.12 From 30b82b9440fcfc4a703d1a2b1150efd6b4147093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Wed, 4 Aug 2010 10:37:58 +0200 Subject: Fixed a bug in implementation of sizeHint() when there was a constraint The constraint was not adjusted with the margins before passing it on to the engine (which is unaware of the margins). Task-number: Found during QT-3570 Reviewed-by: Paul --- src/gui/graphicsview/qgraphicsgridlayout.cpp | 3 ++- src/gui/graphicsview/qgraphicslinearlayout.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsgridlayout.cpp b/src/gui/graphicsview/qgraphicsgridlayout.cpp index 062b5ac..3fc7f10 100644 --- a/src/gui/graphicsview/qgraphicsgridlayout.cpp +++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp @@ -641,7 +641,8 @@ QSizeF QGraphicsGridLayout::sizeHint(Qt::SizeHint which, const QSizeF &constrain Q_D(const QGraphicsGridLayout); qreal left, top, right, bottom; getContentsMargins(&left, &top, &right, &bottom); - return d->engine.sizeHint(d->styleInfo(), which , constraint) + QSizeF(left + right, top + bottom); + const QSizeF extraMargins(left + right, top + bottom); + return d->engine.sizeHint(d->styleInfo(), which , constraint - extraMargins) + extraMargins; } diff --git a/src/gui/graphicsview/qgraphicslinearlayout.cpp b/src/gui/graphicsview/qgraphicslinearlayout.cpp index 37408ef..1588364 100644 --- a/src/gui/graphicsview/qgraphicslinearlayout.cpp +++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp @@ -528,7 +528,8 @@ QSizeF QGraphicsLinearLayout::sizeHint(Qt::SizeHint which, const QSizeF &constra Q_D(const QGraphicsLinearLayout); qreal left, top, right, bottom; getContentsMargins(&left, &top, &right, &bottom); - return d->engine.sizeHint(d->styleInfo(), which , constraint) + QSizeF(left + right, top + bottom); + const QSizeF extraMargins(left + right, top + bottom); + return d->engine.sizeHint(d->styleInfo(), which , constraint - extraMargins) + extraMargins; } /*! -- cgit v0.12 From 62b5ef3cc1306e46a4042b14867f2f92d9a110f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Wed, 4 Aug 2010 10:51:51 +0200 Subject: Fix (implement!) hfw/wfh in QGridLayoutEngine Note that only height-for-width works, since we cannot add QSizePolicy::hasWidthForHeight() in a patch release. Task-number: QT-3570 Reviewed-by: Paul --- src/gui/graphicsview/qgraphicslayoutitem.cpp | 51 ++- src/gui/graphicsview/qgraphicslayoutitem_p.h | 6 + src/gui/graphicsview/qgridlayoutengine.cpp | 251 +++++++++++++- src/gui/graphicsview/qgridlayoutengine_p.h | 23 +- .../tst_qgraphicsgridlayout.cpp | 364 ++++++++++++++++++++- 5 files changed, 678 insertions(+), 17 deletions(-) diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp index 5a7f1af..3707591 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem.cpp +++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp @@ -48,6 +48,7 @@ #include "qgraphicslayoutitem.h" #include "qgraphicslayoutitem_p.h" #include "qwidget.h" +#include "qgraphicswidget.h" #include @@ -139,9 +140,11 @@ QSizeF *QGraphicsLayoutItemPrivate::effectiveSizeHints(const QSizeF &constraint) if (!sizeHintCacheDirty && cachedConstraint == constraint) return cachedSizeHints; + const bool hasConstraint = constraint.width() >= 0 || constraint.height() >= 0; + for (int i = 0; i < Qt::NSizeHints; ++i) { cachedSizeHints[i] = constraint; - if (userSizeHints) + if (userSizeHints && !hasConstraint) combineSize(cachedSizeHints[i], userSizeHints[i]); } @@ -259,6 +262,52 @@ void QGraphicsLayoutItemPrivate::setSizeComponent( q->updateGeometry(); } + +bool QGraphicsLayoutItemPrivate::hasHeightForWidth() const +{ + Q_Q(const QGraphicsLayoutItem); + if (isLayout) { + const QGraphicsLayout *l = static_cast(q); + for (int i = l->count() - 1; i >= 0; --i) { + if (QGraphicsLayoutItemPrivate::get(l->itemAt(i))->hasHeightForWidth()) + return true; + } + } else if (QGraphicsItem *item = q->graphicsItem()) { + if (item->isWidget()) { + QGraphicsWidget *w = static_cast(item); + if (w->layout()) { + return QGraphicsLayoutItemPrivate::get(w->layout())->hasHeightForWidth(); + } + } + } + return q->sizePolicy().hasHeightForWidth(); +} + +bool QGraphicsLayoutItemPrivate::hasWidthForHeight() const +{ + // enable this code when we add QSizePolicy::hasWidthForHeight() (For 4.8) +#if 1 + return false; +#else + Q_Q(const QGraphicsLayoutItem); + if (isLayout) { + const QGraphicsLayout *l = static_cast(q); + for (int i = l->count() - 1; i >= 0; --i) { + if (QGraphicsLayoutItemPrivate::get(l->itemAt(i))->hasWidthForHeight()) + return true; + } + } else if (QGraphicsItem *item = q->graphicsItem()) { + if (item->isWidget()) { + QGraphicsWidget *w = static_cast(item); + if (w->layout()) { + return QGraphicsLayoutItemPrivate::get(w->layout())->hasWidthForHeight(); + } + } + } + return q->sizePolicy().hasWidthForHeight(); +#endif +} + /*! \class QGraphicsLayoutItem \brief The QGraphicsLayoutItem class can be inherited to allow your custom diff --git a/src/gui/graphicsview/qgraphicslayoutitem_p.h b/src/gui/graphicsview/qgraphicslayoutitem_p.h index 15cc7a5..b752e03 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem_p.h +++ b/src/gui/graphicsview/qgraphicslayoutitem_p.h @@ -65,6 +65,9 @@ class Q_AUTOTEST_EXPORT QGraphicsLayoutItemPrivate public: virtual ~QGraphicsLayoutItemPrivate(); QGraphicsLayoutItemPrivate(QGraphicsLayoutItem *parent, bool isLayout); + static QGraphicsLayoutItemPrivate *get(QGraphicsLayoutItem *q) { return q->d_func();} + static const QGraphicsLayoutItemPrivate *get(const QGraphicsLayoutItem *q) { return q->d_func();} + void init(); QSizeF *effectiveSizeHints(const QSizeF &constraint) const; QGraphicsItem *parentItem() const; @@ -73,6 +76,9 @@ public: enum SizeComponent { Width, Height }; void setSizeComponent(Qt::SizeHint which, SizeComponent component, qreal value); + bool hasHeightForWidth() const; + bool hasWidthForHeight() const; + QSizePolicy sizePolicy; QGraphicsLayoutItem *parent; diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp index a084647..ea54a90 100644 --- a/src/gui/graphicsview/qgridlayoutengine.cpp +++ b/src/gui/graphicsview/qgridlayoutengine.cpp @@ -545,6 +545,24 @@ QSizePolicy::Policy QGridLayoutItem::sizePolicy(Qt::Orientation orientation) con : sizePolicy.verticalPolicy(); } +/* + returns true if the size policy returns true for either hasHeightForWidth() + or hasWidthForHeight() + */ +bool QGridLayoutItem::hasDynamicConstraint() const +{ + return QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasHeightForWidth() + || QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasWidthForHeight(); +} + +Qt::Orientation QGridLayoutItem::dynamicConstraintOrientation() const +{ + if (QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasHeightForWidth()) + return Qt::Vertical; + else //if (QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasWidthForHeight()) + return Qt::Horizontal; +} + QSizePolicy::ControlTypes QGridLayoutItem::controlTypes(LayoutSide /* side */) const { return q_layoutItem->sizePolicy().controlType(); @@ -613,7 +631,14 @@ QRectF QGridLayoutItem::geometryWithin(qreal x, qreal y, qreal width, qreal heig qreal cellWidth = width; qreal cellHeight = height; - QSizeF size = effectiveMaxSize().boundedTo(QSizeF(cellWidth, cellHeight)); + QSize constraint; + if (hasDynamicConstraint()) { + if (dynamicConstraintOrientation() == Qt::Vertical) + constraint.setWidth(cellWidth); + else + constraint.setHeight(cellHeight); + } + QSizeF size = effectiveMaxSize(constraint).boundedTo(QSizeF(cellWidth, cellHeight)); width = size.width(); height = size.height(); @@ -675,13 +700,13 @@ void QGridLayoutItem::insertOrRemoveRows(int row, int delta, Qt::Orientation ori Note that effectiveSizeHint does not take sizePolicy into consideration, (since it only evaluates the hints, as the name implies) */ -QSizeF QGridLayoutItem::effectiveMaxSize() const +QSizeF QGridLayoutItem::effectiveMaxSize(const QSizeF &constraint) const { - QSizeF size; + QSizeF size = constraint; bool vGrow = (sizePolicy(Qt::Vertical) & QSizePolicy::GrowFlag) == QSizePolicy::GrowFlag; bool hGrow = (sizePolicy(Qt::Horizontal) & QSizePolicy::GrowFlag) == QSizePolicy::GrowFlag; if (!vGrow || !hGrow) { - QSizeF pref = layoutItem()->effectiveSizeHint(Qt::PreferredSize); + QSizeF pref = layoutItem()->effectiveSizeHint(Qt::PreferredSize, constraint); if (!vGrow) size.setHeight(pref.height()); if (!hGrow) @@ -689,7 +714,7 @@ QSizeF QGridLayoutItem::effectiveMaxSize() const } if (!size.isValid()) { - QSizeF maxSize = layoutItem()->effectiveSizeHint(Qt::MaximumSize); + QSizeF maxSize = layoutItem()->effectiveSizeHint(Qt::MaximumSize, constraint); if (size.width() == -1) size.setWidth(maxSize.width()); if (size.height() == -1) @@ -1010,6 +1035,7 @@ void QGridLayoutEngine::invalidate() q_cachedEffectiveLastRows[Ver] = -1; q_cachedDataForStyleInfo.invalidate(); q_cachedSize = QSizeF(); + q_cachedConstraintOrientation = UnknownConstraint; } static void visualRect(QRectF *geom, Qt::LayoutDirection dir, const QRectF &contentsRect) @@ -1074,10 +1100,13 @@ QRectF QGridLayoutEngine::cellRect(const QLayoutStyleInfo &styleInfo, } QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHint which, - const QSizeF & /* constraint */) const + const QSizeF &constraint) const { ensureColumnAndRowData(styleInfo); + if (hasDynamicConstraint()) + return dynamicallyConstrainedSizeHint(which, constraint); + switch (which) { case Qt::MinimumSize: return QSizeF(q_totalBoxes[Hor].q_minimumSize, q_totalBoxes[Ver].q_minimumSize); @@ -1375,7 +1404,11 @@ void QGridLayoutEngine::fillRowData(QGridLayoutRowData *rowData, const QLayoutSt box = &multiCell.q_box; multiCell.q_stretch = itemStretch; } - box->combine(item->box(orientation)); + // Items with constraints are not included in the orientation that + // they are constrained (since it depends on the hfw/constraint function). + // They must be combined at a later stage. + if (!item->hasDynamicConstraint() || orientation != item->dynamicConstraintOrientation()) + box->combine(item->box(orientation)); if (effectiveRowSpan == 1) { QSizePolicy::ControlTypes controls = item->controlTypes(top); @@ -1532,6 +1565,138 @@ void QGridLayoutEngine::ensureColumnAndRowData(const QLayoutStyleInfo &styleInfo q_cachedDataForStyleInfo = styleInfo; } +QSizeF QGridLayoutEngine::dynamicallyConstrainedSizeHint(Qt::SizeHint which, + const QSizeF &constraint) const +{ + Q_ASSERT(hasDynamicConstraint()); + if (constraint.width() < 0 && constraint.height() < 0) { + // Process the hfw / wfh items that we did not process in fillRowData() + const Qt::Orientation constraintOrient = constraintOrientation(); + + QGridLayoutRowData rowData = constraintOrient == Qt::Vertical ? q_rowData : q_columnData; + for (int i = q_items.count() - 1; i >= 0; --i) { + QGridLayoutItem *item = q_items.at(i); + if (item->hasDynamicConstraint()) { + QGridLayoutBox box = item->box(constraintOrient); + QGridLayoutBox &rowBox = rowData.boxes[item->firstRow(constraintOrient)]; + rowBox.combine(box); + } + } + + QGridLayoutBox totalBoxes[2]; + if (constraintOrient == Qt::Vertical) { + totalBoxes[Hor] = q_columnData.totalBox(0, columnCount()); + totalBoxes[Ver] = rowData.totalBox(0, rowCount()); + } else { + totalBoxes[Hor] = rowData.totalBox(0, columnCount()); + totalBoxes[Ver] = q_rowData.totalBox(0, rowCount()); + } + return QSizeF(totalBoxes[Hor].q_sizes(which), totalBoxes[Ver].q_sizes(which)); + } + + + Q_ASSERT(constraint.width() >= 0 || constraint.height() >= 0); + q_xx.resize(columnCount()); + q_yy.resize(rowCount()); + q_widths.resize(columnCount()); + q_heights.resize(rowCount()); + q_descents.resize(rowCount()); + + + const Qt::Orientation orientation = constraintOrientation(); + QGridLayoutRowData *colData; + QGridLayoutRowData constrainedRowData; + QGridLayoutBox *totalBox; + qreal *sizes; + qreal *pos; + qreal *descents; + qreal targetSize; + qreal cCount; + qreal rCount; + + if (orientation == Qt::Vertical) { + // height for width + colData = &q_columnData; + totalBox = &q_totalBoxes[Hor]; + sizes = q_widths.data(); + pos = q_xx.data(); + descents = 0; + targetSize = constraint.width(); + cCount = columnCount(); + rCount = rowCount(); + constrainedRowData = q_rowData; + } else { + // width for height + colData = &q_rowData; + totalBox = &q_totalBoxes[Ver]; + sizes = q_heights.data(); + pos = q_yy.data(); + descents = q_descents.data(); + targetSize = constraint.height(); + cCount = rowCount(); + rCount = columnCount(); + constrainedRowData = q_columnData; + } + colData->calculateGeometries(0, cCount, targetSize, pos, sizes, descents, *totalBox); + for (int i = q_items.count() - 1; i >= 0; --i) { + QGridLayoutItem *item = q_items.at(i); + + if (item->hasDynamicConstraint()) { + const qreal size = sizes[item->firstColumn(orientation)]; + QGridLayoutBox box = item->box(orientation, size); + QGridLayoutBox &rowBox = constrainedRowData.boxes[item->firstRow(orientation)]; + rowBox.combine(box); + } + } + const qreal newSize = constrainedRowData.totalBox(0, rCount).q_sizes(which); + + return (orientation == Qt::Vertical) ? QSizeF(targetSize, newSize) : QSizeF(newSize, targetSize); +} + + +/** + returns false if the layout has contradicting constraints (i.e. some items with a horizontal + constraint and other items with a vertical constraint) + */ +bool QGridLayoutEngine::ensureDynamicConstraint() const +{ + if (q_cachedConstraintOrientation == UnknownConstraint) { + for (int i = q_items.count() - 1; i >= 0; --i) { + QGridLayoutItem *item = q_items.at(i); + if (item->hasDynamicConstraint()) { + Qt::Orientation itemConstraintOrientation = item->dynamicConstraintOrientation(); + if (q_cachedConstraintOrientation == UnknownConstraint) { + q_cachedConstraintOrientation = itemConstraintOrientation; + } else if (q_cachedConstraintOrientation != itemConstraintOrientation) { + q_cachedConstraintOrientation = UnfeasibleConstraint; + qWarning("QGridLayoutEngine: Unfeasible, cannot mix horizontal and" + " vertical constraint in the same layout"); + return false; + } + } + } + if (q_cachedConstraintOrientation == UnknownConstraint) + q_cachedConstraintOrientation = NoConstraint; + } + return true; +} + +bool QGridLayoutEngine::hasDynamicConstraint() const +{ + if (!ensureDynamicConstraint()) + return false; + return q_cachedConstraintOrientation != NoConstraint; +} + +/* + * return value is only valid if hasConstraint() returns true + */ +Qt::Orientation QGridLayoutEngine::constraintOrientation() const +{ + (void)ensureDynamicConstraint(); + return (Qt::Orientation)q_cachedConstraintOrientation; +} + void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo, const QSizeF &size) const { @@ -1544,10 +1709,74 @@ void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo, q_widths.resize(columnCount()); q_heights.resize(rowCount()); q_descents.resize(rowCount()); - q_columnData.calculateGeometries(0, columnCount(), size.width(), q_xx.data(), q_widths.data(), - 0, q_totalBoxes[Hor]); - q_rowData.calculateGeometries(0, rowCount(), size.height(), q_yy.data(), q_heights.data(), - q_descents.data(), q_totalBoxes[Ver]); + + + Qt::Orientation orientation = Qt::Vertical; + if (hasDynamicConstraint()) + orientation = constraintOrientation(); + + /* + In order to do hfw we need to first distribute the columns, then the rows. + In order to do wfh we need to first distribute the rows, then the columns. + + If there is no constraint, the order of distributing the rows or columns first is irrelevant. + We choose horizontal just to keep the same behaviour as before (however, there shouldn't + be any behaviour difference). + */ + + QGridLayoutRowData *colData; + QGridLayoutRowData rowData; + qreal *widths; + qreal *heights; + qreal *xx; + qreal *yy; + qreal *xdescents = 0; + qreal *ydescents = 0; + qreal cCount; + qreal rCount; + QSizeF oSize = size; + if (orientation == Qt::Vertical) { + // height for width + colData = &q_columnData; + rowData = q_rowData; + widths = q_widths.data(); + heights = q_heights.data(); + xx = q_xx.data(); + yy = q_yy.data(); + cCount = columnCount(); + rCount = rowCount(); + ydescents = q_descents.data(); + } else { + // width for height + colData = &q_rowData; + rowData = q_columnData; + widths = q_heights.data(); + heights = q_widths.data(); + xx = q_yy.data(); + yy = q_xx.data(); + cCount = rowCount(); + rCount = columnCount(); + xdescents = q_descents.data(); + oSize.transpose(); + } + + colData->calculateGeometries(0, cCount, oSize.width(), xx, widths, + xdescents, q_totalBoxes[orientation == Qt::Horizontal]); + for (int i = q_items.count() - 1; i >= 0; --i) { + QGridLayoutItem *item = q_items.at(i); + const int col = item->firstColumn(orientation); + const int row = item->firstRow(orientation); + if (item->hasDynamicConstraint()) { + const qreal sz = widths[col]; + QGridLayoutBox box = item->box(orientation, sz); + rowData.boxes[row].combine(box); + } + } + + QGridLayoutBox &totalBox = q_totalBoxes[orientation == Qt::Vertical]; + totalBox = rowData.totalBox(0, rCount); + rowData.calculateGeometries(0, rCount, oSize.height(), yy, heights, + ydescents, totalBox); q_cachedSize = size; } diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h index 9ac9a8e..580af7e 100644 --- a/src/gui/graphicsview/qgridlayoutengine_p.h +++ b/src/gui/graphicsview/qgridlayoutengine_p.h @@ -91,6 +91,14 @@ enum LayoutSide { Bottom }; +enum { + NoConstraint, + HorizontalConstraint, + VerticalConstraint, + UnknownConstraint, // need to update cache + UnfeasibleConstraint // not feasible, it be has some items with Vertical and others with Horizontal constraints +}; + template class QLayoutParameter { @@ -270,6 +278,10 @@ public: inline void setAlignment(Qt::Alignment alignment) { q_alignment = alignment; } QSizePolicy::Policy sizePolicy(Qt::Orientation orientation) const; + + bool hasDynamicConstraint() const; + Qt::Orientation dynamicConstraintOrientation() const; + QSizePolicy::ControlTypes controlTypes(LayoutSide side) const; QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; QGridLayoutBox box(Qt::Orientation orientation, qreal constraint = -1.0) const; @@ -280,7 +292,7 @@ public: void setGeometry(const QRectF &rect); void transpose(); void insertOrRemoveRows(int row, int delta, Qt::Orientation orientation = Qt::Vertical); - QSizeF effectiveMaxSize() const; + QSizeF effectiveMaxSize(const QSizeF &constraint) const; #ifdef QT_DEBUG void dump(int indent = 0) const; @@ -372,6 +384,14 @@ public: int column, int rowSpan, int columnSpan) const; QSizeF sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHint which, const QSizeF &constraint) const; + + // heightForWidth / widthForHeight support + QSizeF dynamicallyConstrainedSizeHint(Qt::SizeHint which, const QSizeF &constraint) const; + bool ensureDynamicConstraint() const; + bool hasDynamicConstraint() const; + Qt::Orientation constraintOrientation() const; + + QSizePolicy::ControlTypes controlTypes(LayoutSide side) const; void transpose(); void setVisualDirection(Qt::LayoutDirection direction); @@ -405,6 +425,7 @@ private: // Lazily computed from the above user input mutable int q_cachedEffectiveFirstRows[NOrientations]; mutable int q_cachedEffectiveLastRows[NOrientations]; + mutable quint8 q_cachedConstraintOrientation : 2; // Layout item input mutable QLayoutStyleInfo q_cachedDataForStyleInfo; diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index d1d6860..28980cb 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -107,12 +107,13 @@ private slots: void avoidRecursionInInsertItem(); void styleInfoLeak(); void task236367_maxSizeHint(); + void heightForWidth(); }; class RectWidget : public QGraphicsWidget { public: - RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent){} + RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent), m_fnConstraint(0) {} void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { @@ -125,9 +126,12 @@ public: QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const { - if (m_sizeHints[which].isValid()) { + if (constraint.width() < 0 && constraint.height() < 0 && m_sizeHints[which].isValid()) { return m_sizeHints[which]; } + if (m_fnConstraint) { + return m_fnConstraint(which, constraint); + } return QGraphicsWidget::sizeHint(which, constraint); } @@ -136,7 +140,13 @@ public: updateGeometry(); } + void setConstraintFunction(QSizeF (*fnConstraint)(Qt::SizeHint, const QSizeF &)) { + m_fnConstraint = fnConstraint; + } + QSizeF m_sizeHints[Qt::NSizeHints]; + QSizeF (*m_fnConstraint)(Qt::SizeHint, const QSizeF &); + }; struct ItemDesc @@ -146,7 +156,8 @@ struct ItemDesc m_rowSpan(1), m_colSpan(1), m_sizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)), - m_align(0) + m_align(0), + m_fnConstraint(0) { } @@ -213,8 +224,20 @@ struct ItemDesc return (*this); } + ItemDesc &heightForWidth(QSizeF (*fnConstraint)(Qt::SizeHint, const QSizeF &)) { + m_fnConstraint = fnConstraint; + m_constraintOrientation = Qt::Vertical; + return (*this); + } + void apply(QGraphicsGridLayout *layout, QGraphicsWidget *item) { - item->setSizePolicy(m_sizePolicy); + QSizePolicy sp = m_sizePolicy; + if (m_fnConstraint) { + sp.setHeightForWidth(m_constraintOrientation == Qt::Vertical); + //sp.setWidthForHeight(m_constraintOrientation == Qt::Horizontal); + } + + item->setSizePolicy(sp); for (int i = 0; i < Qt::NSizeHints; ++i) { if (!m_sizes[i].isValid()) continue; @@ -233,6 +256,7 @@ struct ItemDesc break; } } + layout->addItem(item, m_pos.first, m_pos.second, m_rowSpan, m_colSpan); layout->setAlignment(item, m_align); } @@ -240,6 +264,7 @@ struct ItemDesc void apply(QGraphicsGridLayout *layout, RectWidget *item) { for (int i = 0; i < Qt::NSizeHints; ++i) item->setSizeHint((Qt::SizeHint)i, m_sizeHints[i]); + item->setConstraintFunction(m_fnConstraint); apply(layout, static_cast(item)); } @@ -251,6 +276,9 @@ struct ItemDesc QSizeF m_sizeHints[Qt::NSizeHints]; QSizeF m_sizes[Qt::NSizeHints]; Qt::Alignment m_align; + + Qt::Orientation m_constraintOrientation; + QSizeF (*m_fnConstraint)(Qt::SizeHint, const QSizeF &); }; typedef QList ItemList; @@ -2116,6 +2144,17 @@ void tst_QGraphicsGridLayout::alignment2() delete widget; } +static QSizeF hfw1(Qt::SizeHint, const QSizeF &constraint) +{ + QSizeF result(constraint); + if (constraint.width() < 0 && constraint.height() < 0) { + return QSizeF(50, 400); + } else if (constraint.width() >= 0) { + result.setHeight(20000./constraint.width()); + } + return result; +} + void tst_QGraphicsGridLayout::geometries_data() { @@ -2145,6 +2184,186 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 0, 60,10) << QRectF(0, 10, 60,10) ); + // change layout height and verify + QTest::newRow("hfw-h401") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(500, 500)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 401) + << (RectList() + << QRectF(0, 0, 50, 1) << QRectF(50, 0, 50, 1) + << QRectF(0, 1, 50,100) << QRectF(50, 1, 50,400) + ); + + + QTest::newRow("hfw-h408") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(500, 500)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 408) + << (RectList() + << QRectF(0, 0, 50, 8) << QRectF(50, 0, 50, 8) + << QRectF(0, 8, 50,100) << QRectF(50, 8, 50,400) + ); + + QTest::newRow("hfw-h410") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(500, 500)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 410) + << (RectList() + << QRectF(0, 0, 50,10) << QRectF(50, 0, 50,10) + << QRectF(0, 10, 50,100) << QRectF(50, 10, 50,400) + ); + + QTest::newRow("hfw-h470") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(500, 500)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 470) + << (RectList() + << QRectF(0, 0, 50,70) << QRectF(50, 0, 50,70) + << QRectF(0, 70, 50,100) << QRectF(50, 70, 50,400) + ); + + + // change layout width and verify + QTest::newRow("hfw-w100") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(5000, 5000)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 401) + << (RectList() + << QRectF( 0, 0, 50, 1) << QRectF( 50, 0, 50, 1) + << QRectF( 0, 1, 50, 100) << QRectF( 50, 1, 50, 400) + ); + + QTest::newRow("hfw-w160") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(5000, 5000)) + .heightForWidth(hfw1) + ) + << QSizeF(160, 401) + << (RectList() + << QRectF( 0, 0, 80, 100) << QRectF( 80, 0, 80, 100) + << QRectF( 0, 100, 80, 100) << QRectF( 80, 100, 80, 250) + ); + + + QTest::newRow("hfw-w500") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .minSize(QSizeF(40,40)) + .preferredSize(QSizeF(50,400)) + .maxSize(QSizeF(5000, 5000)) + .heightForWidth(hfw1) + ) + << QSizeF(500, 401) + << (RectList() + << QRectF( 0, 0, 100, 100) << QRectF(100, 0, 100, 100) + << QRectF( 0, 100, 100, 100) << QRectF(100, 100, 400, 50) + ); + } void tst_QGraphicsGridLayout::geometries() @@ -2215,6 +2434,143 @@ void tst_QGraphicsGridLayout::task236367_maxSizeHint() QCOMPARE(widget->size(), QSizeF(w, h)); } +/* +static qreal hfw(qreal w) +{ + if (w == 0) + return 20000; + return 20000/w; +} +*/ +static QSizeF hfw(Qt::SizeHint /*which*/, const QSizeF &constraint) +{ + QSizeF result(constraint); + const qreal cw = constraint.width(); + const qreal ch = constraint.height(); + if (cw < 0 && ch < 0) { + return QSizeF(200, 100); + } else if (cw >= 0) { + result.setHeight(20000./cw); + } else if (cw == 0) { + result.setHeight(20000); + } else if (ch >= 0) { + result.setWidth(20000./ch); + } else if (ch == 0) { + result.setWidth(20000); + } + + return result; +} + +static qreal growthFactorBelowPreferredSize(qreal desired, qreal sumAvailable, qreal sumDesired) +{ + Q_ASSERT(sumDesired != 0.0); + return desired * qPow(sumAvailable / sumDesired, desired / sumDesired); +} + +static void expectedWidth(qreal minSize1, qreal prefSize1, + qreal minSize2, qreal prefSize2, + qreal targetSize, qreal *width1, qreal *width2) +{ + qreal sumAvail,factor1,factor2; + // stretch behaviour is different below and above preferred size... + if (targetSize < prefSize1 + prefSize2) { + sumAvail = targetSize - minSize1 - minSize2; + const qreal desired1 = prefSize1 - minSize1; + const qreal desired2 = prefSize2 - minSize2; + const qreal sumDesired = desired1 + desired2; + factor1 = growthFactorBelowPreferredSize(desired1, sumAvail, sumDesired); + factor2 = growthFactorBelowPreferredSize(desired2, sumAvail, sumDesired); + const qreal sumFactors = factor1 + factor2; + *width1 = sumAvail*factor1/sumFactors + minSize1; + *width2 = sumAvail*factor2/sumFactors + minSize2; + } else { + sumAvail = targetSize - prefSize1 - prefSize2; + factor1 = prefSize1; + factor2 = prefSize2; + const qreal sumFactors = factor1 + factor2; + *width1 = sumAvail*factor1/sumFactors + prefSize1; + *width2 = sumAvail*factor2/sumFactors + prefSize2; + } +} + + +bool qFuzzyCompare(const QSizeF &a, const QSizeF &b) +{ + return qFuzzyCompare(a.width(), b.width()) && qFuzzyCompare(a.height(), b.height()); +} + +void tst_QGraphicsGridLayout::heightForWidth() +{ + QGraphicsWidget *widget = new QGraphicsWidget; + QGraphicsGridLayout *layout = new QGraphicsGridLayout; + widget->setLayout(layout); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + RectWidget *w00 = new RectWidget; + w00->setSizeHint(Qt::MinimumSize, QSizeF(1,1)); + w00->setSizeHint(Qt::PreferredSize, QSizeF(10,10)); + w00->setSizeHint(Qt::MaximumSize, QSizeF(100,100)); + layout->addItem(w00, 0, 0); + + RectWidget *w01 = new RectWidget; + w01->setSizeHint(Qt::MinimumSize, QSizeF(1,1)); + w01->setSizeHint(Qt::PreferredSize, QSizeF(10,10)); + w01->setSizeHint(Qt::MaximumSize, QSizeF(100,100)); + layout->addItem(w01, 0, 1); + + RectWidget *w10 = new RectWidget; + w10->setSizeHint(Qt::MinimumSize, QSizeF(1,1)); + w10->setSizeHint(Qt::PreferredSize, QSizeF(10,10)); + w10->setSizeHint(Qt::MaximumSize, QSizeF(100,100)); + layout->addItem(w10, 1, 0); + + RectWidget *w11 = new RectWidget; + w11->setSizeHint(Qt::MinimumSize, QSizeF(1,1)); + w11->setSizeHint(Qt::MaximumSize, QSizeF(30000,30000)); + w11->setConstraintFunction(hfw); + QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp.setHeightForWidth(true); + w11->setSizePolicy(sp); + layout->addItem(w11, 1, 1); + + QSizeF prefSize = layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)); + QCOMPARE(prefSize, QSizeF(10+200, 10+100)); + + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 20001)); + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 20010)); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, 20100)); + qreal width1; + qreal width2; + expectedWidth(1, 10, 1, 200, 20, &width1, &width2); + QSizeF expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1); + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(20, -1)), expectedSize); + expectedSize.rheight()+=9; + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(20, -1)), expectedSize); + expectedSize.rheight()+=90; + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(20, -1)), expectedSize); + + expectedWidth(1, 10, 1, 200, 300, &width1, &width2); + expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1); + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(300, -1)), expectedSize); + expectedSize.rheight()+=9; + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(300, -1)), expectedSize); + // the height of the hfw widget is shorter than the one to the left, which is 100, so + // the total height of the last row is 100 (which leaves the layout height to be 200) + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(300, -1)), QSizeF(300, 200)); + + // the hfw item is shorter than the item to the left + expectedWidth(1, 10, 1, 200, 500, &width1, &width2); + expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1); + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(500, -1)), expectedSize); + expectedSize.rheight()+=9; + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(500, -1)), expectedSize); + // the height of the hfw widget is shorter than the one to the left, which is 100, so + // the total height of the last row is 100 (which leaves the layout height to be 200) + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(500, -1)), QSizeF(500, 200)); + +} + QTEST_MAIN(tst_QGraphicsGridLayout) #include "tst_qgraphicsgridlayout.moc" -- cgit v0.12 From 1c959c35234838cbb69f676cd96e27dc30bd85c1 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Tue, 10 Aug 2010 12:46:41 +0200 Subject: Doc: Adding radius support for CSS3 and webkit --- doc/src/template/style/style.css | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css index 9b37693..d6b0fda 100755 --- a/doc/src/template/style/style.css +++ b/doc/src/template/style/style.css @@ -114,6 +114,8 @@ { border: 1px solid #DDDDDD; -moz-border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; margin: 0 20px 10px 10px; padding: 20px 15px 20px 20px; overflow-x: auto; @@ -121,6 +123,8 @@ table, pre { -moz-border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #E6E6E6; border-collapse: separate; @@ -855,6 +859,8 @@ background-color:#F6F6F6; border:1px solid #E6E6E6; -moz-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; font-size:12pt; padding-left:10px; margin-top:10px; @@ -911,6 +917,8 @@ { display: none; -moz-border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; border: 1px solid #DDDDDD; position: fixed; top: 100px; @@ -974,6 +982,8 @@ { float: right; -moz-border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #DDDDDD; margin: 0 20px 10px 10px; @@ -1068,6 +1078,8 @@ .relpage { -moz-border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; border: 1px solid #DDDDDD; padding: 25px 25px; clear: both; @@ -1084,6 +1096,8 @@ h3.fn, span.fn { -moz-border-radius:7px 7px 7px 7px; + -webkit-border-radius:7px 7px 7px 7px; + border-radius:7px 7px 7px 7px; background-color: #F6F6F6; border-width: 1px; border-style: solid; @@ -1102,6 +1116,8 @@ border-style: solid; border-color: #E6E6E6; -moz-border-radius: 7px 7px 7px 7px; + -webkit-border-radius: 7px 7px 7px 7px; + border-radius: 7px 7px 7px 7px; width:100%; } -- cgit v0.12 From 2281a3a7a62a5a81de7fefaf0b84f130b16bd44f Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 10 Aug 2010 10:54:26 +0200 Subject: QMetaObject::normalizeSignature avoid reading past the string in case of invalid signature given. If passed "a(b", qNormalizeType would return a pointer to the \0 at the end of the string. We would add \0 to the result (thinking it is ',' or ')' ) And continue to process the memory after the string. Reviewed-by: Kent Hansen Task-number: QT-1591 --- src/corelib/kernel/qmetaobject.cpp | 5 ++++- tests/auto/qmetaobject/tst_qmetaobject.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 79a38cd..9854e68 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -1009,8 +1009,11 @@ QByteArray QMetaObject::normalizedSignature(const char *method) int argdepth = 0; int templdepth = 0; while (*d) { - if (argdepth == 1) + if (argdepth == 1) { d = qNormalizeType(d, templdepth, result); + if (!*d) //most likely an invalid signature. + break; + } if (*d == '(') ++argdepth; if (*d == ')') diff --git a/tests/auto/qmetaobject/tst_qmetaobject.cpp b/tests/auto/qmetaobject/tst_qmetaobject.cpp index 62416b1..bb96da1 100644 --- a/tests/auto/qmetaobject/tst_qmetaobject.cpp +++ b/tests/auto/qmetaobject/tst_qmetaobject.cpp @@ -714,6 +714,8 @@ void tst_QMetaObject::normalizedSignature_data() QTest::newRow("const12") << "void foo(Fooconst*const *const)" << "void foo(Foo*const*const)"; QTest::newRow("const13") << "void foo(const Foo&)" << "void foo(Foo)"; QTest::newRow("const14") << "void foo(Fooconst&)" << "void foo(Foo)"; + + QTest::newRow("invalid1") << "a( b" << "a(b"; } void tst_QMetaObject::normalizedSignature() @@ -721,7 +723,7 @@ void tst_QMetaObject::normalizedSignature() QFETCH(QString, signature); QFETCH(QString, result); - QCOMPARE(QString::fromLatin1(QMetaObject::normalizedSignature(signature.toLatin1())), result); + QCOMPARE(QMetaObject::normalizedSignature(signature.toLatin1()), result.toLatin1()); } void tst_QMetaObject::normalizedType_data() @@ -759,7 +761,7 @@ void tst_QMetaObject::normalizedType() QFETCH(QString, type); QFETCH(QString, result); - QCOMPARE(QString::fromLatin1(QMetaObject::normalizedType(type.toLatin1())), result); + QCOMPARE(QMetaObject::normalizedType(type.toLatin1()), result.toLatin1()); } void tst_QMetaObject::customPropertyType() -- cgit v0.12 From c21f95aab2228168452d1d7bb4e332a8c6164a02 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 10 Aug 2010 11:35:51 +0200 Subject: Added one test for QRegExp Task-number: QT-1289 --- tests/auto/qregexp/tst_qregexp.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/auto/qregexp/tst_qregexp.cpp b/tests/auto/qregexp/tst_qregexp.cpp index ea07323..d0d26ee 100644 --- a/tests/auto/qregexp/tst_qregexp.cpp +++ b/tests/auto/qregexp/tst_qregexp.cpp @@ -105,6 +105,7 @@ private slots: void QTBUG_7049_data(); void QTBUG_7049(); + void interval(); }; // Testing get/set functions @@ -1426,5 +1427,22 @@ void tst_QRegExp::QTBUG_7049() QCOMPARE( re.cap(2), cap2 ); } +void tst_QRegExp::interval() +{ + { + QRegExp exp("a{0,1}"); + QVERIFY(exp.isValid()); + } + { + QRegExp exp("a{1,1}"); + QVERIFY(exp.isValid()); + } + { + QRegExp exp("a{1,0}"); + QVERIFY(!exp.isValid()); + } +} + + QTEST_APPLESS_MAIN(tst_QRegExp) #include "tst_qregexp.moc" -- cgit v0.12 From bfc32c590d797599ddfb814f023e5837c663ec23 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 10 Aug 2010 13:09:46 +0200 Subject: Mac: Fix crash when using style to draw on other things than widgets When drawing a complex control using the style, you are allowd to skip giving a widget as the last argument. But when doing so, it caused a crash in the mac style. Reviewed-by: Fabien Freling --- src/gui/styles/qmacstyle_mac.mm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm index ae90d26..671a888 100644 --- a/src/gui/styles/qmacstyle_mac.mm +++ b/src/gui/styles/qmacstyle_mac.mm @@ -1440,6 +1440,9 @@ QMacStylePrivate::QMacStylePrivate(QMacStyle *style) bool QMacStylePrivate::animatable(QMacStylePrivate::Animates as, const QWidget *w) const { + if (!w) + return false; + if (as == AquaPushButton) { QPushButton *pb = const_cast(static_cast(w)); if (w->window()->isActiveWindow() && pb && !mouseDown) { -- cgit v0.12 From bc7a42be16c5218ba5022c95bf1334a15a9151a6 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Tue, 10 Aug 2010 13:33:38 +0200 Subject: doc: Some reorganization of top page topic hierarchy. --- doc/src/frameworks-technologies/dbus-adaptors.qdoc | 1 - doc/src/frameworks-technologies/dbus-intro.qdoc | 2 +- doc/src/frameworks-technologies/ipc.qdoc | 13 ++++++------- doc/src/modules.qdoc | 7 +++---- doc/src/xml-processing/xml-patterns.qdoc | 2 +- doc/src/xml-processing/xml-processing.qdoc | 8 +++++--- doc/src/xml-processing/xquery-introduction.qdoc | 2 +- 7 files changed, 17 insertions(+), 18 deletions(-) diff --git a/doc/src/frameworks-technologies/dbus-adaptors.qdoc b/doc/src/frameworks-technologies/dbus-adaptors.qdoc index 181a8d9..f193a67 100644 --- a/doc/src/frameworks-technologies/dbus-adaptors.qdoc +++ b/doc/src/frameworks-technologies/dbus-adaptors.qdoc @@ -30,7 +30,6 @@ \title Using QtDBus Adaptors \brief How to create and use DBus adaptors in Qt. - \ingroup technology-apis \ingroup best-practices Adaptors are special classes that are attached to any QObject-derived class diff --git a/doc/src/frameworks-technologies/dbus-intro.qdoc b/doc/src/frameworks-technologies/dbus-intro.qdoc index bccb6da..9d4cd95 100644 --- a/doc/src/frameworks-technologies/dbus-intro.qdoc +++ b/doc/src/frameworks-technologies/dbus-intro.qdoc @@ -27,7 +27,7 @@ /*! \page intro-to-dbus.html - \title Introduction to D-Bus + \title D-Bus \brief An introduction to Inter-Process Communication and Remote Procedure Calling with D-Bus. \keyword QtDBus diff --git a/doc/src/frameworks-technologies/ipc.qdoc b/doc/src/frameworks-technologies/ipc.qdoc index 23234ae..26a8cec 100644 --- a/doc/src/frameworks-technologies/ipc.qdoc +++ b/doc/src/frameworks-technologies/ipc.qdoc @@ -56,13 +56,12 @@ \section1 D-Bus - The \l{QtDBus} module is a Unix-only library - you can use to implement IPC using the D-Bus protocol. It extends - Qt's \l{signalsandslots.html} {Signals and Slots} mechanism to the - IPC level, allowing a signal emitted by one process to be - connected to a slot in another process. This \l {Introduction to - D-Bus} page has detailed information on how to use the \l{QtDBus} - module. + The \l{QtDBus} module is a Unix-only library you can use to + implement IPC using the D-Bus protocol. It extends Qt's + \l{signalsandslots.html} {Signals and Slots} mechanism to the IPC + level, allowing a signal emitted by one process to be connected to + a slot in another process. This \l {D-Bus} page has detailed + information on how to use the \l{QtDBus} module. \section1 Qt COmmunications Protocol (QCOP) diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc index c35d71c..941459b 100644 --- a/doc/src/modules.qdoc +++ b/doc/src/modules.qdoc @@ -442,7 +442,7 @@ \section1 Further Reading General overviews of XQuery and XSchema can be found in the - \l{Using XML Technologies} document. + \l{XQuery} document. An introduction to the XQuery language can be found in \l{A Short Path to XQuery}. @@ -842,8 +842,7 @@ \target The QDBus compiler \brief The QtDBus module is a Unix-only library that you can use - to perform Inter-Process Communication using the \l{Introduction to - D-Bus}{D-Bus} protocol. + to perform Inter-Process Communication using the \l{D-Bus} protocol. Applications using the QtDBus module can provide services to other, remote applications by exporting objects, as well as use @@ -869,7 +868,7 @@ directory. When installing Qt from source, this module is built when Qt's tools are built. - See the \l {Introduction to D-Bus} page for detailed information on + See the \l {D-Bus} page for detailed information on how to use this module. This module is part of all \l{Qt editions}. diff --git a/doc/src/xml-processing/xml-patterns.qdoc b/doc/src/xml-processing/xml-patterns.qdoc index dcf92f6..d0c8709 100644 --- a/doc/src/xml-processing/xml-patterns.qdoc +++ b/doc/src/xml-processing/xml-patterns.qdoc @@ -27,7 +27,7 @@ /*! \page xmlprocessing.html - \title Using XML Technologies + \title XQuery \previouspage Working with the DOM Tree \contentspage XML Processing diff --git a/doc/src/xml-processing/xml-processing.qdoc b/doc/src/xml-processing/xml-processing.qdoc index 0d58301..dcdd8d1 100644 --- a/doc/src/xml-processing/xml-processing.qdoc +++ b/doc/src/xml-processing/xml-processing.qdoc @@ -32,13 +32,15 @@ \brief Classes that support XML, via, for example DOM and SAX. These classes are relevant to XML users. - + \generatelist{related} */ /*! \page xml-processing.html \title XML Processing + \ingroup technology-apis + \brief An Overview of the XML processing facilities in Qt. In addition to core XML support, classes for higher level querying @@ -57,7 +59,7 @@ \o \l {XML Streaming} \o \l {The SAX Interface} \o \l {Working with the DOM Tree} - \o \l {Using XML Technologies}{XQuery/XPath and XML Schema} + \o \l {XQuery}{XQuery/XPath and XML Schema} \list \o \l{A Short Path to XQuery} \endlist @@ -525,7 +527,7 @@ \previouspage The SAX Interface \contentspage XML Processing - \nextpage {Using XML Technologies}{XQuery/XPath and XML Schema} + \nextpage {XQuery}{XQuery/XPath and XML Schema} DOM Level 2 is a W3C Recommendation for XML interfaces that maps the constituents of an XML document to a tree structure. The specification diff --git a/doc/src/xml-processing/xquery-introduction.qdoc b/doc/src/xml-processing/xquery-introduction.qdoc index 09af688..b79c205 100644 --- a/doc/src/xml-processing/xquery-introduction.qdoc +++ b/doc/src/xml-processing/xquery-introduction.qdoc @@ -29,7 +29,7 @@ \page xquery-introduction.html \title A Short Path to XQuery -\startpage Using XML Technologies +\startpage XQuery \target XQuery-introduction XQuery is a language for querying XML data or non-XML data that can be -- cgit v0.12 From 846f1b44eea4bb34d080d055badb40a4a13d369e Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Tue, 10 Aug 2010 13:59:57 +0200 Subject: QSslSocket: fix security vulnerability with wildcard IP addresses This fixes Westpoint Security issue with Advisory ID#: wp-10-0001. Before, we would allow wildcards in IP addresses like *.2.3.4 ; now, IP addresses must match excatly. Patch-by: Richard J. Moore Task-number: QT-3704 --- src/network/ssl/qsslsocket_openssl.cpp | 5 +++++ tests/auto/qsslsocket/tst_qsslsocket.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index b4d030c..bb6910a 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -1288,6 +1288,11 @@ bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QStri if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot)) return false; + // Check if the hostname is an IP address, if so then wildcards are not allowed + QHostAddress addr(hostname); + if (!addr.isNull()) + return false; + // Ok, I guess this was a wildcard CN and the hostname matches. return true; } diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index 0c12974..6c1dd8f 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -1072,6 +1072,7 @@ void tst_QSslSocket::wildcardCertificateNames() QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("192.168.0.0"), QString("192.168.0.0")), true ); // Failing CN matches QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false ); @@ -1085,6 +1086,7 @@ void tst_QSslSocket::wildcardCertificateNames() QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.168.0.0"), QString("192.168.0.0")), false ); } void tst_QSslSocket::wildcard() -- cgit v0.12 From 2b42bac65ae90f94b04ff556e5033014d37d223d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Tue, 10 Aug 2010 14:14:25 +0200 Subject: doc: Changed some titles so lists of contents sort better. --- doc/src/deployment/deployment.qdoc | 2 +- doc/src/development/developing-with-qt.qdoc | 2 +- doc/src/frameworks-technologies/containers.qdoc | 2 +- doc/src/frameworks-technologies/model-view-programming.qdoc | 2 +- doc/src/getting-started/demos.qdoc | 2 +- doc/src/overviews.qdoc | 7 ++++--- doc/src/porting/porting4.qdoc | 4 ++-- doc/src/porting/qt4-tulip.qdoc | 2 +- doc/src/qt4-intro.qdoc | 2 +- src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc | 2 +- src/corelib/global/qglobal.cpp | 5 +++-- src/corelib/tools/qpair.qdoc | 4 ++-- src/dbus/qdbusargument.cpp | 4 ++-- src/xmlpatterns/api/qxmlquery.cpp | 7 +++---- 14 files changed, 24 insertions(+), 23 deletions(-) diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc index 4573f3c..020ca16 100644 --- a/doc/src/deployment/deployment.qdoc +++ b/doc/src/deployment/deployment.qdoc @@ -155,7 +155,7 @@ \row \o QtWebKit \o WebKit \o WebKit is licensed under the GNU LGPL version 2 or later. This has implications for developers of closed source applications. - Please see \l{QtWebKit Module#License Information}{the QtWebKit module + Please see \l{WebKit in Qt#License Information}{the QtWebKit module documentation} for more information. \row \o \l{Phonon Module}{Phonon} \o Phonon diff --git a/doc/src/development/developing-with-qt.qdoc b/doc/src/development/developing-with-qt.qdoc index f9b38b8..b88fe3f 100644 --- a/doc/src/development/developing-with-qt.qdoc +++ b/doc/src/development/developing-with-qt.qdoc @@ -83,7 +83,7 @@ \o \l {Known Issues} \o \l {Platform Notes} \o \l {Platform Notes - Symbian} - \o \l {Qt For ActiveX} + \o \l {ActiveX in Qt} \o \l {Qt for Embedded Linux Classes} \o \l {Qt for Embedded Platforms} \o \l {Qt for Mac OS X - Specific Issues} diff --git a/doc/src/frameworks-technologies/containers.qdoc b/doc/src/frameworks-technologies/containers.qdoc index 58061ad..797326e 100644 --- a/doc/src/frameworks-technologies/containers.qdoc +++ b/doc/src/frameworks-technologies/containers.qdoc @@ -43,7 +43,7 @@ /*! \page containers.html - \title Generic Containers + \title Container Classes \ingroup technology-apis \ingroup groups \keyword container class diff --git a/doc/src/frameworks-technologies/model-view-programming.qdoc b/doc/src/frameworks-technologies/model-view-programming.qdoc index 131f063..7167f97 100644 --- a/doc/src/frameworks-technologies/model-view-programming.qdoc +++ b/doc/src/frameworks-technologies/model-view-programming.qdoc @@ -1011,7 +1011,7 @@ \snippet doc/src/snippets/reading-selections/window.cpp 0 - The above code uses Qt's convenient \l{Generic Containers}{foreach + The above code uses Qt's convenient \l{Container Classes}{foreach keyword} to iterate over, and modify, the items corresponding to the indexes returned by the selection model. diff --git a/doc/src/getting-started/demos.qdoc b/doc/src/getting-started/demos.qdoc index ef16224..94b19c3 100644 --- a/doc/src/getting-started/demos.qdoc +++ b/doc/src/getting-started/demos.qdoc @@ -134,7 +134,7 @@ \section1 QtWebKit \list - \o \l{Web Browser} demonstrates how Qt's \l{QtWebKit Module}{WebKit module} + \o \l{Web Browser} demonstrates how Qt's \l{WebKit in Qt}{WebKit module} can be used to implement a small Web browser. \endlist diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc index 3c02705..caf9404 100644 --- a/doc/src/overviews.qdoc +++ b/doc/src/overviews.qdoc @@ -91,11 +91,12 @@ /*! \group qt-activex - \title Qt For ActiveX - \brief Qt API's for using ActiveX controls, servers, and COM. + \title ActiveX in Qt \ingroup technology-apis \ingroup platform-specific + \brief Qt API's for using ActiveX controls, servers, and COM. + These pages document Qt's API's for developing with ActiveX controls, servers, and COM. @@ -104,7 +105,7 @@ /*! \group qt-sql - \title Using SQL in Qt + \title SQL in Qt \brief Qt API's for using SQL. \ingroup technology-apis \ingroup best-practices diff --git a/doc/src/porting/porting4.qdoc b/doc/src/porting/porting4.qdoc index 0bbf35f..7b80e13 100644 --- a/doc/src/porting/porting4.qdoc +++ b/doc/src/porting/porting4.qdoc @@ -2598,7 +2598,7 @@ seems feeble. \endomit - See \l{Generic Containers} for a list of Qt 4 containers. + See \l{Container Classes} for a list of Qt 4 containers. \section1 QPtrDict @@ -3939,7 +3939,7 @@ check the index against QVector::size() yourself. \endlist - See \l{Generic Containers} for an overview of the Qt 4 container + See \l{Container Classes} for an overview of the Qt 4 container classes. \section1 QVariant diff --git a/doc/src/porting/qt4-tulip.qdoc b/doc/src/porting/qt4-tulip.qdoc index 08542a6..333af84 100644 --- a/doc/src/porting/qt4-tulip.qdoc +++ b/doc/src/porting/qt4-tulip.qdoc @@ -97,7 +97,7 @@ you are iterating, that won't affect the loop. For details about the new containers, see the - \l{Generic Containers} and \l{Generic Algorithms} overview documents. + \l{Container Classes} and \l{Generic Algorithms} overview documents. In addition to the new containers, considerable work has also gone into QByteArray and QString. The Qt 3 QCString class has been diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 8867fd9..88ef2a8 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -86,7 +86,7 @@ In Qt 4.4: \list - \o \l{QtWebkit Module}{Qt WebKit integration}, making it possible for developers + \o \l{Webkit in QT}{Qt WebKit integration}, making it possible for developers to use a fully-featured Web browser to display documents and access online services. \o A multimedia API provided by the \l{Phonon Overview}{Phonon Multimedia Framework}. diff --git a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc index d3f5502..0335d46 100644 --- a/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc +++ b/src/3rdparty/webkit/WebKit/qt/docs/qtwebkit.qdoc @@ -1,6 +1,6 @@ /*! \module QtWebKit - \title QtWebKit Module + \title WebKit in Qt \contentspage All Qt Modules \previouspage QtSvg \nextpage QtXml diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 0e3a8d3..af35316 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -2914,8 +2914,9 @@ int qrand() \relates You can use this macro to specify information about a custom type - \a Type. With accurate type information, Qt's \l{generic - containers} can choose appropriate storage methods and algorithms. + \a Type. With accurate type information, Qt's \l{Container Classes} + {generic containers} can choose appropriate storage methods and + algorithms. \a Flags can be one of the following: diff --git a/src/corelib/tools/qpair.qdoc b/src/corelib/tools/qpair.qdoc index e60243f..d49c09e 100644 --- a/src/corelib/tools/qpair.qdoc +++ b/src/corelib/tools/qpair.qdoc @@ -35,7 +35,7 @@ pair type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of - a \l{generic container}. + a \l{Container classes}{generic container}. Here's an example of a QPair that stores one QString and one \c double value: @@ -53,7 +53,7 @@ requirements; these requirements are documented on a per-function basis. - \sa {Generic Containers} + \sa {Container Classes} */ /*! \typedef QPair::first_type diff --git a/src/dbus/qdbusargument.cpp b/src/dbus/qdbusargument.cpp index fbbc6a2..0bde085 100644 --- a/src/dbus/qdbusargument.cpp +++ b/src/dbus/qdbusargument.cpp @@ -825,7 +825,7 @@ void QDBusArgument::endStructure() \snippet doc/src/snippets/code/src_qdbus_qdbusargument.cpp 6 If the type you want to marshall is a QList, QVector or any of the - Qt's \l {Generic Containers} that take one template parameter, + Qt's \l {Container Classes} that take one template parameter, you need not declare an \c{operator<<} function for it, since QtDBus provides generic templates to do the job of marshalling the data. The same applies for STL's sequence containers, such @@ -952,7 +952,7 @@ void QDBusArgument::endStructure() const \snippet doc/src/snippets/code/src_qdbus_qdbusargument.cpp 9 If the type you want to demarshall is a QList, QVector or any of the - Qt's \l {Generic Containers} that take one template parameter, you + Qt's \l {Container Classes} that take one template parameter, you need not declare an \c{operator>>} function for it, since QtDBus provides generic templates to do the job of demarshalling the data. The same applies for STL's sequence containers, such as \c {std::list}, diff --git a/src/xmlpatterns/api/qxmlquery.cpp b/src/xmlpatterns/api/qxmlquery.cpp index e106d74..55af49b 100644 --- a/src/xmlpatterns/api/qxmlquery.cpp +++ b/src/xmlpatterns/api/qxmlquery.cpp @@ -151,8 +151,8 @@ QT_BEGIN_NAMESPACE \endcode \note For the current release, XSLT support should be considered - experimental. See section \l{Using XML technologies#XSLT - 2.0}{XSLT conformance} for details. + experimental. See section \l{XQuery#XSLT 2.0} {XSLT conformance} for + details. Stylesheet parameters are bound using bindVariable(). @@ -291,8 +291,7 @@ QXmlQuery::QXmlQuery(const QXmlNamePool &np) : d(new QXmlQueryPrivate(np)) create instances of QXmlQuery for running XQueries. \note The XSL-T support in this release is considered experimental. - See the \l{Using XML technologies#XSLT 2.0}{XSLT conformance} for - details. + See the \l{XQuery#XSLT 2.0} {XSLT conformance} for details. \since 4.5 \sa queryLanguage() -- cgit v0.12 From ca9270722b4412d9f70efe1ef4ad51635deca75a Mon Sep 17 00:00:00 2001 From: "Richard J. Moore" Date: Sun, 6 Jun 2010 22:10:08 +0100 Subject: Fix handling of SSL certificates with wildcard domain names Merge-request: 731 Task-number: QTBUG-4455 Reviewed-by: Peter Hartmann --- src/network/ssl/qsslsocket_openssl.cpp | 42 +++++++++++++++++++++++++++++--- src/network/ssl/qsslsocket_openssl_p.h | 1 + tests/auto/qsslsocket/tst_qsslsocket.cpp | 24 ++++++++++++++++++ 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 6f77600..6f0ccff 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -827,17 +827,16 @@ bool QSslSocketBackendPrivate::startHandshake() QString peerName = (verificationPeerName.isEmpty () ? q->peerName() : verificationPeerName); QString commonName = configuration.peerCertificate.subjectInfo(QSslCertificate::CommonName); - QRegExp regexp(commonName, Qt::CaseInsensitive, QRegExp::Wildcard); - if (!regexp.exactMatch(peerName)) { + if (!isMatchingHostname(commonName.lower(), peerName.lower())) { bool matched = false; foreach (const QString &altName, configuration.peerCertificate .alternateSubjectNames().values(QSsl::DnsEntry)) { - regexp.setPattern(altName); - if (regexp.exactMatch(peerName)) { + if (isMatchingHostname(altName.lower(), peerName.lower())) { matched = true; break; } } + if (!matched) { // No matches in common names or alternate names. QSslError error(QSslError::HostNameMismatch, configuration.peerCertificate); @@ -962,4 +961,39 @@ QList QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates return certificates; } +bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QString &hostname) +{ + int wildcard = cn.indexOf(QLatin1Char('*')); + + // Check this is a wildcard cert, if not then just compare the strings + if (wildcard < 0) + return cn == hostname; + + int firstCnDot = cn.indexOf(QLatin1Char('.')); + int secondCnDot = cn.indexOf(QLatin1Char('.'), firstCnDot+1); + + // Check at least 3 components + if ((-1 == secondCnDot) || (secondCnDot+1 >= cn.length())) + return false; + + // Check * is last character of 1st component (ie. there's a following .) + if (wildcard+1 != firstCnDot) + return false; + + // Check only one star + if (cn.lastIndexOf(QLatin1Char('*')) != wildcard) + return false; + + // Check characters preceding * (if any) match + if (wildcard && (hostname.leftRef(wildcard) != cn.leftRef(wildcard))) + return false; + + // Check characters following first . match + if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot)) + return false; + + // Ok, I guess this was a wildcard CN and the hostname matches. + return true; +} + QT_END_NAMESPACE diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h index 836f064..05eb4fa 100644 --- a/src/network/ssl/qsslsocket_openssl_p.h +++ b/src/network/ssl/qsslsocket_openssl_p.h @@ -115,6 +115,7 @@ public: static QSslCipher QSslCipher_from_SSL_CIPHER(SSL_CIPHER *cipher); static QList STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509); + Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname); }; QT_END_NAMESPACE diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index 5dd7c19..225e2e8 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -55,6 +55,7 @@ #include #include "private/qhostinfo_p.h" +#include "private/qsslsocket_openssl_p.h" #include "../network-settings.h" @@ -163,6 +164,7 @@ private slots: void setDefaultCiphers(); void supportedCiphers(); void systemCaCertificates(); + void wildcardCertificateNames(); void wildcard(); void setEmptyKey(); void spontaneousWrite(); @@ -1048,6 +1050,28 @@ void tst_QSslSocket::systemCaCertificates() QCOMPARE(certs, QSslSocket::defaultCaCertificates()); } +void tst_QSslSocket::wildcardCertificateNames() +{ + // Passing CN matches + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("www.example.com"), QString("www.example.com")), true ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true ); + + // Failing CN matches + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www.example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.*.com"), QString("www.example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("baa.foo.example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("baa.example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.com"), QString("example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*fail.com"), QString("example.com")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example.")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false ); +} + void tst_QSslSocket::wildcard() { QSKIP("TODO: solve wildcard problem", SkipAll); -- cgit v0.12 From b5f95fbf615b113e3e6d2b42f6b84309d6588b1f Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Mon, 12 Jul 2010 10:47:00 +0200 Subject: fix build for -no-qt3support QString::lower() is QT3_SUPPORT, the correct method is QString::toLower(). --- src/network/ssl/qsslsocket_openssl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 6f0ccff..103a7ef 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -827,11 +827,11 @@ bool QSslSocketBackendPrivate::startHandshake() QString peerName = (verificationPeerName.isEmpty () ? q->peerName() : verificationPeerName); QString commonName = configuration.peerCertificate.subjectInfo(QSslCertificate::CommonName); - if (!isMatchingHostname(commonName.lower(), peerName.lower())) { + if (!isMatchingHostname(commonName.toLower(), peerName.toLower())) { bool matched = false; foreach (const QString &altName, configuration.peerCertificate .alternateSubjectNames().values(QSsl::DnsEntry)) { - if (isMatchingHostname(altName.lower(), peerName.lower())) { + if (isMatchingHostname(altName.toLower(), peerName.toLower())) { matched = true; break; } -- cgit v0.12 From 87c62128266a4e2289c1854e35aba3fc17d44045 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Tue, 10 Aug 2010 13:59:57 +0200 Subject: QSslSocket: fix security vulnerability with wildcard IP addresses This fixes Westpoint Security issue with Advisory ID#: wp-10-0001. Before, we would allow wildcards in IP addresses like *.2.3.4 ; now, IP addresses must match excatly. Patch-by: Richard J. Moore Task-number: QT-3704 --- src/network/ssl/qsslsocket_openssl.cpp | 5 +++++ tests/auto/qsslsocket/tst_qsslsocket.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 103a7ef..625d739 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -992,6 +992,11 @@ bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QStri if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot)) return false; + // Check if the hostname is an IP address, if so then wildcards are not allowed + QHostAddress addr(hostname); + if (!addr.isNull()) + return false; + // Ok, I guess this was a wildcard CN and the hostname matches. return true; } diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index 225e2e8..8f7e0d9 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -1057,6 +1057,7 @@ void tst_QSslSocket::wildcardCertificateNames() QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("192.168.0.0"), QString("192.168.0.0")), true ); // Failing CN matches QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false ); @@ -1070,6 +1071,7 @@ void tst_QSslSocket::wildcardCertificateNames() QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false ); QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false ); + QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.168.0.0"), QString("192.168.0.0")), false ); } void tst_QSslSocket::wildcard() -- cgit v0.12 From 9986c3f0c0681c7ea8bc8e5cfea5662880db6654 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 10 Aug 2010 15:03:59 +0200 Subject: qdoc: Ensured that text is encoded correctly. --- tools/qdoc3/htmlgenerator.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 27d5b0f..356e615 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1717,7 +1717,7 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, out() << "\n"; } if (!cn->name().isEmpty()) - out() << "
  • " << protect(cn->name()) << "
  • \n"; + out() << "
  • " << protectEnc(cn->name()) << "
  • \n"; } else if (node->type() == Node::Fake) { const FakeNode* fn = static_cast(node); @@ -1725,13 +1725,13 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, out() << "
  • Modules
  • "; QString name = node->name(); if (!name.isEmpty()) - out() << "
  • " << protect(name) << "
  • \n"; + out() << "
  • " << protectEnc(name) << "
  • \n"; } else if (node->subType() == Node::Group) { if (fn->name() == QString("modules")) out() << "
  • Modules
  • "; else { - out() << "
  • " << protect(title) << "
  • "; + out() << "
  • " << protectEnc(title) << "
  • "; } } else if (node->subType() == Node::Page) { @@ -1741,18 +1741,18 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, } else if (fn->name().startsWith("examples-")) { out() << "
  • Examples
  • "; - out() << "
  • " << protect(title) << "
  • "; + out() << "
  • " << protectEnc(title) << "
  • "; } else if (fn->name() == QString("namespaces.html")) { out() << "
  • Namespaces
  • "; } else { - out() << "
  • " << protect(title) << "
  • "; + out() << "
  • " << protectEnc(title) << "
  • "; } } else if (node->subType() == Node::QmlClass) { out() << "
  • QML Elements
  • "; - out() << "
  • " << protect(title) << "
  • "; + out() << "
  • " << protectEnc(title) << "
  • "; } else if (node->subType() == Node::Example) { out() << "
  • Examples
  • "; @@ -1760,15 +1760,15 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title, if (sl.contains("declarative")) out() << "
  • QML Examples & Demos
  • "; else { - QString name = protect("examples-" + sl.at(0) + ".html"); // this generates an empty link + QString name = protectEnc("examples-" + sl.at(0) + ".html"); // this generates an empty link QString t = CodeParser::titleFromName(name); } - out() << "
  • " << protect(title) << "
  • "; + out() << "
  • " << protectEnc(title) << "
  • "; } } else if (node->type() == Node::Namespace) { out() << "
  • Namespaces
  • "; - out() << "
  • " << protect(title) << "
  • "; + out() << "
  • " << protectEnc(title) << "
  • "; } } -- cgit v0.12 From 8229eded4cba85ae53c1b03ce87981ebabd2f3ae Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 10 Aug 2010 14:02:52 +0100 Subject: Fix regression with SSL connections failing on symbian Due to a wrong ifdef sequence, the unix code was being compiled instead of the symbian code for retrieving the system certificates. Task-number: QTBUG-12718 Reviewed-by: Peter Hartmann --- src/network/ssl/qsslsocket_openssl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index b4d030c..aea04a3 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -750,7 +750,7 @@ QList QSslSocketPrivate::systemCaCertificates() ptrCertCloseStore(hSystemStore, 0); } } -#elif defined(Q_OS_UNIX) +#elif defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) systemCerts.append(QSslCertificate::fromPath(QLatin1String("/var/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // AIX systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // Solaris systemCerts.append(QSslCertificate::fromPath(QLatin1String("/opt/openssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // HP-UX -- cgit v0.12 From 58d0e46dcc50a3cddabc177c9dfdfec5c66e932d Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 10 Aug 2010 15:12:42 +0200 Subject: Doc: Removed invalid entities in documentation. Details: It is not necessary to use entities. In any case, I replaced them with words for consistency. --- doc/src/getting-started/examples.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index 1bf86e5..708c44e 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -343,8 +343,8 @@ /*! \page examples-draganddrop.html \ingroup all-examples - \title Drag & Drop Examples - \brief How to access your platform's native darg & drop functionality + \title Drag and Drop Examples + \brief How to access your platform's native drag and drop functionality. \image draganddrop-examples.png -- cgit v0.12 From 87b7587f25928272900900a106f360a4fbb4d6cd Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 10 Aug 2010 16:18:22 +0200 Subject: Updated WebKit to 72b1c38579ca1fdb3f242e29cd16e5bfb4925813 Integrated changes: || || [Qt] NPAPI plugins not drawn until page scrolled || --- src/3rdparty/webkit/.tag | 2 +- src/3rdparty/webkit/VERSION | 2 +- src/3rdparty/webkit/WebCore/ChangeLog | 10 ++++++++++ src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm | 5 ++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag index fb2703e..d31a2b4 100644 --- a/src/3rdparty/webkit/.tag +++ b/src/3rdparty/webkit/.tag @@ -1 +1 @@ -413404da27312051bb3ff2cfd0f3fca42aa4b245 +72b1c38579ca1fdb3f242e29cd16e5bfb4925813 diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index c256434..62aa8ce 100644 --- a/src/3rdparty/webkit/VERSION +++ b/src/3rdparty/webkit/VERSION @@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from and has the sha1 checksum - 413404da27312051bb3ff2cfd0f3fca42aa4b245 + 72b1c38579ca1fdb3f242e29cd16e5bfb4925813 diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog index 5b78226..98d4d51 100644 --- a/src/3rdparty/webkit/WebCore/ChangeLog +++ b/src/3rdparty/webkit/WebCore/ChangeLog @@ -1,3 +1,13 @@ +2010-08-10 Tor Arne Vestbø + + Reviewed by Simon Hausmann. + + Make sure NPAPI plugins get an initial setNPWindow on Mac + + https://bugs.webkit.org/show_bug.cgi?id=43782 + + * plugins/mac/PluginViewMac.mm: + 2010-06-14 Andreas Kling Reviewed by Tor Arne Vestbø. diff --git a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm index 57d74ab..c8781a8 100644 --- a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm +++ b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm @@ -227,7 +227,10 @@ bool PluginView::platformStart() #endif } - show(); + updatePluginWidget(); + + if (!m_plugin->quirks().contains(PluginQuirkDeferFirstSetWindowCall)) + setNPWindowIfNeeded(); // TODO: Implement null timer throttling depending on plugin activation m_nullEventTimer.set(new Timer(this, &PluginView::nullEventTimerFired)); -- cgit v0.12 From 05b9dc5a1cc649231b29807f2a87bb7164c5234a Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 10 Aug 2010 17:11:25 +0200 Subject: Fix memory leak in QtScript variable object The d-pointer is of type JSVariableObjectData*, but JSVariableObjectData doesn't have a virtual destructor. Hence we must cast the d-pointer to our subclass when deleting. In particular, this will ensure that the destructor of the symbolTable member is called, which will deallocate the table storage. (For QScriptActivationObject this did not cause a leak in practice, because its symbolTable is always empty, and JSC's hash table uses lazy allocation.) Task-number: QTBUG-12479 Reviewed-by: Olivier Goffart --- src/script/bridge/qscriptactivationobject.cpp | 2 +- src/script/bridge/qscriptstaticscopeobject.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/script/bridge/qscriptactivationobject.cpp b/src/script/bridge/qscriptactivationobject.cpp index 6a8ae56..85224d1 100644 --- a/src/script/bridge/qscriptactivationobject.cpp +++ b/src/script/bridge/qscriptactivationobject.cpp @@ -53,7 +53,7 @@ QScriptActivationObject::QScriptActivationObject(JSC::ExecState *callFrame, JSC: QScriptActivationObject::~QScriptActivationObject() { - delete d; + delete d_ptr(); } bool QScriptActivationObject::getOwnPropertySlot(JSC::ExecState* exec, const JSC::Identifier& propertyName, JSC::PropertySlot& slot) diff --git a/src/script/bridge/qscriptstaticscopeobject.cpp b/src/script/bridge/qscriptstaticscopeobject.cpp index 44548a4..940c859 100644 --- a/src/script/bridge/qscriptstaticscopeobject.cpp +++ b/src/script/bridge/qscriptstaticscopeobject.cpp @@ -87,7 +87,7 @@ QScriptStaticScopeObject::QScriptStaticScopeObject(WTF::NonNullPassRefPtr Date: Wed, 11 Aug 2010 10:04:53 +1000 Subject: Don't destroy ListModel child list nodes. These are owned by the root and must not be destroyed by child lists. Task-number: QTBUG-12771 Reviewed-by: Bea Lam --- src/declarative/util/qdeclarativelistmodel.cpp | 26 +++++++++++++--------- src/declarative/util/qdeclarativelistmodel_p_p.h | 13 +++++++++++ .../tst_qdeclarativelistmodel.cpp | 7 +++--- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp index 3ede335..b0d47a9 100644 --- a/src/declarative/util/qdeclarativelistmodel.cpp +++ b/src/declarative/util/qdeclarativelistmodel.cpp @@ -108,9 +108,9 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM \snippet doc/src/snippets/declarative/listmodel-modify.qml delegate - When creating content dynamically, note that the set of available properties cannot be changed - except by first clearing the model. Whatever properties are first added to the model are then the - only permitted properties in the model until it is cleared. + Note that when creating content dynamically the set of available properties cannot be changed + once set. Whatever properties are first added to the model are the + only permitted properties in the model. \section2 Using threaded list models with WorkerScript @@ -283,8 +283,7 @@ int QDeclarativeListModel::count() const /*! \qmlmethod ListModel::clear() - Deletes all content from the model. The properties are cleared such that - different properties may be set on subsequent additions. + Deletes all content from the model. \sa append() remove() */ @@ -945,13 +944,14 @@ bool FlatListModel::addValue(const QScriptValue &value, QHash *ro } NestedListModel::NestedListModel(QDeclarativeListModel *base) - : _root(0), m_listModel(base), _rolesOk(false) + : _root(0), m_ownsRoot(false), m_listModel(base), _rolesOk(false) { } NestedListModel::~NestedListModel() { - delete _root; + if (m_ownsRoot) + delete _root; } QVariant NestedListModel::valueForNode(ModelNode *node, bool *hasNested) const @@ -1051,8 +1051,8 @@ void NestedListModel::clear() _rolesOk = false; roleStrings.clear(); - delete _root; - _root = 0; + if (_root) + _root->clear(); } void NestedListModel::remove(int index) @@ -1067,8 +1067,10 @@ void NestedListModel::remove(int index) bool NestedListModel::insert(int index, const QScriptValue& valuemap) { - if (!_root) + if (!_root) { _root = new ModelNode; + m_ownsRoot = true; + } ModelNode *mn = new ModelNode; mn->setObjectValue(valuemap); @@ -1099,8 +1101,10 @@ void NestedListModel::move(int from, int to, int n) bool NestedListModel::append(const QScriptValue& valuemap) { - if (!_root) + if (!_root) { _root = new ModelNode; + m_ownsRoot = true; + } ModelNode *mn = new ModelNode; mn->setObjectValue(valuemap); _root->values << qVariantFromValue(mn); diff --git a/src/declarative/util/qdeclarativelistmodel_p_p.h b/src/declarative/util/qdeclarativelistmodel_p_p.h index 532eefa..c41f016 100644 --- a/src/declarative/util/qdeclarativelistmodel_p_p.h +++ b/src/declarative/util/qdeclarativelistmodel_p_p.h @@ -130,6 +130,7 @@ public: void checkRoles() const; ModelNode *_root; + bool m_ownsRoot; QDeclarativeListModel *m_listModel; private: @@ -157,6 +158,18 @@ struct ModelNode QList values; QHash properties; + void clear() { + ModelNode *node; + for (int ii = 0; ii < values.count(); ++ii) { + node = qvariant_cast(values.at(ii)); + if (node) { delete node; node = 0; } + } + values.clear(); + + qDeleteAll(properties.values()); + properties.clear(); + } + QDeclarativeListModel *model(const NestedListModel *model) { if (!modelCache) { modelCache = new QDeclarativeListModel; diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp index 858c26d..10805b4 100644 --- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp +++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp @@ -271,6 +271,9 @@ void tst_qdeclarativelistmodel::dynamic_data() QTest::newRow("nested-insert") << "{append({'foo':123});insert(0,{'bars':[{'a':1},{'b':2},{'c':3}]});get(0).bars.get(0).a}" << 1 << ""; QTest::newRow("nested-set") << "{append({'foo':123});set(0,{'foo':[{'x':123}]});get(0).foo.get(0).x}" << 123 << ""; + QTest::newRow("nested-count") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]}); get(0).bars.count}" << 3 << ""; + QTest::newRow("nested-clear") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]}); get(0).bars.clear(); get(0).bars.count}" << 0 << ""; + // XXX //QTest::newRow("nested-setprop") << "{append({'foo':123});setProperty(0,'foo',[{'x':123}]);get(0).foo.get(0).x}" << 123 << ""; } @@ -344,9 +347,7 @@ void tst_qdeclarativelistmodel::dynamic_worker() waitForWorker(item); QDeclarativeExpression e(eng.rootContext(), &model, operations.last().toString()); - if (QByteArray(QTest::currentDataTag()).startsWith("nested")) - QVERIFY(e.evaluate().toInt() != result); - else + if (!QByteArray(QTest::currentDataTag()).startsWith("nested")) QCOMPARE(e.evaluate().toInt(), result); } -- cgit v0.12 From e8d3e8e0b93271bb41fcdc264fc10ec59be5aa20 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 11 Aug 2010 13:58:08 +1000 Subject: Compile on Symbian Task-number: QTBUG-12771 --- src/declarative/util/qdeclarativelistmodel.cpp | 12 +++++++++--- src/declarative/util/qdeclarativelistmodel_p_p.h | 12 +----------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp index b0d47a9..20fe3a9 100644 --- a/src/declarative/util/qdeclarativelistmodel.cpp +++ b/src/declarative/util/qdeclarativelistmodel.cpp @@ -1209,16 +1209,22 @@ ModelNode::ModelNode() ModelNode::~ModelNode() { - qDeleteAll(properties.values()); + clear(); + if (modelCache) { modelCache->m_nested->_root = 0/* ==this */; delete modelCache; modelCache = 0; } + if (objectCache) { delete objectCache; objectCache = 0; } +} +void ModelNode::clear() +{ ModelNode *node; for (int ii = 0; ii < values.count(); ++ii) { node = qvariant_cast(values.at(ii)); if (node) { delete node; node = 0; } } + values.clear(); - if (modelCache) { modelCache->m_nested->_root = 0/* ==this */; delete modelCache; modelCache = 0; } - if (objectCache) { delete objectCache; objectCache = 0; } + qDeleteAll(properties.values()); + properties.clear(); } void ModelNode::setObjectValue(const QScriptValue& valuemap) { diff --git a/src/declarative/util/qdeclarativelistmodel_p_p.h b/src/declarative/util/qdeclarativelistmodel_p_p.h index c41f016..8231414 100644 --- a/src/declarative/util/qdeclarativelistmodel_p_p.h +++ b/src/declarative/util/qdeclarativelistmodel_p_p.h @@ -158,17 +158,7 @@ struct ModelNode QList values; QHash properties; - void clear() { - ModelNode *node; - for (int ii = 0; ii < values.count(); ++ii) { - node = qvariant_cast(values.at(ii)); - if (node) { delete node; node = 0; } - } - values.clear(); - - qDeleteAll(properties.values()); - properties.clear(); - } + void clear(); QDeclarativeListModel *model(const NestedListModel *model) { if (!modelCache) { -- cgit v0.12 From 0d4d065cc9757159c5b6fa817892f5707bc1ecae Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 11 Aug 2010 14:32:51 +1000 Subject: Don't build bearercloud example if Qt was build w/o SVG support Task-number: QTBUG-12791 Reviewed-by: David Laing --- examples/network/network.pro | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/network/network.pro b/examples/network/network.pro index 16c4087..458561a 100644 --- a/examples/network/network.pro +++ b/examples/network/network.pro @@ -16,9 +16,12 @@ SUBDIRS = \ threadedfortuneserver \ googlesuggest \ torrent \ - bearercloud \ bearermonitor + contains(QT_CONFIG, svg) { + SUBDIRS += bearercloud + } + # no QProcess !vxworks:!qnx:SUBDIRS += network-chat -- cgit v0.12 From 0c1d29300c7248ead3392bb385ceae6889dc2834 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 11 Aug 2010 15:06:56 +1000 Subject: Fix cppextension examples. Print a useful message on error. Specify the QML url correctly. --- examples/declarative/cppextensions/referenceexamples/adding/main.cpp | 4 ++-- .../declarative/cppextensions/referenceexamples/attached/main.cpp | 4 ++-- examples/declarative/cppextensions/referenceexamples/binding/main.cpp | 4 ++-- .../declarative/cppextensions/referenceexamples/coercion/main.cpp | 4 ++-- examples/declarative/cppextensions/referenceexamples/default/main.cpp | 4 ++-- .../declarative/cppextensions/referenceexamples/extended/main.cpp | 4 ++-- examples/declarative/cppextensions/referenceexamples/grouped/main.cpp | 4 ++-- .../declarative/cppextensions/referenceexamples/properties/main.cpp | 4 ++-- examples/declarative/cppextensions/referenceexamples/signal/main.cpp | 4 ++-- .../declarative/cppextensions/referenceexamples/valuesource/main.cpp | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp index 391113c..19cf034 100644 --- a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp @@ -51,13 +51,13 @@ int main(int argc, char ** argv) //![0] QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); Person *person = qobject_cast(component.create()); if (person) { qWarning() << "The person's name is" << person->name(); qWarning() << "They wear a" << person->shoeSize() << "sized shoe"; } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp index 5a39a98..65cbc93 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp @@ -56,7 +56,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -83,7 +83,7 @@ int main(int argc, char ** argv) } } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp index fe1bbc8..150f961 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp @@ -57,7 +57,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -85,7 +85,7 @@ int main(int argc, char ** argv) party->startParty(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return app.exec(); diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp index 5c53368..5b16f99 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp @@ -56,7 +56,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -70,7 +70,7 @@ int main(int argc, char ** argv) for (int ii = 0; ii < party->guestCount(); ++ii) qWarning() << " " << party->guest(ii)->name(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/default/main.cpp b/examples/declarative/cppextensions/referenceexamples/default/main.cpp index f611bc4..bfba642 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/default/main.cpp @@ -54,7 +54,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -68,7 +68,7 @@ int main(int argc, char ** argv) for (int ii = 0; ii < party->guestCount(); ++ii) qWarning() << " " << party->guest(ii)->name(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp index 65527c3..08c8440 100644 --- a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp @@ -51,14 +51,14 @@ int main(int argc, char ** argv) qmlRegisterExtendedType("People", 1,0, "QLineEdit"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); QLineEdit *edit = qobject_cast(component.create()); if (edit) { edit->show(); return app.exec(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); return 0; } } diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp index e56a14d..6f7f13f 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp @@ -55,7 +55,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -78,7 +78,7 @@ int main(int argc, char ** argv) qWarning() << bestShoe->name() << "is wearing the best shoes!"; } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp index 80237ef..d974647 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp @@ -52,7 +52,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Person"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -61,7 +61,7 @@ int main(int argc, char ** argv) for (int ii = 0; ii < party->guestCount(); ++ii) qWarning() << " " << party->guest(ii)->name(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp index 56c0809..ad87bee 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp @@ -56,7 +56,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -84,7 +84,7 @@ int main(int argc, char ** argv) party->startParty(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return 0; diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp index 40dc3cb..aa77665 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp @@ -58,7 +58,7 @@ int main(int argc, char ** argv) qmlRegisterType("People", 1,0, "Girl"); QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, ":example.qml"); + QDeclarativeComponent component(&engine, QUrl("qrc:example.qml")); BirthdayParty *party = qobject_cast(component.create()); if (party && party->host()) { @@ -86,7 +86,7 @@ int main(int argc, char ** argv) party->startParty(); } else { - qWarning() << "An error occurred"; + qWarning() << component.errors(); } return app.exec(); -- cgit v0.12 From 83795c1348f879d6742b4ef20b2315e0055e45a6 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 10 Aug 2010 17:17:27 +0200 Subject: configure.exe: don't write the QT_NAMESPACE define to .qmake.cache Since 37fc9b6c3e10bb708d6c294ac37693b6df1d5351 we're already writing the QT_NAMESPACE variable to qconfig.pri. Feature file qt.prf adds the QT_NAMESPACE=MyNamespace define for us. Task-number: QTBUG-5221 Reviewed-by: ossi --- tools/configure/configureapp.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index e27e16d..a0ca33a 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -988,7 +988,6 @@ void Configure::parseCmdLine() ++i; if (i == argCount) break; - qmakeDefines += "QT_NAMESPACE="+configCmdLine.at(i); dictionary[ "QT_NAMESPACE" ] = configCmdLine.at(i); } else if (configCmdLine.at(i) == "-qtlibinfix") { ++i; -- cgit v0.12 From b1d5e111d8bb4dba3bd13f7af5ac2fb7c91db71e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 6 Aug 2010 18:16:18 +0200 Subject: add comment explaining why this file does magic instead of just voodoo Reviewed-by: joerg Reviewed-by: Simon Hausmann --- mkspecs/features/qt_config.prf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index 0a2d985..b6fba65 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -1,3 +1,6 @@ +# This file is loaded by the mkspecs, before .qmake.cache has been loaded. +# Consequently, we have to do some stunts to get values out of the cache. + exists($$_QMAKE_CACHE_):QMAKE_QT_CONFIG = $$fromfile($$_QMAKE_CACHE_, QMAKE_QT_CONFIG) isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) { !isEmpty(QT_BUILD_TREE):QMAKE_QT_CONFIG = $$QT_BUILD_TREE/mkspecs/qconfig.pri -- cgit v0.12 From bf992abf98056151def8ff0b853fce8f1924b02a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 6 Aug 2010 12:29:39 +0200 Subject: don't load modules from qt.prf they are already loaded in qconfig.pri, which is loaded from qt_config.prf, which is explicitly loaded by every qmake spec. Reviewed-by: Simon Hausmann Reviewed-by: joerg --- mkspecs/features/qt.prf | 3 --- 1 file changed, 3 deletions(-) diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index aa0f06e..07c89dd 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -31,9 +31,6 @@ plugin { #Qt plugins } } -#handle modules -for(mod,$$list($$files($$[QMAKE_MKSPECS]/modules/qt_*.pri))):include($$mod) - #handle includes INCLUDEPATH = $$QMAKE_INCDIR_QT $$INCLUDEPATH #prepending prevents us from picking up "stale" includes win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt -- cgit v0.12 From 199b7ccb2a82e6a87808c3873c158ca38120dfdf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 6 Aug 2010 18:17:22 +0200 Subject: fix loading of module configs do it in qt_config.prf instead of in the autogenerated qconfig.pri files. this is waaaay more elegant, and allows us to easily use the magic in that file which avoids loading qt configuration from the qt install dir while building qt itself. Reviewed-by: joerg Reviewed-by: Simon Hausmann Task-number: QTBUG-12698 --- configure | 3 --- configure.exe | Bin 1309696 -> 1320448 bytes mkspecs/features/qt_config.prf | 1 + tools/configure/configureapp.cpp | 2 -- 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/configure b/configure index 25f1ef5..35fe2eb 100755 --- a/configure +++ b/configure @@ -7886,9 +7886,6 @@ QT_LIBINFIX = $QT_LIBINFIX QT_NAMESPACE = $QT_NAMESPACE QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC -#modules -for(mod,\$\$list(\$\$files(\$\$[QMAKE_MKSPECS]/modules/qt_*.pri))):include(\$\$mod) - EOF if [ "$CFG_RPATH" = "yes" ]; then echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp" diff --git a/configure.exe b/configure.exe index 220e605..c5bff85 100755 Binary files a/configure.exe and b/configure.exe differ diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index b6fba65..19e01a1 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -11,6 +11,7 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) { debug(1, "Cannot load qconfig.pri!") } else { debug(1, "Loaded .qconfig.pri from ($$QMAKE_QT_CONFIG)") + for(mod, $$list($$files($$dirname(QMAKE_QT_CONFIG)/modules/qt_*.pri))):include($$mod) } load(qt_functions) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index a0ca33a..0c716d1 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -2944,8 +2944,6 @@ void Configure::generateCachefile() configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl; } - configStream << "#modules" << endl << "for(mod,$$list($$files($$[QMAKE_MKSPECS]/modules/qt_*.pri))):include($$mod)" << endl; - configStream.flush(); configFile.close(); } -- cgit v0.12 From ebdc597eea6e44b66d6c98d252531af5d0da04f8 Mon Sep 17 00:00:00 2001 From: Henrik Hartz Date: Wed, 11 Aug 2010 10:01:59 +0200 Subject: Remember to reset clipping when overriding paint in QDeclarativeItem --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 9d782b9..17c094c 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -2500,7 +2500,9 @@ QDeclarativeListProperty QDeclarativeItemPrivate::transi This property holds whether clipping is enabled. if clipping is enabled, an item will clip its own painting, as well - as the painting of its children, to its bounding rectangle. + as the painting of its children, to its bounding rectangle. If you set + clipping during an item's paint operation, remember to re-set it to + prevent clipping the rest of your scene. Non-rectangular clipping regions are not supported for performance reasons. */ -- cgit v0.12 From 62968f33452016b31020e524fa6ba6d2cefd0278 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 11 Aug 2010 11:29:07 +0200 Subject: qdoc: Added list of all members (including inherited) page to QML elements. --- .../qdeclarativeitem/data/childrenRectBug3.qml | 30 +++++++-------- tools/qdoc3/codemarker.cpp | 4 +- tools/qdoc3/codemarker.h | 3 +- tools/qdoc3/cppcodemarker.cpp | 45 +++++++++++++++++++++- tools/qdoc3/cppcodemarker.h | 3 +- tools/qdoc3/ditaxmlgenerator.cpp | 4 +- tools/qdoc3/htmlgenerator.cpp | 43 ++++++++++++++++++++- tools/qdoc3/htmlgenerator.h | 5 ++- 8 files changed, 113 insertions(+), 24 deletions(-) diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml index f19ab4f..54b5b68 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml @@ -1,15 +1,15 @@ -import Qt 4.7 - -Rectangle { - width: 300 - height: 300 - - Rectangle { - height: childrenRect.height - - Repeater { - model: 1 - Rectangle { } - } - } -} +import Qt 4.7 + +Rectangle { + width: 300 + height: 300 + + Rectangle { + height: childrenRect.height + + Repeater { + model: 1 + Rectangle { } + } + } +} diff --git a/tools/qdoc3/codemarker.cpp b/tools/qdoc3/codemarker.cpp index 7130d61..ec86ae3 100644 --- a/tools/qdoc3/codemarker.cpp +++ b/tools/qdoc3/codemarker.cpp @@ -624,7 +624,9 @@ QString CodeMarker::macName(const Node *node, const QString &name) Get the list of documentation sections for the children of the specified QmlClassNode. */ -QList
    CodeMarker::qmlSections(const QmlClassNode* , SynopsisStyle ) +QList
    CodeMarker::qmlSections(const QmlClassNode* , + SynopsisStyle , + const Tree* ) { return QList
    (); } diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h index 53ad4a8..f17b28e 100644 --- a/tools/qdoc3/codemarker.h +++ b/tools/qdoc3/codemarker.h @@ -153,7 +153,8 @@ class CodeMarker Status status) = 0; #ifdef QDOC_QML virtual QList
    qmlSections(const QmlClassNode* qmlClassNode, - SynopsisStyle style); + SynopsisStyle style, + const Tree* tree); #endif virtual const Node* resolveTarget(const QString& target, const Tree* tree, diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index 562e92b..3615a84 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -1127,7 +1127,8 @@ QString CppCodeMarker::addMarkUp(const QString& protectedCode, Currently, it only handles QML property groups. */ QList
    CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, - SynopsisStyle style) + SynopsisStyle style, + const Tree* tree) { QList
    sections; if (qmlClassNode) { @@ -1244,6 +1245,48 @@ QList
    CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, append(sections,qmlmethods); append(sections,qmlattachedmethods); } + else { + FastSection all(qmlClassNode,"","","member","members"); + + QStack stack; + stack.push(qmlClassNode); + + while (!stack.isEmpty()) { + const QmlClassNode* ancestorClass = stack.pop(); + + NodeList::ConstIterator c = ancestorClass->childNodes().begin(); + while (c != ancestorClass->childNodes().end()) { + // if ((*c)->access() != Node::Private) + if ((*c)->subType() == Node::QmlPropertyGroup) { + const QmlPropGroupNode* qpgn = static_cast(*c); + NodeList::ConstIterator p = qpgn->childNodes().begin(); + while (p != qpgn->childNodes().end()) { + if ((*p)->type() == Node::QmlProperty) { + insert(all,*p,style,Okay); + } + ++p; + } + } + else + insert(all,*c,style,Okay); + ++c; + } + + if (!ancestorClass->links().empty()) { + if (ancestorClass->links().contains(Node::InheritsLink)) { + QPair linkPair; + linkPair = ancestorClass->links()[Node::InheritsLink]; + QStringList strList(linkPair.first); + const Node* n = tree->findNode(strList,Node::Fake); + if (n && n->subType() == Node::QmlClass) { + const QmlClassNode* qcn = static_cast(n); + stack.prepend(qcn); + } + } + } + } + append(sections, all); + } } return sections; diff --git a/tools/qdoc3/cppcodemarker.h b/tools/qdoc3/cppcodemarker.h index eca3936..804a302 100644 --- a/tools/qdoc3/cppcodemarker.h +++ b/tools/qdoc3/cppcodemarker.h @@ -80,7 +80,8 @@ class CppCodeMarker : public CodeMarker SynopsisStyle style, Status status); QList
    qmlSections(const QmlClassNode* qmlClassNode, - SynopsisStyle style); + SynopsisStyle style, + const Tree* tree); const Node* resolveTarget(const QString& target, const Tree* tree, const Node* relative, diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index 816ab9f..7892025 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -1764,7 +1764,7 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker generateQmlInstantiates(qml_cn, marker); generateBrief(qml_cn, marker); generateQmlInheritedBy(qml_cn, marker); - sections = marker->qmlSections(qml_cn,CodeMarker::Summary); + sections = marker->qmlSections(qml_cn,CodeMarker::Summary,0); s = sections.begin(); while (s != sections.end()) { out() << "\n"; @@ -1781,7 +1781,7 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker generateAlsoList(fake, marker); out() << "
    \n"; - sections = marker->qmlSections(qml_cn,CodeMarker::Detailed); + sections = marker->qmlSections(qml_cn,CodeMarker::Detailed,0); s = sections.begin(); while (s != sections.end()) { out() << "

    " << protectEnc((*s).name) << "

    \n"; diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index eb33ce9..e8fd155 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1493,7 +1493,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) const QmlClassNode* qml_cn = 0; if (fake->subType() == Node::QmlClass) { qml_cn = static_cast(fake); - sections = marker->qmlSections(qml_cn,CodeMarker::Summary); + sections = marker->qmlSections(qml_cn,CodeMarker::Summary,0); generateTableOfContents(fake,marker,§ions); } else if (fake->name() != QString("index.html")) @@ -1575,6 +1575,13 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) generateQmlInherits(qml_cn, marker); generateQmlInheritedBy(qml_cn, marker); generateQmlInstantiates(qml_cn, marker); + + QString allQmlMembersLink = generateAllQmlMembersFile(qml_cn, marker); + if (!allQmlMembersLink.isEmpty()) { + out() << "
  • " + << "List of all members, including inherited members
  • \n"; + } + s = sections.begin(); while (s != sections.end()) { out() << "\n"; - sections = marker->qmlSections(qml_cn,CodeMarker::Detailed); + sections = marker->qmlSections(qml_cn,CodeMarker::Detailed,0); s = sections.begin(); while (s != sections.end()) { out() << "

    " << protectEnc((*s).name) << "

    \n"; @@ -2291,6 +2298,38 @@ QString HtmlGenerator::generateListOfAllMemberFile(const InnerNode *inner, return fileName; } +/*! + This function creates an html page on which are listed all + the members of QML class \a qml_cn, including the inherited + members. The \a marker is used for formatting stuff. + */ +QString HtmlGenerator::generateAllQmlMembersFile(const QmlClassNode* qml_cn, + CodeMarker* marker) +{ + QList
    sections; + QList
    ::ConstIterator s; + + sections = marker->qmlSections(qml_cn,CodeMarker::SeparateList,myTree); + if (sections.isEmpty()) + return QString(); + + QString fileName = fileBase(qml_cn) + "-members." + fileExtension(qml_cn); + beginSubPage(qml_cn->location(), fileName); + QString title = "List of All Members for " + qml_cn->name(); + generateHeader(title, qml_cn, marker); + generateTitle(title, Text(), SmallSubTitle, qml_cn, marker); + out() << "

    This is the complete list of members for "; + generateFullName(qml_cn, 0, marker); + out() << ", including inherited members.

    \n"; + + Section section = sections.first(); + generateSectionList(section, 0, marker, CodeMarker::SeparateList); + + generateFooter(); + endSubPage(); + return fileName; +} + QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner, CodeMarker *marker, CodeMarker::Status status) diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index ec79896..07226f5 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -169,7 +169,10 @@ class HtmlGenerator : public PageGenerator void generateTableOfContents(const Node *node, CodeMarker *marker, QList
    * sections = 0); - QString generateListOfAllMemberFile(const InnerNode *inner, CodeMarker *marker); + QString generateListOfAllMemberFile(const InnerNode *inner, + CodeMarker *marker); + QString generateAllQmlMembersFile(const QmlClassNode* qml_cn, + CodeMarker* marker); QString generateLowStatusMemberFile(const InnerNode *inner, CodeMarker *marker, CodeMarker::Status status); -- cgit v0.12 From bb696453f6f87cad58982af3455335478fedb8cc Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Wed, 11 Aug 2010 11:49:35 +0200 Subject: Disable minRightBearing optimization in QTextLayout on Mac Neither of the Mac font engines have implemented minimum right bearing, which will cause them to return 0 for the minimum value. This will cause the right bearing to never be calculated prior to breaking and thus never be a part of the breaking width. Since actually implementing the functions is too time consuming for right now, we will disable the optimization for the time being. Reviewed-by: Olivier --- src/gui/text/qtextlayout.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index da43913..7d5fa43 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -1952,7 +1952,9 @@ void QTextLine::layout_helper(int maxGlyphs) // expand the text beyond the edge. if (sb_or_ws|breakany) { QFixed rightBearing = lbh.rightBearing; // store previous right bearing +#if !defined(Q_WS_MAC) if (lbh.calculateNewWidth(line) - lbh.minimumRightBearing > line.width) +#endif lbh.adjustRightBearing(); if (lbh.checkFullOtherwiseExtend(line)) { // we are too wide, fix right bearing -- cgit v0.12 From 997e4161cf937aa34a16bb2e708fa1bc7909355f Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Wed, 11 Aug 2010 12:45:58 +0200 Subject: Doc: Fixing bug involving header misplacement in Creator style Task-number: QTBUG-11408 --- doc/src/template/style/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css index d6b0fda..6a32e53 100755 --- a/doc/src/template/style/style.css +++ b/doc/src/template/style/style.css @@ -1375,7 +1375,7 @@ .creator .wrapper { position:relative; - top:50px; + top:5px; } .creator .wrapper .bd { @@ -1486,7 +1486,7 @@ - position:fixed; + /* position:fixed;*/ } -- cgit v0.12 From 5fa15620d09df1164cc28aa9b1e646a61f87e909 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Wed, 11 Aug 2010 12:47:05 +0200 Subject: Doc: Fixing typo --- src/gui/styles/qstylesheetstyle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index dff525e..92e2c81 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -4094,7 +4094,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q if (pe1 != PseudoElement_None) { QRenderRule subRule = renderRule(w, opt, pe1); if (subRule.bg != 0 || subRule.hasDrawable()) { - //We test subRule.bg dirrectly because hasBackground() would return false for background:none. + //We test subRule.bg directly because hasBackground() would return false for background:none. //But we still don't want the default drawning in that case (example for QScrollBar::add-page) (task 198926) subRule.drawRule(p, opt->rect); } else if (fallback) { -- cgit v0.12 From 98b7e8ac793d95a6a8350c7fc25faebd6f44cd21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Wed, 11 Aug 2010 09:28:32 +0200 Subject: Layout items had the wrong size if the layout was resized to maximum. The problem was that if targetSize was the layouts maximum size, then sumAvailable could be reduced to exactly 0 in the "while (keepGoing)" loop. That would mean that we would not enter the block that actually copied the new sizes from the temporary "newSizes" array to the output "sizes" array due to the "if (sumAvailable > 0)" condition. Task-number: none, discovered while fixing QT-3570 Reviewed-by: Frederik Gladhorn --- src/gui/graphicsview/qgridlayoutengine.cpp | 15 +++++++------- .../tst_qgraphicsgridlayout.cpp | 24 +++++++++++----------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp index a084647..4fba5ff 100644 --- a/src/gui/graphicsview/qgridlayoutengine.cpp +++ b/src/gui/graphicsview/qgridlayoutengine.cpp @@ -250,6 +250,7 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz sumAvailable = targetSize - totalBox.q_preferredSize; if (sumAvailable > 0.0) { + qreal sumCurrentAvailable = sumAvailable; bool somethingHasAMaximumSize = false; qreal sumPreferredSizes = 0.0; @@ -308,12 +309,12 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz qreal ultimateFactor = (stretch * ultimateSumPreferredSizes / sumStretches) - (box.q_preferredSize); - qreal transitionalFactor = sumAvailable + qreal transitionalFactor = sumCurrentAvailable * (ultimatePreferredSize - box.q_preferredSize) / (ultimateSumPreferredSizes - sumPreferredSizes); - qreal alpha = qMin(sumAvailable, + qreal alpha = qMin(sumCurrentAvailable, ultimateSumPreferredSizes - sumPreferredSizes); qreal beta = ultimateSumPreferredSizes - sumPreferredSizes; @@ -321,7 +322,7 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz + ((beta - alpha) * transitionalFactor)) / beta; } sumFactors += factors[i]; - if (desired < sumAvailable) + if (desired < sumCurrentAvailable) somethingHasAMaximumSize = true; newSizes[i] = -1.0; @@ -337,12 +338,12 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz continue; const QGridLayoutBox &box = boxes.at(start + i); - qreal avail = sumAvailable * factors[i] / sumFactors; + qreal avail = sumCurrentAvailable * factors[i] / sumFactors; if (sizes[i] + avail >= box.q_maximumSize) { newSizes[i] = box.q_maximumSize; - sumAvailable -= box.q_maximumSize - sizes[i]; + sumCurrentAvailable -= box.q_maximumSize - sizes[i]; sumFactors -= factors[i]; - keepGoing = (sumAvailable > 0.0); + keepGoing = (sumCurrentAvailable > 0.0); if (!keepGoing) break; } @@ -352,7 +353,7 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz for (int i = 0; i < n; ++i) { if (newSizes[i] < 0.0) { qreal delta = (sumFactors == 0.0) ? 0.0 - : sumAvailable * factors[i] / sumFactors; + : sumCurrentAvailable * factors[i] / sumFactors; newSizes[i] = sizes[i] + delta; } } diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index d1d6860..5b03767 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -485,12 +485,12 @@ void tst_QGraphicsGridLayout::alignment() widget->resize(widget->effectiveSizeHint(Qt::MaximumSize)); QApplication::processEvents(); - QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 50, 25)); - QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 25, 50, 25)); - QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(125, 0, 50, 25)); - QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(125, 25, 50, 25)); - QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(250, 0, 50, 25)); - QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(250, 25, 50, 25)); + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 50, 50, 50)); + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(125, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(125, 50, 50, 50)); + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(250, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(250, 50, 50, 50)); delete widget; } @@ -544,12 +544,12 @@ void tst_QGraphicsGridLayout::columnAlignment() | HCenter | Right | Left | +---------------------------------+ */ - QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 50, 25)); - QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(25, 26, 50, 25)); // item is king - QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(126, 0, 50, 25)); - QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(151, 26, 50, 25)); // item is king - QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(252, 0, 50, 25)); - QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(202, 26, 50, 25)); // item is king + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(25, 51, 50, 50)); // item is king + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(126, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(151, 51, 50, 50)); // item is king + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(252, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(202, 51, 50, 50)); // item is king delete widget; } -- cgit v0.12 From a77dbcdbb7022cc754ba87aea9a4fc471d1e4495 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 4 Aug 2010 11:59:49 +0200 Subject: QSslCertificate: support expiration dates > 2049 X509 has two time formats: UTC, where the year is in two-digit format, and generalized time with four-digit years. This patch allows dates specified generalized time. Reviewed-by: Thiago Macieira Task-number: QTBUG-12489 --- src/network/ssl/qsslsocket_openssl_symbols.cpp | 121 ++++++++++++--------- .../cert-large-expiration-date.pem | 15 +++ tests/auto/qsslcertificate/tst_qsslcertificate.cpp | 15 +++ 3 files changed, 101 insertions(+), 50 deletions(-) create mode 100644 tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp index 09ecd4d..d1225c1 100644 --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp @@ -761,74 +761,95 @@ bool q_resolveOpenSslSymbols() //============================================================================== QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime) { - char lBuffer[24]; - char *pBuffer = lBuffer; - size_t lTimeLength = aTime->length; char *pString = (char *) aTime->data; if (aTime->type == V_ASN1_UTCTIME) { + + char lBuffer[24]; + char *pBuffer = lBuffer; + if ((lTimeLength < 11) || (lTimeLength > 17)) return QDateTime(); memcpy(pBuffer, pString, 10); pBuffer += 10; pString += 10; - } else { - if (lTimeLength < 13) - return QDateTime(); - - memcpy(pBuffer, pString, 12); - pBuffer += 12; - pString += 12; - } - if ((*pString == 'Z') || (*pString == '-') || (*pString == '+')) { - *pBuffer++ = '0'; - *pBuffer++ = '0'; - } else { - *pBuffer++ = *pString++; - *pBuffer++ = *pString++; - // Skip any fractional seconds... - if (*pString == '.') { - pString++; - while ((*pString >= '0') && (*pString <= '9')) + if ((*pString == 'Z') || (*pString == '-') || (*pString == '+')) { + *pBuffer++ = '0'; + *pBuffer++ = '0'; + } else { + *pBuffer++ = *pString++; + *pBuffer++ = *pString++; + // Skip any fractional seconds... + if (*pString == '.') { pString++; + while ((*pString >= '0') && (*pString <= '9')) + pString++; + } } - } - *pBuffer++ = 'Z'; - *pBuffer++ = '\0'; + *pBuffer++ = 'Z'; + *pBuffer++ = '\0'; - time_t lSecondsFromUCT; - if (*pString == 'Z') { - lSecondsFromUCT = 0; - } else { - if ((*pString != '+') && (*pString != '-')) - return QDateTime(); + time_t lSecondsFromUCT; + if (*pString == 'Z') { + lSecondsFromUCT = 0; + } else { + if ((*pString != '+') && (*pString != '-')) + return QDateTime(); + + lSecondsFromUCT = ((pString[1] - '0') * 10 + (pString[2] - '0')) * 60; + lSecondsFromUCT += (pString[3] - '0') * 10 + (pString[4] - '0'); + lSecondsFromUCT *= 60; + if (*pString == '-') + lSecondsFromUCT = -lSecondsFromUCT; + } + + tm lTime; + lTime.tm_sec = ((lBuffer[10] - '0') * 10) + (lBuffer[11] - '0'); + lTime.tm_min = ((lBuffer[8] - '0') * 10) + (lBuffer[9] - '0'); + lTime.tm_hour = ((lBuffer[6] - '0') * 10) + (lBuffer[7] - '0'); + lTime.tm_mday = ((lBuffer[4] - '0') * 10) + (lBuffer[5] - '0'); + lTime.tm_mon = (((lBuffer[2] - '0') * 10) + (lBuffer[3] - '0')) - 1; + lTime.tm_year = ((lBuffer[0] - '0') * 10) + (lBuffer[1] - '0'); + if (lTime.tm_year < 50) + lTime.tm_year += 100; // RFC 2459 + + QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday); + QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec); + + QDateTime result(resDate, resTime, Qt::UTC); + result = result.addSecs(lSecondsFromUCT); + return result; + + } else if (aTime->type == V_ASN1_GENERALIZEDTIME) { - lSecondsFromUCT = ((pString[1] - '0') * 10 + (pString[2] - '0')) * 60; - lSecondsFromUCT += (pString[3] - '0') * 10 + (pString[4] - '0'); - lSecondsFromUCT *= 60; - if (*pString == '-') - lSecondsFromUCT = -lSecondsFromUCT; + if (lTimeLength < 15) + return QDateTime(); // hopefully never triggered + + // generalized time is always YYYYMMDDHHMMSSZ (RFC 2459, section 4.1.2.5.2) + tm lTime; + lTime.tm_sec = ((pString[12] - '0') * 10) + (pString[13] - '0'); + lTime.tm_min = ((pString[10] - '0') * 10) + (pString[11] - '0'); + lTime.tm_hour = ((pString[8] - '0') * 10) + (pString[9] - '0'); + lTime.tm_mday = ((pString[6] - '0') * 10) + (pString[7] - '0'); + lTime.tm_mon = (((pString[4] - '0') * 10) + (pString[5] - '0')); + lTime.tm_year = ((pString[0] - '0') * 1000) + ((pString[1] - '0') * 100) + + ((pString[2] - '0') * 10) + (pString[3] - '0'); + + QDate resDate(lTime.tm_year, lTime.tm_mon, lTime.tm_mday); + QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec); + + QDateTime result(resDate, resTime, Qt::UTC); + return result; + + } else { + qWarning("unsupported date format detected"); + return QDateTime(); } - tm lTime; - lTime.tm_sec = ((lBuffer[10] - '0') * 10) + (lBuffer[11] - '0'); - lTime.tm_min = ((lBuffer[8] - '0') * 10) + (lBuffer[9] - '0'); - lTime.tm_hour = ((lBuffer[6] - '0') * 10) + (lBuffer[7] - '0'); - lTime.tm_mday = ((lBuffer[4] - '0') * 10) + (lBuffer[5] - '0'); - lTime.tm_mon = (((lBuffer[2] - '0') * 10) + (lBuffer[3] - '0')) - 1; - lTime.tm_year = ((lBuffer[0] - '0') * 10) + (lBuffer[1] - '0'); - if (lTime.tm_year < 50) - lTime.tm_year += 100; // RFC 2459 - - QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday); - QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec); - QDateTime result(resDate, resTime, Qt::UTC); - result = result.addSecs(lSecondsFromUCT); - return result; } QT_END_NAMESPACE diff --git a/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem b/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem new file mode 100644 index 0000000..416dd4d --- /dev/null +++ b/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWjCCAcOgAwIBAgIJAM7bMShFxAVAMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwIBcNMTAwODA0MDk1MzQxWhgPMjA1MTA4MjkwOTUzNDFa +MEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ +bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ +AoGBAM2q22/WNMmn8cC+5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7r +OtkS18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzA +kfcRaJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAGjUDBOMB0G +A1UdDgQWBBSKbhnnl5uP2X+zuwFP6GovUpUN2TAfBgNVHSMEGDAWgBSKbhnnl5uP +2X+zuwFP6GovUpUN2TAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAKF0 +jl02liwFfupmzC5oxz2T3IyjEa21fm7QBMQJvQr5OTuX1/C7DAl7g/6/h7BH6JS3 +qpx5rXGet8SZmG8dODL4o3U4xOXnNzch7HtQixWwlx4XnFAXPMHflFX7YC5QQNHq +I8Y8IW+XjAYWpYJywWMUZIbr1/9y9gn1beYEE3pq +-----END CERTIFICATE----- diff --git a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp index d0509bb..963bf11 100644 --- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp @@ -110,6 +110,7 @@ private slots: void nulInCN(); void nulInSan(); void largeSerialNumber(); + void largeExpirationDate(); // ### add tests for certificate bundles (multiple certificates concatenated into a single // structure); both PEM and DER formatted #endif @@ -802,6 +803,20 @@ void tst_QSslCertificate::largeSerialNumber() QCOMPARE(cert.serialNumber(), QByteArray("01:02:03:04:05:06:07:08:09:10:aa:bb:cc:dd:ee:ff:17:18:19:20")); } +void tst_QSslCertificate::largeExpirationDate() // QTBUG-12489 +{ + QList certList = + QSslCertificate::fromPath(SRCDIR "more-certificates/cert-large-expiration-date.pem"); + + QCOMPARE(certList.size(), 1); + + const QSslCertificate &cert = certList.at(0); + QVERIFY(!cert.isNull()); + QCOMPARE(cert.effectiveDate().toUTC(), QDateTime(QDate(2010, 8, 4), QTime(9, 53, 41), Qt::UTC)); + // if the date is larger than 2049, then the generalized time format is used + QCOMPARE(cert.expiryDate().toUTC(), QDateTime(QDate(2051, 8, 29), QTime(9, 53, 41), Qt::UTC)); +} + #endif // QT_NO_OPENSSL QTEST_MAIN(tst_QSslCertificate) -- cgit v0.12 From c7fcd56bd3e150e57230ea1445bf4286b3f3fabe Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Thu, 5 Aug 2010 11:56:47 +0200 Subject: QXmlStreamReader: avoid unnecessary detaching Reviewed-by: Markus Goetz Task-number: QTBUG-12259 --- src/corelib/xml/qxmlstream.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index 853f311..91c3a19 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -1523,7 +1523,7 @@ ushort QXmlStreamReaderPrivate::getChar_helper() decoder = codec->makeDecoder(); } - decoder->toUnicode(&readBuffer, rawReadBuffer.data(), nbytesread); + decoder->toUnicode(&readBuffer, rawReadBuffer.constData(), nbytesread); if(lockEncoding && decoder->hasFailure()) { raiseWellFormedError(QXmlStream::tr("Encountered incorrectly encoded content.")); -- cgit v0.12 From bdfbedf971f3e9ef99977652308b9e2b1c213210 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 11 Aug 2010 12:46:59 +0300 Subject: Gcce building support for symbian-sbsv2 It is now possible to use "release-gcce" and "debug-gcce" targets in symbian-sbsv2 mkspec. Exports and cleans should also now work properly for all target platforms under symbian-sbsv2. Task-number: QTBUG-12762 Reviewed-by: Jason Barron --- mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm | 2 +- mkspecs/symbian-sbsv2/flm/qt/qt.xml | 1 + qmake/generators/symbian/symmake_sbsv2.cpp | 176 ++++++++++++++++----- qmake/generators/symbian/symmake_sbsv2.h | 7 + 4 files changed, 145 insertions(+), 41 deletions(-) diff --git a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm index e0b6503..47c3f1e 100644 --- a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm +++ b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm @@ -38,7 +38,7 @@ $(STORE_BUILD_TARGET): echo "# make sis target." >> $(CACHE_FILENAME) && \ echo "# Version : " >> $(CACHE_FILENAME) && \ echo "# ==============================================================================" >> $(CACHE_FILENAME) && \ - echo QT_SIS_TARGET ?= $(VISUAL_CFG)-$(PLATFORM_PATH) >> $(CACHE_FILENAME) \ + echo QT_SIS_TARGET ?= $(VISUAL_CFG)-$(VARIANTPLATFORM) >> $(CACHE_FILENAME) $(call endrule,qmake_store_build) endef diff --git a/mkspecs/symbian-sbsv2/flm/qt/qt.xml b/mkspecs/symbian-sbsv2/flm/qt/qt.xml index 0f7db3c..12857a2 100644 --- a/mkspecs/symbian-sbsv2/flm/qt/qt.xml +++ b/mkspecs/symbian-sbsv2/flm/qt/qt.xml @@ -37,5 +37,6 @@ + diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index 78f6f85..534a080 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -56,6 +56,12 @@ SymbianSbsv2MakefileGenerator::~SymbianSbsv2MakefileGenerator() { } #define FLM_DEST_DIR "epoc32/tools/makefile_templates/qt" #define FLM_SOURCE_DIR "/mkspecs/symbian-sbsv2/flm/qt" +#define UNDETECTED_GCCE_VERSION "0" +#define PLATFORM_GCCE "gcce" +#define PLATFORM_WINSCW "winscw" +#define PLATFORM_ARMV5 "armv5" +#define BUILD_DEBUG "udeb" +#define BUILD_RELEASE "urel" // Copies Qt FLMs to correct location under epocroot. // This is not done by configure as it is possible to change epocroot after configure. @@ -90,6 +96,67 @@ void SymbianSbsv2MakefileGenerator::exportFlm() } } +QString SymbianSbsv2MakefileGenerator::gcceVersion() +{ + static QString gcceVersionStr; + + if (gcceVersionStr.isEmpty()) { + // First check if QT_GCCE_VERSION has been set, and use that if it is + QByteArray qtGcceVersion = qgetenv("QT_GCCE_VERSION"); + if (!qtGcceVersion.isEmpty()) { + // Check that QT_GCCE_VERSION is in proper format + QString check(qtGcceVersion); + check.replace(QRegExp("^\\d+\\.\\d+\\.\\d+$"),QString()); + if (check.isEmpty()) { + gcceVersionStr = PLATFORM_GCCE + QString(qtGcceVersion).replace(".","_"); + return gcceVersionStr; + } else { + fprintf(stderr, "Warning: Environment variable QT_GCCE_VERSION ('%s') is in incorrect " + "format, expected format is: '1.2.3'. Attempting to autodetect GCCE version.", + qtGcceVersion.constData()); + } + } + // Sbsv2 has separate env variable defined for each gcce version, so try to determine + // which user is likely to want to use by checking version 4.0.0 to 9.9.9 and taking + // the highest found version that actually points to a valid path. + // This is kind of a kludge, but since qmake doesn't bootstrap QProcess, there + // is no Qt API available to get all environment variables. + for (int i = 9; i >= 4; i--) { + for (int j = 9; j >= 0; j--) { + for (int k = 9; k >= 0; k--) { + QByteArray gcceVar = qgetenv(qPrintable(QString("SBS_GCCE%1%2%3BIN").arg(i).arg(j).arg(k))); + if (!gcceVar.isEmpty() && fileInfo(QString::fromLocal8Bit(gcceVar.constData())).exists()) { + gcceVersionStr = QString(PLATFORM_GCCE "%1_%2_%3").arg(i).arg(j).arg(k); + return gcceVersionStr; + } + } + } + } + } + + // Indicate undetected version to avoid rechecking multiple times + if (gcceVersionStr.isEmpty()) + gcceVersionStr = UNDETECTED_GCCE_VERSION; + + return gcceVersionStr; +} + +QString SymbianSbsv2MakefileGenerator::configClause(QString &platform, + QString &build, + QString &winscwClauseTemplate, + QString &gcceClauseTemplate, + QString &genericClauseTemplate) +{ + QString retval; + if (QString::compare(platform, PLATFORM_WINSCW) == 0) + retval = winscwClauseTemplate.arg(build); + else if (QString::compare(platform, PLATFORM_GCCE) == 0) + retval = gcceClauseTemplate.arg(build); + else + retval = genericClauseTemplate.arg(platform).arg(build); + return retval; +} + void SymbianSbsv2MakefileGenerator::writeSbsDeploymentList(const DeploymentList& depList, QTextStream& t) { for (int i = 0; i < depList.size(); ++i) { @@ -118,21 +185,45 @@ void SymbianSbsv2MakefileGenerator::writeMkFile(const QString& wrapperFileName, void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool isPrimaryMakefile) { + static QString debugBuild(BUILD_DEBUG); + static QString releaseBuild(BUILD_RELEASE); + QStringList allPlatforms; foreach(QString platform, project->values("SYMBIAN_PLATFORMS")) { allPlatforms << platform.toLower(); } - QStringList debugPlatforms = allPlatforms; - QStringList releasePlatforms = allPlatforms; - releasePlatforms.removeAll("winscw"); // No release for emulator - QString testClause; if (project->isActiveConfig(SYMBIAN_TEST_CONFIG)) testClause = QLatin1String(".test"); else testClause = QLatin1String(""); + QString genericClause = " -c %1_%2" + testClause; + QString winscwClause = " -c winscw_%1.mwccinc" + testClause; + QString gcceClause; + if (QString::compare(gcceVersion(), UNDETECTED_GCCE_VERSION) == 0) + allPlatforms.removeAll(PLATFORM_GCCE); + else + gcceClause = " -c arm.v5.%1." + gcceVersion() + ".release_gcce" + testClause; + + QStringList allClauses; + QStringList debugClauses; + QStringList releaseClauses; + + QStringList debugPlatforms = allPlatforms; + QStringList releasePlatforms = allPlatforms; + releasePlatforms.removeAll(PLATFORM_WINSCW); // No release for emulator + + foreach(QString item, debugPlatforms) { + debugClauses << configClause(item, debugBuild, winscwClause, gcceClause, genericClause); + } + foreach(QString item, releasePlatforms) { + releaseClauses << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause); + } + allClauses << debugClauses << releaseClauses; + + QTextStream t(&wrapperFile); t << "# ==============================================================================" << endl; @@ -172,9 +263,9 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo } t << endl; t << "first: default" << endl; - if (debugPlatforms.contains("winscw")) + if (debugPlatforms.contains(PLATFORM_WINSCW)) t << "default: debug-winscw"; - else if (debugPlatforms.contains("armv5")) + else if (debugPlatforms.contains(PLATFORM_ARMV5)) t << "default: debug-armv5"; else if (debugPlatforms.size()) t << "default: debug-" << debugPlatforms.first(); @@ -195,52 +286,50 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << "\t$(QMAKE)" << endl; t << endl; - QString winscw("winscw"); + QString currentClause; + t << "debug: " << BLD_INF_FILENAME << endl; t << "\t$(SBS)"; - foreach(QString item, debugPlatforms) { - if(QString::compare(item, winscw) == 0) - t << " -c " << item << "_udeb.mwccinc" << testClause; - else - t << " -c " << item << "_udeb" << testClause; + foreach(QString item, debugClauses) { + t << item; } t << endl; t << "release: " << BLD_INF_FILENAME << endl; t << "\t$(SBS)"; - foreach(QString item, releasePlatforms) { - if(QString::compare(item, winscw) == 0) - t << " -c " << item << "_urel.mwccinc" << testClause; - else - t << " -c " << item << "_urel" << testClause; + foreach(QString item, releaseClauses) { + t << item; } t << endl; // For more specific builds, targets are in this form: build-platform, e.g. release-armv5 foreach(QString item, debugPlatforms) { t << "debug-" << item << ": " << BLD_INF_FILENAME << endl; - if(QString::compare(item, winscw) == 0) - t << "\t$(SBS) -c " << item << "_udeb.mwccinc" << testClause << endl; - else - t << "\t$(SBS) -c " << item << "_udeb" << testClause << endl; + t << "\t$(SBS)"; + t << configClause(item, debugBuild, winscwClause, gcceClause, genericClause); + t << endl; } foreach(QString item, releasePlatforms) { t << "release-" << item << ": " << BLD_INF_FILENAME << endl; - if(QString::compare(item, winscw) == 0) - t << "\t$(SBS) -c " << item << "_urel.mwccinc" << testClause << endl; - else - t << "\t$(SBS) -c " << item << "_urel" << testClause << endl; + t << "\t$(SBS)"; + t << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause); + t << endl; } t << endl; t << "export: " << BLD_INF_FILENAME << endl; - t << "\t$(SBS) export" << endl; - t << endl; + t << "\t$(SBS) export"; + foreach(QString clause, allClauses) { + t << clause; + } + t << endl << endl; t << "cleanexport: " << BLD_INF_FILENAME << endl; - t << "\t$(SBS) cleanexport" << endl; - t << endl; - + t << "\t$(SBS) cleanexport"; + foreach(QString clause, allClauses) { + t << clause; + } + t << endl << endl; } // Add all extra targets including extra compiler targest also to wrapper makefile, @@ -258,30 +347,37 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo generateDistcleanTargets(t); t << "clean: " << BLD_INF_FILENAME << endl; - t << "\t-$(SBS) reallyclean" << endl; - t << endl; + t << "\t-$(SBS) reallyclean"; + foreach(QString clause, allClauses) { + t << clause; + } + t << endl << endl; t << "clean-debug: " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean"; - foreach(QString item, debugPlatforms) { - t << " -c " << item << "_udeb" << testClause; + foreach(QString clause, debugClauses) { + t << clause; } - t << endl; + t << endl << endl; t << "clean-release: " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean"; - foreach(QString item, releasePlatforms) { - t << " -c " << item << "_urel" << testClause; + foreach(QString clause, releaseClauses) { + t << clause; } - t << endl; + t << endl << endl; // For more specific builds, targets are in this form: clean-build-platform, e.g. clean-release-armv5 foreach(QString item, debugPlatforms) { t << "clean-debug-" << item << ": " << BLD_INF_FILENAME << endl; - t << "\t$(SBS) reallyclean -c " << item << "_udeb" << testClause << endl; + t << "\t$(SBS) reallyclean"; + t << configClause(item, debugBuild, winscwClause, gcceClause, genericClause); + t << endl; } foreach(QString item, releasePlatforms) { t << "clean-release-" << item << ": " << BLD_INF_FILENAME << endl; - t << "\t$(SBS) reallyclean -c " << item << "_urel" << testClause << endl; + t << "\t$(SBS) reallyclean"; + t << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause); + t << endl; } t << endl; } diff --git a/qmake/generators/symbian/symmake_sbsv2.h b/qmake/generators/symbian/symmake_sbsv2.h index 286c91c..6644a03 100644 --- a/qmake/generators/symbian/symmake_sbsv2.h +++ b/qmake/generators/symbian/symmake_sbsv2.h @@ -65,6 +65,13 @@ public: private: void exportFlm(); + QString gcceVersion(); + QString configClause(QString &platform, + QString &build, + QString &winscwClauseTemplate, + QString &gcceClauseTemplate, + QString &genericClauseTemplate); + void writeSbsDeploymentList(const DeploymentList& depList, QTextStream& t); QString extraTargetsCache; -- cgit v0.12 From 0cafff970c52f982d5acec368b5b5fdab319688d Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 11 Aug 2010 13:46:38 +0200 Subject: Fix typos in docs Reviewed-by: David Boddie --- src/declarative/graphicsitems/qdeclarativerepeater.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativerepeater.cpp b/src/declarative/graphicsitems/qdeclarativerepeater.cpp index 2b268fb..68e7e9a 100644 --- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp +++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp @@ -133,13 +133,13 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate() create items as they are required. Also, note that Repeater is \l {Item}-based, and can only repeat \l {Item}-derived objects. - For example, it cannot be used to repeat QtObjects: + For example, it cannot be used to repeat QObjects: \badcode Item { - //XXX does not work! Can't repeat QtObject as it doesn't derive from Item. + //XXX does not work! Can't repeat QObject as it doesn't derive from Item. Repeater { model: 10 - QtObject {} + QObject {} } } \endcode -- cgit v0.12 From 59f01a1efe818004fdc9265af6a0e9a05c43932a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 5 Aug 2010 18:36:54 +0200 Subject: 64-bit versions of PREMUL, BYTE_MUL and INTERPOLATE_PIXEL_256 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrected and enabled the 64-bit versions of these three functions. Speed improvements (tested on an i7): BYTE_MUL : 104.7% INTERPOLATE_PIXEL_256 : 13.2% PREMUL : 13.1% Reviewed-by: Samuel Rødal --- src/gui/painting/qdrawhelper_p.h | 140 +++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 73 deletions(-) diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h index 1a87127..d04c70d 100644 --- a/src/gui/painting/qdrawhelper_p.h +++ b/src/gui/painting/qdrawhelper_p.h @@ -314,18 +314,61 @@ struct QSpanData void adjustSpanMethods(); }; +#if defined(Q_CC_RVCT) +# pragma push +# pragma arm +#endif +Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_255(uint x, uint a, uint y, uint b) { + uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; + t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8; + t &= 0xff00ff; -Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16(uint x, uint a) { - a += 1; - uint t = (((x & 0x07e0)*a) >> 8) & 0x07e0; - t |= (((x & 0xf81f)*(a>>2)) >> 6) & 0xf81f; - return t; + x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; + x = (x + ((x >> 8) & 0xff00ff) + 0x800080); + x &= 0xff00ff00; + x |= t; + return x; } +#if defined(Q_CC_RVCT) +# pragma pop +#endif -Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16_32(uint x, uint a) { - uint t = (((x & 0xf81f07e0) >> 5)*a) & 0xf81f07e0; - t |= (((x & 0x07e0f81f)*a) >> 5) & 0x07e0f81f; - return t; +#if QT_POINTER_SIZE == 8 // 64-bit versions + +Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) { + quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a; + t += (((quint64(y)) | ((quint64(y)) << 24)) & 0x00ff00ff00ff00ff) * b; + t >>= 8; + t &= 0x00ff00ff00ff00ff; + return (uint(t)) | (uint(t >> 24)); +} + +Q_STATIC_INLINE_FUNCTION uint BYTE_MUL(uint x, uint a) { + quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a; + t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080) >> 8; + t &= 0x00ff00ff00ff00ff; + return (uint(t)) | (uint(t >> 24)); +} + +Q_STATIC_INLINE_FUNCTION uint PREMUL(uint x) { + uint a = x >> 24; + quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a; + t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080) >> 8; + t &= 0x000000ff00ff00ff; + return (uint(t)) | (uint(t >> 24)) | (a << 24); +} + +#else // 32-bit versions + +Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) { + uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; + t >>= 8; + t &= 0xff00ff; + + x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; + x &= 0xff00ff00; + x |= t; + return x; } #if defined(Q_CC_RVCT) @@ -359,6 +402,21 @@ Q_STATIC_INLINE_FUNCTION uint PREMUL(uint x) { x |= t | (a << 24); return x; } +#endif + + +Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16(uint x, uint a) { + a += 1; + uint t = (((x & 0x07e0)*a) >> 8) & 0x07e0; + t |= (((x & 0xf81f)*(a>>2)) >> 6) & 0xf81f; + return t; +} + +Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16_32(uint x, uint a) { + uint t = (((x & 0xf81f07e0) >> 5)*a) & 0xf81f07e0; + t |= (((x & 0x07e0f81f)*a) >> 5) & 0x07e0f81f; + return t; +} #define INV_PREMUL(p) \ (qAlpha(p) == 0 ? 0 : \ @@ -1847,70 +1905,6 @@ inline int qBlue565(quint16 rgb) { return (b << 3) | (b >> 2); } -#if 1 -Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) { - uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; - t >>= 8; - t &= 0xff00ff; - - x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; - x &= 0xff00ff00; - x |= t; - return x; -} - -#if defined(Q_CC_RVCT) -# pragma push -# pragma arm -#endif -Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_255(uint x, uint a, uint y, uint b) { - uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; - t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8; - t &= 0xff00ff; - - x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; - x = (x + ((x >> 8) & 0xff00ff) + 0x800080); - x &= 0xff00ff00; - x |= t; - return x; -} -#if defined(Q_CC_RVCT) -# pragma pop -#endif -#else -// possible implementation for 64 bit -Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) { - ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a; - t += (((ulong(y)) | ((ulong(y)) << 24)) & 0x00ff00ff00ff00ff) * b; - t >>= 8; - t &= 0x00ff00ff00ff00ff; - return (uint(t)) | (uint(t >> 24)); -} - -Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_255(uint x, uint a, uint y, uint b) { - ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a; - t += (((ulong(y)) | ((ulong(y)) << 24)) & 0x00ff00ff00ff00ff) * b; - t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080); - t &= 0x00ff00ff00ff00ff; - return (uint(t)) | (uint(t >> 24)); -} - -Q_STATIC_INLINE_FUNCTION uint BYTE_MUL(uint x, uint a) { - ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a; - t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080); - t &= 0x00ff00ff00ff00ff; - return (uint(t)) | (uint(t >> 24)); -} - -Q_STATIC_INLINE_FUNCTION uint PREMUL(uint x) { - uint a = x >> 24; - ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a; - t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080); - t &= 0x00ff00ff00ff00ff; - return (uint(t)) | (uint(t >> 24)) | 0xff000000; -} -#endif - const uint qt_bayer_matrix[16][16] = { { 0x1, 0xc0, 0x30, 0xf0, 0xc, 0xcc, 0x3c, 0xfc, 0x3, 0xc3, 0x33, 0xf3, 0xf, 0xcf, 0x3f, 0xff}, -- cgit v0.12 From 32a54a21d77310f7bc1f306d175e41040d024a43 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 10 Aug 2010 10:51:06 +0100 Subject: Do not include Spectrum Analyzer demo in static builds This demo includes a 3rd party library which is licensed under the LGPL. As such, the demo application may only link to the library dynamically. Task-number: QTBUG-12713 Reviewed-by: Justin McPherson --- demos/demos.pro | 2 +- demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/demos/demos.pro b/demos/demos.pro index f359bd7..fdc1e4c 100644 --- a/demos/demos.pro +++ b/demos/demos.pro @@ -58,7 +58,7 @@ wince*:SUBDIRS += demos_sqlbrowser contains(QT_CONFIG, phonon):!static:SUBDIRS += demos_mediaplayer contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):!symbian:SUBDIRS += demos_browser contains(QT_CONFIG, declarative):SUBDIRS += demos_declarative -contains(QT_CONFIG, multimedia):SUBDIRS += demos_spectrum +contains(QT_CONFIG, multimedia):!static:SUBDIRS += demos_spectrum # install sources.files = README *.pro diff --git a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h index 48d614e..b8190a9 100644 --- a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h +++ b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h @@ -22,6 +22,10 @@ #include +#ifndef QT_DLL +# error This library is licensed under the LGPL and must be dynamically linked +#endif + #if defined(FFTREAL_LIBRARY) # define FFTREAL_EXPORT Q_DECL_EXPORT #else -- cgit v0.12 From 8adeb2742a701080c7e6568a6aca1f27079e1909 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 10 Aug 2010 10:39:07 +0100 Subject: Added documentation for Spectrum Analyzer demo Task-number: QTBUG-12720 Reviewed-by: David Boddie --- doc/src/demos/spectrum.qdoc | 34 ++++++++++++++++++++++++++++++---- doc/src/getting-started/demos.qdoc | 9 +++++++++ doc/src/images/spectrum-demo.png | Bin 0 -> 21771 bytes 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 doc/src/images/spectrum-demo.png diff --git a/doc/src/demos/spectrum.qdoc b/doc/src/demos/spectrum.qdoc index b720ce1..d5a3f85 100644 --- a/doc/src/demos/spectrum.qdoc +++ b/doc/src/demos/spectrum.qdoc @@ -28,8 +28,34 @@ /*! \example demos/spectrum \title Spectrum Analyzer -This application is a demo which uses the QtMultimedia APIs to capture and -play back PCM audio. While either recording or playback is ongoing, the -application performs real-time level and frequency spectrum analysis, -displaying the results in its main window. + + The Spectrum Analyzer demo shows how the \l{QtMultimedia Module} can be + used in Qt applications to capture and then play back an audio stream. + + \image spectrum-demo.png + + Because QtMultimedia allows the application to access the raw audio + stream, the data can either be inspected or modified by the application. + The Spectrum Analyzer demo displays three pieces of information while + audio is being either captured or played back: + + \list + \o Information about the raw audio stream, shown in the uppermost widget: + \list + \o The amount of data currently in the buffer, shown in blue + \o The segment of data which was most recently analysed to compute + the frequency spectrum, shown in green + \o The raw audio waveform, shown in white and scrolling from right to + left + \endlist + \o A representation of the frequency spectrum, shown at the lower left + \o The current RMS level of the audio stream, and the recent 'high + watermark' level, shown at the lower right + \endlist + + Spectrum analysis is performed by calculating the Fast Fourier Transform + (FFT) of a segment of audio data. An open-source library, + \l{http://ldesoras.free.fr/prod.html}{FFTReal}, against which the + application is dynamically linked, is used to compute the transform. */ + diff --git a/doc/src/getting-started/demos.qdoc b/doc/src/getting-started/demos.qdoc index 94b19c3..4003988 100644 --- a/doc/src/getting-started/demos.qdoc +++ b/doc/src/getting-started/demos.qdoc @@ -147,6 +147,15 @@ \note The Phonon demos are currently not available for the MinGW platform. + \section1 Multimedia + + \list + \o \l{demos/spectrum}{Spectrum Analyzer} demonstrates how the \l{QtMultimedia Module} + can be used to capture and play back an audio stream, at the same time allowing the + application to access the raw audio data. This application analyzes the audio stream + in order to display a frequency spectrum. + \endlist + \section1 Animation \list diff --git a/doc/src/images/spectrum-demo.png b/doc/src/images/spectrum-demo.png new file mode 100644 index 0000000..7f4938f Binary files /dev/null and b/doc/src/images/spectrum-demo.png differ -- cgit v0.12 From a4d19eef86b07d670b8b2a3f9ad6b3448800bae5 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 11 Aug 2010 15:32:28 +0200 Subject: doc: The QML Qt element was missing from the documentation. Either someone removed the QML: prefix, or it was never there. --- doc/src/declarative/elements.qdoc | 1 + src/declarative/qml/qdeclarativeengine.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index c2930b3..c008404 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -114,6 +114,7 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt \row \o \l {Component} \o Encapsulate QML items as a component \row \o \l {Timer} \o Provides timed triggers \row \o \l {QML:QtObject} {QtObject} \o Basic element containing only the objectName property +\row \o \l {QML:Qt} {Qt} \o The QML global Qt object provides useful enums and functions from Qt. \row \o \l {WorkerScript} \o Enables the use of threads in QML \row \o \l {Loader} \o Controls the loading of items or components \row \o \l {Repeater} \o Uses a model to create multiples of components diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 3822373..de79e4d 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -184,11 +184,12 @@ void QDeclarativeEnginePrivate::defineModule() } /*! -\keyword QmlGlobalQtObject -\qmlclass Qt QDeclarativeEnginePrivate +\qmlclass QML:Qt QDeclarativeEnginePrivate \brief The QML global Qt object provides useful enums and functions from Qt. -The \c Qt object provides useful enums and functions from Qt, for use in all QML files. +\keyword QmlGlobalQtObject + +\brief The \c Qt object provides useful enums and functions from Qt, for use in all QML files. The \c Qt object is not a QML element; it cannot be instantiated. It is a global object with enums and functions. To use it, call the members of the global \c Qt object directly. -- cgit v0.12 From 731507feef0024d3ac5c3d2c67ca6ae2b239e706 Mon Sep 17 00:00:00 2001 From: Jure Repinc Date: Wed, 11 Aug 2010 18:33:18 +0200 Subject: Updated Slovenian translations for Qt 4.7 Merge-request: 771 Reviewed-by: Oswald Buddenhagen --- translations/designer_sl.ts | 1557 ++------------ translations/qt_sl.ts | 4931 +++++++++++++++++++++---------------------- 2 files changed, 2652 insertions(+), 3836 deletions(-) diff --git a/translations/designer_sl.ts b/translations/designer_sl.ts index 9399022..8d2a161 100644 --- a/translations/designer_sl.ts +++ b/translations/designer_sl.ts @@ -1,30 +1,32 @@ + 2010-08-05 02:42+0200 + MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator + Lokalize 1.1 + Slovenian <lugos-slo@lugos.si> + + # Jure Repinc <jlp@holodeck1.com>, 2010. + Jure Repinc <jlp@holodeck1.com> AbstractFindWidget - &Previous &Predhodni - &Next &Naslednji - &Case sensitive O&bčutljiv na velikost črk - Whole &words &Cele besede - <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/shared/images/wrap.png">&nbsp;Iskanje se nadaljuje na drugem koncu @@ -32,17 +34,14 @@ AddLinkDialog - Insert Link Vstavi povezavo - Title: Besedilo: - URL: URL: @@ -50,7 +49,6 @@ AppFontDialog - Additional Fonts Dodatne pisave @@ -58,37 +56,30 @@ AppFontManager - '%1' is not a file. »%1« ni datoteka. - The font file '%1' does not have read permissions. Datoteka s pisavo »%1« nima dovoljenj za branje. - The font file '%1' is already loaded. Datoteka s pisavo »%1« je že naložena. - The font file '%1' could not be loaded. Datoteke s pisavo »%1« ni bilo moč naložiti. - '%1' is not a valid font id. »%1« ni veljaven ID za pisavo. - There is no loaded font matching the id '%1'. Ni naložene pisave, ki bi se ujemala z ID-jem »%1«. - The font '%1' (%2) could not be unloaded. Pisave »%1« (%2) ni bilo moč odstraniti. @@ -96,52 +87,42 @@ AppFontWidget - Fonts Pisave - Add font files Dodaj datoteke s pisavami - Remove current font file Odstrani trenutno datoteko s pisavo - Remove all font files Odstrani vse datoteke s pisavami - Add Font Files Dodaj datoteke s pisavami - Font files (*.ttf) Datoteke s pisavami (*.ttf) - Error Adding Fonts Napaka pri dodajanju pisav - Error Removing Fonts Napaka pri odstranjevanju pisav - Remove Fonts Odstrani pisave - Would you like to remove all fonts? Ali želite odstraniti vse pisave? @@ -149,12 +130,10 @@ AppearanceOptionsWidget - Form Obrazec - User Interface Mode Način uporabniškega vmesnika @@ -162,17 +141,14 @@ AssistantClient - Unable to send request: Assistant is not responding. Ni moč poslati zahtevka: pomočnik se ne odziva. - The binary '%1' does not exist. Program »%1« ne obstaja. - Unable to launch assistant (%1). Ni moč zaganti pomočnika (%1). @@ -180,92 +156,74 @@ BrushPropertyManager - No brush Brez čopiča - Solid Enobarven - Dense 1 Gost 1 - Dense 2 Gost 2 - Dense 3 Gost 3 - Dense 4 Gost 4 - Dense 5 Gost 5 - Dense 6 Gost 6 - Dense 7 Gost 7 - Horizontal Vodoraven - Vertical Navpičen - Cross Križ - Backward diagonal Poševen nazaj - Forward diagonal Poševen naprej - Crossing diagonal Poševen prekrižan - Style Slog - Color Barva - [%1, %2] [%1, %2] @@ -273,360 +231,280 @@ Command - - Change signal Spremeni signal - - Change slot Spremeni režo - Change signal-slot connection Spremeni povezavo signal-reža - Change sender Spremeni pošiljatelja - Change receiver Spremeni prejemnika - Add connection Dodaj povezavo - Adjust connection Prilagodi povezavo - Delete connections Zbriši povezave - Change source Spremeni izvor - Change target Spremeni cilj - Insert '%1' Vstavi »%1« - Raise '%1' Dvigni »%1« - Lower '%1' Spusti »%1« - Delete '%1' Zbriši »%1« - Reparent '%1' Spremeni starša od »%1« - Promote to custom widget Povišaj v gradnik po meri - Demote from custom widget Ponižaj iz gradnika po meri - Lay out using grid Razporedi z uporabo mreže - Lay out vertically Razporedi navpično - Lay out horizontally Razporedi vodoravno - Break layout Razbij razporeditev - - - Move Page Premakni stran - - - - Delete Page Zbriši stran - - Page Stran - page stran - - - - Insert Page Vstavi stran - Change Tab order Spremeni vrstni red tabulatorke - Create Menu Bar Ustvari menijsko vrstico - Delete Menu Bar Zbriši menijsko vrstico - Create Status Bar Ustvari vrstico stanja - Delete Status Bar Zbriši vrstico stanja - Add Tool Bar Dodaj orodjarno - Add Dock Window Dodaj podokno - Adjust Size of '%1' Prilagodi velikost za »%1« - Change Form Layout Item Geometry Spremeni geometrijo razporeditve na obrazcu - Change Layout Item Geometry Spremeni geometrijo razporeda - Change Table Contents Spremeni vsebino tabele - Change Tree Contents Spremeni vsebino drevesa - - Add action Dodaj dejanje - - Remove action Odstrani dejanje - Add menu Dodaj meni - Remove menu Odstrani meni - Create submenu Ustvari podmeni - Delete Tool Bar Zbriši orodjarno - Set action text Nastavi besedilo dejanja - Insert action Vstavi dejanje - - Move action Premakni dejanje - Change Title Spremeni naslov - Insert Menu Vstavi meni - Change signals/slots Spremeni signale/reže - Delete Subwindow Zbriši podokno - Insert Subwindow Vstavi podokno - subwindow podokno - Subwindow Podokno - Change Z-order of '%1' Spremeni vrstni red v smeri Z od »%1« - Simplify Grid Layout Poenostavi razporeditev v mrežo - Create button group Ustvari skupino gumbov - Break button group Razbij skupino gumbov - Break button group '%1' Razbij skupino gumbov »%1« - Add buttons to group Dodaj gumbe v skupino - - Add '%1' to '%2' - Command description for adding buttons to a QButtonGroup + Command description for adding buttons to a QButtonGroup + Dodaj »%1« v »%2« - Remove buttons from group Odstrani gumbe iz te skupine - Remove '%1' from '%2' - Command description for removing buttons from a QButtonGroup + Command description for removing buttons from a QButtonGroup + Odstrani »%1« iz »%2« - Morph %1/'%2' into %3 - MorphWidgetCommand description + MorphWidgetCommand description + Pretvori %1/»%2« v %3 - Change layout of '%1' from %2 to %3 Spremeni razpored od »%1« iz %2 v %3 - Change script Spremeni skript - Changed '%1' of '%2' Spremenil »%1« od »%2« - Changed '%1' of %n objects Spremenil »%1« od %n objekta @@ -636,12 +514,10 @@ - Reset '%1' of '%2' Ponastavi »%1« od »%2« - Reset '%1' of %n objects Ponastavi »%1« od %n objekta @@ -651,12 +527,10 @@ - Add dynamic property '%1' to '%2' Dodaj dinamično lastnost »%1« k »%2« - Add dynamic property '%1' to %n objects Dodaj dinamično lastnost »%1« k %n objektu @@ -666,12 +540,10 @@ - Remove dynamic property '%1' from '%2' Odstrani dinamično lastnost »%1« od »%2« - Remove dynamic property '%1' from %n objects Odstrani dinamično lastnost »%1« od %n objekta @@ -684,22 +556,18 @@ ConnectDialog - Configure Connection Nastavi povezavo - GroupBox Skupina - Edit... Urejanje ... - Show signals and slots inherited from QWidget Prikaži signale in reže podedovane od QWidget @@ -707,17 +575,14 @@ ConnectionDelegate - <object> <objekt> - <signal> <signal> - <slot> <reža> @@ -725,110 +590,93 @@ DPI_Chooser - Standard (96 x 96) - Embedded device standard screen resolution + Embedded device standard screen resolution + Običajna (96 × 96) - Greenphone (179 x 185) - Embedded device screen resolution + Embedded device screen resolution + Greenphone (179 × 185) - High (192 x 192) - Embedded device high definition screen resolution + Embedded device high definition screen resolution + Visoka (192 × 192) Designer - Qt Designer Qt Designer - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. Ta datoteka vsebuje praznine, ki so na vrhu.<br><b>Niso</b> bile shranjene v ta obrazec. - Perhaps you forgot to create a layout? Morda ste pozabili ustvariti razpored? - Invalid UI file: The root element <ui> is missing. Neveljavna datoteka UI: manjka vrhnji element <ui>. - An error has occurred while reading the UI file at line %1, column %2: %3 Prišlo je do napake med branjem datoteke UI v vrstici %1, stolpcu %2: %3 - This file cannot be read because it was created using %1. Te datoteke ni moč prebrati, ker je bila ustvarjena z %1. - This file was created using Designer from Qt-%1 and cannot be read. Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in je ni moč prebrati. - This file cannot be read because the extra info extension failed to load. Te datoteke ni moč prebrati, ker je spodletelo nalaganje razširitve za dodatne podatke. - The converted file could not be read. Pretvorjene datoteke ni bilo moč prebrati. - This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in bo pretvorjena v novo obliko. - The old form has not been touched, but you will have to save the form under a new name. Stara oblika ni bila spremenjena, vendar boste novo obliko morali shraniti pod novim imenom. - This file was created using Designer from Qt-%1 and could not be read: %2 Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in je ni bilo moč prebrati: %2 - Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. Poženite jo skozi <b>uic3&nbsp;-convert</b> in jo tako pretvorite v zapis UI za Qt 4. - Custom Widgets Gradniki po meri - Promoted Widgets Povišani gradniki - Unable to launch %1. Ni moč zagnati %1. - %1 timed out. Čas za %1 je potekel. @@ -836,12 +684,10 @@ DesignerMetaEnum - %1 is not a valid enumeration value of '%2'. %1 ni veljavna vrednost številčenja od »%2«. - '%1' could not be converted to an enumeration value of type '%2'. »%1« ne more biti pretvorjeno v vrednost številčenja vrste »%2«. @@ -849,7 +695,6 @@ DesignerMetaFlags - '%1' could not be converted to a flag value of type '%2'. »%1« ne more biti pretvorjeno v vrednost zastavice vrste »%2«. @@ -857,13 +702,12 @@ DeviceProfile - '%1' is not a number. - Reading a number for an embedded device profile + Reading a number for an embedded device profile + »%1« ni številka. - An invalid tag <%1> was encountered. Dosežena je bila neveljavna oznaka <%1>. @@ -871,27 +715,22 @@ DeviceProfileDialog - &Family &Družina - &Point Size &Velikost točke - Style Slog - Device DPI Ločljivost (točk/palec) - Name Ime @@ -899,57 +738,46 @@ DeviceSkin - The image file '%1' could not be loaded. Slikovne datoteke »%1« ni bilo moč naložiti. - The skin directory '%1' does not contain a configuration file. Mapa s temo »%1« ne vsebuje nastavitvene datoteke. - The skin configuration file '%1' could not be opened. Nastavitvene datoteke za temo »%1« ni bilo moč odpreti. - Syntax error: %1 Skladenjska napaka: %1 - The skin cursor image file '%1' does not exist. Slikovna datoteka s kazalcem za temo »%1« ne obstaja. - Syntax error in area definition: %1 Skladenjska napaka pri določitvi območja: %1 - Mismatch in number of areas, expected %1, got %2. Neujemanje v številu območij, pričakovano %1, dobljeno %2. - The skin configuration file '%1' could not be read: %2 Nastavitvene datoteke za temo »%1« ni bilo moč prebrati: %2 - The skin "up" image file '%1' does not exist. Datoteka slike »up« teme »%1« ne obstaja. - The skin "down" image file '%1' does not exist. Datoteka slike »down« teme »%1« ne obstaja. - The skin "closed" image file '%1' does not exist. Datoteka slike »closed« teme »%1« ne obstaja. @@ -957,51 +785,46 @@ EmbeddedOptionsControl - <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> - Format embedded device profile description + Format embedded device profile description + <html><table><tr><td><b>Pisava</b></td><td>%1, %2</td></tr><tr><td><b>Slog</b></td><td>%3</td></tr><tr><td><b>Ločljivost</b></td><td>%4 × %5</td></tr></table></html> EmbeddedOptionsPage - Embedded Design - Tab in preferences dialog + Tab in preferences dialog + Vgrajena zasnova - Device Profiles - EmbeddedOptionsControl group box" + EmbeddedOptionsControl group box" + Profili naprav FontPanel - Font Pisava - &Writing system S&istem pisanja - &Family &Družina - &Style &Slog - &Point size &Velikost točke @@ -1009,22 +832,18 @@ FontPropertyManager - PreferDefault Prednost ima privzeto - NoAntialias Brez glajenja robov - PreferAntialias Prednost ima glajenje robov - Antialiasing Glajenje robov @@ -1032,43 +851,47 @@ FormBuilder - Invalid stretch value for '%1': '%2' - Parsing layout stretch values + Parsing layout stretch values +---------- +Parsing layout stretch values +---------- +Parsing layout stretch values + Neveljavna vrednost razširjanja za »%1«: »%2« - Invalid minimum size for '%1': '%2' - Parsing grid layout minimum size values + Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values + Neveljavna najmanjša velikost za »%1«: »%2« FormEditorOptionsPage - %1 % %1 % - Preview Zoom Povečava ogleda - Default Zoom Privzeta povečava - Forms - Tab in preferences dialog + Tab in preferences dialog + Obrazci - Default Grid Privzeta mreža @@ -1076,37 +899,30 @@ FormLayoutRowDialog - Add Form Layout Row Dodaj vrstico razporeditve na obrazcu - &Label text: &Besedilo oznake: - Field &type: &Vrsta polja: - &Field name: &Ime polja: - &Buddy: &Kolega: - &Row: &Vrstica: - Label &name: &Ime oznake: @@ -1114,12 +930,10 @@ FormWindow - Unexpected element <%1> Nepričakovan element <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Napaka pri lepljenju vsebine odložišča v vrstici %1, stolpcu %2: %3 @@ -1127,62 +941,50 @@ FormWindowSettings - Form Settings Nastavitve obrazca - Layout &Default &Privzeto za razpored - &Spacing: &Razmik: - &Margin: &Rob: - &Layout Function &Funkcija za razpored - Ma&rgin: R&ob: - Spa&cing: R&azmik: - Embedded Design Vgrajena zasnova - &Author &Avtor - &Include Hints Namigi za &vključevanje - &Pixmap Function F&unkcija za sličico - Grid Mreža @@ -1190,7 +992,6 @@ IconSelector - All Pixmaps ( Vse sličice ( @@ -1198,42 +999,37 @@ ItemPropertyBrowser - XX Icon Selected off - Sample string to determinate the width for the first column of the list item property browser + Sample string to determinate the width for the first column of the list item property browser + XX Ikona Izbrano izklopljeno MainWindowBase - Main - Not currently used (main tool bar) + Not currently used (main tool bar) + Glavna - File Datoteka - Edit Urejanje - Tools Orodja - Form Obrazec - Qt Designer Qt Designer @@ -1241,52 +1037,42 @@ NewForm - C&reate &Ustvari - Recent Nedavno - &Close &Zapri - &Open... &Odpri ... - &Recent Forms &Nedavni obrazci - Read error Napaka pri branju - New Form Nov obrazec - Show this Dialog on Startup Prikaži to pogovorno okno ob zagonu - A temporary form file could not be created in %1. Začasne datoteke obrazca v %1 ni bilo moč ustvariti. - The temporary form file %1 could not be written. V začasno datoteko obrazca %1 ni bilo moč pisati. @@ -1294,22 +1080,18 @@ ObjectInspectorModel - Object Objekt - Class Razred - separator ločitelj - <noname> <neimenovano> @@ -1317,12 +1099,10 @@ ObjectNameDialog - Change Object Name Spremeni ime objekta - Object Name Ime objekta @@ -1330,12 +1110,10 @@ PluginDialog - Plugin Information Podatki o vstavkih - 1 1 @@ -1343,7 +1121,6 @@ PreferencesDialog - Preferences Nastavitve @@ -1351,32 +1128,26 @@ PreviewConfigurationWidget - Form Obrazec - Print/Preview Configuration Nastavitev tiskanja/ogleda - Style Slog - Style sheet Slogovna predloga - ... ... - Device skin Tema naprave @@ -1384,17 +1155,15 @@ PromotionModel - Not used - Usage of promoted widgets + Usage of promoted widgets + Ni uporabljeno Q3WizardContainer - - Page Stran @@ -1402,59 +1171,48 @@ QAbstractFormBuilder - Unexpected element <%1> Nepričakovan element <%1> - An error has occurred while reading the UI file at line %1, column %2: %3 Prišlo je do napake med branjem datoteke UI v vrstici %1, stolpcu %2: %3 - Invalid UI file: The root element <ui> is missing. Neveljavna datoteka UI: manjka vrhnji element <ui>. - The creation of a widget of the class '%1' failed. Ustvarjanje gradnika razreda »%1« ni uspelo. - Attempt to add child that is not of class QWizardPage to QWizard. Poskus dodajanja podgradnika, ki ni razreda QWizardPage ali QWizard. - 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. Poskus dodajanja razporeda gradniku »%1« (%2), ki že ima razpored ne-okvirne vrste %3. To nakazuje na neskladnost v datoteki *.ui. - Empty widget item in %1 '%2'. Prazna postavka gradnika v %1 »%2«. - Flags property are not supported yet. Lastnosti z zastavicami še niso podprte. - While applying tab stops: The widget '%1' could not be found. Med uveljavljanjem postankov tabulatorke: gradnika »%1« ni bilo moč najti. - Invalid QButtonGroup reference '%1' referenced by '%2'. Neveljavna referenca »%1« na QButtonGroup od »%2«. - This version of the uitools library is linked without script support. Ta različica knjižnice uitools nima podpore za skripte. @@ -1462,12 +1220,10 @@ To nakazuje na neskladnost v datoteki *.ui. QAxWidgetPlugin - ActiveX control Kontrolnik ActiveX - ActiveX control widget Gradnik kontrolnika ActiveX @@ -1475,22 +1231,18 @@ To nakazuje na neskladnost v datoteki *.ui. QAxWidgetTaskMenu - Set Control Nastavi kontrolnik - Reset Control Ponastavi kontrolnik - Licensed Control Licenciran kontrolnik - The control requires a design-time license Kontrolnik potrebuje licenco za čas snovanja @@ -1498,67 +1250,54 @@ To nakazuje na neskladnost v datoteki *.ui. QCoreApplication - %1 is not a promoted class. %1 ni povišan razred. - The base class %1 is invalid. Osnovni razred %1 ni veljaven. - The class %1 already exists. Razred %1 že obstaja. - Promoted Widgets Povišani gradniki - The class %1 cannot be removed Razreda %1 ni moč odstraniti - The class %1 cannot be removed because it is still referenced. Razreda %1 ni moč odstraniti, ker se nanj še vedno nanašajo reference. - The class %1 cannot be renamed Razreda %1 ni moč preimenovati - The class %1 cannot be renamed to an empty name. Razreda %1 ni moč preimenovati s praznim imenom. - There is already a class named %1. Razred z imenom %1 že obstaja. - Cannot set an empty include file. Ni moč nastaviti prazne vključene datoteke. - Exception at line %1: %2 Izjema v vrstici %1: %2 - Unknown error Neznana napaka - An error occurred while running the script for %1: %2 Script: %3 Prišlo je do napake pri zaganjanju skripta za %1: %2 @@ -1568,17 +1307,14 @@ Skript: %3 QDesigner - %1 - warning %1 - opozorilo - Qt Designer Qt Designer - This application cannot be used for the Console edition of Qt Programa ni moč uporabiti za konzolno izdajo Qt @@ -1586,186 +1322,146 @@ Skript: %3 QDesignerActions - Edit Widgets Urejanje gradnikov - &Quit Konča&j - &Minimize Po&manjšaj - Bring All to Front Prinesi vse v ospredje - Preferences... Nastavitve ... - Clear &Menu Počisti &meni - CTRL+SHIFT+S CTRL+SHIFT+S - CTRL+R CTRL+R - CTRL+M CTRL+M - Qt Designer &Help P&riročnik za Qt Designer - Current Widget Help Pomoč za trenutni gradnik - What's New in Qt Designer? Kaj je novega v Qt Designerju? - About Plugins O vstavkih - - About Qt Designer O Qt Designer - About Qt O Qt - - Open Form Odpri obrazec - - - Designer UI files (*.%1);;All Files (*) Designerjeve datoteke UI (*.%1);;Vse datoteke (*) - %1 already exists. Do you want to replace it? %1 že obstaja. Ali jo želite nadomestiti? - Saved %1. Shranil %1. - Additional Fonts... Dodatne pisave ... - &Recent Forms N&edavni obrazci - Designer Qt Designer - Feature not implemented yet! Zmožnost še ni izdelana. - Read error Napaka pri branju - %1 Do you want to update the file location or generate a new form? %1 Ali želite posodobiti lokacijo datoteke ali ustvariti nov obrazec? - &Update &Posodobi - &New Form &Nov obrazec - - Save Form? Shranim obrazec? - Could not open file Ni bilo moč odpreti datoteke - Select New File Izberite novo datoteko - Could not write file Ni bilo moč zapisati datoteke - &Close Preview &Zapri ogled - Save &Image... S&hrani sliko ... - &Print... &Natisni ... - The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? @@ -1774,7 +1470,6 @@ Razlog: %2 Ali žalite poskusiti znova ali izbrati drugo datoteko? - It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? @@ -1783,117 +1478,90 @@ Razlog: %2 Ali želite poskusiti znova? - - The backup file %1 could not be written. Varnostne kopije datoteke %1 ni bilo moč zapisati. - The backup directory %1 could not be created. Mape %1 za varnostne kopije ni bilo moč ustvariti. - The temporary backup directory %1 could not be created. Začasne mape %1 za varnostne kopije ni bilo moč ustvariti. - Image files (*.%1) Slikovne datoteke (*.%1) - - Save Image Shrani sliko - The file %1 could not be written. Datoteke %1 ni bilo moč zapisati. - &New... &Nova ... - &Open... &Odpri ... - &Save &Shrani - Save &As... Shrani &kot ... - Save A&ll Shrani &vse - Save As &Template... Shrani kot &predlogo ... - - &Close &Zapri - View &Code... Prikaži &kodo ... - - Save Form As Shrani obrazec kot - Preview failed Ogled ni uspel - Code generation failed Ustvarjanje kode ni uspelo - - Assistant Pomočnik - Saved image %1. Shranil sliko %1. - Please close all forms to enable the loading of additional fonts. Da bi omogočili nalaganje dodatnih pisav zaprite vse obrazce. - Printed %1. Natisnil %1. - ALT+CTRL+S ALT+CTRL+S @@ -1901,26 +1569,23 @@ Ali želite poskusiti znova? QDesignerAppearanceOptionsPage - Appearance - Tab in preferences dialog + Tab in preferences dialog + Videz QDesignerAppearanceOptionsWidget - Docked Window Zasidrana okna - Multiple Top-Level Windows Več ločenih oken - Toolwindow Font Pisava oken z orodji @@ -1928,22 +1593,18 @@ Ali želite poskusiti znova? QDesignerAxWidget - Reset control Ponastavi kontrolnik - Set control Nastavi kontrolnik - Control loaded Kontrolnik je naložen - A COM exception occurred when executing a meta call of type %1, index %2 of "%3". med izvajanjem meta-klica vrste %1 je prišlo do izjeme COM, indeks %2 od »%3«. @@ -1951,17 +1612,14 @@ Ali želite poskusiti znova? QDesignerFormBuilder - Script errors occurred: Prišlo je do napak v skriptu: - The preview failed to build. Grajenje ogleda ni uspelo. - Designer Qt Designer @@ -1969,22 +1627,18 @@ Ali želite poskusiti znova? QDesignerFormWindow - %1 - %2[*] %1 - %2[*] - Save Form? Shranim obrazec? - Do you want to save the changes to this document before closing? Ali želite pred zaprtjem shraniti spremembe v tem dokumentu? - If you don't save, your changes will be lost. Če ne shranite, bodo spremembe izgubljene. @@ -1992,38 +1646,30 @@ Ali želite poskusiti znova? QDesignerMenu - Type Here Pišite sem - Add Separator Dodaj ločnico - Insert separator Vstavi ločnico - Remove separator Odstrani ločnico - Remove action '%1' Odstrani dejanje »%1« - - Add separator Dodaj ločnico - Insert action Vstavi dejanje @@ -2031,22 +1677,18 @@ Ali želite poskusiti znova? QDesignerMenuBar - Type Here Pišite sem - Remove Menu '%1' Odstrani meni »%1« - Remove Menu Bar Odstrani menijsko vrstico - Menu Meni @@ -2054,37 +1696,30 @@ Ali želite poskusiti znova? QDesignerPluginManager - An XML error was encountered when parsing the XML of the custom widget %1: %2 Med razčlenjevanjem datoteke XML gradnika po meri %1 je prišlo do napake XML: %2 - A required attribute ('%1') is missing. Manjka obvezna lastnost (»%1«). - An invalid property specification ('%1') was encountered. Supported types: %2 Dosežena je bila neveljavna specifikacija lastnosti (»%1«). Podprte vrste: %2 - '%1' is not a valid string property specification. »%1« ni veljavna specifikacija lastnosti z nizom. - The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. XML gradnika po meri »%1« ne vsebuje niti elementa <widget> niti <ui>. - The class attribute for the class %1 is missing. Manjka razredna lastnost za razred %1. - The class attribute for the class %1 does not match the class name %2. Razredna lastnost za razred %1 se ne ujema z razredovim imenom %2. @@ -2092,7 +1727,6 @@ Ali želite poskusiti znova? QDesignerPropertySheet - Dynamic Properties Dinamične lastnosti @@ -2100,45 +1734,41 @@ Ali želite poskusiti znova? QDesignerResource - The layout type '%1' is not supported, defaulting to grid. Vrsta razpored »%1« ni podprta, preklapljam na mrežo. - 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. Ko je bila povprašana po strani št. %5, je razširitev vsebnika gradnika »%1« (%2) vrnila gradnik, s katerim ne upravlja Qt Designer »%3« (%4). Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml() gradnika po meri. - Unexpected element <%1> - Parsing clipboard contents + Parsing clipboard contents + Nepričakovan element <%1> - Error while pasting clipboard contents at line %1, column %2: %3 - Parsing clipboard contents + Parsing clipboard contents + Napaka pri lepljenju vsebine odložišča v vrstici %1, stolpcu %2: %3 - Error while pasting clipboard contents: The root element <ui> is missing. - Parsing clipboard contents + Parsing clipboard contents + Napaka pri lepljenju vsebine odložišča: manjka vrhnji element <ui>. QDesignerSharedSettings - The template path %1 could not be created. Poti %1 za predlogo ni bilo moč ustvariti. - An error has been encountered while parsing device profile XML: %1 Med razčlenjevanjem XML-a profila naprave je prišlo do napake: %1 @@ -2146,32 +1776,26 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QDesignerToolWindow - Property Editor Urejevalnik lastnosti - Action Editor Urejevalnik dejanj - Object Inspector Preiskovalnik objektov - Resource Browser Brskalnik po virih - Signal/Slot Editor Urejevalnik signalov/rež - Widget Box Podokno z gradniki @@ -2179,97 +1803,78 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QDesignerWorkbench - &File &Datoteka - F&orm &Obrazec - Preview in Ogled v - &Window O&kno - &Help &Pomoč - Edit Urejanje - Toolbars Orodjarne - Save Forms? Shranim obrazce? - &View &Videz - &Settings &Nastavitve - Widget Box Podokno z gradniki - If you do not review your documents, all your changes will be lost. Če ne pregledate svojih dokumentov, bodo vse spremembe izgubljene. - Discard Changes Zavrzi spremembe - Review Changes Pregled sprememb - Backup Information Podatki o varnostnih kopijah - The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? Zadnja seja Qt Designerja ni bila končana pravilno. Na disku so ostale varnostne kopije datotek. Ali jih želite naložiti? - The file <b>%1</b> could not be opened. Datoteke <b>%1</b> ni bilo moč odpreti. - The file <b>%1</b> is not a valid Designer UI file. Datoteka <b>%1</b> ni veljavna Designerjeva datoteka UI. - There are %n forms with unsaved changes. Do you want to review these changes before quitting? Odprt je %n obrazec z neshranjenimi spremembami. Ali želite pred zaprtjem pregledati te spremembe? @@ -2282,92 +1887,87 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QFormBuilder - An empty class name was passed on to %1 (object name: '%2'). - Empty class name passed to widget factory method + Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method + Prazno ime razreda je bilo posredovano do %1 (ime objekta: »%2«). - QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. QFormBuilder ni mogel ustvariti gradnika po meri razreda »%1«; uporabljen je bil osnovni razred »%2«. - QFormBuilder was unable to create a widget of the class '%1'. QFormBuilder ni mogel ustvariti gradnika razreda »%1«. - The layout type `%1' is not supported. Vrsta razporeda »%1« ni podprta. - The set-type property %1 could not be read. Lastnosti %1 z vrsto množice ni bilo moč prebrati. - The enumeration-type property %1 could not be read. Lastnosti %1 z vrsto naštevanja ni bilo moč prebrati. - Reading properties of the type %1 is not supported yet. Branje lastnosti vrste %1 še ni podprto. - The property %1 could not be written. The type %2 is not supported yet. Lastnosti %1 ni bilo moč zapisati. Vrsta %2 še ni podprta. + + The enumeration-value '%1' is invalid. The default value '%2' will be used instead. + Vrednost oštevilčenja »%1« ni veljavna. Namesto nje bo uporabljena privzeta vrednost »%2«. + + + The flag-value '%1' is invalid. Zero will be used instead. + Vrednost zastavice »%1« ni veljavna. Namesto nje bo uporabljena ničla. + QStackedWidgetEventFilter - Previous Page Predhodna stran - Next Page Naslednja stran - Delete Zbriši - Before Current Page Pred trenutno stran - After Current Page Za trenutno stran - Change Page Order... Spremeni vrstni red strani ... - Change Page Order Spremeni vrstni red strani - Page %1 of %2 Stran %1 od %2 - - Insert Page Vstavi stran @@ -2375,12 +1975,10 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QStackedWidgetPreviewEventFilter - Go to previous page of %1 '%2' (%3/%4). Pojdi na predhodno stran od %1 »%2« (%3/%4). - Go to next page of %1 '%2' (%3/%4). Pojdi na naslednjo stran od %1 »%2« (%3/%4). @@ -2388,28 +1986,22 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QTabWidgetEventFilter - Delete Zbriši - Before Current Page Pred trenutno stran - After Current Page Za trenutno stran - Page %1 of %2 Stran %1 od %2 - - Insert Page Vstavi stran @@ -2417,37 +2009,30 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QToolBoxHelper - Delete Page Zbriši stran - Before Current Page Pred trenutno stran - After Current Page Za trenutno stran - Change Page Order... Spremeni vrsti red strani ... - Change Page Order Spremeni vrstni red strani - Page %1 of %2 Stran %1 od %2 - Insert Page Vstavi stran @@ -2455,15 +2040,10 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtBoolEdit - - - True Pravilno - - False Napačno @@ -2471,12 +2051,10 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtBoolPropertyManager - True Pravilno - False Napačno @@ -2484,7 +2062,6 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtCharEdit - Clear Char Počisti znak @@ -2492,7 +2069,6 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtColorEditWidget - ... ... @@ -2500,22 +2076,18 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtColorPropertyManager - Red Rdeča - Green Zelena - Blue Modra - Alpha Alfa @@ -2523,97 +2095,78 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtCursorDatabase - Arrow Puščica - Up Arrow Puščica navzgor - Cross Križec - Wait Čakanje - IBeam Črtica | - Size Vertical Velikost navpično - Size Horizontal Velikost vodoravno - Size Backslash Velikost poševno nazaj - Size Slash Velikost poševno - Size All Velikost v vse smeri - Blank Prazno - Split Vertical Razdelitev navpično - Split Horizontal Razdelitev vodoravno - Pointing Hand Roka, ki kaže - Forbidden Prepovedano - Open Hand Odprta dlan - Closed Hand Zaprta dlan - What's This Kaj je to - Busy Zasedeno @@ -2621,12 +2174,10 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtFontEditWidget - ... ... - Select Font Izberite pisavo @@ -2634,37 +2185,30 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtFontPropertyManager - Family Družina - Point Size Velikost točke - Bold Polkrepko - Italic Ležeče - Underline Podčrtano - Strikeout Prečrtano - Kerning Spodsekavanje @@ -2672,7 +2216,6 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtGradientDialog - Edit Gradient Uredi preliv @@ -2680,304 +2223,242 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtGradientEditor - Start X Začetni X - Start Y Začetni Y - Final X Končni X - Final Y Končni Y - - Central X Središčni X - - Central Y Središčni Y - Focal X Žariščni X - Focal Y Žariščni Y - Radius Polmer - Angle Kot - Linear Linearen - Radial Radialen - Conical Stožčast - Pad Zapolni - Repeat Ponovi - Reflect Odbij - Form Obrazec - Gradient Editor Urejevalnik preliva - 1 1 - 2 2 - 3 3 - 4 4 - 5 5 - Gradient Stops Editor Urejevalnik postankov preliva - 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. To območje vam omogoča urejanje postankov preliva. Da podvojite obstoječo ročko postanka dvokliknite nanjo. Za ustvaritev novega postanka dvokliknite izven obstoječih ročic postankov. Da spremenite položaj postanka povlecite in spustite njegovo ročko. Če kliknete z desnim gumbom miške, se bo pojavil priročni meni z dodatnimi dejanji. - Zoom Povečava - Position Položaj - Hue Odtenek - H H - Saturation Zasičenost - S S - Sat Zas. - Value Vrednost - V V - Val Vre. - Alpha Alfa - A A - Type Vrsta - Spread Razširitev - Color Barva - Current stop's color Barva trenutnega postanka - HSV HSV - RGB RGB - Current stop's position Položaj trenutnega postanka - % % - Zoom In Povečaj - Zoom Out Zmanjšaj - Toggle details extension Preklopi prikaz podrobnosti - > > - Linear Type Linearna vrsta - ... ... - Radial Type Radialna vrsta - Conical Type Stožčasta vrsta - Pad Spread Razširitev z zapolnitvijo - Repeat Spread Razširitev s ponovitvijo - Reflect Spread Razširitev z odbojem - 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. To območje prikazuje ogled urejevanega preliva. Omogoča vam tudi urejanje parametrov, ki so specifični za vrsto preliva, na primer začetna in končna točka, polmer in podobno. Za to uporabite vlečenje in spuščanje. - Show HSV specification Prikaži specifikacijo HSV - Show RGB specification Prikaži specifikacijo RGB - Reset Zoom Ponastavi povečavo @@ -2985,37 +2466,30 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtGradientStopsWidget - New Stop Nov postanek - Delete Zbriši - Flip All Obrni vse - Select All Izberi vse - Zoom In Povečaj - Zoom Out Zmanjšaj - Reset Zoom Ponastavi povečavo @@ -3023,46 +2497,34 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtGradientView - Grad Preliv - Remove Gradient Odstrani preliv - Are you sure you want to remove the selected gradient? Ali res želite odstraniti izbrani preliv? - - New... Nov ... - - Edit... Urejanje ... - - Rename Preimenuj - - Remove Odstrani - Gradient View Prikaz preliva @@ -3070,7 +2532,6 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtGradientViewDialog - Select Gradient Izberite preliv @@ -3078,7 +2539,6 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtKeySequenceEdit - Clear Shortcut Počisti bližnjico @@ -3086,17 +2546,14 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtLocalePropertyManager - %1, %2 %1, %2 - Language Jezik - Country Država @@ -3104,17 +2561,14 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtPointFPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3122,17 +2576,14 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtPointPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3140,12 +2591,10 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtPropertyBrowserUtils - [%1, %2, %3] (%4) [%1, %2, %3] (%4) - [%1, %2] [%1, %2] @@ -3153,27 +2602,22 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtRectFPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 × %4] - X X - Y Y - Width Širina - Height Višina @@ -3181,27 +2625,22 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtRectPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 × %4] - X X - Y Y - Width Širina - Height Višina @@ -3209,128 +2648,98 @@ Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml( QtResourceEditorDialog - %1 already exists. Do you want to replace it? %1 že obstaja. Ali jo želite nadomestiti? - The file does not appear to be a resource file; element '%1' was found where '%2' was expected. Kot kaže datoteka ni datoteka z viri. Najden je bil element »%1«, pričakovan pa element »%2«. - %1 [read-only] %1 [samo za branje] - - %1 [missing] %1 [manjka] - <no prefix> <brez predpone> - - New Resource File Nova datoteka z viri - - Resource files (*.qrc) Datoteke z viri (*.qrc) - Import Resource File Uvozi datoteko z viri - newPrefix novaPredpona - Add Files Dodaj datoteke - Incorrect Path Nepravilna pot - - - - Copy Skopiraj - Copy As... Skopiraj kot ... - Keep Obdrži - Skip Preskoči - Clone Prefix Kloniraj predpono - 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". Vnesite pripono, ki jo želite dodati imenom kloniranih datotek. To bi, na primer, lahko bila pripona jezika kot je »_sl«. - - Copy As Skopiraj kot - <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> <p>Izbrana datoteka:</p><p>%1</p><p>je izven mape trenutne datoteke z viri:</p><p>%2</p><p>Izberite drugo pot znotraj te mape.<p> - Could not overwrite %1. Ni bilo moč nadomestiti %1. - <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> <p><b>Opozorilo:</b> Datoteka</p><p>%1</p><p>je izven matične mape trenutne datoteke z viri.</p> - <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> <p>Da razrešite težavo, kliknite:</p><table><tr><th align="left">Skopiraj</th><td>da skopirate datoteko v matično mapo datoteke z viri</td></tr><tr><th align="left">Skopiraj kot ...</th><td>da skopirate datoteko v podmapo matične mape datoteke z viri</td></tr><tr><th align="left">Obdrži</th><td>da uporabite trenutno lokacijo</td></tr></table> - Could not copy %1 to @@ -3341,153 +2750,120 @@ v %2 - A parse error occurred at line %1, column %2 of %3: %4 Prišlo je do napake razčlenjevanja v vrstici %1, stolpcu %2 v %3: %4 - Save Resource File Shrani datoteko z viri - Edit Resources Urejanje virov - New... Nova ... - Open... Odpri ... - - Remove Odstrani - - Move Up Premakni gor - - Move Down Pomakni dol - - Add Prefix Dodaj predpono - Add Files... Dodaj datoteke ... - Change Prefix Spremeni predpono - Change Language Spremeni jezik - Change Alias Spremeni drugo ime - Clone Prefix... Kloniraj predpono ... - Prefix / Path Predpona / pot - Language / Alias Jezik / drugo ime - <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> <html><p><b>Opozorilo:</b> Med ponovnim nalaganjem virov je prišlo do težav:</p><pre>%1</pre></html> - Resource Warning Opozorilo o virih - Dialog Pogovorno okno - New File Nova datoteka - N N - Remove File Odstrani datoteko - R R - I I - New Resource Nov vir - A A - Remove Resource or File Odstrani vir ali datoteko - Could not write %1: %2 Ni moč zapisati %1: %2 - Open Resource File Odpri datoteko z viri @@ -3495,24 +2871,20 @@ v QtResourceView - Size: %1 x %2 %3 Velikost: %1 × %2 %3 - Edit Resources... Urejanje virov ... - Reload Znova naloži - Copy Path Skopiraj pot @@ -3520,7 +2892,6 @@ v QtResourceViewDialog - Select Resource Izberite vir @@ -3528,17 +2899,14 @@ v QtSizeFPropertyManager - %1 x %2 %1 × %2 - Width Širina - Height Višina @@ -3546,33 +2914,26 @@ v QtSizePolicyPropertyManager - - <Invalid> <neveljavno> - [%1, %2, %3, %4] [%1, %2, %3, %4] - Horizontal Policy Vodoravna politika - Vertical Policy Navpična politika - Horizontal Stretch Vodoravna praznina - Vertical Stretch Navpična praznina @@ -3580,17 +2941,14 @@ v QtSizePropertyManager - %1 x %2 %1 × %2 - Width Širina - Height Višina @@ -3598,107 +2956,86 @@ v QtToolBarDialog - < S E P A R A T O R > < L O Č I T E L J > - Customize Toolbars Prilagodi orodjarne - 1 1 - Actions Dejanja - Toolbars Orodjarne - New Novo - Remove Odstrani - Rename Preimenuj - Up Gor - <- <- - -> -> - Down Dol - Current Toolbar Actions Trenutna dejanja v orodjarni - Custom Toolbar Orodjarna po meri - Add new toolbar Dodaj novo orodjarno - Remove selected toolbar Odstrani izbrano orodjarno - Rename toolbar Preimenuj orodjarno - Move action up Premakni dejanje gor - Remove action from toolbar Odstrani dejanje iz orodjarne - Add action to toolbar Dodaj dejanje v orodjarno - Move action down Premakni dejanje dol @@ -3706,12 +3043,10 @@ v QtTreePropertyBrowser - Property Lastnost - Value Vrednost @@ -3719,64 +3054,52 @@ v SaveFormAsTemplate - Add path... Dodaj pot ... - Template Exists Predloga obstaja - A template with the name %1 already exists. Do you want overwrite the template? Predloga z imenom %1 že obstaja. Ali želite nadomestiti predlogo? - Overwrite Template Nadomesti predlogo - Open Error Napaka pri odpiranju - There was an error opening template %1 for writing. Reason: %2 Prišlo je do napake pri odpiranju predloge %1 za pisanje. Razlog: %2 - Write Error Napaka pri pisanju - There was an error writing the template %1 to disk. Reason: %2 Prišlo je do napake pri pisanju predloge %1 na disk. Razlog: %2 - Pick a directory to save templates in Izberite mapo za shranjevanje predlog - Save Form As Template Shranjevanje obrazca kot predloge - &Category: &Kategorija: - &Name: &Ime: @@ -3784,7 +3107,6 @@ Ali želite nadomestiti predlogo? ScriptErrorDialog - An error occurred while running the scripts for "%1": Prišlo je do napake med poganjanjem skriptov za »%1«: @@ -3794,22 +3116,18 @@ Ali želite nadomestiti predlogo? SelectSignalDialog - Go to slot Pojdi na režo - Select signal Izbiranje signala - signal signal - class razred @@ -3817,7 +3135,6 @@ Ali želite nadomestiti predlogo? SignalSlotConnection - SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) POŠILJATELJ(%1), SIGNAL(%2), PREJEMNIK (%3), REŽA(%4) @@ -3825,32 +3142,26 @@ Ali želite nadomestiti predlogo? SignalSlotDialogClass - Signals and slots Signali in reže - Slots Reže - ... ... - Signals Signali - Add Dodaj - Delete Zbriši @@ -3858,12 +3169,10 @@ Ali želite nadomestiti predlogo? Spacer - Horizontal Spacer '%1', %2 x %3 Vodoravni ločitelj »%1«, %2 x %3 - Vertical Spacer '%1', %2 x %3 Navpični ločitelj »%1«, %2 x %3 @@ -3871,41 +3180,51 @@ Ali želite nadomestiti predlogo? TemplateOptionsPage - Template Paths - Tab in preferences dialog + Tab in preferences dialog + Poti za predloge ToolBarManager - Configure Toolbars... Nastavi orodjarne ... - Window Okno - Help Pomoč - Style Slog - Dock views Podokna - + File + Datoteka + + + Edit + Urejanje + + + Tools + Orodja + + + Form + Obrazec + + Toolbars Orodjarne @@ -3913,30 +3232,64 @@ Ali želite nadomestiti predlogo? VersionDialog - <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>Različica %2 - Qt Designer Qt Designer - <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> <br/>Qt Designer je snovalnik grafičnih uporabniških vmesnikov za Qt programe.<br/> - %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). %1<br/>Avtorske pravice © 2009 Nokia Corporation in/ali njene podružnice. + VideoPlayerTaskMenu + + Available Mime Types + Razpoložljive vrste MIME + + + Display supported mime types... + Prikaži podprte vrste MIME ... + + + Load... + Naloži ... + + + Play + Predvajaj + + + Pause + Premor + + + Stop + Ustavi + + + Choose Video Player Media Source + Izberite večpredstavnostni vir za predvajalnik videa + + + An error has occurred in '%1': %2 + V »%1« je prišlo do napake: %2 + + + Video Player Error + Napaka predvajalnika videa + + + WidgetDataBase - 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. Datoteka vsebuje gradnik po meri »%1«, katerega osnovni razred (%2) se razlikuje od trenutnega vnosa v podatkovni zbirki gradnikov (%3). Podatkovna zbirka gradnikov je ostala nespremenjena. @@ -3944,87 +3297,70 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ActionEditor - Actions Dejanja - New... Novo ... - Delete Zbriši - New action Novo dejanje - Edit action Uredi dejanje - Edit... Uredi ... - Go to slot... Pojdi na režo ... - Copy Skopiraj - Cut Izreži - Paste Prilepi - Select all Izberi vse - Icon View Prikaz ikon - Detailed View Prikaz podrobnosti - Remove actions Odstrani dejanja - Remove action '%1' Odstrani dejanje »%1« - Used In Uporabljeno v - Configure Action Editor Nastavi urejevalnik dejanj @@ -4032,32 +3368,26 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ActionModel - Name Ime - Used Uporabljeno - Text Besedilo - Shortcut Bližnjica - Checkable Stikalo - ToolTip Namig @@ -4065,27 +3395,22 @@ Ali želite nadomestiti predlogo? qdesigner_internal::BrushManagerProxy - The element '%1' is missing the required attribute '%2'. Elementu »%1« manjka obvezna lastnost »%2«. - Empty brush name encountered. Doseženo je bilo prazno ime čopiča. - An unexpected element '%1' was encountered. Dosežen je bil nepričakovan element »%1«. - An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 Prišlo je do napake pri branju datoteke z definicijo čopiča »%1«, v vrstici %2 in stolpcu %3: %4 - An error occurred when reading the resource file '%1' at line %2, column %3: %4 Prišlo je do napake pri branju datoteke z viri »%1«, v vrstici %2 in stolpcu %3: %4 @@ -4093,17 +3418,14 @@ Ali želite nadomestiti predlogo? qdesigner_internal::BuddyEditor - Add buddy Dodaj kolega - Remove buddies Odstrani kolege - Remove %n buddies Odstrani %n kolega @@ -4113,7 +3435,6 @@ Ali želite nadomestiti predlogo? - Add %n buddies Dodaj %n kolega @@ -4123,7 +3444,6 @@ Ali želite nadomestiti predlogo? - Set automatically Nastavi samodejno @@ -4131,7 +3451,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::BuddyEditorPlugin - Edit Buddies Urejanje kolegov @@ -4139,7 +3458,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::BuddyEditorTool - Edit Buddies Urejanje kolegov @@ -4147,12 +3465,10 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ButtonGroupMenu - Select members Izberi člane - Break Razbij @@ -4160,32 +3476,26 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ButtonTaskMenu - Assign to button group Dodeli skupini gumbov - Button group Skupina gumbov - New button group Novi skupini gumbov - Change text... Spremeni besedilo ... - None Nobeni - Button group '%1' Skupina gumbov »%1« @@ -4193,57 +3503,46 @@ Ali želite nadomestiti predlogo? qdesigner_internal::CodeDialog - Save... Shrani ... - Copy All Skopiraj vse - &Find in Text... &Najdi v besedilu ... - A temporary form file could not be created in %1. Začasne datoteke obrazca v %1 ni bilo moč ustvariti. - The temporary form file %1 could not be written. V začasno datoteko obrazca %1 ni bilo moč pisati. - %1 - [Code] %1 - [koda] - Save Code Shrani kodo - Header Files (*.%1) Datoteke z glavo (*.%1) - The file %1 could not be opened: %2 Datoteke »%1« ni bilo moč odpreti: %2 - The file %1 could not be written: %2 Datoteke »%1« ni bilo moč zapisati: %2 - %1 - Error %1 - napaka @@ -4251,7 +3550,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ColorAction - Text Color Barva besedila @@ -4259,12 +3557,10 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ComboBoxTaskMenu - Edit Items... Uredi postavke ... - Change Combobox Contents Spreminjanje vsebine spustnega seznama @@ -4272,7 +3568,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::CommandLinkButtonTaskMenu - Change description... Spremeni opis ... @@ -4280,17 +3575,14 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ConnectionEdit - Select All Izberi vse - Deselect All Odizberi vse - Delete Zbriši @@ -4298,52 +3590,42 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ConnectionModel - Sender Pošiljatelj - Signal Signal - Receiver Prejemnik - Slot Reža - <sender> <pošiljatelj> - <signal> <signal> - <receiver> <prejemnik> - <slot> <reža> - Signal and Slot Editor Urejevalnik signalov in rež - The connection already exists!<br>%1 Povezava že obstaja!<br>%1 @@ -4351,42 +3633,34 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ContainerWidgetTaskMenu - Insert Page Before Current Page Vstavi stran pred trenutno stran - Insert Page After Current Page Vstavi stran za trenutno stran - Add Subwindow Dodaj podokno - Delete Zbriši - Insert Vstavi - Subwindow Podokno - Page Stran %1 - Page %1 of %2 Stran %1 od %2 @@ -4394,69 +3668,57 @@ Ali želite nadomestiti predlogo? qdesigner_internal::DPI_Chooser - System (%1 x %2) - System resolution + System resolution + Sistemska (%1 x %2) - User defined Uporabniško določena - x - DPI X/Y separator + DPI X/Y separator + x qdesigner_internal::DesignerPropertyManager - - AlignLeft Poravnaj levo - AlignHCenter Poravnaj sredinsko (vodoravno) - AlignRight Poravnaj desno - AlignJustify Poravnaj obojestransko - AlignTop Poravnaj na vrh - - AlignVCenter Poravnaj sredinsko (navpično) - AlignBottom Poravnaj na dno - %1, %2 %1, %2 - Customized (%n roles) Po meri (%n vloga) @@ -4466,75 +3728,58 @@ Ali želite nadomestiti predlogo? - Inherited Podedovano - Horizontal Vodoravno - Vertical Navpično - Normal Off Normalna in izključena - Normal On Normalna in vključena - Disabled Off Onemogočena in izključena - Disabled On Onemogočena in vključena - Active Off Aktivna in izključena - Active On Aktivna in vključena - Selected Off Izbrana in izključena - Selected On Izbrana in vključena - - translatable prevedljivo - - disambiguation razločitev - - comment komentar @@ -4542,48 +3787,38 @@ Ali želite nadomestiti predlogo? qdesigner_internal::DeviceProfileDialog - Device Profiles (*.%1) Profili naprav (*.%1) - Default Privzeti - Save Profile Shrani profil - Save Profile - Error Shranjevanje profila - napaka - Unable to open the file '%1' for writing: %2 Datoteke »%1« ni moč odpreti za pisanje: %2 - Open profile Odpri profil - - Open Profile - Error Odpiranje profila - napaka - Unable to open the file '%1' for reading: %2 Datoteke »%1« ni moč odpreti za branje: %2 - '%1' is not a valid profile: %2 »%1« ni veljaven profil: %2 @@ -4591,57 +3826,46 @@ Ali želite nadomestiti predlogo? qdesigner_internal::Dialog - Dialog PogovornoOkno - StringList SeznamNizov - New String Nov niz - &New &Nov - Delete String Z&briši niz - &Delete &Zbriši - &Value: &Vrednost: - Move String Up Premakni niz gor - Up Gor - Move String Down Premakni niz dol - Down Dol @@ -4649,52 +3873,42 @@ Ali želite nadomestiti predlogo? qdesigner_internal::EmbeddedOptionsControl - None Noben - Add a profile Dodaj profil - Edit the selected profile Uredi izbrani profil - Delete the selected profile Zbriši izbrani profil - Add Profile Dodaj profil - New profile Nov profil - Edit Profile Uredi profil - Delete Profile Zbriši profil - Would you like to delete the profile '%1'? Ali želite zbrisati profil »%1«? - Default Privzeti @@ -4702,20 +3916,21 @@ Ali želite nadomestiti predlogo? qdesigner_internal::FilterWidget - - <Filter> - <filter> + Filter + Filter + + + Clear text + Počisti besedilo qdesigner_internal::FormEditor - Resource File Changed Datoteka z viri je bila spremenjena - The file "%1" has changed outside Designer. Do you want to reload it? Datoteka »%1« je bila spremenjena izven Qt Designerja. Ali jo želite naložiti znova? @@ -4723,7 +3938,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::FormLayoutMenu - Add form layout row... Dodaj vrstico razporeditve na obrazcu ... @@ -4731,54 +3945,46 @@ Ali želite nadomestiti predlogo? qdesigner_internal::FormWindow - Edit contents Uredi vsebino - F2 F2 - Resize Spremeni velikost - - Key Move Premik s tipko - + Key Resize + + + Cannot paste widgets. Designer could not find a container without a layout to paste into. Ni moč prilepiti gradnikov. Qt Designer ni mogel najti vsebnika brez razporeditve, v katerega bi prilepil. - Break the layout of the container you want to paste into, select this container and then paste again. Razbijte razporeditev za vsebnik, v katerega želite prilepiti, nato izberite vsebnik in prilepite znova. - Paste error Napaka prilepljanja - Lay out Razporedi - - Drop widget Spusti gradnik - Paste %n action(s) Prilepi %n dejanje @@ -4788,12 +3994,10 @@ Ali želite nadomestiti predlogo? - Insert widget '%1' Vstavi gradnik »%1« - Paste %n widget(s) Prilepi %n gradnik @@ -4803,27 +4007,22 @@ Ali želite nadomestiti predlogo? - Paste (%1 widgets, %2 actions) Prilepi (gradnikov: %1, dejanj: %2) - Select Ancestor Izberi predhodnika - A QMainWindow-based form does not contain a central widget. Obrazec temelječ na QMainWindow ne vsebuje osrednjega gradnika. - Raise widgets Dvigni gradnike - Lower widgets Spusti gradnike @@ -4831,12 +4030,10 @@ Ali želite nadomestiti predlogo? qdesigner_internal::FormWindowBase - Delete Zbriši - Delete '%1' Zbriši »%1« @@ -4844,200 +4041,159 @@ Ali želite nadomestiti predlogo? qdesigner_internal::FormWindowManager - Cu&t &Izreži - Cuts the selected widgets and puts them on the clipboard Izreže izbrane gradnike in jih odloži na odložišče - &Copy S&kopiraj - Copies the selected widgets to the clipboard Skopira izbrane gradnike na odložišče - &Paste Pri&lepi - Pastes the clipboard's contents Prilepi vsebino odložišča - &Delete &Zbriši - Deletes the selected widgets Zbriše izbrane gradnike - Select &All Izberi &vse - Selects all widgets Izbere vse gradnike - Bring to &Front Prinesi v o&spredje - - Raises the selected widgets Dvigne izbrane gradnike - Send to &Back Pošlji v &ozadje - - Lowers the selected widgets Spusti izbrane gradnike - Adjust &Size Prilagodi ve&likost - Adjusts the size of the selected widget Prilagodi velikost izbranega gradnika - Lay Out &Horizontally Razporedi &vodoravno - Lays out the selected widgets horizontally Izbrane gradnike razporedi vodoravno - Lay Out &Vertically Razporedi &navpično - Lays out the selected widgets vertically Izbrane gradnike razporedi navpično - Lay Out in a &Grid Razporedi v &mrežo - Lays out the selected widgets in a grid Razporedi izbrane gradnike v mrežo - Lay Out Horizontally in S&plitter Razporedi vodoravno v ra&zdelilnik - Lays out the selected widgets horizontally in a splitter Izbrane gradnike razporedi vodoravno v razdelilnik - Lay Out Vertically in Sp&litter Razporedi navpično v raz&delilnik - Lays out the selected widgets vertically in a splitter Izbrane gradnike razporedi navpično v razdelilnik - &Break Layout &Razbij razporeditev - Breaks the selected layout Razbij izbrano razporeditev - &Preview... Prikaži &ogled ... - Preview current form Prikaže ogled trenutnega obrazca - Form &Settings... &Nastavi obrazec ... - Break Layout Razbij razporeditev - Adjust Size Prilagodi velikost - Could not create form preview Title of warning message box Ni bilo moč ustvariti ogleda obrazca - Form Settings - %1 Nastavitve obrazca - %1 - Removes empty columns and rows Odstrani prazne stolpce in vrstice - Lay Out in a &Form Layout Razporedi v razporeditev na &obrazcu - Lays out the selected widgets in a form layout Razporedi izbrane gradnike v razporeditev na obrazcu - Si&mplify Grid Layout Po&enostavi razporeditev v mrežo @@ -5045,12 +4201,10 @@ Ali želite nadomestiti predlogo? qdesigner_internal::FormWindowSettings - None Noben - Device Profile: %1 Profil naprave: %1 @@ -5058,37 +4212,30 @@ Ali želite nadomestiti predlogo? qdesigner_internal::GridPanel - Form Obrazec - Grid Mreža - Visible Vidna - Grid &X Mreža &X - Snap Pripni - Reset Ponastavi - Grid &Y Mreža &Y @@ -5096,7 +4243,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::GroupBoxTaskMenu - Change title... Spremeni naslov ... @@ -5104,7 +4250,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::HtmlTextEdit - Insert HTML entity Vstavi entiteto HTML @@ -5112,92 +4257,74 @@ Ali želite nadomestiti predlogo? qdesigner_internal::IconSelector - The pixmap file '%1' cannot be read. Datoteke s sličico »%1« ni moč prebrati. - The file '%1' does not appear to be a valid pixmap file: %2 Kot kaže »%1« ni veljavna datoteka s sličico: %2 - The file '%1' could not be read: %2 Datoteke »%1« ni bilo moč prebrati: %2 - Pixmap Read Error Napaka pri branju sličice - ... ... - Normal Off Normalna in izključena - Normal On Normalna in vključena - Disabled Off Onemogočena in izključena - Disabled On Onemogočena in vključena - Active Off Aktivna in izključena - Active On Aktivna in vključena - Selected Off Izbrana in izključena - Selected On Izbrana in vključena - Choose Resource... Izberi vir ... - Choose File... Izberi datoteko ... - Reset Ponastavi - Reset All Ponastavi vse - Choose a Pixmap Izbiranje sličice @@ -5205,58 +4332,46 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ItemListEditor - Properties &<< Lastnosti &<< - - Properties &>> Lastnosti &>> - Items List Seznam postavk - New Item Nova postavka - &New &Nova - Delete Item Zbriši postavko - &Delete &Zbriši - Move Item Up Premakni postavko gor - U G - Move Item Down Premakni postavko dol - D D @@ -5264,12 +4379,10 @@ Ali želite nadomestiti predlogo? qdesigner_internal::LabelTaskMenu - Change rich text... Spremeni bogato besedilo ... - Change plain text... Spremeni navadno besedilo ... @@ -5277,7 +4390,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::LanguageResourceDialog - Choose Resource Izberite vir @@ -5285,7 +4397,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::LineEditTaskMenu - Change text... Spremeni besedilo ... @@ -5293,17 +4404,14 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ListWidgetEditor - Edit List Widget Urejanje gradnika s seznamom - Edit Combobox Urejanje spustnega seznama - New Item Nova postavka @@ -5311,12 +4419,10 @@ Ali želite nadomestiti predlogo? qdesigner_internal::ListWidgetTaskMenu - Edit Items... Uredi postavke ... - Change List Contents Spreminjanje vsebine seznama @@ -5324,22 +4430,18 @@ Ali želite nadomestiti predlogo? qdesigner_internal::MdiContainerWidgetTaskMenu - Next Subwindow Naslednje podokno - Previous Subwindow Predhodno podokno - Tile Tlakuj - Cascade V kaskado @@ -5347,7 +4449,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::MenuTaskMenu - Remove Odstrani @@ -5355,7 +4456,6 @@ Ali želite nadomestiti predlogo? qdesigner_internal::MorphMenu - Morph into Pretvori v @@ -5363,42 +4463,34 @@ Ali želite nadomestiti predlogo? qdesigner_internal::NewActionDialog - New Action... Novo dejanje ... - &Text: &Besedilo: - &Icon: &Ikona: - Shortcut: Bližnjica: - Checkable: Stikalo: - ToolTip: Namig: - ... ... - Object &name: &Ime objekta: @@ -5406,39 +4498,32 @@ Ali želite nadomestiti predlogo? qdesigner_internal::NewDynamicPropertyDialog - Set Property Name Nastavi ime lastnosti - The current object already has a property named '%1'. Please select another, unique one. Trenutni objekt že ima lastnost z imenom »%1«.Izberite drugo, edinstveno ime - Create Dynamic Property Ustvari dinamično lastnost - Property Name Ime lastnosti - Property Type Vrsta lastnosti - The '_q_' prefix is reserved for the Qt library. Please select another name. Predpona »_q_« je rezervirana za knjižnico Qt.Izberite drugo ime. - horizontalSpacer vodoravnaPraznina @@ -5446,83 +4531,68 @@ Please select another name. qdesigner_internal::NewFormWidget - Default size Privzeta velikost - QVGA portrait (240x320) QVGA, pokončno (240x320) - QVGA landscape (320x240) QVGA, ležeče (320x240) - VGA portrait (480x640) VGA, pokončno (480x640) - VGA landscape (640x480) VGA, ležeče (640x480) - Widgets - New Form Dialog Categories + New Form Dialog Categories + Gradniki - Custom Widgets Gradniki po meri - None Nobena - Error loading form Napaka pri nalaganju obrazca - Unable to open the form template file '%1': %2 Ni moč odpreti datoteke s predlogo obrazca »%1«: %2 - Internal error: No template selected. Notranja napaka: izbrane ni nobene predloge. - 0 0 - Choose a template for a preview Izberite predlogo za ogled - Embedded Design Vgrajena zasnova - Device: Naprava: - Screen Size: Velikost zaslona @@ -5530,37 +4600,30 @@ Please select another name. qdesigner_internal::NewPromotedClassPanel - Add Dodaj - New Promoted Class Nov povišan razred - Base class name: Ime osnovnega razreda: - Promoted class name: Ime povišanega razreda: - Header file: Datoteka z glavo: - Global include Globalna vključitev - Reset Ponastavi @@ -5568,48 +4631,37 @@ Please select another name. qdesigner_internal::ObjectInspector - - &Find in Text... - &Najdi v besedilu ... + Change Current Page + Spreminjanje trenutne strani - - - qdesigner_internal::ObjectInspector::ObjectInspectorPrivate - - Change Current Page - Spreminjanje trenutne strani + &Find in Text... + &Najdi v besedilu ... qdesigner_internal::OrderDialog - Index %1 (%2) Indeks %1 (%2) - Change Page Order Spreminjanje vrstnega reda strani - Page Order Vrstni red strani - Move page up Premakni stran gor - Move page down Premakni stran dol - %1 %2 %1 %2 @@ -5617,47 +4669,38 @@ Please select another name. qdesigner_internal::PaletteEditor - Edit Palette Urejanje palete - Tune Palette Nastavitev palete - Show Details Prikaži podrobnosti - Compute Details izračunaj podrobnosti - Quick Hitro - Preview Ogled - Disabled Onemogočeno - Inactive Neaktivno - Active Aktivno @@ -5665,7 +4708,6 @@ Please select another name. qdesigner_internal::PaletteEditorButton - Change Palette Spremeni paleto @@ -5673,22 +4715,18 @@ Please select another name. qdesigner_internal::PaletteModel - Color Role Vloga barve - Active Aktivno - Inactive Neaktivno - Disabled Onemogočeno @@ -5696,28 +4734,22 @@ Please select another name. qdesigner_internal::PixmapEditor - Copy Path Skopiraj pot - Paste Path Prilepi pot - Choose Resource... Izberi vir ... - Choose File... Izberi datoteko ... - - ... ... @@ -5725,7 +4757,6 @@ Please select another name. qdesigner_internal::PlainTextEditorDialog - Edit text Uredi besedilo @@ -5733,37 +4764,30 @@ Please select another name. qdesigner_internal::PluginDialog - Components Komponente - Plugin Information Podatki o vstavkih - Refresh Osveži - Scan for newly installed custom widget plugins. Preveri razpoložljivost na novo nameščenih vstavkov za gradnike po meri. - Qt Designer couldn't find any plugins Qt Designer ni našel nobenega vstavka - Qt Designer found the following plugins Qt Designer je našel naslednje vstavke - New custom widget plugins have been found. Najdeni so bili vstavki za nove gradnike po meri. @@ -5771,7 +4795,6 @@ Please select another name. qdesigner_internal::PreviewActionGroup - %1 Style Slog %1 @@ -5779,50 +4802,38 @@ Please select another name. qdesigner_internal::PreviewConfigurationWidget - Default Privzeto - None Brez - Browse... Brskaj ... - - - qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate - Load Custom Device Skin - Naloži temo za napravo po meri + Naloži temo za napravo po meri - All QVFB Skins (*.%1) Vse teme za QVFB (*.%1) - %1 - Duplicate Skin %1 - podvojena tema - The skin '%1' already exists. Tema »%1« že obstaja. - %1 - Error %1 - napaka - %1 is not a valid skin directory: %2 %1 ni veljavna mapa s temo: @@ -5832,24 +4843,22 @@ Please select another name. qdesigner_internal::PreviewDeviceSkin - &Portrait &Pokončno - Landscape (&CCW) - Rotate form preview counter-clockwise + Rotate form preview counter-clockwise + L&ežeče (v nasprotni smeri ure) - &Landscape (CW) - Rotate form preview clockwise + Rotate form preview clockwise + &Ležeče (v smeri ure) - &Close &Zapri @@ -5857,7 +4866,6 @@ Please select another name. qdesigner_internal::PreviewManager - %1 - [Preview] %1 - [ogled] @@ -5865,10 +4873,10 @@ Please select another name. qdesigner_internal::PreviewMdiArea - The moose in the noose ate the goose who was loose. - Palette editor background + Palette editor background + Šerif bo za vajo spet skuhal domače žgance. @@ -5876,57 +4884,46 @@ skuhal domače žgance. qdesigner_internal::PreviewWidget - Preview Window Okno ogleda - LineEdit UrejevalnaVrstica - ComboBox SpustniSeznam - PushButton Gumb - ButtonGroup2 SkupinaGumbov2 - CheckBox1 PotrditvenoPolje1 - CheckBox2 PotrditvenoPolje2 - ButtonGroup SkupinaGumbov - RadioButton1 IzbirniGumb1 - RadioButton2 IzbirniGumb2 - RadioButton3 IzbirniGumb3 @@ -5934,22 +4931,18 @@ skuhal domače žgance. qdesigner_internal::PromotionModel - Name Ime - Header file Datoteka z glavo - Global include Globalna vključitev - Usage Uporaba @@ -5957,27 +4950,22 @@ skuhal domače žgance. qdesigner_internal::PromotionTaskMenu - Promoted widgets... Povišani gradniki ... - Promote to ... Povišaj v ... - Promote to Povišaj v - Demote to %1 Ponižaj v %1 - Change signals/slots... Spremeni signale/reže ... @@ -5985,59 +4973,48 @@ skuhal domače žgance. qdesigner_internal::PropertyEditor - Add Dynamic Property... Dodaj dinamično lastnost ... - Remove Dynamic Property Odstrani dinamično lastnost - Tree View Drevesni prikaz - Drop Down Button View Gumb s spustim seznamom za prikaz - Object: %1 Class: %2 Objekt: %1 Razred: %2 - Sorting Razvrsti - Color Groups Obarvaj skupine - Configure Property Editor Nastavi urejevalnik lastnosti - String... Niz ... - Bool... Bool ... - Other... Drugo ... @@ -6045,7 +5022,6 @@ Razred: %2 qdesigner_internal::PropertyLineEdit - Insert line break Vstavi prelom vrstice @@ -6053,27 +5029,22 @@ Razred: %2 qdesigner_internal::QDesignerPromotionDialog - Promoted Widgets Povišani gradniki - Promoted Classes Povišani razredi - Promote Povišaj - %1 - Error %1 - napaka - Change signals/slots... Spremeni signale/reže ... @@ -6081,22 +5052,18 @@ Razred: %2 qdesigner_internal::QDesignerResource - Loading qrc file Nalaganje datoteke *.qrc - The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> Podane datoteke *.qrc <p><b>%1</b></p><p>ni bilo moč najti. Ali želite posodobiti lokacijo datoteke?</p> - New location for %1 Nova lokacija za %1 - Resource files (*.qrc) Datoteke z viri (*.qrc) @@ -6104,7 +5071,6 @@ Razred: %2 qdesigner_internal::QDesignerTaskMenu - Set size constraint on %n widget(s) Nastavi omejitev velikosti za %n gradnik @@ -6114,107 +5080,86 @@ Razred: %2 - Change objectName... Spremeni ime objekta ... - Change toolTip... Spremeni namig ... - Change whatsThis... Spremeni KajJeTo ... - Change styleSheet... Spremeni slogovno predlogo ... - Create Menu Bar Ustvari menijsko vrstico - Add Tool Bar Dodaj orodjarno - Create Status Bar Ustvari vrstico stanja - Remove Status Bar Odstrani vrstico stanja - Change script... Spremeni skript ... - Change signals/slots... Spremeni signale/reže ... - Go to slot... Pojdi na režo ... - Size Constraints Omejitve velikosti - Set Minimum Width Nastavi najmanjšo širino - Set Minimum Height Nastavi najmanjšo višino - Set Minimum Size Nastavi najmanjšo velikost - Set Maximum Width Nastavi največjo širino - Set Maximum Height Nastavi največjo višino - Set Maximum Size Nastavi največjo velikost - Edit ToolTip Uredi namig - Edit WhatsThis Uredi KajJeTo - no signals available na voljo ni nobenega signala @@ -6222,13 +5167,10 @@ Razred: %2 qdesigner_internal::QDesignerWidgetBox - - Unexpected element <%1> Nepričakovan element <%1> - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 %5 Prišlo je do napake razčlenjevanja v vrstici %1, stolpcu %2 kode XML za gradnik %3: %4 @@ -6236,29 +5178,24 @@ Razred: %2 %5 - The XML code specified for the widget %1 does not contain any widget elements. %2 Koda XML za gradnik %1 ne vsebuje nobenega elementa gradnika. %2 - An error has been encountered at line %1 of %2: %3 Prišlo je do napake v vrstici %1 v %2: %3 - Unexpected element <%1> encountered when parsing for <widget> or <ui> Med razčlenjevanjem za <widget> ali <ui> je bil dosežen nepričakovan element <%1>. - Unexpected end of file encountered when parsing widgets. Med razčlenjevanjem gradnikov je bil dosežen nepričakovan konec datoteke. - A widget element could not be found. Ni bilo moč najti elementa gradnika. @@ -6266,73 +5203,58 @@ Razred: %2 qdesigner_internal::QtGradientStopsController - H H - S S - V V - - Hue Odtenek - Sat Zasičenost - Val Vrednost - Saturation Zasičenost - Value Vrednost - R R - G G - B B - Red Rdeča - Green Zelena - Blue Modra @@ -6340,27 +5262,22 @@ Razred: %2 qdesigner_internal::RichTextEditorDialog - Edit text Uredi besedilo - &OK &V redu - &Cancel &Prekliči - Rich Text Bogato besedilo - Source Izvorna koda @@ -6368,72 +5285,58 @@ Razred: %2 qdesigner_internal::RichTextEditorToolBar - Bold Polkrepko - CTRL+B Ctrl+B - Italic Ležeče - CTRL+I CTRL+I - Underline Podčrtano - CTRL+U CTRL+U - Left Align Poravnaj levo - Center Na sredino - Right Align Poravnaj desno - Justify Obojestransko - Superscript Nadpisano - Subscript Podpisano - Insert &Link Vstavi &povezavo - Insert &Image Vstavi &sliko @@ -6441,17 +5344,14 @@ Razred: %2 qdesigner_internal::ScriptDialog - Edit script Uredi skript - <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>Vnesite delček Qt Scripta, ki bo izveden med nalaganjem obrazca.<br>Gradnik in njegovi podgradniki so dostopni prek spremenljivk <i>widget</i> in <i>childWidgets</i>. - Syntax error Skladenjska napaka @@ -6459,7 +5359,6 @@ Razred: %2 qdesigner_internal::ScriptErrorDialog - Script errors Napake v skriptu @@ -6467,23 +5366,18 @@ Razred: %2 qdesigner_internal::SignalSlotDialog - There is already a slot with the signature '%1'. Reža z odtisom »%1« že obstaja. - There is already a signal with the signature '%1'. Signal z odtisom »%1« že obstaja. - %1 - Duplicate Signature %1 - podvojen odtis - - Signals/Slots of %1 Signali/reže od %1 @@ -6491,12 +5385,10 @@ Razred: %2 qdesigner_internal::SignalSlotEditorPlugin - Edit Signals/Slots Urejanje signalov/rež - F4 F4 @@ -6504,7 +5396,6 @@ Razred: %2 qdesigner_internal::SignalSlotEditorTool - Edit Signals/Slots Urejanje signalov/rež @@ -6512,7 +5403,6 @@ Razred: %2 qdesigner_internal::StatusBarTaskMenu - Remove Odstrani @@ -6520,7 +5410,6 @@ Razred: %2 qdesigner_internal::StringListEditorButton - Change String List Spreminjanje seznama nizov @@ -6528,38 +5417,30 @@ Razred: %2 qdesigner_internal::StyleSheetEditorDialog - Edit Style Sheet Urejanje slogovne predloge - - Valid Style Sheet Veljavna slogovna predloga - Add Resource... Dodaj vir ... - Add Gradient... Dodaj preliv ... - Add Color... Dodaj barvo ... - Add Font... Dodaj pisavo ... - Invalid Style Sheet Neveljavna slogovna predloga @@ -6567,27 +5448,22 @@ Razred: %2 qdesigner_internal::TabOrderEditor - Start from Here Začni od tu - Restart Začni znova - Tab Order List... Seznam vrstnega reda tabulatorke ... - Tab Order List Seznam vrstnega reda tabulatorke - Tab Order Vrstni red tabulatorke @@ -6595,7 +5471,6 @@ Razred: %2 qdesigner_internal::TabOrderEditorPlugin - Edit Tab Order Urejanje vrstnega reda tabulatorke @@ -6603,7 +5478,6 @@ Razred: %2 qdesigner_internal::TabOrderEditorTool - Edit Tab Order Urejanja vrstnega reda tabulatorke @@ -6611,48 +5485,38 @@ Razred: %2 qdesigner_internal::TableWidgetEditor - New Column Nov stolpec - New Row Nova vrstica - &Columns &Stolpci - &Rows &Vrstice - Properties &<< Lastnosti &<< - - Properties &>> Lastnosti &>> - Edit Table Widget Urejanje gradnika s tabelo - &Items &Postavke - Table Items Postavke v tabeli @@ -6660,7 +5524,6 @@ Razred: %2 qdesigner_internal::TableWidgetTaskMenu - Edit Items... Uredi postavke ... @@ -6668,22 +5531,18 @@ Razred: %2 qdesigner_internal::TemplateOptionsWidget - Pick a directory to save templates in Izberite mapo za shranjevanje predlog - Form Obrazec - Additional Template Paths Dodatne poti za predloge - ... ... @@ -6691,22 +5550,18 @@ Razred: %2 qdesigner_internal::TextEditTaskMenu - Change HTML... Spremeni HTML ... - Edit HTML Urejanje HTML-ja - Edit Text Urejanje besedila - Change Plain Text... Spremeni navadno besedilo ... @@ -6714,22 +5569,18 @@ Razred: %2 qdesigner_internal::TextEditor - Choose Resource... Izberi vir ... - Choose File... Izberi datoteko ... - Choose a File Izbiranje datoteke - ... ... @@ -6737,27 +5588,22 @@ Razred: %2 qdesigner_internal::ToolBarEventFilter - Insert Separator Vstavi ločitelja - Remove action '%1' Odstrani dejanje »%1« - Remove Toolbar '%1' Odstrani orodjarno »%1« - Insert Separator before '%1' Vstavi ločitelja pred »%1« - Append Separator Dodaj ločitelja @@ -6765,125 +5611,98 @@ Razred: %2 qdesigner_internal::TreeWidgetEditor - &Columns &Stolpci - Per column properties Lastnosti za stolpec - Common properties Skupne lastnosti - - New Item Nova postavka - Properties &<< Lastnosti &<< - - Properties &>> Lastnosti &>> - New Column Nov stolpec - Edit Tree Widget Urejanje gradnika z drevesom - &Items &Postavke - Tree Items Postavke v drevesu - - New Subitem Nova podpostavka - New &Subitem Nova &podpostavka - Delete Item Zbriši postavko - Move Item Left (before Parent Item) Premakni postavko levo (pred matično postavko) - L L - Move Item Right (as a First Subitem of the Next Sibling Item) Premakni postavko desno (kot prvo podpostavko sledeče postavke) - R E - Move Item Up Premakni postavko gor - U G - Move Item Down Premakni postavko dol - D D - 1 1 - &New &Nova - &Delete &Zbriši @@ -6891,7 +5710,6 @@ Razred: %2 qdesigner_internal::TreeWidgetTaskMenu - Edit Items... Uredi postavke ... @@ -6899,7 +5717,6 @@ Razred: %2 qdesigner_internal::WidgetBox - Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. Opozorilo: ustvarjanje gradnika v podoknu z gradniki ni uspelo. Za to je morda kriv neveljaven XML gradnika po meri. @@ -6907,42 +5724,34 @@ Razred: %2 qdesigner_internal::WidgetBoxTreeWidget - Scratchpad Beležnica - Custom Widgets Gradniki po meri - Expand all Razširi vse - Collapse all Skrči vse - List View Prikaz seznama - Icon View Prikaz ikon - Remove Odstrani - Edit name Urejanje imena @@ -6950,7 +5759,6 @@ Razred: %2 qdesigner_internal::WidgetDataBase - A custom widget plugin whose class name (%1) matches that of an existing class has been found. Najden je bil vstavek gradnika po meri, katerega ime (%1) je enako imenu obstoječega razreda. @@ -6958,7 +5766,6 @@ Razred: %2 qdesigner_internal::WidgetEditorTool - Edit Widgets Urejanje gradnikov @@ -6966,34 +5773,28 @@ Razred: %2 qdesigner_internal::WidgetFactory - The custom widget factory registered for widgets of class %1 returned 0. Tovarna gradnikov po meri, ki je registrirana za gradnike razreda %1, je vrnila 0. - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. Med ustvarjanjem gradnika z uporabo tovarne gradnikov po meri, ki je registrirana za gradnike razreda %1, je prišlo do neujemanja v imenu razreda. Tovarna je vrnila gradnik razreda %2. - %1 Widget Gradnik %1 - The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. Trenutne strani vsebnika »%1« (%2) med dodajanjem razporeda ni bilo moč določiti. To nakazuje na neskladnost v datoteki *.ui. Verjetno je na vsebovalnem gradniku zgrajen razpored. - Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. Poskus dodajanja razporeda gradniku »%1« (%2), ki že ima neupravljan razpored vrste %3. To nakazuje na neskladnost v datoteki *.ui. - Cannot create style '%1'. Ni moč ustvariti sloga »%1«. @@ -7001,12 +5802,10 @@ To nakazuje na neskladnost v datoteki *.ui. qdesigner_internal::WizardContainerWidgetTaskMenu - Next Naprej - Back Nazaj @@ -7014,18 +5813,62 @@ To nakazuje na neskladnost v datoteki *.ui. qdesigner_internal::ZoomMenu - %1 % - Zoom factor + Zoom factor + %1 % qdesigner_internal::ZoomablePreviewDeviceSkin - &Zoom &Povečava + + + + <Filter> + qdesigner_internal::FilterWidget| + <filter> + + + Change Current Page + qdesigner_internal::ObjectInspector::ObjectInspectorPrivate| + Spreminjanje trenutne strani + + + Load Custom Device Skin + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate| + Naloži temo za napravo po meri + + + All QVFB Skins (*.%1) + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate| + Vse teme za QVFB (*.%1) + + + %1 - Duplicate Skin + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate| + %1 - podvojena tema + + + The skin '%1' already exists. + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate| + Tema »%1« že obstaja. + + + %1 - Error + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate| + %1 - napaka + + + %1 is not a valid skin directory: +%2 + qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate| + %1 ni veljavna mapa s temo: +%2 + + diff --git a/translations/qt_sl.ts b/translations/qt_sl.ts index 6c42bb8..e0cee0f 100644 --- a/translations/qt_sl.ts +++ b/translations/qt_sl.ts @@ -1,10 +1,16 @@ + 2010-08-05 12:59+0200 + MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator + Lokalize 1.1 + Slovenian <lugos-slo@lugos.si> + + # Jure Repinc <jlp@holodeck1.com>, 2010. + Jure Repinc <jlp@holodeck1.com> CloseButton - Close Tab Zapri zavihek @@ -12,45 +18,68 @@ FakeReply - Fake error ! Lažna napaka. - Invalid URL Neveljaven URL + MAC_APPLICATION_MENU + + Services + Storitve + + + Hide %1 + Skrij %1 + + + Hide Others + Skrij druge + + + Show All + Prikaži vse + + + Preferences... + Nastavitve ... + + + Quit %1 + Končaj %1 + + + About %1 + O %1 + + + Phonon:: - Notifications Obvestila - Music Glasba - Video Video - Communication Komunikacija - Games Igre - Accessibility Dostopnost @@ -58,32 +87,31 @@ Phonon::AudioOutput - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> <html>Naprava za predvajanje zvoka <b>%1</b> ne deluje.<br/>Preklapljanje na <b>%2</b>.</html> - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> <html>Preklapljanje na napravo za predvajanje zvoka <b>%1</b>,<br/>ki je ravnokar postala dostopna in ima višjo preferenco.</html> - Revert back to device '%1' Povrni nazaj na napravo »%1« + + <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> + <html>Preklapljanje na napravo za predvajanje zvoka <b>%1</b>,<br/>ki ima višjo preferenco ali pa je posebej nastavljena za ta tok.</html> + Phonon::Gstreamer::Backend - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. Opozorilo: kot kaže paket gstreamer0.10-plugins-good ni nameščen. Nekatere možnosti predvajanja videa so onemogočene. - Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled Opozorilo: kot kaže osnovni vstavki za GStreamer niso nameščeni. @@ -93,10 +121,9 @@ Phonon::Gstreamer::MediaObject - Cannot start playback. -Check your Gstreamer installation and make sure you +Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed. Ni moč začeti predvajanja. @@ -104,39 +131,34 @@ Preverite namestitev GStreamerja in se prepričajte, da je nameščen paket libgstreamer-plugins-base. - + Missing codec helper script assistant. + Manjka pomožni skript pomočnika za kodeke. + + + Plugin codec installation failed for codec: %0 + Namesitev vstavka s kodekom ni uspela: %0 + + A required codec is missing. You need to install the following codec(s) to play this content: %0 Manjka potreben kodek. Za predvajanje te vsebine morate namestiti sledeče kodeke: %0 - - - - - - - - Could not open media source. Ni moč odpreti večpredstavnostnega vira. - Invalid source type. Neveljavna vrsta vira. - Could not locate media source. Ni moč najti večpredstavnostnega vira. - Could not open audio device. The device is already in use. Ni moč odpreti zvočne naprave. Naprava je že v uporabi. - Could not decode media source. Ni moč dekodirati večpredstavnostnega vira. @@ -144,82 +166,323 @@ da je nameščen paket libgstreamer-plugins-base. Phonon::MMF - Audio Output Predvajanje zvoka - The audio output device Naprava za predvajanje zvoka + + No error + Brez napake + + + Not found + Ni najdeno + + + Out of memory + Zmanjkalo pomnilnika + + + Not supported + Ni podprto + + + Overflow + Prekoračitev zgornje meje + + + Underflow + Prekoračitev spodnje meje + + + Already exists + Že obstaja + + + Path not found + Pot ni najdena + + + In use + V uporabi + + + Not ready + Ni pripravljeno + + + Access denied + Dostop zavrnjen + + + Could not connect + Povezava ni mogoča + + + Disconnected + Povezava prekinjena + + + Permission denied + Ni dovoljenja + + + Insufficient bandwidth + Pasovna širina ni zadostna + + + Network unavailable + Omrežje ni na voljo + + + Network communication error + Napaka komunikacije prek omrežja + + + Streaming not supported + Pretakanje ni podprto + + + Server alert + Opozorilo strežnika + + + Invalid protocol + Neveljaven protokol + + + Invalid URL + Neveljaven URL + + + Multicast error + Napaka oddajanja večim + + + Proxy server error + Napaka posredniškega strežnika + + + Proxy server not supported + Posredniški strežnik ni podprt + + + Audio output error + Napaka predvajanja zvoka + + + Video output error + Napaka prevajanja videa + + + Decoder error + Napaka dekodirnika + + + Audio or video components could not be played + Zvočne ali video komponente ni bilo moč predvajati + + + DRM error + Napaka upravljanja z omejitvami + + + Unknown error (%1) + Neznana napaka (%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + Ni pripravljen na predvajanje + + + Error opening file + Napaka pri odpiranju datoteke + + + Error opening URL + Napaka pri odpiranju URL-ja + + + Error opening resource + Napaka pri odpiranju vira + + + Error opening source: resource not opened + Napaka pri odporanju vira: vir ni bil odprt + + + Setting volume failed + Nastavljanje glasnosti ni uspelo + + + Loading clip failed + Nalaganje posnetka ni uspelo + + + Playback complete + Predvajanje je zaključeno + + + + Phonon::MMF::AbstractVideoPlayer + + Pause failed + Prekinitev ni uspela + + + Seek failed + Pomik ni uspel + + + Getting position failed + Pridobivanje položaja ni uspelo + + + Opening clip failed + Odpiranje posnetka ni uspelo + Phonon::MMF::AudioEqualizer - - Frequency band, %1 Hz - Frekvenčni pas, %1 Hz + %1 Hz + %1 Hz + + + + Phonon::MMF::AudioPlayer + + Getting position failed + Pridobivanje položaja ni uspelo + + + + Phonon::MMF::DsaVideoPlayer + + Video display error + Napaka prikaza videa Phonon::MMF::EffectFactory - - audio equalizer - izenačevalnik zvoka + Enabled + Omogočeno + + + Phonon::MMF::EnvironmentalReverb - - Bass boost - Ojačanje basov + Decay HF ratio (%) + DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. + + - - Distance Attenuation - Utišanje zaradi razdalje + Decay time (ms) + DecayTime: Time over which reverberation is diminished. + + - - - Environmental Reverb - Okoljsko odmevanje + Density (%) + 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. + + Gostota (%) - - Loudness - Glasnost + Diffusion (%) + 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. + + Razpršitev (%) - - Source Orientation - Usmerjenost vira + Reflections delay (ms) + ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. + + Zamik odbojev (ms) - - Stereo Widening - Razširitev sterea + Reflections level (mB) + ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. + + Glasnost odbojev (mB) + + + Reverb delay (ms) + ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. + + Zamik odmeva (ms) + + + Reverb level (mB) + ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. + + Glasnost odmeva (ms) + + + Room HF level + RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. + + VF glasnost prostora + + + Room level (mB) + RoomLevel: Master volume control for all reflected sound. + + Glasnost prostora (mB) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + Napaka pri odpiranju vira: vrsta ni podprta + + + Error opening source: resource is compressed + Napaka pri odporanju vira: vir je stisnjen + + + Error opening source: resource not valid + Napaka pri odporanju vira: vir ni veljaven + + + Error opening source: media type could not be determined + Napaka pri odpiranju vira: ni bilo moč ugotoviti vrste večpredstavnostne datoteke + + + + Phonon::MMF::StereoWidening + + Level (%) + Stopnja (%) + + + + Phonon::MMF::SurfaceVideoPlayer + + Video display error + Napaka prikaza videa Phonon::VolumeSlider - - - - Volume: %1% Glasnost: %1 % - - - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% Uporabite ta drsnik, da nastavite glasnost. Skrajno levi položaj je 0 %, skrajno desni pa %1 %. - Muted Utišan @@ -227,12 +490,10 @@ da je nameščen paket libgstreamer-plugins-base. Q3Accel - %1, %2 not defined %1, %2 ni definiran - Ambiguous %1 not handled Brez rokovanja z dvoumnim %1 @@ -240,27 +501,22 @@ da je nameščen paket libgstreamer-plugins-base. Q3DataTable - True Pravilno - False Napačno - Insert Vstavi - Update Posodobi - Delete Izbriši @@ -268,313 +524,238 @@ da je nameščen paket libgstreamer-plugins-base. Q3FileDialog - Copy or Move a File Skopiraj ali premakni datoteko - Read: %1 Branje: %1 - - Write: %1 Pisanje: %1 - - Cancel Prekliči - - - - All Files (*) Vse datoteke (*) - Name Ime - Size Velikost - Type Vrsta - Date Datum - Attributes Lastnosti - - &OK &V redu - Look &in: Išči &v: - - - File &name: Ime &datoteke: - File &type: &Vrsta datoteke: - Back Nazaj - One directory up Za eno mapo navzgor - Create New Folder Ustvari novo mapo - List View Prikaz seznama - Detail View Prikaz podrobnosti - Preview File Info Podatki ogleda datoteke - Preview File Contents Vsebina ogleda datoteke - Read-write Branje in pisanje - Read-only Samo za branje - Write-only Samo za pisanje - Inaccessible Nedostopno - Symlink to File Simbolna povezava do datoteke - Symlink to Directory Simbolna povezava do mape - Symlink to Special Simbolna povezava do posebnega - File Datoteka - Dir Mapa - Special Posebno - - - Open Odpri - - Save As Shrani kot - - - &Open &Odpri - - &Save &Shrani - &Rename Pre&imenuj - &Delete &Izbriši - R&eload &Znova naloži - Sort by &Name Razvrsti po &imenu - Sort by &Size Razvrsti po &velikosti - Sort by &Date Razvrsti po &datumu - &Unsorted &Brez razvrščanja - Sort Razvrsti - Show &hidden files Prikaži &skrite datoteke - the file datoteko - the directory mapo - the symlink simbolno povezavo - Delete %1 Izbriši %1 - <qt>Are you sure you wish to delete %1 "%2"?</qt> <qt>Ali res želite izbrisati %1 »%2«?</qt> - &Yes &Da - &No &Ne - New Folder 1 Nova mapa 1 - New Folder Nova mapa - New Folder %1 Nova mapa %1 - Find Directory Najdi mapo - - Directories Mape - Directory: Mapa: - - Error Napaka - %1 File not found. Check path and filename. @@ -583,17 +764,14 @@ Datoteke ni moč najti. Preverite pot in ime datoteke. - All Files (*.*) Vse datoteke (*.*) - Open Odpri - Select a Directory Izberite mapo @@ -601,29 +779,24 @@ Preverite pot in ime datoteke. Q3LocalFs - - Could not read directory %1 Ni bilo moč brati mape %1 - Could not create directory %1 Ni bilo moč ustvariti mape %1 - Could not remove file or directory %1 Ni bilo moč odstraniti datoteke ali mape %1 - Could not rename %1 to @@ -634,14 +807,12 @@ v %2 - Could not open %1 Ni moč odpreti %1 - Could not write %1 Ni bilo moč zapisati @@ -651,12 +822,10 @@ v Q3MainWindow - Line up V vrsto - Customize... Prilagodi ... @@ -664,7 +833,6 @@ v Q3NetworkProtocol - Operation stopped by the user Dejanje zaustavil uporabnik @@ -672,8 +840,6 @@ v Q3ProgressDialog - - Cancel Prekliči @@ -681,28 +847,22 @@ v Q3TabDialog - - OK V redu - Apply Uveljavi - Help Pomoč - Defaults Privzetosti - Cancel Prekliči @@ -710,38 +870,30 @@ v Q3TextEdit - &Undo &Razveljavi - &Redo &Uveljavi - Cu&t &Izreži - &Copy S&kopiraj - &Paste Pri&lepi - Clear Počisti - - Select All Izberi vse @@ -749,67 +901,54 @@ v Q3TitleBar - System Sistem - Restore up Obnovi - Minimize Pomanjšaj - Restore down Obnovi - Maximize Razpni - Close Zapri - Contains commands to manipulate the window Vsebuje ukaze za upravljanje z oknom - Puts a minimized window back to normal Obnovi pomanjšano okno na običajno velikost - Moves the window out of the way Umakne okno, da ni v napoto - Puts a maximized window back to normal Obnovi razpeto okno - Makes the window full screen Razpne okno čez ves zaslon - Closes the window Zapre okno - Displays the name of the window and contains controls to manipulate it Prikazuje ime okna in vsebuje gumbe za nadzor okna @@ -817,7 +956,6 @@ v Q3ToolBar - More... Več ... @@ -825,51 +963,38 @@ v Q3UrlOperator - - - The protocol `%1' is not supported Protokol »%1« ni podprt. - The protocol `%1' does not support listing directories Protokol »%1« ne podpira izpisa seznama map. - The protocol `%1' does not support creating new directories Protokol »%1« ne podpira ustvarjanja novih map. - The protocol `%1' does not support removing files or directories Protokol »%1« ne podpira odstranjevanja datotek ali map. - The protocol `%1' does not support renaming files or directories Protokol »%1« ne podpira preimenovanja datotek ali map. - The protocol `%1' does not support getting files Protokol »%1« ne podpira prejemanja datotek. - The protocol `%1' does not support putting files Protokol »%1« ne podpira pošiljanja datotek. - - The protocol `%1' does not support copying or moving files or directories Protokol »%1« ne podpira kopiranja ali premikanja datotek ali map. - - (unknown) (neznano) @@ -877,27 +1002,22 @@ v Q3Wizard - &Cancel &Prekliči - < &Back < Na&zaj - &Next > &Naprej > - &Finish &Končaj - &Help &Pomoč @@ -905,44 +1025,30 @@ v QAbstractSocket - - - - Host not found Ni moč najti gostitelja - - - Connection refused Povezava je zavrnjena - Connection timed out Čas za povezavo je potekel - - - Operation on socket is not supported Dejanje na vtičnici ni podprto - Socket operation timed out Čas za dejanje na vtičnici je potekel - Socket is not connected Vtičnica ni povezana. - Network unreachable Omrežje ni dosegljivo @@ -950,17 +1056,14 @@ v QAbstractSpinBox - &Step up Korak &gor - Step &down Korak &dol - &Select All Izberi &vse @@ -968,7 +1071,6 @@ v QAccessibleButton - Press Pritisni @@ -976,28 +1078,23 @@ v QApplication - Activate Aktiviraj - Executable '%1' requires Qt %2, found Qt %3. Izvršljiva datoteka »%1« potrebuje Qt %2, najden pa je bil Qt %3. - Incompatible Qt Library Error Napaka nezdružljivosti knjižnice Qt - QT_LAYOUT_DIRECTION 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. LTR - Activates the program's main window Aktivira glavno okno programa @@ -1005,22 +1102,18 @@ v QAxSelect - Select ActiveX Control Izberite kontrolnik ActiveX - OK V redu - &Cancel &Prekliči - COM &Object: &Objekt COM: @@ -1028,17 +1121,14 @@ v QCheckBox - Uncheck Odznači - Check Označi - Toggle Preklopi @@ -1046,57 +1136,46 @@ v QColorDialog - Hu&e: &Odtenek: - &Sat: &Zasičenost: - &Val: &Vrednost: - &Red: &Rdeča: - &Green: &Zelena: - Bl&ue: &Modra: - A&lpha channel: Kanal &alfa: - Select Color Izberite barvo - &Basic colors &Osnovne barve - &Custom colors Barve po &meri - &Add to Custom Colors &Dodaj lastnim barvam @@ -1104,23 +1183,18 @@ v QComboBox - - Open Odpri - False Napačno - True Pravilno - Close Zapri @@ -1128,43 +1202,36 @@ v QCoreApplication - %1: key is empty QSystemSemaphore %1: ključ je prazen - %1: unable to make key QSystemSemaphore %1: ni moč ustvariti ključa - %1: ftok failed QSystemSemaphore %1: funkcija ftok ni uspela - %1: already exists QSystemSemaphore %1: že obstaja - %1: does not exist QSystemSemaphore %1: ne obstaja - %1: out of resources QSystemSemaphore %1: zmanjkalo je virov - %1: unknown error %2 QSystemSemaphore %1: neznana napaka %2 @@ -1173,22 +1240,18 @@ v QDB2Driver - Unable to connect Ni moč vzpostaviti povezave - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije - Unable to set autocommit Ni moč nastaviti samodejnega udejanjanja @@ -1196,33 +1259,26 @@ v QDB2Result - - Unable to execute statement Ni moč izvesti izjave - Unable to prepare statement Ni moč pripraviti izjave - Unable to bind variable Ni moč prikleniti spremenljivke - Unable to fetch record %1 Ni moč pridobiti zapisa %1 - Unable to fetch next Ni moč pridobiti sledečega - Unable to fetch first Ni moč pridobiti prvega @@ -1230,226 +1286,1060 @@ v QDateTimeEdit - AM dop. - am dop. - PM pop. - pm pop. - QDial + QDeclarativeAbstractAnimation - - QDial - QDial + Cannot animate non-existent property "%1" + Neobstoječe lastnosti »%1« ni moč animirati - - SpeedoMeter - SpeedoMeter + Cannot animate read-only property "%1" + Lastnosti »%1«, ki je samo za branje, ni moč animirati - - SliderHandle - SliderHandle + Animation is an abstract class + Animacija je abstrakten razred - QDialog - - - What's This? - Kaj je to? - + QDeclarativeAnchorAnimation - - Done - Opravljeno + Cannot set a duration of < 0 + Trajanja, ki je krajše od 0, ni moč nastaviti - QDialogButtonBox + QDeclarativeAnchors - - - - OK - V redu + Possible anchor loop detected on fill. + Ob zapolnjevanju je bila zaznana možna zanka sidra. - - &OK - &V redu + Possible anchor loop detected on centerIn. + Ob usrediščanju je bila zaznana možna zanka sidra. - - &Save - &Shrani + Cannot anchor to an item that isn't a parent or sibling. + Na objekt, ki ni nadrejen ali enakovreden, se ni moč zasidrati. - - Save - Shrani + Possible anchor loop detected on vertical anchor. + Ob navpičnem sidru je bila zaznana možna zanka sidra. - - Open - Odpri + Possible anchor loop detected on horizontal anchor. + Ob vodoravnem sidru je bila zaznana možna zanka sidra. - - &Cancel - &Prekliči + Cannot specify left, right, and hcenter anchors. + Levih, desnih in vodoravno sredinskih sider ni moč določiti. - - Cancel - Prekliči + Cannot anchor to a null item. + Na ničelni objekt se ni moč zasidrati. - - &Close - &Zapri + Cannot anchor a horizontal edge to a vertical edge. + Vodoravnega roba ni moč zasidrati na navpični rob. - - Close - Zapri + Cannot anchor item to self. + Objekta ni moč zasidrati samega nase. - - Apply - Uveljavi + Cannot specify top, bottom, and vcenter anchors. + Vrhnjih, spodnjih in navpično sredinskih sider ni moč določiti. - - Reset - Ponastavi + Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. + Sidra na osnovnici ni moč uporabiti skupaj z vrhnjimi, spodnjimi ali navpično sredinskimi sidri. - - Help - Pomoč + Cannot anchor a vertical edge to a horizontal edge. + Navpičnega roba ni moč zasidrati na vodoravni rob. + + + QDeclarativeAnimatedImage - - Don't Save - Ne shrani + Qt was built without support for QMovie + Qt je bil zgrajen brez podpore za QMovie + + + QDeclarativeBehavior - - Discard - Zavrzi + Cannot change the animation assigned to a Behavior. + Animacije, ki je prirejena obnašanju, ni moč spremeniti. + + + QDeclarativeBinding - - &Yes - &Da + Binding loop detected for property "%1" + Za lastnost »%1« je bila zaznana zanka vezave + + + QDeclarativeCompiledBindings - - Yes to &All - Da za &vse + Binding loop detected for property "%1" + Za lastnost »%1« je bila zaznana zanka vezave + + + QDeclarativeCompiler - - &No - &Ne + Invalid property assignment: "%1" is a read-only property + Neveljavna prireditev lastnosti: »%1« je lastnost, ki je samo za branje - - N&o to All - N&e za vse + Invalid property assignment: unknown enumeration + Neveljavna prireditev lastnosti: neznano oštevilčenje - - Save All - Shrani vse + Invalid property assignment: string expected + Neveljavna prireditev lastnosti: pričakovan je niz - - Abort - Prekini + Invalid property assignment: url expected + Neveljavna prireditev lastnosti: pričakovan je URL - - Retry - Poskusi znova + Invalid property assignment: unsigned int expected + Neveljavna prireditev lastnosti: pričakovano je nepredznačeno celo število - - Ignore - Spreglej + Invalid property assignment: int expected + Neveljavna prireditev lastnosti: pričakovano je celo število - - Restore Defaults - Obnovi privzete vrednosti + Invalid property assignment: number expected + Neveljavna prireditev lastnosti: pričakovano je število - - Close without Saving - Zapri brez shranjevanja + Invalid property assignment: color expected + Neveljavna prireditev lastnosti: pričakovana je barva - - - QDirModel - - Name - Ime + Invalid property assignment: date expected + Neveljavna prireditev lastnosti: pričakovan je datum - - Size - Velikost + Invalid property assignment: time expected + Neveljavna prireditev lastnosti: pričakovan je čas - - Kind - Match OS X Finder - Vrste + Invalid property assignment: datetime expected + Neveljavna prireditev lastnosti: pričakovana sta datum in čas - - Type - All other platforms - Vrsta + Invalid property assignment: point expected + Neveljavna prireditev lastnosti: pričakovana je točka - - Date Modified - Datum spremembe + Invalid property assignment: size expected + Neveljavna prireditev lastnosti: pričakovana je velikost - - - QDockWidget - - Close - Zapri + Invalid property assignment: rect expected + Neveljavna prireditev lastnosti: pričakovan je pravokotnik - - Dock - Zasidraj + Invalid property assignment: boolean expected + Neveljavna prireditev lastnosti: pričakovana je logična vrednost + + + Invalid property assignment: 3D vector expected + Neveljavna prireditev lastnosti: pričakovan je 3D vektor + + + Invalid property assignment: unsupported type "%1" + Neveljavna prireditev lastnosti: nepodprta vrsta »%1« + + + Element is not creatable. + Elementa ni moč ustvariti. + + + Component elements may not contain properties other than id + Elementi komponent ne smejo vsebovati drugih lastnosti kot ID + + + Invalid component id specification + Neveljavno določen ID komponente + + + id is not unique + ID ni edinstven + + + Invalid component body specification + Neveljavno določeno telo komponente + + + Component objects cannot declare new properties. + Objekti komponent ne morejo deklarirati novih lastnosti. + + + Component objects cannot declare new signals. + Objekti komponent ne morejo deklarirati novih signalov. + + + Component objects cannot declare new functions. + Objekti komponent ne morejo deklarirati novih funkcij. + + + Cannot create empty component specification + Prazne specifikacije komponente ni moč ustvariti + + + Incorrectly specified signal assignment + Napačno določena prireditev signalu + + + Cannot assign a value to a signal (expecting a script to be run) + Signalu ni moč prirediti vrednosti (pričakovan je skript, ki bo zagnan) + + + Empty signal assignment + Prazna prireditev signalu + + + Empty property assignment + Prazna prireditev lastnosti + + + Attached properties cannot be used here + Pripete lastnosti tu ne morejo biti uporabljene + + + Non-existent attached object + Neobstoječ pripet objekt + + + Invalid attached object assignment + Neveljavna prireditev pripetega objekta + + + Cannot assign to non-existent default property + Neobstoječi privzeti lastnosti ni moč prirediti + + + Cannot assign to non-existent property "%1" + Neobstoječi lastnosti »%1« ni moč prirediti + + + Invalid use of namespace + Napačna raba imenskega prostora + + + Not an attached property name + Ni ime pripete lastnosti + + + Invalid use of id property + Napačna raba lastnosti ID + + + Property has already been assigned a value + Lastnosti je že bila prirejena vrednost + + + Invalid grouped property access + Neveljaven dostop do skupinske lastnosti + + + Cannot assign a value directly to a grouped property + Skupinski lastnosti ni moč neposredno prirediti vrednosti + + + Invalid property use + Neveljavna raba lastnosti + + + Property assignment expected + Pričakovana je prireditev lastnosti + + + Single property assignment expected + Pričakovana je enojna prireditev lastnosti + + + Unexpected object assignment + Nepričakovana prireditev objekta + + + Cannot assign object to list + Objekta ni moč prirediti seznamu + + + Can only assign one binding to lists + Seznamom je moč prirediti le eno vezavo + + + Cannot assign primitives to lists + Seznamom ni moč prirediti osnovnih tipov + + + Cannot assign multiple values to a script property + + + + Invalid property assignment: script expected + Neveljavna prireditev lastnosti: pričakovan je skript + + + Cannot assign object to property + Objekta ni moč prirediti lastnosti + + + "%1" cannot operate on "%2" + »%1« ne more delovati na »%2« + + + Duplicate default property + Podvojena privzeta lastnost + + + Duplicate property name + Podvojeno ime lastnosti + + + Property names cannot begin with an upper case letter + Imena lastnosti se ne smejo začeti z veliko črko + + + Illegal property name + Neveljavno ime lastnosti + + + Duplicate signal name + Podvojeno ime signala + + + Signal names cannot begin with an upper case letter + Imena signalov se ne smejo začeti z veliko črko + + + Illegal signal name + Neveljavno ime signala + + + Duplicate method name + Podvojeno ime metode + + + Method names cannot begin with an upper case letter + Imena metod se ne smejo začeti z veliko črko + + + Illegal method name + Neveljavno ime metode + + + Property value set multiple times + Vrednost lastnosti je bila nastavljena večkrat + + + Invalid property nesting + Neveljavno gnezdenje lastnosti + + + Cannot override FINAL property + Lastnosti FINAL ni moč povoziti + + + Invalid property type + Neveljavna vrsta lastnosti + + + Invalid empty ID + Neveljaven prazen ID + + + IDs cannot start with an uppercase letter + ID-ji se ne smejo začeti z veliko črko + + + IDs must start with a letter or underscore + ID-ji se morajo začeti s črko ali podčrtajem + + + IDs must contain only letters, numbers, and underscores + ID-ji lahko vsebujejo le črke, števke in podčrtaje + + + ID illegally masks global JavaScript property + ID neveljavno zakriva globalno lastnost JavaScripta + + + No property alias location + Brez lokacije aliasa lastnosti + + + Invalid alias location + Neveljavna lokacija aliasa + + + Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> + Neveljavna referenca aliasa. Referenca aliasa mora biti določena kot <id> ali <id>.<lastnost> + + + Invalid alias reference. Unable to find id "%1" + Neveljavna referenca aliasa. ID-ja »%1« ni moč najti + + + + QDeclarativeComponent + + Invalid empty URL + Neveljaven prazen URL + + + + QDeclarativeCompositeTypeManager + + Resource %1 unavailable + Vir %1 ni na voljo + + + Namespace %1 cannot be used as a type + Imenskega prostora %1 ni moč uporabiti kot vrste + + + %1 %2 + %1 % {1 %2?} + + + Type %1 unavailable + Vrsta %1 ni na voljo + + + + QDeclarativeConnections + + Cannot assign to non-existent property "%1" + Neobstoječi lastnosti »%1« ni moč prirediti + + + Connections: nested objects not allowed + Povezave: gnezdeni objekti niso dovoljeni + + + Connections: syntax error + Povezave: napaka v skladnji + + + Connections: script expected + Povezave: pričakovan je skript + + + + QDeclarativeEngine + + executeSql called outside transaction() + executeSql je bil klican izven transaction() + + + Read-only Transaction + Transakcija samo za branje + + + Version mismatch: expected %1, found %2 + Neujemanje različic: pričakovana %1, najdena %2 + + + SQL transaction failed + Transakcija SQL ni uspela + + + transaction: missing callback + transaction: manjka povratni klic + + + SQL: database version mismatch + SQL: neujemanje različice podatkovne zbirke + + + + QDeclarativeFlipable + + front is a write-once property + front je lastnost, ki se jo lahko zapiše samo enkrat + + + back is a write-once property + back je lastnost, ki se jo lahko zapiše samo enkrat + + + + QDeclarativeImportDatabase + + module "%1" definition "%2" not readable + definicije »%2« modula »%1« ni moč brati + + + plugin cannot be loaded for module "%1": %2 + vstavka za modul »%1« ni moč naložiti: %2 + + + module "%1" plugin "%2" not found + vstavek »%2« modula »%1« ni bil najden + + + module "%1" version %2.%3 is not installed + modul »%1« različice %2.%3 ni nameščen + + + module "%1" is not installed + modul »%1« ni nameščen + + + "%1": no such directory + »%1«: mapa ne obstaja + + + import "%1" has no qmldir and no namespace + + + + - %1 is not a namespace + – %1 ni imenski prostor + + + - nested namespaces not allowed + – gnezdeni imenski prostori niso dovoljeni + + + local directory + krajevna mapa + + + is ambiguous. Found in %1 and in %2 + je dvoumno. Najdeno v %1 in %2 + + + is ambiguous. Found in %1 in version %2.%3 and %4.%5 + je dvoumno. Najdeno v %1 v različicah %2.%3 in %4.%5 + + + is instantiated recursively + je instanciran rekurzivno + + + is not a type + ni vrsta + + + + QDeclarativeKeyNavigationAttached + + KeyNavigation is only available via attached properties + KeyNavigation je na voljo samo s pripetimi lastnostmi + + + + QDeclarativeKeysAttached + + Keys is only available via attached properties + Keys je na voljo samo s pripetimi lastnostmi + + + + QDeclarativeListModel + + remove: index %1 out of range + remove: indeks %1 je izven obsega + + + insert: value is not an object + insert: vrednost ni objekt + + + insert: index %1 out of range + insert: indeks %1 je izven obsega + + + move: out of range + move: izven obsega + + + append: value is not an object + append: vrednost ni objekt + + + set: value is not an object + set: vrednost ni objekt + + + set: index %1 out of range + set: indeks %1 je izven obsega + + + ListElement: cannot contain nested elements + + + + ListElement: cannot use reserved "id" property + ListElement: ne more uporabiti rezervirane lastnosti »id« + + + ListElement: cannot use script for property value + ListElement: ne more uporabiti skripta za vrednost lastnosti + + + ListModel: undefined property '%1' + ListModel: nedoločena lastnost »%1« + + + + QDeclarativeLoader + + Loader does not support loading non-visual elements. + Loader ne podpira nalaganja elementov, ki niso vidni. + + + + QDeclarativeParentAnimation + + Unable to preserve appearance under complex transform + + + + Unable to preserve appearance under non-uniform scale + + + + Unable to preserve appearance under scale of 0 + + + + + QDeclarativeParentChange + + Unable to preserve appearance under complex transform + + + + Unable to preserve appearance under non-uniform scale + + + + Unable to preserve appearance under scale of 0 + + + + + QDeclarativeParser + + Illegal unicode escape sequence + Neveljavno ubežno zaporedje Unicode + + + Illegal character + Neveljaven znak + + + Unclosed string at end of line + Nezaprt niz na koncu vrstice + + + Illegal escape squence + Neveljavno ubežno zaporedje + + + Unclosed comment at end of file + Nezaprt komentar na koncu datoteke + + + Illegal syntax for exponential number + Neveljavna skladnja za eksponentno število + + + Identifier cannot start with numeric literal + + + + Unterminated regular expression literal + + + + Invalid regular expression flag '%0' + Neveljavna zastavica »%0« regularnega izraza + + + Unterminated regular expression backslash sequence + + + + Unterminated regular expression class + + + + Syntax error + Skladenjska napaka + + + Unexpected token `%1' + Nepričakovan žeton »%1« + + + Expected token `%1' + Pričakovan žeton »%1« + + + Property value set multiple times + Vrednost lastnosti je bila nastavljena večkrat + + + Expected type name + + + + Invalid import qualifier ID + + + + Reserved name "Qt" cannot be used as an qualifier + + + + Script import qualifiers must be unique. + + + + Script import requires a qualifier + + + + Library import requires a version + + + + Expected parameter type + + + + Invalid property type modifier + + + + Unexpected property type modifier + + + + Expected property type + + + + Readonly not yet supported + + + + JavaScript declaration outside Script element + + + + + QDeclarativePauseAnimation + + Cannot set a duration of < 0 + Trajanja, ki je krajše od 0, ni moč nastaviti + + + + QDeclarativePixmap + + Error decoding: %1: %2 + + + + Failed to get image from provider: %1 + + + + Cannot open: %1 + Ni moč odpreti %1: %2 + + + + QDeclarativePropertyAnimation + + Cannot set a duration of < 0 + Trajanja, ki je krajše od 0, ni moč nastaviti + + + + QDeclarativePropertyChanges + + PropertyChanges does not support creating state-specific objects. + + + + Cannot assign to non-existent property "%1" + Neobstoječi lastnosti »%1« ni moč prirediti + + + Cannot assign to read-only property "%1" + + + + + QDeclarativeTextInput + + Could not load cursor delegate + + + + Could not instantiate cursor delegate + + + + + QDeclarativeVME + + Unable to create object of type %1 + + + + Cannot assign value %1 to property %2 + + + + Cannot assign object type %1 with no default method + + + + Cannot connect mismatched signal/slot %1 %vs. %2 + + + + Cannot assign an object to signal property %1 + + + + Cannot assign object to list + Objekta ni moč prirediti seznamu + + + Cannot assign object to interface property + + + + Unable to create attached object + + + + Cannot set properties on %1 as it is null + + + + + QDeclarativeVisualDataModel + + Delegate component must be Item type. + + + + + QDeclarativeXmlListModel + + Qt was built without support for xmlpatterns + + + + + QDeclarativeXmlListModelRole + + An XmlRole query must not start with '/' + + + + + QDeclarativeXmlRoleList + + An XmlListModel query must start with '/' or "//" + + + + + QDial + + QDial + QDial + + + SpeedoMeter + SpeedoMeter + + + SliderHandle + SliderHandle + + + + QDialog + + What's This? + Kaj je to? + + + Done + Opravljeno + + + + QDialogButtonBox + + OK + V redu + + + &OK + &V redu + + + &Save + &Shrani + + + Save + Shrani + + + Open + Odpri + + + &Cancel + &Prekliči + + + Cancel + Prekliči + + + &Close + &Zapri + + + Close + Zapri + + + Apply + Uveljavi + + + Reset + Ponastavi + + + Help + Pomoč + + + Don't Save + Ne shrani + + + Discard + Zavrzi + + + &Yes + &Da + + + Yes to &All + Da za &vse + + + &No + &Ne + + + N&o to All + N&e za vse + + + Save All + Shrani vse + + + Abort + Prekini + + + Retry + Poskusi znova + + + Ignore + Spreglej + + + Restore Defaults + Obnovi privzete vrednosti + + + Close without Saving + Zapri brez shranjevanja + + + + QDirModel + + Name + Ime + + + Size + Velikost + + + Kind + Match OS X Finder + Vrste + + + Type + All other platforms + Vrsta + + + Date Modified + Datum spremembe + + + + QDockWidget + + Close + Zapri + + + Dock + Zasidraj - Float Naj lebdi @@ -1457,12 +2347,10 @@ v QDoubleSpinBox - More Več - Less Manj @@ -1470,27 +2358,22 @@ v QErrorMessage - Debug Message: Sporočilo razhroščevanja: - Warning: Opozorilo: - Fatal Error: Usodna napaka: - &Show this message again &To sporočilo naslednjič spet prikaži - &OK &V redu @@ -1498,38 +2381,30 @@ v QFile - - Destination file exists Ciljna datoteka obstaja - Will not rename sequential file using block copy Sekvenčna datoteka ne bo preimenovana z uporabo kopiranja blokov - Cannot remove source file Ni moč odstraniti izvorne datoteke - Cannot open %1 for input Ni moč odpreti %1 za vhod - Cannot open for output Ni moč odpreti za izhod - Failure to write block Neuspeh pri zapisovanju bloka - Cannot create %1 for output Ni moč ustvariti %1 za izhod @@ -1537,43 +2412,32 @@ v QFileDialog - - All Files (*) Vse datoteke (*) - Directories Mape - - - &Open &Odpri - - &Save &Shrani - Open Odpri - %1 already exists. Do you want to replace it? %1 že obstaja. Ali jo želite nadomestiti? - %1 File not found. Please verify the correct file name was given. @@ -1582,64 +2446,46 @@ Datoteka ni bila najdena. Preverite, ali je bilo podano pravilno ime datoteke. - My Computer Moj računalnik - &Rename Pre&imenuj - &Delete &Izbriši - Show &hidden files Prikaži &skrite datoteke - - Back Nazaj - - Parent Directory Matična mapa - - List View Prikaz seznama - - Detail View Prikaz podrobnosti - - Files of type: Datoteke vrste: - - Directory: Mapa: - - %1 Directory not found. Please verify the correct directory name was given. @@ -1648,475 +2494,399 @@ Mapa ni bila najdena. Preverite, ali je bilo podano pravilno ime mape. - '%1' is write protected. Do you want to delete it anyway? »%1« je zaščitena pred pisanjem. Ali jo kljub temu želite izbrisati? - Are sure you want to delete '%1'? Ali res želite izbrisati »%1«? - Could not delete directory. Ni bilo moč izbrisati mape. - Recent Places Nedavna mesta - All Files (*.*) Vse datoteke (*.*) - Save As Shrani kot - Drive Pogon - - File Datoteka - File Folder Match Windows Explorer Mapa z datotekami - Folder All other platforms Mapa - Alias Mac OS X Finder Drugo ime - Shortcut All other platforms Bližnjica - Unknown Neznano - Find Directory Najdi mapo - Show Prikaži - - Forward Naprej - New Folder Nova mapa - &New Folder &Nova mapa - - &Choose Iz&berite - Remove Odstrani - - File &name: Ime &datoteke: - - Look in: Išči v: - - Create New Folder Ustvari novo mapo + + Go back + Vrni se nazaj + + + Go forward + Napreduj naprej + + + Go to the parent directory + + + + Create a New Folder + + + + Change to list view mode + + + + Change to detail view mode + + QFileSystemModel - Invalid filename Napačno ime datoteke - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. <b>Imena »%1« ne morete uporabiti.</b><p>Poskusite z drugim imenom, ki vsebuje manj znakov ali pa ne vsebuje ločil. - Name Ime - Size Velikost - Kind Match OS X Finder Vrste - Type All other platforms Vrsta - Date Modified Datum spremembe - My Computer Moj računalnik - Computer Računalnik - - %1 TB %1 TiB - - %1 GB %1 GiB - - %1 MB %1 MiB - - %1 KB %1 KiB - - %1 bytes %1 B + + %1 byte(s) + + QFontDatabase - - Normal Normalno - - - Bold Polkrepko - - Demi Bold - - - Black - Črni + Črna - Demi - - Light Lahko - - Italic Ležeče - - Oblique Nagnjeno - Any Katerikoli - Latin Latinska - Greek Grška - Cyrillic Cirilica - Armenian Armenska - Hebrew Hebrejska - Arabic Arabska - Syriac Sirijska - Thaana Thaana - Devanagari Devanagari - Bengali Bengalska - Gurmukhi Gurmukhi - Gujarati Gujarati - Oriya - oriya + Oriya - Tamil Tamilska - Telugu Teluška - Kannada - kannada + Kannada - Malayalam - malayalam + Malayalam - Sinhala - Sinhala + Sinhala - Thai Tajska - Lao Laoška - Tibetan Tibetanska - Myanmar Mjanmarska - Georgian Gruzijska - Khmer Kmerska - Simplified Chinese Poenostavljena kitajska - Traditional Chinese Tradicionalna kitajska - Japanese Japonska - Korean Korejska - Vietnamese Vietnamska - Symbol Simbol - Ogham Oghamska - Runic Runska + + N'Ko + + QFontDialog - &Font &Pisava - Font st&yle &Slog pisave - &Size &Velikost - Effects Učinki - Stri&keout P&rečrtaj - &Underline Po&dčrtaj - Sample Vzorec - Wr&iting System S&istem pisanja - - Select Font Izberite pisavo @@ -2124,145 +2894,104 @@ Ali jo kljub temu želite izbrisati? QFtp - - Not connected Brez povezave - - Host %1 not found Gostitelj %1 ni bil najden - - Connection refused to host %1 Povezava z gostiteljem %1 je bila zavrnjena - Connection timed out to host %1 Čas za povezavo z gostiteljem %1 je potekel - - - Connected to host %1 Povezan z gostiteljem %1 - - Connection refused for data connection Podatkovna povezava je bila zavrnjena - - - - Unknown error Neznana napaka - - Connecting to host failed: %1 Povezovanje z gostiteljem %1 ni uspelo: %1 - - Login failed: %1 Prijava ni uspela: %1 - - Listing directory failed: %1 Izpis seznama map ni uspel: %1 - - Changing directory failed: %1 Spreminjanje mape ni uspelo: %1 - - Downloading file failed: %1 Prejemanje datoteke ni uspelo: %1 - - Uploading file failed: %1 Pošiljanje datoteke ni uspelo: %1 - - Removing file failed: %1 Odstranjevanje datoteke ni uspelo: %1 - - Creating directory failed: %1 Ustvarjanje mape ni uspelo: %1 - - Removing directory failed: %1 Odstranjevanje mape ni uspelo: %1 - - - Connection closed Povezava je bila prekinjena - Host %1 found Gostitelj %1 je bil najden - Connection to %1 closed Povezava s %1 je bila prekinjena - Host found Gostitelj je bil najden - Connected to host Povezan z gostiteljem @@ -2270,43 +2999,33 @@ Ali jo kljub temu želite izbrisati? QHostInfo - Unknown error Neznana napaka + + No host name given + Podano ni bilo nobeno ime gostitelja + QHostInfoAgent - - - - Host not found Ni moč najti gostitelja - - - - Unknown address type Neznana vrsta naslova - - - Unknown error Neznana napaka - No host name given Podano ni bilo nobeno ime gostitelja - Invalid hostname Neveljavno ime gostitelja @@ -2314,155 +3033,110 @@ Ali jo kljub temu želite izbrisati? QHttp - - - - Unknown error Neznana napaka - - Request aborted Zahteva prekinjena - - No server set to connect to Strežnik za povezavo ni nastavljen - - Wrong content length Napačna dolžina vsebine - - Server closed connection unexpectedly Strežnik je nepričakovano prekinil povezavo - Unknown authentication method Neznan način overjanja - Error writing response to device Napaka pri pisanju odziva na napravo - - Connection refused Povezava je zavrnjena - - - Host %1 not found Gostitelj %1 ni bil najden - - - - HTTP request failed Zahtevek HTTP ni uspel - - Invalid HTTP response header Neveljavna glava odgovora HTTP - - - - Invalid HTTP chunked body Neveljavno razdeljeno telo HTTP - Host %1 found Gostitelj %1 je bil najden - Connected to host %1 Povezan z gostiteljem %1 - Connection to %1 closed Povezava s %1 je bila prekinjena - Host found Gostitelj je bil najden - Connected to host Povezan z gostiteljem - - Connection closed Povezava je bila prekinjena - Proxy authentication required Potrebna je overitev pri posredniku - Authentication required Potrebna je overitev - Connection refused (or timed out) Povezava je bila zavrnjena (ali pa je potekel čas) - Proxy requires authentication Posrednik zahteva overitev - Host requires authentication Gostitelj zahteva overitev - Data corrupted Podatki so okvarjeni - Unknown protocol specified Naveden je bil neznan protokol - SSL handshake failed Rokovanje SSL ni uspelo - HTTPS connection requested but SSL support not compiled in Zahtevana je bila povezava HTTPS, a podpora za SSL ni bila vgrajena @@ -2470,47 +3144,38 @@ Ali jo kljub temu želite izbrisati? QHttpSocketEngine - Did not receive HTTP response from proxy Od posrednika ni bil prejet odgovor HTTP - Error parsing authentication request from proxy Napaka pri razčlenjevanju overitvenega zahtevka od posrednika - Authentication required Potrebna je overitev - Proxy denied connection Posrednik je zavrnil povezavo - Error communicating with HTTP proxy Napaka pri komunikaciji s posrednikom HTTP - Proxy server not found Posredniški strežnik ni bil najden - Proxy connection refused Povezava s posrednikom je bila zavrnjena - Proxy server connection timed out Čas za povezavo s posredniškim strežnikom je potekel - Proxy connection closed prematurely Povezava s posrednikom je bila prekinjena predčasno @@ -2518,22 +3183,18 @@ Ali jo kljub temu želite izbrisati? QIBaseDriver - Error opening database Napaka pri odpiranju podatkovne zbirke - Could not start transaction Ni bilo moč začeti transakcije - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije @@ -2541,89 +3202,70 @@ Ali jo kljub temu želite izbrisati? QIBaseResult - Unable to create BLOB Ni moč ustvariti BLOB-a - Unable to write BLOB Ni moč zapisati BLOB-a - Unable to open BLOB Ni moč odpreti BLOB-a - Unable to read BLOB Ni moč prebrati BLOB-a - - Could not find array Ni bilo moč najti polja - Could not get array data Ni bilo moč pridobiti podatkov iz polja - Could not get query info Ni bilo moč pridobiti podatkov o poizvedbi - Could not start transaction Ni bilo moč začeti transakcije - Unable to commit transaction Ni moč udejaniti transakcije - Could not allocate statement Ni bilo moč dodeliti prostora za izjavo - Could not prepare statement Ni bilo moč pripraviti izjave - - Could not describe input statement Ni bilo moč opisati vhodne izjave - Could not describe statement Ni bilo moč opisati izjave - Unable to close statement Ni moč zaključiti izjave - Unable to execute query Ni moč izvesti poizvedbe - Could not fetch next item Ni bilo moč pridobiti sledeče postavke - Could not get statement info Ni bilo moč pridobiti podatkov o izjavi @@ -2631,27 +3273,22 @@ Ali jo kljub temu želite izbrisati? QIODevice - Permission denied Nimate dovoljenja - Too many open files Preveč odprtih datotek - No such file or directory Ta datoteka ali mapa ne obstaja - No space left on device Ni prostora na napravi - Unknown error Neznana napaka @@ -2659,32 +3296,26 @@ Ali jo kljub temu želite izbrisati? QInputContext - XIM XIM - FEP FEP - XIM input method Način za vnašanje XIM - Windows input method Način za vnašanje Windows - Mac OS X input method Način za vnašanje Mac OS X - S60 FEP input method Način za vnašanje S60 FEP @@ -2692,7 +3323,6 @@ Ali jo kljub temu želite izbrisati? QInputDialog - Enter a value: Vnesite vrednost: @@ -2700,66 +3330,50 @@ Ali jo kljub temu želite izbrisati? QLibrary - Could not mmap '%1': %2 Ni bilo moč izvesti funkcije mmap za »%1«: %2 - Plugin verification data mismatch in '%1' Neujemanje podatkov za potrjevanje vstavkov v »%1« - Could not unmap '%1': %2 Ni bilo moč izvesti funkcije unmap za »%1«: %2 - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] Vstavek »%1« uporablja nezdružljivo knjižnico Qt. (%2.%3.%4) [%5] - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" Vstavek »%1« uporablja nezdružljivo knjižnico Qt. Pričakovan je bil ključ gradnje »%2«, dobljen je bil »%3« - Unknown error Neznana napaka - - The shared library was not found. Deljena knjižnica ni bila najdena. - The file '%1' is not a valid Qt plugin. Datoteka »%1« ni veljaven vstavek Qt. - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) Vstavek »%1« uporablja nezdružljivo knjižnico Qt. (Ni moč mešati knjižnic za razhroščevanje in izdajo.) - - Cannot load library %1: %2 Ni moč naložiti knjižnice %1: %2 - - Cannot unload library %1: %2 Ni moč odstraniti knjižnice %1: %2 - - Cannot resolve symbol "%1" in %2: %3 Ni moč razrešiti simbola »%1« v %2: %3 @@ -2767,37 +3381,30 @@ Ali jo kljub temu želite izbrisati? QLineEdit - &Undo &Razveljavi - &Redo &Uveljavi - Cu&t &Izreži - &Copy S&kopiraj - &Paste Pri&lepi - Delete Izbriši - Select All Izberi vse @@ -2805,23 +3412,18 @@ Ali jo kljub temu želite izbrisati? QLocalServer - - %1: Name error %1: napaka v imenu - %1: Permission denied %1: nimate dovoljenja - %1: Address in use %1: naslov je že v uporabi - %1: Unknown error %2 %1: neznana napaka %2 @@ -2829,70 +3431,46 @@ Ali jo kljub temu želite izbrisati? QLocalSocket - - %1: Connection refused %1: povezava je bila zavrnjena - - %1: Remote closed %1: oddaljeni je prekinil - - - - %1: Invalid name %1: neveljavno ime - - %1: Socket access error %1: napaka pri dostopu do vtičnice - - %1: Socket resource error %1: napaka vira vtičnice - - %1: Socket operation timed out %1: čas za dejanje na vtičnici je potekel - - %1: Datagram too large %1: datagram je prevelik - - - %1: Connection error %1: napaka povezave - - %1: The socket operation is not supported %1: dejanje na vtičnici ni podprto - %1: Unknown error %1: neznana napaka - - %1: Unknown error %2 %1: neznana napaka %2 @@ -2900,27 +3478,22 @@ Ali jo kljub temu želite izbrisati? QMYSQLDriver - Unable to open database ' Ni moč odpreti podatkovne zbirke » - Unable to connect Ni moč vzpostaviti povezave - Unable to begin transaction Ni moč začeti transakcije - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije @@ -2928,59 +3501,46 @@ Ali jo kljub temu želite izbrisati? QMYSQLResult - Unable to fetch data Ni moč pridobiti podatkov - Unable to execute query Ni moč izvesti poizvedbe - Unable to store result Ni moč shraniti rezultata - - Unable to prepare statement Ni moč pripraviti izjave - Unable to reset statement Ni moč ponastaviti izjave - Unable to bind value Ni moč prikleniti vrednosti - Unable to execute statement Ni moč izvesti izjave - - Unable to bind outvalues Ni moč prikleniti izhodnih vrednosti - Unable to store statement results Ni moč shraniti rezultatov izjave - Unable to execute next query Ni moč izvesti sledeče poizvedbe - Unable to store next result Ni moč shraniti sledečega rezultata @@ -2988,7 +3548,6 @@ Ali jo kljub temu želite izbrisati? QMdiArea - (Untitled) (neimenovano) @@ -2996,92 +3555,74 @@ Ali jo kljub temu želite izbrisati? QMdiSubWindow - %1 - [%2] %1 - [%2] - Close Zapri - Minimize Pomanjšaj - Restore Down Obnovi navzdol - &Restore &Obnovi - &Move &Premakni - &Size &Velikost - Mi&nimize Po&manjšaj - Ma&ximize &Razpni - Stay on &Top Ostani na &vrhu - &Close &Zapri - - [%1] - [%1] - Maximize Razpni - Unshade Razvij - Shade Zvij - Restore Obnovi - Help Pomoč - Menu Meni @@ -3089,21 +3630,14 @@ Ali jo kljub temu želite izbrisati? QMenu - - Close Zapri - - Open Odpri - - - Execute Izvedi @@ -3111,7 +3645,6 @@ Ali jo kljub temu želite izbrisati? QMenuBar - Actions Dejanja @@ -3119,40 +3652,30 @@ Ali jo kljub temu želite izbrisati? QMessageBox - Help Pomoč - - - - OK V redu - <h3>About Qt</h3><p>This program uses Qt version %1.</p> <h3>O Qt</h3><p>Ta program uporablja Qt različice %1.</p> - <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><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> <p>Qt je skupek gradnikov C++ za razvoj programov, ki tečejo na več platformah.</p><p>Qt omogoča isto kodo prenašati med platformami Linux, Mac&nbsp;OS&nbsp;X, Windows in vsemi večjimi variantami UNIX-a. Qt je na voljo tudi za vgrajene naprave in sicer kot Qt for Embedded Linux in Qt for Windows CE.</p><p>Qt je na voljo pod tremi možnimi licenčnimi pogoji, ki ustrezajo različnim željam uporabnikov.</p><p>Qt pod licenco GNU General Public License različice 3.0 (<a href="http://www.gnu.org/licenses/gpl-3.0.html">GPLv3.0</a>) je primeren za razvoj programov Qt, ki so povsem <a href="http://www.gnu.org/philosophy/free-sw.html">prosti in odprto-kodni</a>. S to licenco se uporabnikom programa zagotovijo vse pravice in svoboščine, kot jih je imel izdelovalec programa.</p><p>Qt pod licenco GNU Lesser General Public License različice 2.1 (<a href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPLv2.1</a>) omogoča tudi razvoj programov, ki uporabnikom ne zagotavljajo vseh pravic in svoboščin, kot jih je imel izdelovalec. Omogoča na primer tudi razvoj zaprto-kodnih programov.</p><p>Qt pod posebno komercialno licenco je namenjen razvoju lastniških in zaprto-kodnih programov, kjer izdelovalec z uporabniki noče deliti nič izvorne kode ter pravic in svoboščin, ali pa ne more ustreči pogojem licenc GPLv3.0 ali LGPLv2.1.</p><p>Za pregled licenčnih možnosti si oglejte spletno stran <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>.</p><p>Avtorske pravice © 2009 Nokia Corporation in/ali podružnice ter zunanji prispevajoči.</p><p>Qt je proizvod podjetja Nokia. Za dodatne podatke si oglejte <a href="http://qt.nokia.com/">qt.nokia.com</a>.</p> - About Qt O Qt - Show Details... Prikaži podrobnosti ... - Hide Details... Skrij podrobnosti ... @@ -3160,7 +3683,6 @@ Ali jo kljub temu želite izbrisati? QMultiInputContext - Select IM Izberite način vnašanja @@ -3168,12 +3690,10 @@ Ali jo kljub temu želite izbrisati? QMultiInputContextPlugin - Multiple input method switcher Orodje za preklop med načini vnašanja - Multiple input method switcher that uses the context menu of the text widgets Orodje za preklop med več načini vnašanja, ki uporablja priročni meni besedilnih gradnikov @@ -3181,132 +3701,106 @@ Ali jo kljub temu želite izbrisati? QNativeSocketEngine - The remote host closed the connection Oddaljen gostitelj je prekinil povezavo - Network operation timed out Čas za omrežni postopek je potekel - Out of resources Zmanjkalo je virov - Unsupported socket operation Nepodprto dejanje za vtičnico - Protocol type not supported Vrsta protokola ni podprta - Invalid socket descriptor Neveljaven opisnik vtičnice - Network unreachable Omrežje ni dosegljivo - Permission denied Nimate dovoljenja - Connection timed out Čas za povezavo je potekel - Connection refused Povezava je zavrnjena - The bound address is already in use Naslov za vezavo je že v uporabi - The address is not available Naslov ni na voljo - The address is protected Naslov je zaščiten - Unable to send a message Ni moč poslati sporočila - Unable to receive a message Ni moč prejeti sporočila - Unable to write Ni moč zapisovati - Network error Napaka v omrežju - Another socket is already listening on the same port Druga vtičnica že posluša na istih vratih - Unable to initialize non-blocking socket Ni moč inicializirati ne-blokirne vtičnice - Unable to initialize broadcast socket Ni moč inicializirati vtičnice za oddajanje - Attempt to use IPv6 socket on a platform with no IPv6 support Poskus uporabe vtičnice IPv6 na platformi brez podpore za IPv6 - Host unreachable Gostitelj ni dosegljiv - Datagram was too large to send Datagram je bil prevelik za pošiljanje - Operation on non-socket Dejanje na ne-vtičnici - Unknown error Neznana napaka - The proxy type is invalid for this operation Vrsta posrednika za to dejanje ni veljavna @@ -3314,43 +3808,55 @@ Ali jo kljub temu želite izbrisati? QNetworkAccessCacheBackend - Error opening %1 Napaka pri odpiranju %1 + QNetworkAccessDataBackend + + Operation not supported on %1 + Dejanje na %1 ni podprto + + + Invalid URI: %1 + Neveljaven URI: %1 + + + QNetworkAccessDebugPipeBackend - Write error writing to %1: %2 Napaka pri zapisovanju v %1: %2 + + Socket error on %1: %2 + Napaka vtičnice na %1: %2 + + + Remote host closed the connection prematurely on %1 + Oddaljen gostitelj je predčasno prekinil povezavo na %1 + QNetworkAccessFileBackend - Request for opening non-local file %1 Zahtevek za odprtje ne-krajevne datoteke %1 - Error opening %1: %2 Napaka pri odpiranju %1: %2 - Write error writing to %1: %2 Napaka pri zapisovanju v %1: %2 - Cannot open %1: Path is a directory Ni moč odpreti %1: pot je mapa - Read error reading from %1: %2 Napaka pri branju iz %1: %2 @@ -3358,27 +3864,22 @@ Ali jo kljub temu želite izbrisati? QNetworkAccessFtpBackend - No suitable proxy found Najden ni bil noben primeren posrednik - Cannot open %1: is a directory Ni moč odpreti %1: to je mapa - Logging in to %1 failed: authentication required Prijava v %1 ni uspela: potrebna je overitev - Error while downloading %1: %2 Napaka med prejemanjem %1: %2 - Error while uploading %1: %2 Napaka med pošiljanjem %1: %2 @@ -3386,58 +3887,105 @@ Ali jo kljub temu želite izbrisati? QNetworkAccessHttpBackend - No suitable proxy found Najden ni bil noben primeren posrednik + QNetworkAccessManager + + Network access is disabled. + + + + QNetworkReply - Error downloading %1 - server replied: %2 Napaka med prejemanjem %1 - strežnikov odgovor: %2 - Protocol "%1" is unknown Neznan protokol »%1« + + Network session error. + + + + Temporary network failure. + + QNetworkReplyImpl - - Operation canceled Postopek je bil preklican + QNetworkSession + + Invalid configuration. + + + + + QNetworkSessionPrivateImpl + + Roaming error + + + + Session aborted by user or system + + + + Unidentified Error + + + + Unknown session error. + + + + The session was aborted by the user or system. + + + + The requested operation is not supported by the system. + + + + The specified configuration cannot be used. + + + + Roaming was aborted or is not possible. + + + + QOCIDriver - Unable to logon Ni se moč prijaviti - Unable to initialize QOCIDriver Ni moč inicializirati - Unable to begin transaction Ni moč začeti transakcije - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije @@ -3445,44 +3993,34 @@ Ali jo kljub temu želite izbrisati? QOCIResult - - - Unable to bind column for batch execute Ni moč prikleniti stolpca za paketno izvršitev - Unable to execute batch statement Ni moč izvesti paketne izjave - Unable to goto next Ni se moč prestaviti na naslednjega - Unable to alloc statement Ni moč dodeliti izjave - Unable to prepare statement Ni moč pripraviti izjave - Unable to get statement type Ni moč pridobiti vrste izjave - Unable to bind value Ni moč prikleniti vrednosti - Unable to execute statement Ni moč izvesti izjave @@ -3490,32 +4028,26 @@ Ali jo kljub temu želite izbrisati? QODBCDriver - Unable to connect Ni moč vzpostaviti povezave - Unable to disable autocommit Ni moč onemogočiti samodejnega udejanjanja - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije - Unable to enable autocommit Ni moč omogočiti samodejnega udejanjanja - Unable to connect - Driver doesn't support all functionality required Ni se moč povezati - gonilnik ne podpira vseh potrebnih zmožnosti @@ -3523,51 +4055,38 @@ Ali jo kljub temu želite izbrisati? QODBCResult - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult::reset: ni moč nastaviti 'SQL_CURSOR_STATIC' kot lastnosti izjave. Preverite nastavitve gonilnika ODBC - - Unable to execute statement Ni moč izvesti izjave - Unable to fetch next Ni moč pridobiti sledečega - Unable to prepare statement Ni moč pripraviti izjave - Unable to bind variable Ni moč prikleniti spremenljivke - - - Unable to fetch last Ni moč pridobiti zadnjega - Unable to fetch Ni moč pridobiti - Unable to fetch first Ni moč pridobiti prvega - Unable to fetch previous Ni moč pridobiti predhodnega @@ -3575,46 +4094,25 @@ Ali jo kljub temu želite izbrisati? QObject - - Invalid hostname - Neveljavno ime gostitelja - - - - Operation not supported on %1 - Dejanje na %1 ni podprto - - - - Invalid URI: %1 - Neveljaven URI: %1 - - - - Socket error on %1: %2 - Napaka vtičnice na %1: %2 + PulseAudio Sound Server + Zvočni strežnik PulseAudio - - Remote host closed the connection prematurely on %1 - Oddaljen gostitelj je predčasno prekinil povezavo na %1 + "%1" duplicates a previous role name and will be disabled. + - - - No host name given - Podano ni bilo nobeno ime gostitelja + invalid query: "%1" + QPPDOptionsModel - Name Ime - Value Vrednost @@ -3622,32 +4120,26 @@ Ali jo kljub temu želite izbrisati? QPSQLDriver - Unable to connect Ni moč vzpostaviti povezave - Could not begin transaction Ni bilo moč začeti transakcije - Could not commit transaction Ni bilo moč udejaniti transakcije - Could not rollback transaction Ni bilo moč razveljaviti transakcije - Unable to subscribe Ni se moč naročiti - Unable to unsubscribe Ni moč preklicati naročnine @@ -3655,12 +4147,10 @@ Ali jo kljub temu želite izbrisati? QPSQLResult - Unable to create query Ni moč ustvariti poizvedbe - Unable to prepare statement Ni moč pripraviti izjave @@ -3668,102 +4158,82 @@ Ali jo kljub temu želite izbrisati? QPageSetupWidget - Centimeters (cm) Centimetri (cm) - Millimeters (mm) Milimetri (mm) - Inches (in) Palci (in) - Points (pt) Pike (pt) - Form Obrazec - Paper Papir - Page size: Velikost strani: - Width: Širina: - Height: Višina: - Paper source: Vir papirja: - Orientation Usmeritev - Portrait Pokončno - Landscape Ležeče - Reverse landscape Obrnjeno ležeče - Reverse portrait Obrnjeno pokončno - Margins Robovi - top margin vrhnji rob - left margin levi rob - right margin desni rob - bottom margin spodnji rob @@ -3771,12 +4241,10 @@ Ali jo kljub temu želite izbrisati? QPluginLoader - Unknown error Neznana napaka - The plugin was not loaded. Vstavek ni bil naložen. @@ -3784,428 +4252,344 @@ Ali jo kljub temu želite izbrisati? QPrintDialog - locally connected krajevno povezan - - Aliases: %1 Vzdevki: %1 - - unknown neznano - A0 (841 x 1189 mm) A0 (841 x 1189 mm) - A1 (594 x 841 mm) A1 (594 x 841 mm) - A2 (420 x 594 mm) A2 (420 x 594 mm) - A3 (297 x 420 mm) A3 (297 x 420 mm) - A4 (210 x 297 mm, 8.26 x 11.7 inches) A4 (210 x 297 mm, 8,26 x 11,7 palcev) - A5 (148 x 210 mm) A5 (148 x 210 mm) - A6 (105 x 148 mm) A6 (105 x 148 mm) - A7 (74 x 105 mm) A7 (74 x 105 mm) - A8 (52 x 74 mm) A8 (52 x 74 mm) - A9 (37 x 52 mm) A9 (37 x 52 mm) - B0 (1000 x 1414 mm) B0 (1000 x 1414 mm) - B1 (707 x 1000 mm) B1 (707 x 1000 mm) - B2 (500 x 707 mm) B2 (500 x 707 mm) - B3 (353 x 500 mm) B3 (353 x 500 mm) - B4 (250 x 353 mm) B4 (250 x 353 mm) - B5 (176 x 250 mm, 6.93 x 9.84 inches) B5 (176 x 250 mm, 6,93 x 9,84 palcev) - B6 (125 x 176 mm) B6 (125 x 176 mm) - B7 (88 x 125 mm) B7 (88 x 125 mm) - B8 (62 x 88 mm) B8 (62 x 88 mm) - B9 (44 x 62 mm) B9 (44 x 62 mm) - B10 (31 x 44 mm) B10 (31 x 44 mm) - C5E (163 x 229 mm) C5E (163 x 229 mm) - DLE (110 x 220 mm) DLE (110 x 220 mm) - Executive (7.5 x 10 inches, 191 x 254 mm) Executive (7,5 x 10 palcev, 191 x 254 mm) - Folio (210 x 330 mm) Folio (210 x 330 mm) - Ledger (432 x 279 mm) Ledger (432 x 279 mm) - Legal (8.5 x 14 inches, 216 x 356 mm) Legal (8,5 x 14 palcev, 216 x 356 mm) - Letter (8.5 x 11 inches, 216 x 279 mm) Letter (8,5 x 11 palcev, 216 x 279 mm) - Tabloid (279 x 432 mm) Tabloid (279 x 432 mm) - US Common #10 Envelope (105 x 241 mm) US Common #10 Envelope (105 x 241 mm) - + Print current page + + + OK V redu - - - Print Natisni - Print To File ... Natisni v datoteko ... - Print range Natisni obseg - Print all Natisni vse - File %1 is not writable. Please choose a different file name. V datoteko %1 ni moč pisati. Izberite drugo ime datoteke. - %1 already exists. Do you want to overwrite it? %1 že obstaja. Ali jo želite nadomestiti? - File exists Datoteka obstaja - <qt>Do you want to overwrite it?</qt> <qt>Ali jo želite nadomestiti?</qt> - Print selection Natisni izbor - %1 is a directory. Please choose a different file name. %1 je mapa. Izberite drugo ime datoteke. - A0 A0 - A1 A1 - A2 A2 - A3 A3 - A4 A4 - A5 A5 - A6 A6 - A7 A7 - A8 A8 - A9 A9 - B0 B0 - B1 B1 - B2 B2 - B3 B3 - B4 B4 - B5 B5 - B6 B6 - B7 B7 - B8 B8 - B9 B9 - B10 B10 - C5E C5E - DLE DLE - Executive Executive - Folio Folio - Ledger Ledger - Legal Legal - Letter Letter - Tabloid Tabloid - US Common #10 Envelope US Common #10 Envelope - Custom Po meri - - &Options >> &Možnosti » - &Print Na&tisni - &Options << &Možnosti « - Print to File (PDF) Natisni v datoteko (PDF) - Print to File (Postscript) Natisni v datoteko (PostScript) - Local file Krajevna datoteka - Write %1 file Zapiši datoteko %1 - The 'From' value cannot be greater than the 'To' value. Vrednost »Od« ne more biti večja od vrednosti »Do«. @@ -4213,103 +4597,86 @@ Izberite drugo ime datoteke. QPrintPreviewDialog - - Page Setup Nastavitve strani - %1% %1 % - Print Preview Ogled tiskanja - Next page Naslednja stran - Previous page Predhodna stran - First page &Prva stran - Last page &Zadnja stran - Fit width Prilagodi &širini - Fit page Prilagodi strani - Zoom in Povečaj - Zoom out Zmanjšaj - Portrait Pokončno - Landscape Ležeče - Show single page Prikaži enojno stran - Show facing pages Prikaži dve strani - Show overview of all pages Prikaži ogled vseh strani - Print Natisni - Page setup Nastavitve strani - + Close + Zapri + + Export to PDF Izvozi v PDF - Export to PostScript Izvozi v PostScript @@ -4317,17 +4684,14 @@ Izberite drugo ime datoteke. QPrintPropertiesWidget - Form Obrazec - Page Stran - Advanced Napredno @@ -4335,145 +4699,121 @@ Izberite drugo ime datoteke. QPrintSettingsOutput - Form Obrazec - Copies Izvodi - Print range Obseg tiskanja - Print all Natisni vse - Pages from Strani od - to do - Selection Izbor - Output Settings Nastavitve izpisa - Copies: Izvodi: - Collate Združi - Reverse V nasprotno smer - Options Možnosti - Color Mode Barvni način - Color Barva - Grayscale Sivinsko - Duplex Printing Dvostransko tiskanje - None Brez - Long side Dolga stranica - Short side Kratka stranica + + Current Page + + QPrintWidget - Form Obrazec - Printer Tiskalnik - &Name: &Ime: - P&roperties &Lastnosti ... - Location: Lokacija: - Preview Ogled - Type: Vrsta: - Output &file: Izhodna d&atoteka: - ... ... @@ -4481,62 +4821,38 @@ Izberite drugo ime datoteke. QProcess - - Could not open input redirection for reading Preusmeritve vhoda ni bilo moč odpreti za branje - - Could not open output redirection for writing Preusmeritve izhoda ni bilo moč odpreti za pisanje - Resource error (fork failure): %1 Napaka vira (spodletela odcepitev): %1 - - - - - - - - - Process operation timed out Čas za dejanje procesa je potekel - - - - Error reading from process Napaka pri branju iz procesa - - - Error writing to process Napak pri pisanju v proces - Process crashed Program se je sesul - No program defined Določenega ni nobenega programa - Process failed to start: %1 Proces se ni uspel zagnati: %1 @@ -4544,7 +4860,6 @@ Izberite drugo ime datoteke. QProgressDialog - Cancel Prekliči @@ -4552,7 +4867,6 @@ Izberite drugo ime datoteke. QPushButton - Open Odpri @@ -4560,7 +4874,6 @@ Izberite drugo ime datoteke. QRadioButton - Check Označi @@ -4568,57 +4881,46 @@ Izberite drugo ime datoteke. QRegExp - no error occurred ni nobene napake - disabled feature used uporabljena onemogočena zmožnost - bad char class syntax napačna sintaksa znakovnega razreda - bad lookahead syntax napačna sintaksa pogleda naprej - bad repetition syntax napačna sintaksa ponavljanja - invalid octal value neveljavna osmiška vrednost - missing left delim manjkajoč levi razmejitelj - unexpected end nepričakovan konece - met internal limit dosežena notranja omejitev - invalid interval neveljaven interval - invalid category neveljavna kategorija @@ -4626,22 +4928,18 @@ Izberite drugo ime datoteke. QSQLite2Driver - Error opening database Napaka pri odpiranju podatkovne zbirke - Unable to begin transaction Ni moč začeti transakcije - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije @@ -4649,12 +4947,10 @@ Izberite drugo ime datoteke. QSQLite2Result - Unable to fetch results Ni moč pridobiti rezultatov - Unable to execute statement Ni moč izvesti izjave @@ -4662,27 +4958,22 @@ Izberite drugo ime datoteke. QSQLiteDriver - Error opening database Napaka pri odpiranju podatkovne zbirke - Error closing database Napaka pri zapiranju podatkovne zbirke - Unable to begin transaction Ni moč začeti transakcije - Unable to commit transaction Ni moč udejaniti transakcije - Unable to rollback transaction Ni moč razveljaviti transakcije @@ -4690,34 +4981,26 @@ Izberite drugo ime datoteke. QSQLiteResult - - - Unable to fetch row Ni moč pridobiti vrstice - Unable to execute statement Ni moč izvesti izjave - Unable to reset statement Ni moč ponastaviti izjave - Unable to bind parameters Ni moč prikleniti parametrov - Parameter count mismatch Neujemanje v številu parametrov - No query Brez poizvedbe @@ -4725,32 +5008,26 @@ Izberite drugo ime datoteke. QScriptBreakpointsModel - ID ID - Location Lokacija - Condition Pogoj - Ignore-count Število prezrtij - Single-shot Enojen zadetek - Hit-count Število zadetkov @@ -4758,12 +5035,10 @@ Izberite drugo ime datoteke. QScriptBreakpointsWidget - New Nova - Delete Izbriši @@ -4771,143 +5046,114 @@ Izberite drugo ime datoteke. QScriptDebugger - - Go to Line Pojdi v vrstico - Line: Vrstica: - Interrupt Prekini - Shift+F5 - + Shift+F5 - Continue Nadaljuj - F5 - + F5 - Step Into Vstopi - F11 - + F11 - Step Over Prestopi - F10 - + F10 - Step Out Izstopi - Shift+F11 - + Shift+F11 - Run to Cursor Zaženi do kazalca - Ctrl+F10 - + Ctrl+F10 - Run to New Script Zaženi do novega skripta - Toggle Breakpoint Preklopi prekinitveno točko - F9 - + F9 - Clear Debug Output Počisti razhroščevalni izhod - Clear Error Log Počisti dnevnik napak - Clear Console Počisti konzolo - &Find in Script... Najdi v &skriptu ... - Ctrl+F - + Ctrl+F - Find &Next Najdi &naslednje - F3 - + F3 - Find &Previous Najdi &predhodno - Shift+F3 - + Shift+F3 - Ctrl+G - + Ctrl+G - Debug Razhrošči @@ -4915,32 +5161,26 @@ Izberite drugo ime datoteke. QScriptDebuggerCodeFinderWidget - Close Zapri - Previous Predhodno - Next Naslednje - Case Sensitive Občutljivo na velikost črk - Whole words Cele besede - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Iskanje se nadaljuje na drugem koncu @@ -4948,12 +5188,10 @@ Izberite drugo ime datoteke. QScriptDebuggerLocalsModel - Name Ime - Value Vrednost @@ -4961,17 +5199,14 @@ Izberite drugo ime datoteke. QScriptDebuggerStackModel - Level Stopnja - Name Ime - Location Lokacija @@ -4979,22 +5214,18 @@ Izberite drugo ime datoteke. QScriptEdit - Toggle Breakpoint Preklopi prekinitveno točko - Disable Breakpoint Onemogoči prekinitveno točko - Enable Breakpoint Omogoči prekinitveno točko - Breakpoint Condition: Pogoj za prelomno točko: @@ -5002,52 +5233,42 @@ Izberite drugo ime datoteke. QScriptEngineDebugger - Loaded Scripts Naloženi skripti - Breakpoints Prelomne točke - Stack Sklad - Locals Krajevno - Console Konzola - Debug Output Razhroščevalni izhod - Error Log Dnevnik napak - Search Išči - View Videz - Qt Script Debugger Razhroščevalnik za Qt Script @@ -5055,7 +5276,6 @@ Izberite drugo ime datoteke. QScriptNewBreakpointWidget - Close Zapri @@ -5063,84 +5283,66 @@ Izberite drugo ime datoteke. QScrollBar - Scroll here Premakni sem - Left edge Levi rob - Top Vrh - Right edge Desni rob - Bottom Dno - Page left Za stran levo - - Page up Za stran gor - Page right Za stran desno - - Page down Za stran dol - Scroll left Premakni levo - Scroll up Premakni gor - Scroll right Premakni desno - Scroll down Premakni dol - Line up V vrsto - Position Položaj - Line down Za vrstico dol @@ -5148,111 +5350,78 @@ Izberite drugo ime datoteke. QSharedMemory - %1: unable to set key on lock %1: ni moč nastaviti ključa na zaklep - %1: create size is less then 0 %1: velikost je manjša od 0 - - %1: unable to lock %1: ni moč zakleniti - %1: unable to unlock %1: ni moč odkleniti - - - %1: permission denied %1: nimate dovoljenja - - - %1: already exists %1: že obstaja - %1: doesn't exists %1: ne obstaja - - - %1: out of resources %1: zmanjkalo je virov - - - %1: unknown error %2 %1: neznana napaka %2 - %1: key is empty %1: ključ je prazen - %1: ftok failed %1: funkcija ftok ni uspela - - - %1: unable to make key %1: ni moč ustvariti ključa - - %1: doesn't exist %1: ne obstaja - %1: UNIX key file doesn't exist %1: UNIX-ova zaklepna datoteka ne obstaja - %1: system-imposed size restrictions %1: sistemsko vsiljene omejitve velikosti - %1: not attached %1: ni pripeto - - %1: invalid size %1: neveljavna velikost - - %1: key error %1: napaka ključa - %1: size query failed %1: poizvedba po velikosti ni uspela @@ -5260,466 +5429,894 @@ Izberite drugo ime datoteke. QShortcut - Space + 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. + Preslednica - Esc Esc - Tab Tabulator - Backtab - Backspace Vračalka - Return Return - Enter Vnesi - Ins Ins - Del Del - Pause Premor - Print Natisni - SysReq SysReq - Home Začetek - End Konec - Left Levo - Up Gor - Right Desno - Down Dol - PgUp PgUp - PgDown PgDown - CapsLock CapsLock - NumLock NumLock - ScrollLock ScrollLock - Menu Meni - Help Pomoč - Back Predhodna - Forward Naslednja - Stop Ustavi - Refresh Osveži - Volume Down Tiše - Volume Mute Tiho - Volume Up Glasneje - Bass Boost Ojačanje basov - Bass Up Več basov - Bass Down Manj basov - Treble Up Več visokih tonov - Treble Down Manj visokih tonov - Media Play Predvajaj večpredstavnost - - Media Stop - Ustavi večpredstavnost + Media Stop + Ustavi večpredstavnost + + + Media Previous + Predhodna večpredstavnost + + + Media Next + Naslednja večpredstavnost + + + Media Record + Snemaj večpredstavnost + + + Media Pause + Media player pause button + + + + + Toggle Media Play/Pause + Media player button to toggle between playing and paused + + + + + Favorites + Priljubljeno + + + Search + Išči + + + Standby + V pripravljenost + + + Open URL + Odpri URL + + + Launch Mail + Zaženi pošto + + + Launch Media + Zaženi večpredstavnost + + + Launch (0) + Zaženi (0) + + + Launch (1) + Zaženi (1) + + + Launch (2) + Zaženi (2) + + + Launch (3) + Zaženi (3) + + + Launch (4) + Zaženi (4) + + + Launch (5) + Zaženi (5) + + + Launch (6) + Zaženi (6) + + + Launch (7) + Zaženi (7) + + + Launch (8) + Zaženi (8) + + + Launch (9) + Zaženi (9) + + + Launch (A) + Zaženi (A) + + + Launch (B) + Zaženi (B) + + + Launch (C) + Zaženi (C) + + + Launch (D) + Zaženi (D) + + + Launch (E) + Zaženi (E) + + + Launch (F) + Zaženi (F) + + + Monitor Brightness Up + Povečaj svetlost zaslon + + + Monitor Brightness Down + Zmanjšaj svetlost zaslona + + + Keyboard Light On/Off + Vklop/izklop lučk na tipkovnici + + + Keyboard Brightness Up + + + + Keyboard Brightness Down + + + + Power Off + Izklopi + + + Wake Up + Zbudi se + + + Eject + Izvrzi + + + Screensaver + Ohranjevalnik zaslona + + + WWW + WWW + + + Sleep + V pripravljenost + + + LightBulb + Žarnica + + + Shop + + + + History + Zgodovina + + + Add Favorite + Dodaj najljubšo + + + Hot Links + Vroče povezave + + + Adjust Brightness + Prilagodi svetlost + + + Finance + Finance + + + Community + Skupnost + + + Audio Rewind + Samodejno previj + + + Back Forward + + + + Application Left + + + + Application Right + + + + Book + Knjiga + + + CD + CD + + + Calculator + Računalo + + + Clear + Počisti + + + Clear Grab + + + + Close + Zapri + + + Copy + Kopiraj + + + Cut + Izreži + + + Display + Prikaz + + + DOS + DOS + + + Documents + Dokumenti + + + Spreadsheet + Preglednica + + + Browser + Brskalnik + + + Game + Igra + + + Go + Pojdi + + + iTouch + iTouch + + + Logoff + Odjava + + + Market + + + + Meeting + Srečanje + + + Keyboard Menu + Meni tipkovnice + + + Menu PB + + + + My Sites + Moje strani + + + News + Novice + + + Home Office + Domača pisarna + + + Option + Možnost + + + Paste + Prilepi + + + Phone + Telefon + + + Reply + Odgovori + + + Reload + Znova naloži + + + Rotate Windows + Zavrti okna + + + Rotation PB + + + + Rotation KB + + + + Save + Shrani + + + Send + Pošlji + + + Spellchecker + Črkovalnik + + + Split Screen + Razdeli zaslon + + + Support + Podpora + + + Task Panel + Opravilna vrstica + + + Terminal + Terminal + + + Tools + Orodja + + + Travel + Potovanje - - Media Previous - Predhodna večpredstavnost + Video + Video - - Media Next - Naslednja večpredstavnost + Word Processor + Urejevalnik besedila - - Media Record - Snemaj večpredstavnost + XFer + - - Favorites - Priljubljeno + Zoom In + Približaj - - Search - Išči + Zoom Out + Oddalji - - Standby - V pripravljenost + Away + Odsoten - - Open URL - Odpri URL + Messenger + Sporočilnik - - Launch Mail - Zaženi pošto + WebCam + Spletna kamera - - Launch Media - Zaženi večpredstavnost + Mail Forward + Posreduj sporočilo naprej - - Launch (0) - Zaženi (0) + Pictures + Slike - - Launch (1) - Zaženi (1) + Music + Glasba - - Launch (2) - Zaženi (2) + Battery + Baterija - - Launch (3) - Zaženi (3) + Bluetooth + Bluetooth - - Launch (4) - Zaženi (4) + Wireless + Brezžično - - Launch (5) - Zaženi (5) + Ultra Wide Band + - - Launch (6) - Zaženi (6) + Audio Forward + - - Launch (7) - Zaženi (7) + Audio Repeat + - - Launch (8) - Zaženi (8) + Audio Random Play + - - Launch (9) - Zaženi (9) + Subtitle + Podnaslov - - Launch (A) - Zaženi (A) + Audio Cycle Track + - - Launch (B) - Zaženi (B) + Time + Čas - - Launch (C) - Zaženi (C) + View + Pogled - - Launch (D) - Zaženi (D) + Top Menu + Vrhnji meni - - Launch (E) - Zaženi (E) + Suspend + Ustavi - - Launch (F) - Zaženi (F) + Hibernate + V hibernacijo - Print Screen Natisni zaslon - Page Up Za stran gor - Page Down Za stran dol - Caps Lock Caps Lock - Num Lock Num Lock - Number Lock - Scroll Lock - + Scroll Lock - Insert Vstavi - Delete Izbriši - Escape Escape - System Request Sistemska zahteva - Select Izberi - Yes Da - No Ne - Context1 Kontekst1 - Context2 Kontekst2 - Context3 Kontekst3 - Context4 Kontekst4 - Call + Button to start a call (note: a separate button is used to end the call) + Pokliči - Hangup + Button to end a call (note: a separate button is used to start the call) + Odloži - + Toggle Call/Hangup + Button that will hang up if we're in call, or make a call if we're not. + + + + Flip Obrni - - + Voice Dial + Button to trigger voice dialling + + + + + Last Number Redial + Button to redial the last number called + + + + + Camera Shutter + Button to trigger the camera shutter (take a picture) + + + + + Camera Focus + Button to focus the camera + + + + + Kanji + + + + Muhenkan + + + + Henkan + + + + Romaji + + + + Hiragana + Hiragana + + + Katakana + Katakana + + + Hiragana Katakana + + + + Zenkaku + + + + Hankaku + + + + Zenkaku Hankaku + + + + Touroku + + + + Massyo + + + + Kana Lock + + + + Kana Shift + + + + Eisu Shift + + + + Eisu toggle + + + + Code input + + + + Multiple Candidate + + + + Previous Candidate + + + + Hangul + + + + Hangul Start + + + + Hangul End + + + + Hangul Hanja + + + + Hangul Jamo + Hangul Jamo + + + Hangul Romaja + + + + Hangul Jeonja + + + + Hangul Banja + + + + Hangul PreHanja + + + + Hangul PostHanja + + + + Hangul Special + + + Ctrl Ctrl - - Shift Shift - - Alt Alt - - Meta Meta - + + - F%1 F%1 - Home Page Domača stran @@ -5727,27 +6324,22 @@ Izberite drugo ime datoteke. QSlider - Page left Za stran levo - Page up Za stran gor - Position Položaj - Page right Za stran desno - Page down Za stran dol @@ -5755,72 +6347,58 @@ Izberite drugo ime datoteke. QSocks5SocketEngine - Connection to proxy refused Povezava s posrednikom je bila zavrnjena - Connection to proxy closed prematurely Povezava s posrednikom je bila prekinjena predčasno - Proxy host not found Ni moč najti gostitelja posrednika - Connection to proxy timed out Čas za povezavo s posrednikom je potekel - Proxy authentication failed Neuspešno overjanje posrednika - Proxy authentication failed: %1 Neuspešno overjanje posrednika: %1 - SOCKS version 5 protocol error Napaka protokola SOCKS različice 5 - General SOCKSv5 server failure Splošna napaka strežnika SOCKSv5 - Connection not allowed by SOCKSv5 server Strežnik SOCKSv5 ne dovoljuje povezave - TTL expired TTL je zapadel - SOCKSv5 command not supported Ukaz SOCKSv5 ni podprt - Address type not supported Vrsta naslova ni podprta - Unknown SOCKSv5 proxy error code 0x%1 Neznana koda napake posrednika SOCKSv5: 0x%1 - Network operation timed out Čas za omrežni postopek je potekel @@ -5828,32 +6406,26 @@ Izberite drugo ime datoteke. QSoftKeyManager - Ok V redu - Select Izbor - Done Opravljeno - Options Možnosti - Cancel Prekliči - Exit Končaj @@ -5861,12 +6433,10 @@ Izberite drugo ime datoteke. QSpinBox - More Več - Less Manj @@ -5874,137 +6444,204 @@ Izberite drugo ime datoteke. QSql - Delete Izbriši - Delete this record? Ali izbrišem ta zapis? - - - Yes Da - - - - No - Ne + No + Ne + + + Insert + Vstavi + + + Update + Posodobi + + + Save edits? + &Shranmi urejan?. + + + Cancel + Prekliči + + + Confirm + Potrdi + + + Cancel your edits? + Ali želite preklicati urejanja? + + + + QSslSocket + + Unable to write data: %1 + Ni moč zapisati podatkov: %1 + + + Unable to decrypt data: %1 + + + + Error while reading: %1 + Napaka med branjem: %1 + + + Error during SSL handshake: %1 + Napaka med rokovanjem SSL: %1 + + + Error creating SSL context (%1) + Napaka pri ustvarjanju konteksta SSL (%1) + + + Invalid or empty cipher list (%1) + Neveljaven ali prazen seznam šifer (%1) + + + Private key does not certify public key, %1 + + + + Error creating SSL session, %1 + Napaka pri ustvarjanju seje SSL: %1 + + + Error creating SSL session: %1 + Napaka pri ustvarjanju seje SSL: %1 + + + Cannot provide a certificate with no key, %1 + Ni moč priskrbeti potrdila brez ključa, %1 + + + Error loading local certificate, %1 + Napaka pri nalaganju krajevnega potrdila, %1 + + + Error loading private key, %1 + Napaka pri nalaganju zasebnega ključa, %1 + + + No error + Brez napake + + + The issuer certificate could not be found + + + + The certificate signature could not be decrypted + + + + The public key in the certificate could not be read + + + + The signature of the certificate is invalid + + + + The certificate is not yet valid + - - Insert - Vstavi + The certificate has expired + Potrdilo je preteklo - - Update - Posodobi + The certificate's notBefore field contains an invalid time + - - Save edits? - &Shranmi urejan?. + The certificate's notAfter field contains an invalid time + - - Cancel - Prekliči + The certificate is self-signed, and untrusted + - - Confirm - Potrdi + The root certificate of the certificate chain is self-signed, and untrusted + - - Cancel your edits? - Ali želite preklicati urejanja? + The issuer certificate of a locally looked up certificate could not be found + - - - QSslSocket - - Unable to write data: %1 - Ni moč zapisati podatkov: %1 + No certificates could be verified + - - Error while reading: %1 - Napaka med branjem: %1 + One of the CA certificates is invalid + - - Error during SSL handshake: %1 - Napaka med rokovanjem SSL: %1 + The basicConstraints path length parameter has been exceeded + - - Error creating SSL context (%1) - Napaka pri ustvarjanju konteksta SSL (%1) + The supplied certificate is unsuitable for this purpose + - - Invalid or empty cipher list (%1) - Neveljaven ali prazen seznam šifer (%1) + The root CA certificate is not trusted for this purpose + - - Error creating SSL session, %1 - Napaka pri ustvarjanju seje SSL: %1 + The root CA certificate is marked to reject the specified purpose + - - Error creating SSL session: %1 - Napaka pri ustvarjanju seje SSL: %1 + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + - - Cannot provide a certificate with no key, %1 - Ni moč priskrbeti potrdila brez ključa, %1 + 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 + - - Error loading local certificate, %1 - Napaka pri nalaganju krajevnega potrdila, %1 + The peer did not present any certificate + Vrstnik ni predložil nobenega potrdila - - Error loading private key, %1 - Napaka pri nalaganju zasebnega ključa, %1 + The host name did not match any of the valid hosts for this certificate + - - Private key does not certificate public key, %1 - Zasebni ključ ne potrjuje javnega ključa, %1 + Unknown error + Neznana napaka QStateMachine - Missing initial state in compound state '%1' V sestavljenem stanju »%1« manjka začetno stanje - Missing default state in history state '%1' V zgodovinskem stanju »%1« manjka privzeto stanje - No common ancestor for targets and source of transition from state '%1' Za cilje in začetek prehoda iz stanja »%1« ni skupnega prednika - Unknown error Neznana napaka @@ -6012,30 +6649,22 @@ Izberite drugo ime datoteke. QSystemSemaphore - - %1: out of resources %1: zmanjkalo je virov - - %1: permission denied %1: nimate dovoljenja - %1: already exists %1: že obstaja - %1: does not exist %1: ne obstaja - - %1: unknown error %2 %1: neznana napaka %2 @@ -6043,12 +6672,10 @@ Izberite drugo ime datoteke. QTDSDriver - Unable to open connection Ni moč vzpostaviti povezave - Unable to use database Podatkovne zbirke ni moč uporabljati @@ -6056,12 +6683,10 @@ Izberite drugo ime datoteke. QTabBar - Scroll Left Premakni levo - Scroll Right Premakni desno @@ -6069,7 +6694,6 @@ Izberite drugo ime datoteke. QTcpServer - Operation on socket is not supported Dejanje na vtičnici ni podprto @@ -6077,42 +6701,34 @@ Izberite drugo ime datoteke. QTextControl - &Undo &Razveljavi - &Redo &Uveljavi - Cu&t &Izreži - &Copy S&kopiraj - Copy &Link Location Skopiraj &povezavo do lokacije - &Paste Pri&lepi - Delete Izbriši - Select All Izberi vse @@ -6120,14 +6736,10 @@ Izberite drugo ime datoteke. QToolButton - - Press Pritisni - - Open Odpri @@ -6135,7 +6747,6 @@ Izberite drugo ime datoteke. QUdpSocket - This platform does not support IPv6 Ta platforma ne podpira IPv6 @@ -6143,12 +6754,10 @@ Izberite drugo ime datoteke. QUndoGroup - Undo Razveljavi - Redo Uveljavi @@ -6156,7 +6765,6 @@ Izberite drugo ime datoteke. QUndoModel - <empty> <prazno> @@ -6164,12 +6772,10 @@ Izberite drugo ime datoteke. QUndoStack - Undo Razveljavi - Redo Uveljavi @@ -6177,57 +6783,46 @@ Izberite drugo ime datoteke. QUnicodeControlCharacterMenu - LRM Left-to-right mark LRM (oznaka z-leve-na-desno) - RLM Right-to-left mark RLM (oznaka z-desne-na-levo) - ZWJ Zero width joiner ZWJ (združevalec s širino nič) - ZWNJ Zero width non-joiner ZWNJ (ne-združevalec s širino nič) - ZWSP Zero width space ZWSP (presledek s širino nič) - LRE Start of left-to-right embedding LRE (začetek vgrajevanja z leve na desno) - RLE Start of right-to-left embedding RLE (začetek vgrajevanja z desne na levo) - LRO Start of left-to-right override LRO (začetek nadomeščanja z leve na desno) - RLO Start of right-to-left override RLO (začetek nadomeščanja z desne na levo) - PDF Pop directional formatting PDF (odstrani oblikovanje usmerjenosti) - Insert Unicode control character Vstavi kontrolni znak Unicode @@ -6235,32 +6830,26 @@ Izberite drugo ime datoteke. QWebFrame - Request cancelled Zahtevek je bil preklican - Request blocked Zahtevek je bil blokiran - Cannot show URL Lokacije ni moč prikazati - Frame load interrupted by policy change Nalaganje okvirja je bilo prekinjeno zaradi spremembe pravil - Cannot show mimetype Vrste MIME ni moč prikazati - File does not exist Datoteka ne obstaja @@ -6268,610 +6857,515 @@ Izberite drugo ime datoteke. QWebPage - + Redirection limit reached + + + Bad HTTP request Napačen zahtevek HTTP - Submit default label for Submit buttons in forms on web pages Pošlji - Submit Submit (input element) alt text for <input> elements with no alt, title, or value Pošlji - Reset default label for Reset buttons in forms on web pages Ponastavi - This is a searchable index. Enter search keywords: text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' To je stvarno kazalo z iskanjem. Vnesite iskane besede: - Choose File title for file button used in HTML forms Izberite datoteko - No file selected text to display in file button used in HTML forms when no file is selected Datoteka ni izbrana - Open in New Window Open in New Window context menu item Odpri v novem oknu - Save Link... Download Linked File context menu item Shrani povezavo ... - Copy Link Copy Link context menu item Skopiraj povezavo - Open Image Open Image in New Window context menu item Odpri sliko - Save Image Download Image context menu item Shrani sliko - Copy Image Copy Link context menu item Kopiraj sliko - Open Frame Open Frame in New Window context menu item Odpri okvir - Copy Copy context menu item Skopiraj - Go Back Back context menu item Pojdi nazaj - Go Forward Forward context menu item Pojdi naprej - Stop Stop context menu item Ustavi - Reload Reload context menu item Znova naloži - Cut Cut context menu item Izreži - Paste Paste context menu item Prilepi - No Guesses Found No Guesses Found context menu item Najdenega ni nobenega ugibanja - Ignore Ignore Spelling context menu item Prezri - Add To Dictionary Learn Spelling context menu item Dodaj v slovar - Search The Web Search The Web context menu item Iščite po spletu - Look Up In Dictionary Look Up in Dictionary context menu item Poišči v slovarju - Open Link Open Link context menu item Odpri povezavo - Ignore Ignore Grammar context menu item Prezri - Spelling Spelling and Grammar context sub-menu item Črkovanje - Show Spelling and Grammar menu item title Prikaži črkovanje in slovnico - Hide Spelling and Grammar menu item title Skrij črkovanje in slovnico - Check Spelling Check spelling context menu item Preveri črkovanje - Check Spelling While Typing Check spelling while typing context menu item Preveri črkovanje med tipkanjem - Check Grammar With Spelling Check grammar with spelling context menu item Preveri slovnico in črkovanje - Fonts Font context sub-menu item Pisave - Bold Bold context menu item Polkrepko - Italic Italic context menu item Ležeče - Underline Underline context menu item Podčrtano - Outline Outline context menu item Obris - Direction Writing direction context sub-menu item Smer - Text Direction Text direction context sub-menu item Smer besedila - Default Default writing direction context menu item Privzeta - Left to Right Left to Right context menu item Z leve na desno - Right to Left Right to Left context menu item Z desne na levo - + Missing Plug-in + Label text to be used when a plug-in is missing + + + Loading... Media controller status message when the media is loading Nalaganje ... - Live Broadcast Media controller status message when watching a live broadcast Prenos v živo - Audio Element Media controller element Zvočni element - Video Element Media controller element Video element - Mute Button Media controller element Gumb za utišanje - Unmute Button Media controller element Gumb za preklic utišanja - Play Button Media controller element Gumb za predvajanje - Pause Button Media controller element Gumb za premor - Slider Media controller element Drsnik - Slider Thumb Media controller element Ročka na drsniku - Rewind Button Media controller element Gumb za previjanje - Return to Real-time Button Media controller element Gumb za vrnitev na resnični čas - Elapsed Time Media controller element Pretečeni čas - Remaining Time Media controller element Preostali čas - Status Display Media controller element Prikaz stanja - Fullscreen Button Media controller element Gumb za cel zaslon - Seek Forward Button Media controller element Gumb za pomik naprej - Seek Back Button Media controller element Gumb za pomik nazaj - Audio element playback controls and status display Media controller element Nadzor in prikaz stanja elementa za predvajanje zvoka - Video element playback controls and status display Media controller element Nadzor in prikaz stanja elementa za predvajanje videa - Mute audio tracks Media controller element Utišaj zvočne sledi - Unmute audio tracks Media controller element Prekliči utišanje zvočnih sledi - Begin playback Media controller element Začni predvajanje - Pause playback Media controller element Prekini predvajanje - Movie time scrubber Media controller element - + Drsnik za mesto v posnetku - Movie time scrubber thumb Media controller element - + Drsnik za mesto v posnetku - Rewind movie Media controller element Previj film - Return streaming movie to real-time Media controller element Povrni film na resnični čas - Current movie time Media controller element Trenutni čas filma - Remaining movie time Media controller element Preostali čas filma - Current movie status Media controller element Trenutno stanje filma - Play movie in full-screen mode Media controller element Predvajaj film čez ves zaslon - Seek quickly back Media controller element Hitro se pomakni nazaj - Seek quickly forward Media controller element Hitro se pomakni naprej - Indefinite time Media time description Nedoločen čas - %1 days %2 hours %3 minutes %4 seconds Media time description %1 dni %2 ur %3 minut %4 sekund - %1 hours %2 minutes %3 seconds Media time description %1 ur %2 minut %3 sekund - %1 minutes %2 seconds Media time description %1 minut %2 sekund - %1 seconds Media time description %1 sekund - Inspect Inspect Element context menu item Preglej. - No recent searches Label for only item in menu that appears when clicking on the search field image, when no searches have been performed Ni nedavnih iskanj - Recent searches label for first item in the menu that appears when clicking on the search field image, used as embedded menu title Nedavna iskanja - Clear recent searches menu item in Recent Searches menu that empties menu's contents Počisti nedavna iskanja - Unknown Unknown filesize FTP directory listing item Neznana - %1 (%2x%3 pixels) Title string for images %1 (%2×%3 pik) - Web Inspector - %2 Web Inspector - %2 - Scroll here Premakni sem - Left edge Levi rob - Top Vrh - Right edge Desni rob - Bottom Dno - Page left Za stran levo - Page up Za stran gor - Page right Za stran desno - Page down Za stran dol - Scroll left Premakni levo - Scroll up Premakni gor - Scroll right Premakni desno - Scroll down Premakni dol - %n file(s) number of chosen file @@ -6882,251 +7376,197 @@ Izberite drugo ime datoteke. - JavaScript Alert - %1 Opozorilo JavaScript - %1 - JavaScript Confirm - %1 Potrditev JavaScript - %1 - JavaScript Prompt - %1 Poziv JavaScript - %1 - JavaScript Problem - %1 Težava JavaScript - %1 - The script on this page appears to have a problem. Do you want to stop the script? Kot kaže ima skript na tej strani težavo. Ali želite ustaviti skript? - Move the cursor to the next character Premakni kazalec na naslednji znak - Move the cursor to the previous character Premakni kazalec na prejšnji znak - Move the cursor to the next word Premakni kazalec v naslednjo besedo - Move the cursor to the previous word Premakni kazalec v prejšnjo besedo - Move the cursor to the next line Premakni kazalec v naslednjo vrstico - Move the cursor to the previous line Premakni kazalec v prejšnjo vrstico - Move the cursor to the start of the line Premakni kazalec na začetek vrstice - Move the cursor to the end of the line Premakni kazalec na konec vrstice - Move the cursor to the start of the block Premakni kazalec na začetek bloka - Move the cursor to the end of the block Premakni kazalec na konec bloka - Move the cursor to the start of the document Premakni kazalec na začetek dokumenta - Move the cursor to the end of the document Premakni kazalec na konec dokumenta - Select all Izberi vse - Select to the next character Izberi do naslednjega znaka - Select to the previous character Izberi do prejšnjega znaka - Select to the next word Izberi do naslednje besede - Select to the previous word Izberi do prejšnje besede - Select to the next line Izberi do naslednje vrstice - Select to the previous line Izberi do prejšnje vrstice - Select to the start of the line Izberi do začetka vrstice - Select to the end of the line Izberi do konca vrstice - Select to the start of the block Izberi do začetka bloka - Select to the end of the block Izberi do konca bloka - Select to the start of the document Izberi do začetka dokumenta - Select to the end of the document Izberi do konca dokumenta - Delete to the start of the word Izbriši do začetka besede - Delete to the end of the word Izbriši do konca besede - Insert a new paragraph Vstavi nov odstavek - Insert a new line Vstavi novo vrstico - Paste and Match Style Prilepi in uskladi slog - Remove formatting Odstrani oblikovanje - Strikethrough Prečrtano - Subscript Podpisano - Superscript Nadpisano - Insert Bulleted List Vstavi navadni seznam - Insert Numbered List Vstavi oštevilčeni seznam - Indent Zamakni - Outdent Odzamakni - Center Sredinsko - Justify Obojestransko - Align Left Poravnaj levo - Align Right Poravnaj desno - - - Remaining move time - Media controller element - Preostali čas filma - QWhatsThisAction - What's This? Kaj je to? @@ -7134,7 +7574,6 @@ Izberite drugo ime datoteke. QWidget - * * @@ -7142,57 +7581,46 @@ Izberite drugo ime datoteke. QWizard - Go Back Pojdi nazaj - Continue Nadaljuj - Commit Uveljavi - Done Opravljeno - Help Pomoč - < &Back < Na&zaj - &Finish &Zaključi - Cancel Prekliči - &Help &Pomoč - &Next &Naprej - &Next > &Naprej > @@ -7200,69 +7628,54 @@ Izberite drugo ime datoteke. QWorkspace - &Restore &Obnovi - &Move &Premakni - &Size &Velikost - Mi&nimize Po&manjšaj - Ma&ximize &Razpni - &Close &Zapri - Stay on &Top Ostani na &vrhu - - Sh&ade Zvi&j - - %1 - [%2] %1 - [%2] - Minimize Pomanjšaj - Restore Down Obnovi navzdol - Close Zapri - &Unshade Razv&ij @@ -7270,302 +7683,260 @@ Izberite drugo ime datoteke. QXml - no error occurred ni nobene napake - error triggered by consumer napako povzročil uporabnik - unexpected end of file nepričakovan konec datoteke - more than one document type definition več kot ena definicija vrste dokumenta - error occurred while parsing element napaka med analiziranjem elementa - tag mismatch neprimerna oznaka - error occurred while parsing content napaka med analiziranje vsebine - unexpected character nepričakovan znak - invalid name for processing instruction nepravilno ime za ukaz obdelave - version expected while reading the XML declaration pričakovana različica med branjem deklaracije XML - wrong value for standalone declaration napačna vrednost za samostojno deklaracijo - encoding declaration or standalone declaration expected while reading the XML declaration deklaracija kodiranja ali samostojna deklaracija je bila pričakovana med branjem deklaracije XML - standalone declaration expected while reading the XML declaration samostojna deklaracija pričakovana med branjem deklaracije XML - error occurred while parsing document type definition napaka med analiziranjem vrste definicije dokumenta - letter is expected pričakovana je črka - error occurred while parsing comment napaka med analiziranjem komentarja - error occurred while parsing reference napaka med analiziranjem reference - internal general entity reference not allowed in DTD referenca notranje splošne entitete ni dovoljena v DTD - external parsed general entity reference not allowed in attribute value referenca zunanje analizirane splošne entitete ni dovoljena v vrednosti atributa - external parsed general entity reference not allowed in DTD referenca zunanje analizirane splošne entitete ni dovoljena v DTD - unparsed entity reference in wrong context referenca neanalizirane entitete v napačnem kontekstu - recursive entities rekurzivne entitete - error in the text declaration of an external entity napaka v besedilni deklaraciji zunanje entitete + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + + + + Warning in %1: %2 + + + + Unknown location + Neznana lokacija + + + Error %1 in %2, at line %3, column %4: %5 + + + + Error %1 in %2: %3 + Napaka %1 v %2: %3 + + + QXmlStream - - Extra content at end of document. Dodatna vsebina na koncu dokumenta. - Invalid entity value. Neveljavna vrednost entitete. - Invalid XML character. Neveljaven znak XML. - Sequence ']]>' not allowed in content. Zaporedje »]]>« v vsebini ni dovoljeno. - Namespace prefix '%1' not declared Predpona imenskega prostora »%1« ni deklarirana - Attribute redefined. Atribut je redefiniran. - Unexpected character '%1' in public id literal. - Invalid XML version string. Neveljaven niz različice XML. - Unsupported XML version. Nepodprta različica XML. - %1 is an invalid encoding name. %1 ni veljavno ime kodiranja. - Encoding %1 is unsupported Kodiranje %1 ni podprto - Standalone accepts only yes or no. - Invalid attribute in XML declaration. Neveljaven atribut v deklaraciji XML. - Premature end of document. Predčasen konec dokumenta. - Invalid document. Neveljaven dokument.. - Expected Pričakovan - , but got ' , vendar prejel ' - Unexpected ' Nepričakovan ' - Expected character data. Pričakoval znakovne podatke. - Recursive entity detected. Zaznana je bila rekurzivna entiteta. - Start tag expected. Pričakovana je bila začetna oznaka. - XML declaration not at start of document. Deklaracija XML ni na začetku dokumenta. - NDATA in parameter entity declaration. - %1 is an invalid processing instruction name. %1 ni veljavno ime ukaza obdelave. - Invalid processing instruction name. Neveljavno ime ukaza obdelave. - - - - Illegal namespace declaration. Neveljavna deklaracija imenskega prostora. - Invalid XML name. Neveljavno ime XML. - Opening and ending tag mismatch. Začetni in zaključni oznaki se ne ujemata. - Reference to unparsed entity '%1'. Referenca na nerazčlenjeno entiteto »%1«. - - - Entity '%1' not declared. Entiteta »%1« ni deklarirana. - Reference to external entity '%1' in attribute value. Referenca na zunanjo entiteto »%1« v vrednosti lastnosti. - Invalid character reference. Neveljavna znakovna referenca. - - Encountered incorrectly encoded content. Naletel na napačno zakodirano vsebino. - The standalone pseudo attribute must appear after the encoding. Samostojni psevdo-atribut se mora pojaviti za kodiranjem. - %1 is an invalid PUBLIC identifier. @@ -7573,240 +7944,190 @@ Izberite drugo ime datoteke. QtXmlPatterns - Network timeout. Čas za omrežje je potekel. - Element %1 can't be serialized because it appears outside the document element. - Year %1 is invalid because it begins with %2. Leto %1 ni veljavno, ker se začne z %2. - Day %1 is outside the range %2..%3. Dan %1 je izven obsega %2..%3. - Month %1 is outside the range %2..%3. Mesec %1 je izven obsega %2..%3. - Overflow: Can't represent date %1. Prekoračitev: ni moč predstaviti datuma %1. - Day %1 is invalid for month %2. Dan %1 za mesec %2 ni veljaven. - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; Čas 24:%1:%2.%3 ni veljaven. Ura je 24, vendar minute, sekunde in milisekunde niso vse 0; - Time %1:%2:%3.%4 is invalid. Čas %1:%2:%3.%4 ni veljaven. - Overflow: Date can't be represented. Prekoračitev: datuma ni moč predstaviti. - - At least one component must be present. Prisotna mora biti vsaj ena komponenta. - At least one time component must appear after the %1-delimiter. Za razmejiteljem %1 se mora pojaviti vsaj ena časovna komponenta. - %1 is not a valid value of type %2. %1 ni veljavna vrednost vrste %2. - When casting to %1 from %2, the source value cannot be %3. - Integer division (%1) by zero (%2) is undefined. Deljenje celega števila (%1) z nič (%2) ni določeno. - Division (%1) by zero (%2) is undefined. Deljenje (%1) z nič (%2) ni določeno. - Modulus division (%1) by zero (%2) is undefined. Ostanek deljenja (%1) z nič (%2) ni določen. - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. Deljenje vrednosti vrste %1 z %2 (ni število) ni dovoljeno. - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. Deljenje vrednosti vrste %1 z %2 ali %3 (pozitivna ali negativna nič) ni dovoljeno. - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. Množenje vrednosti vrste %1 z %2 ali %3 (pozitivna ali negativna neskončnost) ni dovoljeno. - A value of type %1 cannot have an Effective Boolean Value. Vrednost vrste %1 ne more imeti dejanske logične vrednosti. - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. Dejanske logične vrednosti ni moč izračunati za zaporedje, ki vsebuje dve ali več atomičnih vrednosti. - Value %1 of type %2 exceeds maximum (%3). Vrednost %1 vrste %2 presega maksimum (%3). - Value %1 of type %2 is below minimum (%3). Vrednost %1 vrste %2 je pod minimumom (%3). - A value of type %1 must contain an even number of digits. The value %2 does not. Vrednost vrste %1 mora vsebovati sodo število števk. Vrednost %2 temu ne zadošča. - %1 is not valid as a value of type %2. %1 ni veljavna kot vrednost vrste %2. - Operator %1 cannot be used on type %2. Operatorja %1 ni moč uporabiti na vrsti %2. - Operator %1 cannot be used on atomic values of type %2 and %3. Operatorja %1 ni moč uporabiti na atomičnih vrednostih vrst %2 in %3. - The namespace URI in the name for a computed attribute cannot be %1. URI imenskega prostora v imenu izračunane lastnosti ne more biti %1. - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. Ime izračunane lastnosti ne more imeti URI-ja imenskega prostora %1 s krajevnim imenom %2. - Type error in cast, expected %1, received %2. - 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. - A comment cannot contain %1 Komentar ne more vsebovati %1 - A comment cannot end with a %1. Komentar se ne more končati z %1. - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. - A library module cannot be evaluated directly. It must be imported from a main module. Modula knjižnice ni moč ovrednotiti neposredno. Uvoziti ga je potrebno iz glavnega modula. - No template by name %1 exists. Predloga z imenom %1 ne obstaja. - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. - A positional predicate must evaluate to a single numeric value. - - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. - The data of a processing instruction cannot contain the string %1 Podatki ukaza za obdelavo ne morejo vsebovati niza %1 - No namespace binding exists for the prefix %1 - No namespace binding exists for the prefix %1 in %2 - - %1 is an invalid %2 %1 ni veljaven %2 - %1 takes at most %n argument(s). %2 is therefore invalid. %1 potrebuje največ %n argument. %2 zato ni veljavno. @@ -7816,7 +8137,6 @@ Izberite drugo ime datoteke. - %1 requires at least %n argument(s). %2 is therefore invalid. %1 potrebuje najmanj %n argument. %2 zato ni veljavno. @@ -7826,2399 +8146,2052 @@ Izberite drugo ime datoteke. - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. Prvi argument za %1 ne more biti vrste %2. Mora biti številčne vrste, xs:yearMonthDuration ali xs:dayTimeDuration. - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Prvi argument za %1 ne more biti vrste %2. Mora biti vrste %3, %4 ali %5. - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Drugi argument za %1 ne more biti vrste %2. Mora biti vrste %3, %4 ali %5. - %1 is not a valid XML 1.0 character. %1 ni veljaven znak XML 1.0. - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. - %1 was called. %1 je bila klicana. - %1 must be followed by %2 or %3, not at the end of the replacement string. - In the replacement string, %1 must be followed by at least one digit when not escaped. - In the replacement string, %1 can only be used to escape itself or %2, not %3 - %1 matches newline characters %1 se ujema z znaki za novo vrstico - %1 and %2 match the start and end of a line. %1 in %2 se ujemata z začetkom in koncem vrstice. - Matches are case insensitive Ujemanja niso občutljiva na velikost črk - Whitespace characters are removed, except when they appear in character classes Znaki za presledke so odstranjeni, razen ko se pojavijo v znakovnih razredih - %1 is an invalid regular expression pattern: %2 %1 ni veljaven vzorec regularnega izraza: %2 - %1 is an invalid flag for regular expressions. Valid flags are: - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. Če je prvi argument prazno zaporedje, ali pa niz z dolžino nič (brez imenskega prostora), predpone ni moč določiti. Določena je bila predpona %1. - It will not be possible to retrieve %1. %1 ne bo možno pridobiti. - The root node of the second argument to function %1 must be a document node. %2 is not a document node. - The default collection is undefined Privzeta zbirka ni določena. - %1 cannot be retrieved %1 ni moč pridobiti - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - %1 is not a whole number of minutes. - + %1 ni celovito število minut, - Required cardinality is %1; got cardinality %2. - The item %1 did not match the required type %2. Postavka %1 se ne ujema z zahtevano vrsto %2. - - %1 is an unknown schema type. %1 ni znana vrsta sheme. - + A template with name %1 has already been declared. + + + Only one %1 declaration can occur in the query prolog. - The initialization of variable %1 depends on itself Inicializacija spremenljivke %1 je odvisna od same sebe. - - No variable by name %1 exists - Spremenljivka z imenom %1 ne obstaja - - - The variable %1 is unused Spremenljivka %1 ni uporabljena - Version %1 is not supported. The supported XQuery version is 1.0. Različica %1 ni podprta. Podpra različica XQuery je 1.0. - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. Kodiranje %1 ni veljavno. Vsebovati mora le znake latinske abecede, ne sme vsebovati presledkov in se mora ujemati z regularnim izrazom %2. - No function with signature %1 is available Na voljo ni nobene funkcije s podpisom %1 - - A default namespace declaration must occur before function, variable, and option declarations. Deklaracije privzetega imenskega prostora se mora pojaviti pred deklaracijami funkcij, spremenljivk in možnosti. - Namespace declarations must occur before function, variable, and option declarations. Deklaracije imenskih prostorov se morajo pojaviti pred deklaracijami funkcij, spremenljivk in možnosti. - Module imports must occur before function, variable, and option declarations. Uvozi modulov se morajo pojaviti pred deklaracijami funkcij, spremenljivk in možnosti. - It is not possible to redeclare prefix %1. Predpone %1 ni moč znova deklarirati. - Prefix %1 is already declared in the prolog. - The name of an option must have a prefix. There is no default namespace for options. Ime možnosti mora vsebovati predpono. Privzeti imenski prostor za možnosti ne obstaja. - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - The target namespace of a %1 cannot be empty. Ciljni imenski prostor za %1 ne sme biti prazen. - The module import feature is not supported Zmožnost uvažanja modulov ni podprta - - No value is available for the external variable by name %1. - Za zunanjo spremenljivko z imenom %1 ni na voljo nobene vrednosti. - - - - A template by name %1 has already been declared. - Predloga z imenom %1 je že bila deklarirana. - - - The keyword %1 cannot occur with any other mode name. - - The value of attribute %1 must of type %2, which %3 isn't. - Vrednost lastnosti %1 mora biti vrste %2, %3 pa to ni. - - - - The prefix %1 can not be bound. By default, it is already bound to the namespace %2. - - - - - A variable by name %1 has already been declared. - Spremenljivka z imenom %1 je že bila deklarirana. - - - A stylesheet function must have a prefixed name. - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) Imenski prostor za uporabniško določeno funkcijo ne sme biti prazen (poskusite z vnaprej določeno predpono %1, ki obstaja za take primere) - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. Imenski prostor %1 je rezerviran, zato ga uporabniško določene funkcije ne smejo uporabiti. Poskusite z vnaprej določeno predpono %2, ki obstaja za take primere. - 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 Imenski prostor uporabniško določene funkcije v modulu knjižnice mora biti enak imenskemu prostoru modula. Z drugimi besedami, moral bi biti %1, namesto %2. - A function already exists with the signature %1. Funkcija s podpisom %1 že obstaja. - No external functions are supported. All supported functions can be used directly, without first declaring them as external Zunanje funkcije niso podprte. Vse podprte funkcije je moč uporabiti neposredno, brez da bi jih najprej deklarirali kot zunanje. - - An argument by name %1 has already been declared. Every argument name must be unique. - Argument z imenom %1 je že bil deklariran. Vsako ime argumenta mora biti edinstveno. + No variable with name %1 exists + + + + The value of attribute %1 must be of type %2, which %3 isn't. + + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + + A variable with name %1 has already been declared. + + + + No value is available for the external variable with name %1. + + + + An argument with name %1 has already been declared. Every argument name must be unique. + - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. - In an XSL-T pattern, function %1 cannot have a third argument. V XSL-T vzorcu funkcija %1 ne more imeti tretjega argumenta. - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. - %1 is an invalid template mode name. - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. Ime spremenljivke priklenjene v izrazu »for« se mora razlikovati od spremenljivke položaja. Spremenljivki z imenom %1 zato trčita. - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. - None of the pragma expressions are supported. Therefore, a fallback expression must be present - Each name of a template parameter must be unique; %1 is duplicated. - The %1-axis is unsupported in XQuery Os %1 v XQuery ni podprta - + No function with name %1 is available. + + + + An attribute with name %1 has already appeared on this element. + + + %1 is not a valid name for a processing-instruction. - %1 is not a valid numeric literal. - W3C XML Schema identity constraint selector - W3C XML Schema identity constraint field - A construct was encountered which is disallowed in the current language(%1). - - No function by name %1 is available. - Na voljo ni nobene funkcije z imenom %1. - - - The namespace URI cannot be the empty string when binding to a prefix, %1. - %1 is an invalid namespace URI. %1 ni veljaven URI imenskega prostora. - It is not possible to bind to the prefix %1 - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). Imenski prostor %1 je lahko navezan le na %2 (in je, v vsakem primeru, preddeklariran) - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). Predpona %1 je lahko navezana le na %2 (in je, v vsakem primeru, preddeklarirana) - Two namespace declaration attributes have the same name: %1. Dva atributa deklaracije imenskega prostora imata isto ime: %1 - The namespace URI must be a constant and cannot use enclosed expressions. - - An attribute by name %1 has already appeared on this element. - Atribut z imenom %1 se je v tem elementu že pojavil. - - - A direct element constructor is not well-formed. %1 is ended with %2. - The name %1 does not refer to any schema type. Ime %1 se ne nanaša na nobeno vrsto sheme. - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - %1 is not an atomic type. Casting is only possible to atomic types. - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - The name of an extension expression must be in a namespace. Ime razširitvenega izraza mora biti v imenskem prostoru. - empty prazno - zero or one nič ali en - exactly one točno en - one or more en ali več - zero or more nič ali več - Required type is %1, but %2 was found. Zahtevana vrsta je %1, najdena pa je bila %2. - Promoting %1 to %2 may cause loss of precision. Povišanje %1 v %2 lahko povzroči izgubo natančnosti. - The focus is undefined. Fokus ni definiran. - It's not possible to add attributes after any other kind of node. - An attribute by name %1 has already been created. Atribut z imenom %1 je že bil ustvarjen. - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. - Attribute %1 can't be serialized because it appears at the top level. - %1 is an unsupported encoding. %1 ni podprto kodiranje. - %1 contains octets which are disallowed in the requested encoding %2. - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. - Ambiguous rule match. Dvoumno ujemanje s pravilom. - In a namespace constructor, the value for a namespace cannot be an empty string. - The prefix must be a valid %1, which %2 is not. - + - The prefix %1 cannot be bound. Predpone %1 ni moč navezati. - Only the prefix %1 can be bound to %2 and vice versa. Na %2 je lahko navezana le predpona %1 in obratno. - The parameter %1 is required, but no corresponding %2 is supplied. Potreben je parameter %1, vendar ustrezen %2 ni bil podan. - The parameter %1 is passed, but no corresponding %2 exists. Podan je bil parameter %1, vendar ustrezen %2 ne obstaja. - The URI cannot have a fragment - Element %1 is not allowed at this location. Element %1 na tej lokaciji ni dovoljen. - Text nodes are not allowed at this location. Besedilna vozlišča na tej lokaciji niso dovoljena. - Parse error: %1 Napaka pri razčlenjevanju: %1 - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. Vrednost lastnosti različice XSL-T mora biti vrednost vrste %1, %2 pa to ni. - Running an XSL-T 1.0 stylesheet with a 2.0 processor. - Unknown XSL-T attribute %1. Neznana XSL-T lastnost %1. - Attribute %1 and %2 are mutually exclusive. Lastnosti %1 in %2 sta medsebojno izključujoči. - In a simplified stylesheet module, attribute %1 must be present. - If element %1 has no attribute %2, it cannot have attribute %3 or %4. Če element %1 nima lastnosti %2, ne more imeti lastnosti %3 ali %4. - Element %1 must have at least one of the attributes %2 or %3. Element %1 mora imeti vsaj eno izmed lastnosti %2 in %3. - At least one mode must be specified in the %1-attribute on element %2. - Element %1 must come last. Element %1 mora biti zadnji. - At least one %1-element must occur before %2. - Only one %1-element can appear. - At least one %1-element must occur inside %2. - + - When attribute %1 is present on %2, a sequence constructor cannot be used. - Element %1 must have either a %2-attribute or a sequence constructor. - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. - Element %1 cannot have children. Element %1 ne more imeti podelementov. - Element %1 cannot have a sequence constructor. - - The attribute %1 cannot appear on %2, when it is a child of %3. - A parameter in a function cannot be declared to be a tunnel. - This processor is not Schema-aware and therefore %1 cannot be used. - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. - The value for attribute %1 on element %2 must either be %3 or %4, not %5. Vrednost lastnosti %1 elementa %2 mora biti %3 ali %4 in ne %5. - Attribute %1 cannot have the value %2. Lastnost %1 ne more imeti vrednosti %2. - The attribute %1 can only appear on the first %2 element. Lastnost %1 se lahko pojavi le pri prvem elementu %2. - At least one %1 element must appear as child of %2. - %1 has inheritance loop in its base type %2. - - Circular inheritance of base type %1. - Circular inheritance of union %1. - %1 is not allowed to derive from %2 by restriction as the latter defines it as final. - %1 is not allowed to derive from %2 by extension as the latter defines it as final. - Base type of simple type %1 cannot be complex type %2. - Simple type %1 cannot have direct base type %2. - - Simple type %1 is not allowed to have base type %2. - Simple type %1 can only have simple atomic type as base type. - Simple type %1 cannot derive from %2 as the latter defines restriction as final. - - Variety of item type of %1 must be either atomic or union. - - Variety of member types of %1 must be atomic. - - %1 is not allowed to derive from %2 by list as the latter defines it as final. - Simple type %1 is only allowed to have %2 facet. - Base type of simple type %1 must have variety of type list. - Base type of simple type %1 has defined derivation by restriction as final. - Item type of base type does not match item type of %1. - - Simple type %1 contains not allowed facet type %2. - - %1 is not allowed to derive from %2 by union as the latter defines it as final. - %1 is not allowed to have any facets. - Base type %1 of simple type %2 must have variety of union. - Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. - Member type %1 cannot be derived from member type %2 of %3's base type %4. - Derivation method of %1 must be extension because the base type %2 is a simple type. - Complex type %1 has duplicated element %2 in its content model. - Complex type %1 has non-deterministic content. - Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. - Content model of complex type %1 is not a valid extension of content model of %2. - Complex type %1 must have simple content. - Complex type %1 must have the same simple type as its base class %2. - Complex type %1 cannot be derived from base type %2%3. - Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. - Complex type %1 with simple content cannot be derived from complex base type %2. - Item type of simple type %1 cannot be a complex type. - Member type of simple type %1 cannot be a complex type. - %1 is not allowed to have a member type with the same name as itself. - - - %1 facet collides with %2 facet. - %1 facet must have the same value as %2 facet of base type. - %1 facet must be equal or greater than %2 facet of base type. - - - - - - - - %1 facet must be less than or equal to %2 facet of base type. - %1 facet contains invalid regular expression - Unknown notation %1 used in %2 facet. - %1 facet contains invalid value %2: %3. - %1 facet cannot be %2 or %3 if %4 facet of base type is %5. - %1 facet cannot be %2 if %3 facet of base type is %4. - - - %1 facet must be less than or equal to %2 facet. - - - %1 facet must be less than %2 facet of base type. - - %1 facet and %2 facet cannot appear together. - - - %1 facet must be greater than %2 facet of base type. - - %1 facet must be less than %2 facet. - - %1 facet must be greater than or equal to %2 facet of base type. - Simple type contains not allowed facet %1. - %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. - Only %1 and %2 facets are allowed when derived by union. - - %1 contains %2 facet with invalid data: %3. - Attribute group %1 contains attribute %2 twice. Skupina lastnosti %1 dvakrat vsebuje lastnost %2. - Attribute group %1 contains two different attributes that both have types derived from %2. - Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. - Complex type %1 contains attribute %2 twice. Kompleksna vrsta %1 dvakrat vsebuje lastnost %2. - Complex type %1 contains two different attributes that both have types derived from %2. - Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. - Element %1 is not allowed to have a value constraint if its base type is complex. - Element %1 is not allowed to have a value constraint if its type is derived from %2. - - Value constraint of element %1 is not of elements type: %2. - Element %1 is not allowed to have substitution group affiliation as it is no global element. - Type of element %1 cannot be derived from type of substitution group affiliation. - Value constraint of attribute %1 is not of attributes type: %2. - Attribute %1 has value constraint but has type derived from %2. - %1 attribute in derived complex type must be %2 like in base type. - Attribute %1 in derived complex type must have %2 value constraint like in base type. - Attribute %1 in derived complex type must have the same %2 value constraint like in base type. - Attribute %1 in derived complex type must have %2 value constraint. - processContent of base wildcard must be weaker than derived wildcard. - - Element %1 exists twice with different types. Element %1 obstaja dvakrat, z različnima vrstama. - Particle contains non-deterministic wildcards. - - Base attribute %1 is required but derived attribute is not. - Type of derived attribute %1 cannot be validly derived from type of base attribute. - Value constraint of derived attribute %1 does not match value constraint of base attribute. - - Derived attribute %1 does not exists in the base definition. + Derived attribute %1 does not exist in the base definition. - Derived attribute %1 does not match the wildcard in the base definition. - Base attribute %1 is required but missing in derived definition. - Derived definition contains an %1 element that does not exists in the base definition - Derived wildcard is not a subset of the base wildcard. - %1 of derived wildcard is not a valid restriction of %2 of base wildcard - Attribute %1 from base type is missing in derived type. - Type of derived attribute %1 differs from type of base attribute. - Base definition contains an %1 element that is missing in the derived definition - %1 references unknown %2 or %3 element %4. - %1 references identity constraint %2 that is no %3 or %4 element. - %1 has a different number of fields from the identity constraint %2 that it references. - Base type %1 of %2 element cannot be resolved. - Item type %1 of %2 element cannot be resolved. - Member type %1 of %2 element cannot be resolved. - - - Type %1 of %2 element cannot be resolved. - Base type %1 of complex type cannot be resolved. - %1 cannot have complex base type that has a %2. - Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. - Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. - Type of %1 element must be a simple type, %2 is not. Vrsta elementa %1 mora biti preprosta, %2 to ni. - Substitution group %1 of %2 element cannot be resolved. - Substitution group %1 has circular definition. - - Duplicated element names %1 in %2 element. Podvojeni imeni elementov %1 v elementu %2. - - - - Reference %1 of %2 element cannot be resolved. - Circular group reference for %1. - %1 element is not allowed in this scope Element %1 v tem obsegu ni dovoljen - %1 element cannot have %2 attribute with value other than %3. - %1 element cannot have %2 attribute with value other than %3 or %4. - %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. - Attribute group %1 has circular reference. - %1 attribute in %2 must have %3 use like in base type %4. - Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. - %1 has attribute wildcard but its base type %2 has not. - Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. - Enumeration facet contains invalid content: {%1} is not a value of type %2. - Namespace prefix of qualified name %1 is not defined. - - %1 element %2 is not a valid restriction of the %3 element it redefines: %4. - Empty particle cannot be derived from non-empty particle. - Derived particle is missing element %1. - Derived element %1 is missing value constraint as defined in base particle. - Derived element %1 has weaker value constraint than base particle. - Fixed value constraint of element %1 differs from value constraint in base particle. - Derived element %1 cannot be nillable as base element is not nillable. - Block constraints of derived element %1 must not be more weaker than in the base element. - Simple type of derived element %1 cannot be validly derived from base element. - + Preproste vrste izpeljanega elementa %1 ni moč veljavno izpeljati iz osnovnega elementa. - Complex type of derived element %1 cannot be validly derived from base element. - + Kompleksne vrste izpeljanega elementa %1 ni moč veljavno izpeljati iz osnovnega elementa. - Element %1 is missing in derived particle. - + Element %1 v izpeljanem delcu manjka. - Element %1 does not match namespace constraint of wildcard in base particle. - Wildcard in derived particle is not a valid subset of wildcard in base particle. - + Vzorec v izpeljanem delcu ni veljavna podmnoživa vzorca iz osnovnega razreda. - processContent of wildcard in derived particle is weaker than wildcard in base particle. - + processContent vzorca v izpeljanem delcu je šibkejši kot vzorec v osnovnem delcu. - Derived particle allows content that is not allowed in the base particle. - + Izpeljani delec dovoljuje vsebino, ki v osnovnem delcu ni dovoljena. - Can not process unknown element %1, expected elements are: %2. Ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2. - Element %1 is not allowed in this scope, possible elements are: %2. Element %1 v tem obsegu ni dovoljen, možni elementi so: %2. - Child element is missing in that scope, possible child elements are: %1. V tem obsegu manjka podelement, možni podelementi so: %1. - Document is not a XML schema. Dokument ni shema XML. - %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. Lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4. - %1 attribute of %2 element contains invalid content: {%3}. Lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3}. - Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. - - Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. - %1 element is not allowed to have the same %2 attribute value as the target namespace %3. - %1 element without %2 attribute is not allowed inside schema without target namespace. - - %1 element is not allowed inside %2 element if %3 attribute is present. Element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3. - - - %1 element has neither %2 attribute nor %3 child element. Element %1 nima niti lastnosti %2 niti podelementa %3. - - - - - - - - - - - - - - %1 element with %2 child element must not have a %3 attribute. Element %1 s podelementom %2 ne sme imeti lastnosti %3. - %1 attribute of %2 element must be %3 or %4. Lastnost %1 elementa %2 mora biti %3 ali %4. - %1 attribute of %2 element must have a value of %3. Lastnost %1 elementa %2 mora imeti vrednost %3. - - %1 attribute of %2 element must have a value of %3 or %4. Lastnost %1 elementa %2 mora imeti vrednost %3 ali %4. - - - - - - - - - - - - - - %1 element must not have %2 and %3 attribute together. Element %1 hkrati ne sme imeti lastnosti %2 in %3. - - Content of %1 attribute of %2 element must not be from namespace %3. Vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3. - - %1 attribute of %2 element must not be %3. Lastnost %1 elementa %2 ne sme biti %3. - %1 attribute of %2 element must have the value %3 because the %4 attribute is set. - + Lastnost %1 elementa %2 mora imeti vrednost %3, ker je nastavljena lastnost %4. - Specifying use='prohibited' inside an attribute group has no effect. - + Določitev use='prohibited' znotraj skupine lastnosti nima nobenega učinka. - %1 element must have either %2 or %3 attribute. Element %1 mora imeti lastnost %2 ali %3. - %1 element must have either %2 attribute or %3 or %4 as child element. - + Element %1 mora imeti bodisi lastnost %2 bodisi vsebovati %3 ali %4 kot podelement. - %1 element requires either %2 or %3 attribute. Element %1 potrebuje vsaj lastnost %2 ali %3. - Text or entity references not allowed inside %1 element - + Sklici na besedilo ali entiteto znotraj elementa %1 niso dovoljeni. - - %1 attribute of %2 element must contain %3, %4 or a list of URIs. - + Lastnost %1 elementa %2 mora vsebovati %3, %4 ali pa seznam URI-jev. - %1 element is not allowed in this context. Element %1 v tem kontekstu ni dovoljen. - %1 attribute of %2 element has larger value than %3 attribute. - + Lastnost %1 elementa %2 ima višjo vrednost kot lastnost %3. - Prefix of qualified name %1 is not defined. - + Predpona kvalificiranega imena %1 ni določena. - - %1 attribute of %2 element must either contain %3 or the other values. - + Lastnost %1 elementa %2 mora vsebovati bodisi %3 bodisi druge vrednosti. - - Component with id %1 has been defined previously. - Komponenta z ID-jem %1 je že bila definirana. + Component with ID %1 has been defined previously. + Komponenta z ID-jem %1 je že bila definirana. - Element %1 already defined. Element %1 je že definiran. - Attribute %1 already defined. Lastnost %1 je že definirana. - Type %1 already defined. Vrsta %1 je že definirana. - Attribute group %1 already defined. Skupina lastnosti %1 je že definirana. - Element group %1 already defined. Skupina elementov %1 je že definirana. - Notation %1 already defined. Zapis %1 je že definiran. - Identity constraint %1 already defined. - + Omejitev identitete %1 je že določena. - Duplicated facets in simple type %1. - - - %1 is not valid according to %2. %1 glede na %2 ni veljaven. - String content does not match the length facet. - String content does not match the minLength facet. - String content does not match the maxLength facet. - String content does not match pattern facet. - String content is not listed in the enumeration facet. - Signed integer content does not match the maxInclusive facet. - Signed integer content does not match the maxExclusive facet. - Signed integer content does not match the minInclusive facet. - Signed integer content does not match the minExclusive facet. - Signed integer content is not listed in the enumeration facet. - Signed integer content does not match pattern facet. - Signed integer content does not match in the totalDigits facet. - Unsigned integer content does not match the maxInclusive facet. - Unsigned integer content does not match the maxExclusive facet. - Unsigned integer content does not match the minInclusive facet. - Unsigned integer content does not match the minExclusive facet. - Unsigned integer content is not listed in the enumeration facet. - Unsigned integer content does not match pattern facet. - Unsigned integer content does not match in the totalDigits facet. - Double content does not match the maxInclusive facet. - Double content does not match the maxExclusive facet. - Double content does not match the minInclusive facet. - Double content does not match the minExclusive facet. - Double content is not listed in the enumeration facet. - Double content does not match pattern facet. - Decimal content does not match in the fractionDigits facet. - Decimal content does not match in the totalDigits facet. - Date time content does not match the maxInclusive facet. - Date time content does not match the maxExclusive facet. - Date time content does not match the minInclusive facet. - Date time content does not match the minExclusive facet. - Date time content is not listed in the enumeration facet. - Date time content does not match pattern facet. - Duration content does not match the maxInclusive facet. - Duration content does not match the maxExclusive facet. - Duration content does not match the minInclusive facet. - Duration content does not match the minExclusive facet. - Duration content is not listed in the enumeration facet. - Duration content does not match pattern facet. - Boolean content does not match pattern facet. - Binary content does not match the length facet. - Binary content does not match the minLength facet. - Binary content does not match the maxLength facet. - Binary content is not listed in the enumeration facet. - Invalid QName content: %1. Neveljavna vsebina QName: %1. - QName content is not listed in the enumeration facet. - QName content does not match pattern facet. - Notation content is not listed in the enumeration facet. - List content does not match length facet. - List content does not match minLength facet. - List content does not match maxLength facet. - List content is not listed in the enumeration facet. - List content does not match pattern facet. - Union content is not listed in the enumeration facet. - Union content does not match pattern facet. - Data of type %1 are not allowed to be empty. Podatki vrste %1 ne smejo biti prazni. - Element %1 is missing child element. Elementu %1 manjka podelement. - There is one IDREF value with no corresponding ID: %1. - + Obstaja ena vrednost IDREF brez ustreznega ID-ja: %1 - Loaded schema file is invalid. - + Naložena datoteka s shemo ni veljavna. - %1 contains invalid data. %1 vsebuje neveljavne podatke. - xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. - xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. - No schema defined for validation. - + Določene ni nobene sheme za potrjevanje. - No definition for element %1 available. Definicija za element %1 ni na voljo. - - - Specified type %1 is not known to the schema. - + Določena vrsta %1 shemi ni znana. - Element %1 is not defined in this scope. Element %1 v tem obsegu ni definiran. - Declaration for element %1 does not exist. Deklaracija elementa %1 ne obstaja. - Element %1 contains invalid content. Element %1 vsebuje neveljavno vsebino. - Element %1 is declared as abstract. Element %1 je deklariran kot abstrakten. - Element %1 is not nillable. - Attribute %1 contains invalid data: %2 Lastnost %1 vsebuje neveljavne podatke: %2 - Element contains content although it is nillable. - - Fixed value constrained not allowed if element is nillable. + Fixed value constraint not allowed if element is nillable. + + + + Element %1 cannot contain other elements, as it has a fixed content. - Specified type %1 is not validly substitutable with element type %2. - Complex type %1 is not allowed to be abstract. Kompleksna vrsta %1 ne sme biti abstraktna. - Element %1 contains not allowed attributes. Element %1 vsebuje nedovoljene lastnosti. - - Element %1 contains not allowed child element. Element %1 vsebuje nedovoljen podelement. - - Content of element %1 does not match its type definition: %2. Vsebina elementa %1 ne ustreza zanj določeni vrsti: %2. - - - Content of element %1 does not match defined value constraint. - + Vsebina elementa %1 ne ustreza določeni omejitvi vrednosti. - Element %1 contains not allowed child content. Element %1 vsebuje nedovoljeno vsebino v podelementih. - Element %1 contains not allowed text content. Element %1 vsebuje nedovoljeno besedilno vsebino. - - Element %1 can not contain other elements, as it has a fixed content. - Element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino. - - - Element %1 is missing required attribute %2. Elementu %1 manjka obvezna lastnost %2. - Attribute %1 does not match the attribute wildcard. - + Lastnost %1 ne ustreza vzorcu za lastnost. - Declaration for attribute %1 does not exist. Deklaracija lastnosti %1 ne obstaja. - Element %1 contains two attributes of type %2. Element %1 vsebuje dve lastnosti vrste %2. - Attribute %1 contains invalid content. Lastnost %1 vsebuje neveljavno vsebino. - Element %1 contains unknown attribute %2. Element %1 vsebuje neznano lastnost %2. - - Content of attribute %1 does not match its type definition: %2. - + Vsebina lastnosti %1 ne ustreza zanjo določeni vrsti: %2. - - Content of attribute %1 does not match defined value constraint. - + Vsebina lastnosti %1 ne ustreza zanjo določeni omejitvi vrednosti. - Non-unique value found for constraint %1. - + Za omejitev %1 je bila najdena ne-edinstvena vrednost. - Key constraint %1 contains absent fields. - + Omejitev ključa %1 vsebuje manjkajoča polja. - Key constraint %1 contains references nillable element %2. - No referenced value found for key reference %1. - More than one value found for field %1. Za polje %1 je bila najdena več kot ena vrednost. - Field %1 has no simple type. Polje %1 nima preproste vrste. - ID value '%1' is not unique. Vrednost ID »%1« ni edinstvena. - '%1' attribute contains invalid QName content: %2. Lastnost »%1« vsebuje neveljavno vsebino QName: %2. + + + + + Remaining move time + QWebPage~|Media controller element + Preostali čas filma + - attribute group %1 contains attribute %2 twice + QtXmlPatterns~| skupina lastnosti %1 dvakrat vsebuje lastnost %2 - complex type %1 contains attribute %2 twice + QtXmlPatterns~| kompleksna vrsta %1 dvakrat vsebuje lastnost %2 - element %1 exists twice with different types + QtXmlPatterns~| element %1 obstaja dvakrat, z različnima vrstama - can not process unknown element %1, expected elements are: %2 + QtXmlPatterns~| ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2 - element %1 is not allowed in this scope, possible elements are: %2 + QtXmlPatterns~| element %1 v tem obsegu ni dovoljen, možni elementi so: %2 - child element is missing in that scope, possible child elements are: %1 + QtXmlPatterns~| v tem obsegu manjka podelement, možni podelementi so: %1 - document is not a XML schema + QtXmlPatterns~| dokument ni shema XML - %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4 + QtXmlPatterns~| lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4 - %1 attribute of %2 element contains invalid content: {%3} + QtXmlPatterns~| lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} - %1 element is not allowed inside %2 element if %3 attribute is present + QtXmlPatterns~| element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3 - %1 element has neither %2 attribute nor %3 child element + QtXmlPatterns~| element %1 nima niti lastnosti %2 niti podelementa %3 - %1 element with %2 child element must not have a %3 attribute + QtXmlPatterns~| element %1 s podelementom %2 ne sme imeti lastnosti %3 - %1 attribute of %2 element must be %3 or %4 + QtXmlPatterns~| lastnost %1 elementa %2 mora biti %3 ali %4 - %1 attribute of %2 element must have a value of %3 + QtXmlPatterns~| lastnost %1 elementa %2 mora imeti vrednost %3 - %1 attribute of %2 element must have a value of %3 or %4 + QtXmlPatterns~| lastnost %1 elementa %2 mora imeti vrednost %3 ali %4 - %1 element must not have %2 and %3 attribute together + QtXmlPatterns~| element %1 hkrati ne sme imeti lastnosti %2 in %3 - content of %1 attribute of %2 element must not be from namespace %3 + QtXmlPatterns~| vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3 - %1 attribute of %2 element must not be %3 + QtXmlPatterns~| lastnost %1 elementa %2 ne sme biti %3 - %1 element must have either %2 or %3 attribute + QtXmlPatterns~| element %1 mora imeti lastnost %2 ali %3 - %1 element requires either %2 or %3 attribute + QtXmlPatterns~| element %1 potrebuje vsaj lastnost %2 ali %3 - %1 element is not allowed in this context + QtXmlPatterns~| element %1 v tem kontekstu ni dovoljen - component with id %1 has been defined previously + QtXmlPatterns~| komponenta z ID-jem %1 je že bila definirana - element %1 already defined + QtXmlPatterns~| element %1 je že definiran - attribute %1 already defined + QtXmlPatterns~| lastnost %1 je že definirana - type %1 already defined + QtXmlPatterns~| vrsta %1 je že definirana - attribute group %1 already defined + QtXmlPatterns~| skupina lastnosti %1 je že definirana - element group %1 already defined + QtXmlPatterns~| skupina elementov %1 je že definirana - notation %1 already defined + QtXmlPatterns~| zapis %1 je že definiran - type of %1 element must be a simple type, %2 is not + QtXmlPatterns~| vrsta elementa %1 mora biti preprosta, %2 to ni - duplicated element names %1 in %2 element + QtXmlPatterns~| podvojeni imeni elementov %1 v elementu %2 - %1 is not valid according to %2 + QtXmlPatterns~| %1 glede na %2 ni veljaven - invalid QName content: %1 + QtXmlPatterns~| neveljavna vsebina QName: %1 - data of type %1 are not allowed to be empty + QtXmlPatterns~| podatki vrste %1 ne smejo biti prazni - element %1 is missing child element + QtXmlPatterns~| elementu %1 manjka podelement - %1 contains invalid data + QtXmlPatterns~| %1 vsebuje neveljavne podatke - no definition for element %1 available + QtXmlPatterns~| definicija za element %1 ni na voljo - element %1 is not defined in this scope + QtXmlPatterns~| element %1 v tem obsegu ni definiran - declaration for element %1 does not exist + QtXmlPatterns~| deklaracija elementa %1 ne obstaja - element %1 contains invalid content + QtXmlPatterns~| element %1 vsebuje neveljavno vsebino - element %1 is declared as abstract + QtXmlPatterns~| element %1 je deklariran kot abstrakten - complex type %1 is not allowed to be abstract + QtXmlPatterns~| kompleksna vrsta %1 ne sme biti abstraktna - element %1 contains not allowed attributes + QtXmlPatterns~| element %1 vsebuje nedovoljene lastnosti - element %1 contains not allowed child element + QtXmlPatterns~| element %1 vsebuje nedovoljen podelement - content of element %1 does not match its type definition: %2 + QtXmlPatterns~| vsebina elementa %1 ne ustreza zanj določeni vrsti: %2 - element %1 contains not allowed child content + QtXmlPatterns~| element %1 vsebuje nedovoljeno vsebino v podelementih - element %1 contains not allowed text content + QtXmlPatterns~| element %1 vsebuje nedovoljeno besedilno vsebino - element %1 can not contain other elements, as it has a fixed content + QtXmlPatterns~| element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino - element %1 is missing required attribute %2 + QtXmlPatterns~| elementu %1 manjka obvezna lastnost %2 - declaration for attribute %1 does not exist + QtXmlPatterns~| deklaracija lastnosti %1 ne obstaja - element %1 contains two attributes of type %2 + QtXmlPatterns~| element %1 vsebuje dve lastnosti vrste %2 - attribute %1 contains invalid content + QtXmlPatterns~| lastnost %1 vsebuje neveljavno vsebino - element %1 contains unknown attribute %2 + QtXmlPatterns~| element %1 vsebuje neznano lastnost %2 - more than one value found for field %1 + QtXmlPatterns~| za polje %1 je bila najdena več kot ena vrednost - field %1 has no simple type + QtXmlPatterns~| polje %1 nima preproste vrste - ID value '%1' is not unique + QtXmlPatterns~| Vrednost ID »%1« ni edinstvena - '%1' attribute contains invalid QName content: %2 + QtXmlPatterns~| Lastnost »%1« vsebuje neveljavno vsebino QName: %2 + + Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed. + Phonon::Gstreamer::MediaObject| + Ni moč začeti predvajanja. + +Preverite namestitev GStreamerja in se prepričajte, +da je nameščen paket libgstreamer-plugins-base. + + + Frequency band, %1 Hz + Phonon::MMF::AudioEqualizer| + Frekvenčni pas, %1 Hz + + + audio equalizer + Phonon::MMF::EffectFactory| + izenačevalnik zvoka + + + Bass boost + Phonon::MMF::EffectFactory| + Ojačanje basov + + + Distance Attenuation + Phonon::MMF::EffectFactory| + Utišanje zaradi razdalje + + + Environmental Reverb + Phonon::MMF::EffectFactory| + Okoljsko odmevanje + + + Loudness + Phonon::MMF::EffectFactory| + Glasnost + + + Source Orientation + Phonon::MMF::EffectFactory| + Usmerjenost vira + + + Stereo Widening + Phonon::MMF::EffectFactory| + Razširitev sterea + + + Invalid hostname + QObject| + Neveljavno ime gostitelja + + + Operation not supported on %1 + QObject| + Dejanje na %1 ni podprto + + + Invalid URI: %1 + QObject| + Neveljaven URI: %1 + + + Socket error on %1: %2 + QObject| + Napaka vtičnice na %1: %2 + + + Remote host closed the connection prematurely on %1 + QObject| + Oddaljen gostitelj je predčasno prekinil povezavo na %1 + + + No host name given + QObject| + Podano ni bilo nobeno ime gostitelja + + + Private key does not certificate public key, %1 + QSslSocket| + Zasebni ključ ne potrjuje javnega ključa, %1 + + + No variable by name %1 exists + QtXmlPatterns| + Spremenljivka z imenom %1 ne obstaja + + + No value is available for the external variable by name %1. + QtXmlPatterns| + Za zunanjo spremenljivko z imenom %1 ni na voljo nobene vrednosti. + + + A template by name %1 has already been declared. + QtXmlPatterns| + Predloga z imenom %1 je že bila deklarirana. + + + The value of attribute %1 must of type %2, which %3 isn't. + QtXmlPatterns| + Vrednost lastnosti %1 mora biti vrste %2, %3 pa to ni. + + + A variable by name %1 has already been declared. + QtXmlPatterns| + Spremenljivka z imenom %1 je že bila deklarirana. + + + An argument by name %1 has already been declared. Every argument name must be unique. + QtXmlPatterns| + Argument z imenom %1 je že bil deklariran. Vsako ime argumenta mora biti edinstveno. + + + No function by name %1 is available. + QtXmlPatterns| + Na voljo ni nobene funkcije z imenom %1. + + + An attribute by name %1 has already appeared on this element. + QtXmlPatterns| + Atribut z imenom %1 se je v tem elementu že pojavil. + + + Component with id %1 has been defined previously. + QtXmlPatterns| + Komponenta z ID-jem %1 je že bila definirana. + + + Element %1 can not contain other elements, as it has a fixed content. + QtXmlPatterns| + Element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino. + -- cgit v0.12 From 2f72664836ca16ef257759108e27d5ec6b8995a1 Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Wed, 11 Aug 2010 18:35:38 +0200 Subject: update Russian translations for Qt and tools Merge-request: 2445 Reviewed-by: Oswald Buddenhagen --- tools/linguist/phrasebooks/russian.qph | 16 +- translations/assistant_ru.ts | 355 ++--- translations/designer_ru.ts | 1380 +--------------- translations/linguist_ru.ts | 443 +----- translations/qt_help_ru.ts | 78 +- translations/qt_ru.ts | 2698 +------------------------------- translations/qtconfig_ru.ts | 177 --- translations/qvfb_ru.ts | 69 - 8 files changed, 305 insertions(+), 4911 deletions(-) diff --git a/tools/linguist/phrasebooks/russian.qph b/tools/linguist/phrasebooks/russian.qph index 750fda0..5876ee9 100644 --- a/tools/linguist/phrasebooks/russian.qph +++ b/tools/linguist/phrasebooks/russian.qph @@ -498,7 +498,7 @@ Next - Следующий + Далее object @@ -1070,7 +1070,7 @@ Next - Далее + Следующий tree view @@ -1204,4 +1204,16 @@ Permission denied Доступ запрещён + + Previous + Предыдущий + + + Next + Следующее + + + Previous + Предыдущее + diff --git a/translations/assistant_ru.ts b/translations/assistant_ru.ts index 5244483..f5ba461 100644 --- a/translations/assistant_ru.ts +++ b/translations/assistant_ru.ts @@ -4,7 +4,6 @@ AboutDialog - &Close &Закрыть @@ -12,19 +11,16 @@ AboutLabel - Warning Предупреждение - Unable to launch external application. Невозможно запустить внешнее приложение. - OK Закрыть @@ -32,17 +28,14 @@ Assistant - Error registering documentation file '%1': %2 Ошибка регистрации файла документации '%1': %2 - Error: %1 Ошибка: %1 - Could not register documentation file %1 @@ -55,12 +48,10 @@ Reason: %2 - Documentation successfully registered. Документация успешно зарегистрирована. - Could not unregister documentation file %1 @@ -73,27 +64,22 @@ Reason: %2 - Documentation successfully unregistered. Документация успешно дерегистрирована. - Error reading collection file '%1': %2. - Ошибка чтения файла коллекции справки '%1': %2. + Ошибка чтения файла коллекции справки '%1': %2. - Error creating collection file '%1': %2. - Ошибка создания файла коллекции справки '%1': %2. + Ошибка создания файла коллекции справки '%1': %2. - Error reading collection file '%1': %2 - Ошибка чтения файла коллекции справки '%1': %2 + Ошибка чтения файла коллекции справки '%1': %2 - Cannot load sqlite database driver! Не удалось загрузить драйвер баз данных sqlite! @@ -101,139 +87,229 @@ Reason: BookmarkDialog - Add Bookmark Добавление закладки - Bookmark: Закладка: - Add in Folder: Добавить в папку: - + + - New Folder Новая папка + + Rename Folder + Переименовать папку + BookmarkManager - Remove Удалить - You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? Удаление папки приведёт к удалению её содержимого.<br>Желаете продолжить? - Add Bookmark... Добавить закладку... - Ctrl+D - Untitled Неозаглавлено - Manage Bookmarks... Управление закладками... - Delete Folder Удалить папку - Rename Folder Переименовать папку - Show Bookmark Открыть закладку - Show Bookmark in New Tab Открыть закладку в новой вкладке - Delete Bookmark Удалить закладку - Rename Bookmark Переименовать закладку + BookmarkManagerWidget + + Manage Bookmarks + Управление закладками + + + Search: + Поиск: + + + Remove + Удалить + + + Import and Backup + Резервное копирование + + + OK + ОК + + + Import... + Импорт... + + + Export... + Экспорт... + + + Open File + Открыть файл + + + Files (*.xbel) + Файлы (*.xbel) + + + Save File + Сохранить файл + + + Qt Assistant + Qt Assistant + + + Unable to save bookmarks. + Невозможно сохранитьзакладки. + + + You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue? + Удаление папки приведёт к удалению её содержимого.<br>Желаете продолжить? + + + Delete Folder + Удалить папку + + + Rename Folder + Переименовать папку + + + Show Bookmark + Открыть закладку + + + Show Bookmark in New Tab + Открыть закладку в новой вкладке + + + Delete Bookmark + Удалить закладку + + + Rename Bookmark + Переименовать закладку + + + + BookmarkModel + + Name + Название + + + Address + Адрес + + + Bookmarks Menu + Меню закладок + + + + BookmarkWidget + + Bookmarks + Закладки + + + Filter: + Фильтр: + + + Add + Добавить + + + Remove + Удалить + + + CentralWidget - Add new page Открыть новую страницу - Close current page Закрыть текущую страницу - Print Document Печать документа - - unknown безымянная вкладка - Add New Page Открыть новую страницу - Close This Page Закрыть данную страницу - Close Other Pages Закрыть остальные страницы - Add Bookmark for this Page... Добавить закладку для этой страницы... - Search Поиск @@ -241,62 +317,50 @@ Reason: CmdLineParser - Unknown option: %1 Неизвестный параметр: %1 - Unknown widget: %1 Неизвестный виджет: %1 - The collection file '%1' does not exist. - Файл коллекции справки '%1' не существует. + Файл коллекции справки '%1' не существует. - Missing collection file. - Отсутствует файл коллекции справки. + Отсутствует файл коллекции справки. - Invalid URL '%1'. Некорректный URL '%1'. - Missing URL. Отсутствует URL. - Missing widget. Отсутствует виджет. - The Qt help file '%1' does not exist. Файл справки Qt '%1' не существует. - Missing help file. Отсутствует файл справки. - Missing filter argument. Отсутствует параметр фильтра. - Error Ошибка - Notice Замечание @@ -304,12 +368,10 @@ Reason: ContentWindow - Open Link Открыть ссылку - Open Link in New Tab Открыть ссылку в новой вкладке @@ -317,40 +379,52 @@ Reason: FilterNameDialogClass - Add Filter Name Добавление фильтра - Filter Name: Название фильтра: + FindWidget + + Previous + Предыдущее + + + Next + Следующее + + + Case Sensitive + Учитывать регистр символов + + + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped + <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Поиск с начала + + + FontPanel - Font Шрифт - &Writing system Система &письма - &Family &Шрифт - &Style &Начертание - &Point size &Размер @@ -358,30 +432,37 @@ Reason: HelpViewer - <title>about:blank</title> - <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> <title>Ошибка 404...</title><div align="center"><br><br><h1>Страница не найдена</h1><br><h3>'%1'</h3></div> + + Copy &Link Location + Копировать &адрес ссылки + + + Open Link in New Tab Ctrl+LMB + Открыть ссылку в новой вкладке Ctrl+LMB + + + Open Link in New Tab + Открыть ссылку в новой вкладке + IndexWindow - &Look for: &Искать: - Open Link Открыть ссылку - Open Link in New Tab Открыть ссылку в новой вкладке @@ -389,99 +470,76 @@ Reason: InstallDialog - - Install Documentation Установка документации - Downloading documentation info... Загрузка информации о документации... - Download canceled. Загрузка отменена. - - - Done. Готово. - The file %1 already exists. Do you want to overwrite it? Файл %1 уже существует. Желаете перезаписать его? - Unable to save the file %1: %2. Невозможно сохранить файл %1: %2. - Downloading %1... Загрузка %1... - - - Download failed: %1. Загрузка не удалась: %1. - Documentation info file is corrupt! Файл информации о документации повреждён! - Download failed: Downloaded file is corrupted. Загрузка не удалась: загруженный файл повреждён. - Installing documentation %1... Установка документации %1... - Error while installing documentation: %1 При установке документации возникла ошибка: %1 - Available Documentation: Доступная документация: - Install Установить - Cancel Отмена - Close Закрыть - Installation Path: Путь установки: - ... ... @@ -489,297 +547,234 @@ Reason: MainWindow - - Index Указатель - - Contents Содержание - - Bookmarks Закладки - - - Qt Assistant Qt Assistant - Looking for Qt Documentation... Поиск документации Qt... - &File &Файл - Page Set&up... Параметры &страницы... - Print Preview... Предпросмотр печати... - &Print... &Печать... - New &Tab Новая &вкладка - &Close Tab &Закрыть вкладку - &Quit В&ыход - CTRL+Q - &Edit &Правка - &Copy selected Text &Копировать выделенный текст - &Find in Text... П&оиск в тексте... - &Find &Поиск - Find &Next Найти &следующее - Find &Previous Найти &предыдущее - Preferences... Настройки... - &View &Вид - Zoom &in У&величить - Zoom &out У&меньшить - Normal &Size Нормальный р&азмер - Ctrl+0 - ALT+C - ALT+I - ALT+O - Search Поиск - ALT+S - &Go &Перейти - &Home &Домой - ALT+Home - &Back &Назад - &Forward &Вперёд - Sync with Table of Contents Синхронизировать с оглавлением - Sync Синхронизировать - Next Page Следующая страница - Ctrl+Alt+Right - Previous Page Предыдущая страница - Ctrl+Alt+Left - &Bookmarks &Закладки - Could not register file '%1': %2 Не удалось зарегистрировать файл '%1': %2 - &Help &Справка - About... О программе... - Navigation Toolbar Панель навигации - &Window &Окно - Zoom Масштаб - Minimize Свернуть - Ctrl+M - Toolbars Панели инструментов - Filter Toolbar Панель фильтров - Filtered by: Отфильтровано по: - Address Toolbar Панель адреса - Address: Адрес: - Could not find the associated content item. Не удалось найти элемент, связанный с содержанием. - About %1 О %1 - Updating search index Обновление поискового индекса @@ -787,48 +782,38 @@ Reason: PreferencesDialog - - Add Documentation Добавить документацию - Qt Compressed Help Files (*.qch) Сжатые файлы справки Qt (*.qch) - The namespace %1 is already registered! Пространство имён %1 уже зарегистрировано! - The specified file is not a valid Qt Help File! Указанный файл не является корректным файлом справки Qt! - Remove Documentation Удалить документацию - Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. Некоторые открытые в Qt Assistant документы ссылаются на документацию, которую вы пытаетесь удалить. Её удаление приведёт к закрытию этих документов. - Cancel Отмена - OK Удалить - Use custom settings Использовать индивидуальные настройки @@ -836,117 +821,94 @@ Reason: PreferencesDialogClass - Preferences Настройки - Fonts Шрифты - Font settings: Настройки шрифта: - Browser Обозреватель - Application Приложение - Filters Фильтры - Filter: Фильтр: - Attributes: Атрибуты: - 1 1 - Add Добавить - Remove Удалить - Documentation Документация - Registered Documentation: Зарегистрированная документация: - Add... Добавить... - Options Параметры - Homepage Стартовая страница - Current Page Текущая страница - Restore to default Страница по умолчанию - On help start: При запуске: - Show my home page Отобразить стартовую страницу - Show a blank page Отобразить пустую страницу - Show my tabs from last session Восстановить предыдущую сессиию - Blank Page Пустая страница @@ -954,12 +916,10 @@ Reason: RemoteControl - Debugging Remote Control Отладочное удалённое управление - Received Command: %1 %2 Получена команда: %1 %2 @@ -967,22 +927,18 @@ Reason: SearchWidget - &Copy &Копировать - Copy &Link Location Копировать &адрес ссылки - Open Link in New Tab Открыть ссылку в новой вкладке - Select All Выделить всё @@ -990,27 +946,22 @@ Reason: TopicChooser - Choose a topic for <b>%1</b>: Выберите раздел для <b>%1</b>: - Choose Topic Выбор раздела - &Topics &Разделы - &Display &Показать - &Close &Закрыть diff --git a/translations/designer_ru.ts b/translations/designer_ru.ts index 72f3532..89977b1 100644 --- a/translations/designer_ru.ts +++ b/translations/designer_ru.ts @@ -4,27 +4,22 @@ AbstractFindWidget - &Previous &Предыдущий - &Next &Следующий - &Case sensitive &Учитывать регистр - Whole &words Слова &целиком - <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/shared/images/wrap.png">&nbsp;Поиск с начала @@ -32,17 +27,14 @@ AddLinkDialog - Insert Link Вставить ссылку - Title: Заголовок: - URL: URL: @@ -50,7 +42,6 @@ AppFontDialog - Additional Fonts Дополнительные шрифты @@ -58,37 +49,30 @@ AppFontManager - '%1' is not a file. '%1' не является файлом. - The font file '%1' does not have read permissions. Файл шрифтов '%1' не доступен для чтения. - The font file '%1' is already loaded. Файл шрифтов '%1'уже загружен. - The font file '%1' could not be loaded. Файл шрифтов '%1' не может быть загружен. - '%1' is not a valid font id. '%1' не является корректным идентификатором шрифта. - There is no loaded font matching the id '%1'. Нет загруженного шрифта, соответствующего идентификатору '%1'. - The font '%1' (%2) could not be unloaded. Шрифт '%1' (%2) не может быть выгружен. @@ -96,52 +80,42 @@ AppFontWidget - Fonts Шрифты - Add font files Добавить файлы шрифтов - Remove current font file Удалить текущий файл шрифта - Remove all font files Удалить все файлы шрифтов - Add Font Files Добавить файлы шрифтов - Font files (*.ttf) Файлы шрифтов (*.ttf) - Error Adding Fonts Ошибка добавления шрифтов - Error Removing Fonts Ошибка удаления шрифтов - Remove Fonts Удалить шрифты - Would you like to remove all fonts? Желаете удалить все шрифты? @@ -149,12 +123,10 @@ AppearanceOptionsWidget - Form Форма - User Interface Mode Режим пользовательского интерфейса @@ -162,17 +134,14 @@ AssistantClient - Unable to send request: Assistant is not responding. Невозможно отправить запрос: Qt Assistant не отвечает. - The binary '%1' does not exist. Исполняемый файл '%1' не существует. - Unable to launch assistant (%1). Невозможно запустить Qt Assistant (%1). @@ -180,92 +149,74 @@ BrushPropertyManager - No brush Пустая - Solid Сплошная - Dense 1 Плотность 1 - Dense 2 Плотность 2 - Dense 3 Плотность 3 - Dense 4 Плотность 4 - Dense 5 Плотность 5 - Dense 6 Плотность 6 - Dense 7 Плотность 7 - Horizontal Горизонтальная - Vertical Вертикальная - Cross Крестообразная - Backward diagonal Обратная диагональ - Forward diagonal Диагональ - Crossing diagonal Пересекающиеся диагонали - Style Стиль - Color Цвет - [%1, %2] [%1, %2] @@ -273,350 +224,269 @@ Command - - Change signal Сменить сигнал - - Change slot Сменить слот - Change signal-slot connection Изменить соединение сигнал-слот - Change sender Сменить отправителя - Change receiver Сменить получателя - Create button group Создать группу кнопок - Break button group Разбить группу кнопок - Break button group '%1' Разбить группу кнопок '%1' - Add buttons to group Добавить кнопки в группу - - Add '%1' to '%2' Command description for adding buttons to a QButtonGroup Добавить '%1' в '%2' - Remove buttons from group Удалить кнопки из группы - Remove '%1' from '%2' Command description for removing buttons from a QButtonGroup Удалить '%1' из '%2' - Add connection Добавить соединение - Adjust connection Настроить соединение - Delete connections Удалить соединения - Change source Сменить источник - Change target Сменить приёмника - Morph %1/'%2' into %3 MorphWidgetCommand description Преобразовать %1/'%2' в %3 - Insert '%1' Вставить '%1' - Change Z-order of '%1' Изменить порядок удалённости '%1' - Raise '%1' Поднять '%1' - Lower '%1' Опустить '%1' - Delete '%1' Удалить '%1' - Reparent '%1' Сменить владельца у '%1' - Promote to custom widget Преобразовать в пользовательский виджет - Demote from custom widget Преобразовать из пользовательского виджета - Lay out using grid Скомпоновать, используя сетку - Lay out vertically Скомпоновать по вертикали - Lay out horizontally Скомпоновать по горизонтали - Break layout Разбить компоновку - Simplify Grid Layout Упрощённая компоновка по сетке - - - Move Page Переместить страницу - - - - Delete Page Удалить страницу - - Page Страница - page страница - - - - Insert Page Вставить страницу - Change Tab order Изменить последовательность переключений - Create Menu Bar Создать панель меню - Delete Menu Bar Удалить панель меню - Create Status Bar Создать строку состояния - Delete Status Bar Удалить строку состояния - Add Tool Bar Добавить панель инструментов - Add Dock Window Добавить прикрепляемое окно - Adjust Size of '%1' Подогнать размер '%1' - Change Form Layout Item Geometry Изменить геометрию элементов компоновки столбцами - Change Layout Item Geometry Изменить геометрию элементов компоновки - Delete Subwindow Удалить дочернее окно - Insert Subwindow Вставить дочернее окно - subwindow дочернее окно - Subwindow Дочернее окно - Change Table Contents Изменить содержимое таблицы - Change Tree Contents Изменить содержимое дерева - - Add action Добавить действие - - Remove action Удалить действие - Add menu Добавить меню - Remove menu Удалить меню - Create submenu Создать дочернее меню - Delete Tool Bar Удалить панель инструментов - Change layout of '%1' from %2 to %3 Изменить компоновку '%1' с %2 на %3 - Set action text Установить текст действия - Insert action Вставить действие - - Move action Переместить действие - Change Title Изменить заголовок - Insert Menu Вставить меню - Changed '%1' of '%2' Изменено '%1' у '%2' - Changed '%1' of %n objects Изменено '%1' у %n объекта @@ -625,12 +495,10 @@ - Reset '%1' of '%2' Восстановлено '%1' у '%2' - Reset '%1' of %n objects Восстановлено '%1' у %n объекта @@ -639,12 +507,10 @@ - Add dynamic property '%1' to '%2' Добавлено динамическое свойство '%1' '%2' - Add dynamic property '%1' to %n objects Добавлено динамическое свойство '%1' %n объекту @@ -653,12 +519,10 @@ - Remove dynamic property '%1' from '%2' Удалено динамическое свойство '%1' у '%2' - Remove dynamic property '%1' from %n objects Удалено динамическое свойство '%1' у %n объекта @@ -667,12 +531,10 @@ - Change script Изменить сценарий - Change signals/slots Изменить сигналы/слоты @@ -680,22 +542,18 @@ ConnectDialog - Configure Connection Настройка соединения - GroupBox GroupBox - Edit... Изменить... - Show signals and slots inherited from QWidget Показывать сигналы и слоты, унаследованные от QWidget @@ -703,17 +561,14 @@ ConnectionDelegate - <object> <объект> - <signal> <сигнал> - <slot> <слот> @@ -721,19 +576,16 @@ DPI_Chooser - Standard (96 x 96) Embedded device standard screen resolution Стандартное (96 x 96) - Greenphone (179 x 185) Embedded device screen resolution Greenphone (179 x 185) - High (192 x 192) Embedded device high definition screen resolution Высокое (192 x 192) @@ -742,89 +594,72 @@ Designer - Qt Designer Qt Designer - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. Этот файл содержит верхнеуровневые разделители.<br>Они <b>НЕ</b> были сохранены в форме. - Perhaps you forgot to create a layout? Возможно, вы забыли создать компоновщик? - Invalid UI file: The root element <ui> is missing. Некорректный файл UI: Отсутствует корневой элемент <ui>. - An error has occurred while reading the UI file at line %1, column %2: %3 При чтении файла UI в строке %1 позиции %2 возникла ошибка: %3 - This file cannot be read because it was created using %1. Не удалось прочитать файл, так как он был создан с использованием %1. - This file was created using Designer from Qt-%1 and cannot be read. Не удалось прочитать файл, так как он был создан с использованием Designer из Qt-%1. - The converted file could not be read. Не удалось прочитать преобразованный файл. - This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. Этот файл был создан с использованием Designer из Qt-%1 и будет преобразован в новый формат. - The old form has not been touched, but you will have to save the form under a new name. Старая форма была изменена, но вы можете сохранить форму под новым именем. - This file was created using Designer from Qt-%1 and could not be read: %2 Не удалось прочитать файл, так как он был создан с использованием Designer из Qt-%1: %2 - Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. Пожалуйста, пропустите его через <b>uic3&nbsp;-convert</b> для преобразования в формат ui для Qt-4. - This file cannot be read because the extra info extension failed to load. Не удалось прочитать файл, так как возникла ошибка при загрузке расширения дополнительной информации. - Custom Widgets Пользовательские виджеты - Promoted Widgets Преобразованные виджеты - Unable to launch %1. Невозможно запустить %1. - %1 timed out. %1 время ожидания истекло. @@ -832,12 +667,10 @@ DesignerMetaEnum - %1 is not a valid enumeration value of '%2'. %1 не является корректным перечислением типа '%2'. - '%1' could not be converted to an enumeration value of type '%2'. Не удалось преобразовать '%1' к значению перечисления '%2'. @@ -845,7 +678,6 @@ DesignerMetaFlags - '%1' could not be converted to a flag value of type '%2'. Не удалось преобразовать '%1' к флаговому значению типа '%2'. @@ -853,13 +685,11 @@ DeviceProfile - '%1' is not a number. Reading a number for an embedded device profile '%1' не является числом. - An invalid tag <%1> was encountered. Обнаружен некоррекнтый тэг <%1>. @@ -867,27 +697,22 @@ DeviceProfileDialog - &Family &Шрифт - &Point Size &Размер - Style Начертание - Device DPI DPI устройства - Name Название @@ -895,57 +720,46 @@ DeviceSkin - The image file '%1' could not be loaded. Не удалось загрузить файл изображения '%1'. - The skin directory '%1' does not contain a configuration file. Каталог '%1' не содержит файла настроек обложки. - The skin configuration file '%1' could not be opened. Не удалось открыть файл настроек обложки '%1'. - The skin configuration file '%1' could not be read: %2 Не удалось прочитать файл настроек обложки '%1': %2 - Syntax error: %1 Синтаксическая ошибка: %1 - The skin "up" image file '%1' does not exist. Отсутствует файл изображения "up" обложки '%1'. - The skin "down" image file '%1' does not exist. Отсутствует файл изображения "down" обложки '%1'. - The skin "closed" image file '%1' does not exist. Отсутствует файл изображения обложки "closed" '%1'. - The skin cursor image file '%1' does not exist. Отсутствует файл изображения курсора обложки '%1'. - Syntax error in area definition: %1 Синтаксическая ошибка в определении области: %1 - Mismatch in number of areas, expected %1, got %2. Несоответствие количества областей: ожидалось %1, найдено %2. @@ -953,7 +767,6 @@ EmbeddedOptionsControl - <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> Format embedded device profile description <html><table><tr><td><b>Шрифт</b></td><td>%1, %2</td></tr><tr><td><b>Стиль</b></td><td>%3</td></tr><tr><td><b>Разрешение</b></td><td>%4 x %5</td></tr></table></html> @@ -962,13 +775,11 @@ EmbeddedOptionsPage - Embedded Design Tab in preferences dialog Оформление портативных устройств - Device Profiles EmbeddedOptionsControl group box" Профили устройств @@ -977,27 +788,22 @@ FontPanel - Font Шрифт - &Writing system Система &письма - &Family &Шрифт - &Style &Начертание - &Point size &Размер @@ -1005,22 +811,18 @@ FontPropertyManager - PreferDefault По умолчанию - NoAntialias Без сглаживания - PreferAntialias Сглаживание, если возможно - Antialiasing Сглаживание @@ -1028,43 +830,44 @@ FormBuilder - Invalid stretch value for '%1': '%2' - Parsing layout stretch values + Parsing layout stretch values +---------- +Parsing layout stretch values +---------- +Parsing layout stretch values Некорректный коэффициент растяжения для '%1': '%2' - Invalid minimum size for '%1': '%2' - Parsing grid layout minimum size values + Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values Некорректный минимальный размер для '%1': '%2' FormEditorOptionsPage - %1 % %1 % - Preview Zoom Масштаб предпросмотра - Default Zoom Масштаб по умолчанию - Forms Tab in preferences dialog Формы - Default Grid Сетка по умолчанию @@ -1072,37 +875,30 @@ FormLayoutRowDialog - Add Form Layout Row Добавление строки компоновщика формы - &Label text: Текст &метки: - Field &type: &Тип поля: - &Field name: Имя п&оля: - &Buddy: П&артнёр: - &Row: &Строка: - Label &name: Имя м&етки: @@ -1110,12 +906,10 @@ FormWindow - Unexpected element <%1> Неожиданный элемент <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Ошибка вставки содержимого из буфера обмена в строке %1, позиции %2: %3 @@ -1123,62 +917,50 @@ FormWindowSettings - Form Settings Настройки формы - Layout &Default Компоновка по &умолчанию - &Spacing: &Отступ: - &Margin: &Границы: - &Layout Function &Функция компоновки - Ma&rgin: Г&раницы: - Spa&cing: О&тступ: - &Author &Автор - &Include Hints &Подключить подсказки - &Pixmap Function &Загрузчик изображений - Grid Сетка - Embedded Design Оформление портативных устройств @@ -1186,7 +968,6 @@ IconSelector - All Pixmaps ( Растровые изображения ( @@ -1194,7 +975,6 @@ ItemPropertyBrowser - XX Icon Selected off Sample string to determinate the width for the first column of the list item property browser XX Пикт Выделена откл @@ -1203,33 +983,27 @@ MainWindowBase - Main Not currently used (main tool bar) Главное - File Файл - Edit Правка - Tools Инструменты - Form Форма - Qt Designer Qt Designer @@ -1237,52 +1011,42 @@ NewForm - C&reate &Создать - Recent Последние - &Close &Закрыть - &Open... &Открыть... - &Recent Forms &Последние формы - Read error Ошибка чтения - New Form Новая форма - Show this Dialog on Startup Показывать диалог при старте - A temporary form file could not be created in %1. Временный файл формы не может быть создан в %1. - The temporary form file %1 could not be written. Временный файл формы %1 не может быть записан. @@ -1290,22 +1054,18 @@ ObjectInspectorModel - Object Объект - Class Класс - separator разделитель - <noname> <без имени> @@ -1313,12 +1073,10 @@ ObjectNameDialog - Change Object Name Изменить имя объекта - Object Name Имя объекта @@ -1326,12 +1084,10 @@ PluginDialog - Plugin Information Информация о модуле - 1 1 @@ -1339,7 +1095,6 @@ PreferencesDialog - Preferences Настройки @@ -1347,32 +1102,26 @@ PreviewConfigurationWidget - Form Форма - Print/Preview Configuration Настройка печати/предпросмотра - Style Стиль - Style sheet Таблица стилей - ... ... - Device skin Обложка устройства @@ -1380,7 +1129,6 @@ PromotionModel - Not used Usage of promoted widgets Не используется @@ -1389,8 +1137,6 @@ Q3WizardContainer - - Page Страница @@ -1398,59 +1144,48 @@ QAbstractFormBuilder - Unexpected element <%1> Неожиданный элемент <%1> - An error has occurred while reading the UI file at line %1, column %2: %3 Возникла ошибка при чтении файла UI в строке %1 позиции %2: %3 - Invalid UI file: The root element <ui> is missing. Некорректный файл UI: отсутствует корневой элемент <ui>. - The creation of a widget of the class '%1' failed. Не удалось создание виджета класса '%1'. - Attempt to add child that is not of class QWizardPage to QWizard. Попытка добавить в QWizard дочерний виджет, который не является классом QWizardPage. - 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. Попытка добавить компоновщик виджету '%1' (%2), у которого уже имеется компоновщик типа %3. Это указывает на некорректность файла UI. - Empty widget item in %1 '%2'. Пустой элемент виджета в %1 '%2'. - Flags property are not supported yet. Флаговые свойства еще не поддерживаются. - While applying tab stops: The widget '%1' could not be found. При применении позиций табуляции: не удалось найти виджет '%1'. - Invalid QButtonGroup reference '%1' referenced by '%2'. '%2' содержит некорректную ссылку на QButtonGroup '%1'. - This version of the uitools library is linked without script support. Данная версия библиотеки uitools собрана без поддержки сценариев. @@ -1458,12 +1193,10 @@ This indicates an inconsistency in the ui-file. QAxWidgetPlugin - ActiveX control Элемент управления ActiveX - ActiveX control widget Виджет элемента управления ActiveX @@ -1471,22 +1204,18 @@ This indicates an inconsistency in the ui-file. QAxWidgetTaskMenu - Set Control Установить элемент управления - Reset Control Удалить элемент управления - Licensed Control Лицензионный элемент управления - The control requires a design-time license Компонент требует лицензию периода разработки @@ -1494,68 +1223,55 @@ This indicates an inconsistency in the ui-file. QCoreApplication - %1 is not a promoted class. %1 не является преобразованным классом. - The base class %1 is invalid. Неверный базовый класс %1. - The class %1 already exists. Класс %1 уже существует. - Promoted Widgets Преобразованные виджеты - The class %1 cannot be removed Нельзя удалить класс %1 - The class %1 cannot be removed because it is still referenced. Нельзя удалить класс %1, так как на него ещё есть ссылки. - The class %1 cannot be renamed Нельзя переименовать класс %1 - The class %1 cannot be renamed to an empty name. Нельзя дать классу %1 пустое имя. - There is already a class named %1. Уже есть класс с именем %1. - Cannot set an empty include file. перевод близко к тексту - буквальный совсем глаз режет Пустое имя у подключаемого файла не допустимо. - Exception at line %1: %2 Исключение в строке %1: %2 - Unknown error Неизвестная ошибка - An error occurred while running the script for %1: %2 Script: %3 При выполнении сценария %1 возникла ошибка: %2 @@ -1565,17 +1281,14 @@ Script: %3 QDesigner - %1 - warning %1 - предупреждение - Qt Designer Qt Designer - This application cannot be used for the Console edition of Qt Это приложение не может быть использовано для консольной версии Qt @@ -1583,248 +1296,194 @@ Script: %3 QDesignerActions - Saved %1. Сохранено %1. - Edit Widgets Изменение виджетов - &Quit &Выход - &Minimize &Свернуть - Bring All to Front Перенести все назад - Preferences... Настройки... - Clear &Menu Очистить &меню - CTRL+SHIFT+S - CTRL+R - CTRL+M - Qt Designer &Help &Справка по Qt Designer - Current Widget Help Справка по виджету - What's New in Qt Designer? Что нового в Qt Designer? - About Plugins О модулях - - About Qt Designer О Qt Designer - About Qt О Qt - - Open Form Открыть форму - - - Designer UI files (*.%1);;All Files (*) UI файлы Qt Designer (*.%1);;Все файлы (*) - %1 already exists. Do you want to replace it? %1 уже существует. Хотите заменить его? - Additional Fonts... Дополнительные шрифты... - &Recent Forms &Последние формы - Designer Qt Designer - Feature not implemented yet! Возможность ещё не реализована! - Read error Ошиька чтения - %1 Do you want to update the file location or generate a new form? %1 Вы хотите обновить расположение файла или генерировать новую форму? - &Update &Обновить - &New Form &Новая форма - - Save Form? Сохранить форму? - Could not open file Невозможно открыть файл - Select New File Выбрать новый файл - Could not write file Невозможно записать файл - &Close Preview &Закрыть предпросмотр - &New... &Новый... - &Open... &Открыть... - &Save &Сохранить - Save &As... Сохранить &как... - Save A&ll Сохранить &все - Save As &Template... Сохранить как &шаблон... - - &Close &Закрыть - Save &Image... Сохранить &Изображение... - &Print... &Печать... - View &Code... Показать &код... - ALT+CTRL+S - - Save Form As Сохранить форму как - Preview failed Ошибка предпросмотра - Code generation failed Ошибка генерации кода - The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? @@ -1833,7 +1492,6 @@ Would you like to retry or select a different file? Вы хотите повторить или выбрать другой файл? - It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? @@ -1842,55 +1500,42 @@ Would you like to retry? Желаете повторить? - - Assistant Qt Assistant - - The backup file %1 could not be written. Не удалось записать файл резервной копии %1. - The backup directory %1 could not be created. Не удалось создать каталог резервных копий %1. - The temporary backup directory %1 could not be created. Не удалось создать временный каталог резервных копий %1. - Image files (*.%1) Файлы изображений (*.%1) - - Save Image Сохранить изображение - Saved image %1. Сохранить изображение %1. - The file %1 could not be written. Файл %1 не может быть записан. - Please close all forms to enable the loading of additional fonts. Пожалуйста закройте все формы, чтобы разрешить загрузку дополнительных шрифтов. - Printed %1. Распечатано %1. @@ -1898,7 +1543,6 @@ Would you like to retry? QDesignerAppearanceOptionsPage - Appearance Tab in preferences dialog Оформление @@ -1907,17 +1551,14 @@ Would you like to retry? QDesignerAppearanceOptionsWidget - Docked Window Всё в одном окне верхнего уровня - Multiple Top-Level Windows Множество окон верхнего уровня - Toolwindow Font Шрифт окна инструментов @@ -1925,22 +1566,18 @@ Would you like to retry? QDesignerAxWidget - Reset control Сбросить элемент управления - Set control Установить элемент управления - Control loaded Элемент управления загружен - A COM exception occurred when executing a meta call of type %1, index %2 of "%3". Возникло исключение COM при выполнении мета-вызова типа %1, индекс %2 "%3". @@ -1948,17 +1585,14 @@ Would you like to retry? QDesignerFormBuilder - Script errors occurred: Возникла ошибка сценария: - The preview failed to build. Не удалось создать предпросмотр. - Designer Qt Designer @@ -1966,22 +1600,18 @@ Would you like to retry? QDesignerFormWindow - %1 - %2[*] %1 - %2[*] - Save Form? Сохранить форму? - Do you want to save the changes to this document before closing? Документ был изменен, хотите сохранить изменения? - If you don't save, your changes will be lost. Если вы не сохраните, ваши изменения будут потеряны. @@ -1989,38 +1619,30 @@ Would you like to retry? QDesignerMenu - Type Here Пишите здесь - Add Separator Добавить разделитель - Insert separator Вставить разделитель - Remove separator Удалить разделитель - Remove action '%1' Удалить действие '%1' - - Add separator Добавить разделитель - Insert action Вставить действие @@ -2028,22 +1650,18 @@ Would you like to retry? QDesignerMenuBar - Type Here Пишите здесь - Remove Menu '%1' Удалить меню '%1' - Remove Menu Bar Удалить панель меню - Menu Меню @@ -2051,37 +1669,30 @@ Would you like to retry? QDesignerPluginManager - An XML error was encountered when parsing the XML of the custom widget %1: %2 Обнаружена ошибка XML при разборе XML пользовательского виджета %1: %2 - A required attribute ('%1') is missing. Отсутствует необходимый атрибут ('%1'). - An invalid property specification ('%1') was encountered. Supported types: %2 Обнаружена неверная спецификация ('%1') свойства. Поддерживаются типы: %2 - '%1' is not a valid string property specification. '%1' не является корректной спецификацией строкового свойства. - The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. XML пользовательского виджета %1 не содержит элементов <widget> и <ui>. - The class attribute for the class %1 is missing. Отсутствует атрибут для класса %1. - The class attribute for the class %1 does not match the class name %2. Атрибут для класса %1 не совпадает с именем класса %2. @@ -2089,7 +1700,6 @@ Would you like to retry? QDesignerPropertySheet - Dynamic Properties Динамические свойства @@ -2097,31 +1707,26 @@ Would you like to retry? QDesignerResource - The layout type '%1' is not supported, defaulting to grid. Компоновка типа '%1' не поддерживается, заменена на компоновку сеткой. - 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. Контейнерное расширение виджета '%1' (%2) возвратило виджет, который не управляется Qt Designer '%3' (%4), при запросе страницы №%5. Страницы контейнера должны быть добавлены указанием их в XML, который возвращается методом domXml() пользовательского виджета. - Unexpected element <%1> Parsing clipboard contents Неожиданный элемент <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Parsing clipboard contents Ошибка вставки содержимого буфера обмена в строку %1, позицию %2: %3 - Error while pasting clipboard contents: The root element <ui> is missing. Parsing clipboard contents Ошибка вставки содержимого буфера обмена: отсутствует корневой элемент <ui>. @@ -2130,12 +1735,10 @@ Container pages should only be added by specifying them in XML returned by the d QDesignerSharedSettings - The template path %1 could not be created. Не удалось создать временный путь %1. - An error has been encountered while parsing device profile XML: %1 Обнаружена ошибка при разборе XML профиля устройства: %1 @@ -2143,32 +1746,26 @@ Container pages should only be added by specifying them in XML returned by the d QDesignerToolWindow - Property Editor Редактор свойств - Action Editor Редактор действий - Object Inspector Инспектор объектов - Resource Browser Обозреватель ресурсов - Signal/Slot Editor Редактор Сигналов/Слотов - Widget Box Панель виджетов @@ -2176,47 +1773,38 @@ Container pages should only be added by specifying them in XML returned by the d QDesignerWorkbench - &File &Файл - F&orm Ф&орма - Preview in Предпросмотр в - &Window &Окно - &Help &Справка - Edit Правка - Toolbars Панель инструментов - Save Forms? Сохранить форму? - There are %n forms with unsaved changes. Do you want to review these changes before quitting? Имеется %n форма с несохранёнными изменениями. Желаете просмотреть изменения перед выходом? @@ -2225,52 +1813,42 @@ Container pages should only be added by specifying them in XML returned by the d - &View &Вид - &Settings &Настройки - Widget Box Панель виджетов - If you do not review your documents, all your changes will be lost. Если не просматривать изменения, все изменения будут потеряны. - Discard Changes Отменить изменения - Review Changes Показать изменения - Backup Information Информация о резервированых копиях - The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? Последняя сессия Qt Designer не была завершена корректно. Остались резервные копии файлов. Желаете загрузить их? - The file <b>%1</b> could not be opened. Не удалось открыть файл <b>%1</b>. - The file <b>%1</b> is not a valid Designer UI file. Файл <b>%1</b> не является корректным UI файлом Qt Designer. @@ -2278,53 +1856,47 @@ Container pages should only be added by specifying them in XML returned by the d QFormBuilder - An empty class name was passed on to %1 (object name: '%2'). - Empty class name passed to widget factory method + Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method Методу %1 (объекта '%2') было передано пустое имя класса. - QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. QFormBuilder не смог создать пользовательский виджет класса '%1'; был создан базовый класс '%2'. - QFormBuilder was unable to create a widget of the class '%1'. QFormBuilder не смог создать пользовательский виджет класса '%1'. - The layout type `%1' is not supported. Компоновка типа '%1' не поддерживается. - The set-type property %1 could not be read. Не удалось прочитать свойство %1 множественного типа. - The enumeration-type property %1 could not be read. Не удалось прочитать свойство %1 перечисляемого типа. - Reading properties of the type %1 is not supported yet. Чтение свойств типа %1 ещё не поддерживается. - The property %1 could not be written. The type %2 is not supported yet. Не удалось записать свойство %1. Тип %2 ещё не поддерживается. - The enumeration-value '%1' is invalid. The default value '%2' will be used instead. Значение '%1' перечисляемого типа некорректно. Будет использовано значение по умолчанию '%2'. - The flag-value '%1' is invalid. Zero will be used instead. Значение флага '%1' перечисляемого типа некорректно. Будет использовано значение '0' (нуль). @@ -2332,48 +1904,38 @@ Container pages should only be added by specifying them in XML returned by the d QStackedWidgetEventFilter - Previous Page Предыдущая страница - Next Page Следующая страница - Delete Удалить - Before Current Page Перед текущей страницей - After Current Page После текущей страницы - Change Page Order... Изменить порядок страниц... - Change Page Order Изменить порядок страниц - Page %1 of %2 Страница %1 из %2 - - Insert Page Вставить страницу @@ -2381,12 +1943,10 @@ Container pages should only be added by specifying them in XML returned by the d QStackedWidgetPreviewEventFilter - Go to previous page of %1 '%2' (%3/%4). Перейти к предыдущей странице из %1 '%2' (%3/%4). - Go to next page of %1 '%2' (%3/%4). Перейти к следующей странице из %1 '%2' (%3/%4). @@ -2394,28 +1954,22 @@ Container pages should only be added by specifying them in XML returned by the d QTabWidgetEventFilter - Delete Удалить - Before Current Page Перед текущей страницей - After Current Page После текущей страницы - Page %1 of %2 Страница %1 из %2 - - Insert Page Вставить страницу @@ -2423,37 +1977,30 @@ Container pages should only be added by specifying them in XML returned by the d QToolBoxHelper - Delete Page Удалить страницу - Before Current Page Перед текущей страницей - After Current Page После текущей страницы - Change Page Order... Изменить порядок страниц... - Change Page Order Изменить порядок страниц - Page %1 of %2 Страница %1 из %2 - Insert Page Вставить страницу @@ -2461,15 +2008,10 @@ Container pages should only be added by specifying them in XML returned by the d QtBoolEdit - - - True Вкл. - - False Выкл. @@ -2477,12 +2019,10 @@ Container pages should only be added by specifying them in XML returned by the d QtBoolPropertyManager - True Вкл. - False Выкл. @@ -2490,7 +2030,6 @@ Container pages should only be added by specifying them in XML returned by the d QtCharEdit - Clear Char Стереть символ @@ -2498,7 +2037,6 @@ Container pages should only be added by specifying them in XML returned by the d QtColorEditWidget - ... ... @@ -2506,22 +2044,18 @@ Container pages should only be added by specifying them in XML returned by the d QtColorPropertyManager - Red Красный - Green Зелёный - Blue Синий - Alpha Альфа @@ -2529,97 +2063,78 @@ Container pages should only be added by specifying them in XML returned by the d QtCursorDatabase - Arrow Arrow - Up Arrow Up Arrow - Cross Cross - Wait Wait - IBeam IBeam - Size Vertical Size Vertical - Size Horizontal Size Horizontal - Size Backslash Size Backslash - Size Slash Size Slash - Size All Size All - Blank Blank - Split Vertical Split Vertical - Split Horizontal Split Horizontal - Pointing Hand Pointing Hand - Forbidden Forbidden - Open Hand Open Hand - Closed Hand Closed Hand - What's This What's This - Busy Busy @@ -2627,12 +2142,10 @@ Container pages should only be added by specifying them in XML returned by the d QtFontEditWidget - ... ... - Select Font Выбрать шрифт @@ -2640,37 +2153,30 @@ Container pages should only be added by specifying them in XML returned by the d QtFontPropertyManager - Family Шрифт - Point Size Размер - Bold Жирный - Italic Курсив - Underline Подчёркнутый - Strikeout Зачёркнутый - Kerning Интервал @@ -2678,7 +2184,6 @@ Container pages should only be added by specifying them in XML returned by the d QtGradientDialog - Edit Gradient Правка градиента @@ -2686,304 +2191,242 @@ Container pages should only be added by specifying them in XML returned by the d QtGradientEditor - Start X X начала - Start Y Y начала - Final X X конца - Final Y Y конца - - Central X X центра - - Central Y Y центра - Focal X X фокуса - Focal Y Y фокуса - Radius Радиус - Angle Угол - Linear Линейный - Radial Радиальный - Conical Конический - Pad Равномерная - Repeat Цикличная - Reflect Зеркальная - Form Форма - Gradient Editor Редактор градиента - 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. Эта область отображает предварительный вариант настраиваемого градиента. Также она позволяет менять с помощью перетаскивания характерные для градиента параметры, такие как: начальная и конечная точки, радиус и пр. - 1 1 - 2 2 - 3 3 - 4 4 - 5 5 - Gradient Stops Editor Редактор опорных точек градиента - 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. Эта область позволяет редактировать опорные точки градиента. Двойной щелчок на существующей точке создаст её копию. Двойной клик вне существующей точки создаст новую. Точки можно перемещать путем удерживания левой кнопки. По правой кнопке можно получить контекстное меню дополнительных действий. - Zoom Масштаб - Reset Zoom 100% - Position Положение - Hue Оттенок - H H - Saturation Насыщенность - S S - Sat Насыщение - Value Значение - V V - Val Значение - Alpha Альфа - A A - Type Тип - Spread Заливка - Color Цвет - Current stop's color Цвет текущей точки - Show HSV specification Настройки в виде HSV - HSV HSV - Show RGB specification Настройки в виде RGB - RGB RGB - Current stop's position Положение текущей точки - % % - Zoom In Увеличить - Zoom Out Уменьшить - Toggle details extension Показать/скрыть детальные настройки - > > - Linear Type Линейный тип - ... ... - Radial Type Радиальный тип - Conical Type Конический тип - Pad Spread Равномерная заливка - Repeat Spread Цикличная заливка - Reflect Spread Зеркальная заливка @@ -2991,37 +2434,30 @@ Container pages should only be added by specifying them in XML returned by the d QtGradientStopsWidget - New Stop Новая точка - Delete Удалить - Flip All Отобразить зеркально - Select All Выделить всё - Zoom In Увеличить - Zoom Out Уменьшить - Reset Zoom Сбросить масштаб @@ -3029,46 +2465,34 @@ Container pages should only be added by specifying them in XML returned by the d QtGradientView - Grad Градиент - Remove Gradient Удалить градиент - Are you sure you want to remove the selected gradient? Вы действительно желаете удалить выбранный градиент? - - New... Новый... - - Edit... Правка... - - Rename Переименовать - - Remove Удалить - Gradient View Просмотр градиента @@ -3076,8 +2500,6 @@ Container pages should only be added by specifying them in XML returned by the d QtGradientViewDialog - - Select Gradient Выбрать градиент @@ -3085,7 +2507,6 @@ Container pages should only be added by specifying them in XML returned by the d QtKeySequenceEdit - Clear Shortcut Удалить комбинацию горячих клавиш @@ -3093,17 +2514,14 @@ Container pages should only be added by specifying them in XML returned by the d QtLocalePropertyManager - %1, %2 %1, %2 - Language Язык - Country Страна @@ -3111,17 +2529,14 @@ Container pages should only be added by specifying them in XML returned by the d QtPointFPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3129,17 +2544,14 @@ Container pages should only be added by specifying them in XML returned by the d QtPointPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3147,12 +2559,10 @@ Container pages should only be added by specifying them in XML returned by the d QtPropertyBrowserUtils - [%1, %2, %3] (%4) [%1, %2, %3] (%4) - [%1, %2] [%1, %2] @@ -3160,27 +2570,22 @@ Container pages should only be added by specifying them in XML returned by the d QtRectFPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Ширина - Height Высота @@ -3188,27 +2593,22 @@ Container pages should only be added by specifying them in XML returned by the d QtRectPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Ширина - Height Высота @@ -3216,128 +2616,98 @@ Container pages should only be added by specifying them in XML returned by the d QtResourceEditorDialog - %1 already exists. Do you want to replace it? %1 уже существует. Хотите заменить его? - The file does not appear to be a resource file; element '%1' was found where '%2' was expected. Похоже, файл не является файлом ресурсов, так как вместо элемента '%2' стоит '%1'. - %1 [read-only] %1 [только для чтения] - - %1 [missing] %1 [отсутствует] - <no prefix> <без префикса> - - New Resource File Новый файл ресурсов - - Resource files (*.qrc) Файл ресурсов (*.qrc) - Import Resource File Импортировать файл ресурсов - newPrefix newPrefix - <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> <p><b>Предупреждение:</b> Файл</p><p>%1</p><p>находится за пределами каталога текущего файла ресурсов.</p> - <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> <p>Для решения нажмите:</p><table><tr><th align="left">Копировать</th><td>, чтобы скопировать в каталог файла ресурсов.</td></tr><tr><th align="left">Копировать как...</th><td>, чтобы скопировать в подкаталог каталога файла ресурсов.</td></tr><tr><th align="left">Оставить</th><td>, чтобы использовать текущее размещение.</td></tr></table> - Add Files Добавить файлы - Incorrect Path Неверный путь - - - - Copy Копировать - Copy As... Копировать как... - Keep Оставить - Skip Пропустить - Clone Prefix Приставка при клонировании - 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". Введите окончание, которое нужно добавлять к именам клонируемых файлов. Это может быть, например, языковое расширение, вроде "_ru". - - Copy As Копировать как - <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> <p>Выбранный файл:</p><p>%1</p><p>находится вне каталога текущего файла ресурсов:</p><p>%2</p><p>Пожалуйста, выберите путь внутри этого каталога.<p> - Could not overwrite %1. Не удалось перезаписать %1. - Could not copy %1 to @@ -3348,153 +2718,120 @@ to %2 - A parse error occurred at line %1, column %2 of %3: %4 Возникла ошибка разбора в строке %1 позиции %2 из %3: %4 - Save Resource File Сохранение файла ресурсов - Could not write %1: %2 Не удалось записать %1: %2 - Edit Resources Правка ресурсов - New... Новый... - Open... Открыть... - Open Resource File Открыть файл ресурсов - - Remove Удалить - - Move Up Поднять - - Move Down Опустить - - Add Prefix Добавить приставку - Add Files... Добавить файлы... - Change Prefix Сменить приставку - Change Language Сменить язык - Change Alias Сменить псевдоним - Clone Prefix... Приставка при клонировании... - Prefix / Path Приставка / Путь - Language / Alias Язык / Псевдоним - <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> <html><p><b>Предупреждение:</b> Возникли проблемы при перезагрузке ресурсов:</p><pre>%1</pre></html> - Resource Warning Предупреждение - Dialog Диалог - New File Новый файл - N N - Remove File Удалить файл - R R - I I - New Resource Новый ресурс - A A - Remove Resource or File Удалить ресурс или файл @@ -3502,24 +2839,20 @@ to QtResourceView - Size: %1 x %2 %3 Размер: %1 x %2 %3 - Edit Resources... Изменить ресурсы... - Reload Перезагрузить - Copy Path Скопировать путь @@ -3527,7 +2860,6 @@ to QtResourceViewDialog - Select Resource Выбрать ресурс @@ -3535,17 +2867,14 @@ to QtSizeFPropertyManager - %1 x %2 %1 x %2 - Width Ширина - Height Высота @@ -3553,33 +2882,26 @@ to QtSizePolicyPropertyManager - - <Invalid> <Неверный> - [%1, %2, %3, %4] [%1, %2, %3, %4] - Horizontal Policy Горизонтальная политика - Vertical Policy Вертикальная политика - Horizontal Stretch Горизонтальное растяжение - Vertical Stretch Вертикальное растяжение @@ -3587,17 +2909,14 @@ to QtSizePropertyManager - %1 x %2 %1 x %2 - Width Ширина - Height Высота @@ -3605,107 +2924,86 @@ to QtToolBarDialog - Custom Toolbar Пользовательская панель инструментов - < S E P A R A T O R > < Р А З Д Е Л И Т Е Л Ь > - Customize Toolbars Настройка панелей инструментов - 1 1 - Actions Действия - Toolbars Панель инструментов - Add new toolbar Добавить новую панель инструментов - New Новая - Remove selected toolbar Удалить выбранную панель инструментов - Remove Удалить - Rename toolbar Переименовать панель инструментов - Rename Переименовать - Move action up Переместить действие вверх - Up Вверх - Remove action from toolbar Удалить действие из панели инструментов - <- <- - Add action to toolbar Добавить действие на панель инструментов - -> -> - Move action down Переместить действие вниз - Down Вниз - Current Toolbar Actions Текущие действия панели инструментов @@ -3713,12 +3011,10 @@ to QtTreePropertyBrowser - Property Свойство - Value Значение @@ -3726,64 +3022,52 @@ to SaveFormAsTemplate - Add path... Добавить путь... - Template Exists Шаблон существует - A template with the name %1 already exists. Do you want overwrite the template? Шаблон с именем %1 уже существует. Желаете заменить шаблон? - Overwrite Template Заменить шаблон - Open Error Ошибка открытия - There was an error opening template %1 for writing. Reason: %2 Возникла ошибка открытия шаблона %1 для записи. Причина: %2 - Write Error Ошибка записи - There was an error writing the template %1 to disk. Reason: %2 Возникла ошибка записи шаблона %1 на диск. Причина: %2 - Pick a directory to save templates in Выберите каталог для сохранения шаблонов - Save Form As Template Сохранить форму как шаблон - &Category: &Категория: - &Name: &Имя: @@ -3791,7 +3075,6 @@ Do you want overwrite the template? ScriptErrorDialog - An error occurred while running the scripts for "%1": При выполнения сценариев для "%1" возникла ошибка: @@ -3801,22 +3084,18 @@ Do you want overwrite the template? SelectSignalDialog - Go to slot Переход к слоту - Select signal Выбор сигнала - signal сигнал - class класс @@ -3824,7 +3103,6 @@ Do you want overwrite the template? SignalSlotConnection - SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) ОТПРАВИТЕЛЬ(%1), СИГНАЛ(%2), ПОЛУЧАТЕЛЬ(%3), СЛОТ(%4) @@ -3832,32 +3110,26 @@ Do you want overwrite the template? SignalSlotDialogClass - Signals and slots Сигналы и слоты - Slots Слоты - Add Добавить - ... ... - Delete Удалить - Signals Сигналы @@ -3865,12 +3137,10 @@ Do you want overwrite the template? Spacer - Horizontal Spacer '%1', %2 x %3 Горизонтальный разделитель '%1', %2 x %3 - Vertical Spacer '%1', %2 x %3 Вертикальный разделитель '%1', %2 x %3 @@ -3878,7 +3148,6 @@ Do you want overwrite the template? TemplateOptionsPage - Template Paths Tab in preferences dialog Слово "пути" опустил, т.к. с другими вкладками не перепутать, а длинная вкладка не смотрится. @@ -3888,52 +3157,42 @@ Do you want overwrite the template? ToolBarManager - Configure Toolbars... Настройка панелей инструментов... - Window Окно - Help Справка - Style Стиль - Dock views Прикрепляемые панели - File Файл - Edit Правка - Tools Инструменты - Form Форма - Toolbars Панели инструментов @@ -3941,30 +3200,64 @@ Do you want overwrite the template? VersionDialog - <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>Версия %2 - Qt Designer Qt Designer - <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> <br/>Qt Designer - дизайнер графического интерфейса пользователя для Qt-приложений.<br/> - %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). %1<br/>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения. + VideoPlayerTaskMenu + + Available Mime Types + Доступные типы данных + + + Display supported mime types... + Показывать поддерживаемые типы данных... + + + Load... + Загрузить... + + + Play + Воспроизвести + + + Pause + Пауза + + + Stop + Остановить + + + Choose Video Player Media Source + Выберите источник медиа-данных + + + An error has occurred in '%1': %2 + В "%1" произошла ошибка: %2 + + + Video Player Error + Ошибка видеоплеера + + + WidgetDataBase - 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. Файл содержит пользовательский виджет '%1', базовый класс (%2) которого отличается от текущей записи в базе виджетов (%3). База виджетов оставлена без изменений. @@ -3972,87 +3265,70 @@ Do you want overwrite the template? qdesigner_internal::ActionEditor - New... Новое... - Edit... Правка... - Go to slot... Перейти к слоту... - Copy Копировать - Cut Вырезать - Paste Вставить - Select all Выделить всё - Delete Удалить - Actions Действия - Configure Action Editor Настроить редактор действий - Icon View Значки - Detailed View Подробно - New action Новое действие - Edit action Правка действия - Remove action '%1' Удалить действие '%1' - Remove actions Удаление дествий - Used In Используется в @@ -4060,32 +3336,26 @@ Do you want overwrite the template? qdesigner_internal::ActionModel - Name Имя - Used Используется - Text Текст - Shortcut Горячая клавиша - Checkable Триггерное - ToolTip Подсказка @@ -4093,27 +3363,22 @@ Do you want overwrite the template? qdesigner_internal::BrushManagerProxy - The element '%1' is missing the required attribute '%2'. У элемента '%1' отсутствует необходимый атрибут '%2'. - Empty brush name encountered. Обнаружено пустое название кисти. - An unexpected element '%1' was encountered. Обнаружен неожиданный элемент '%1'. - An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 При чтении файла описания кистей '%1' возникла ошибка разбора строки %2 в позиции %3: %4 - An error occurred when reading the resource file '%1' at line %2, column %3: %4 При чтении файла ресурсов '%1' возникла ошибка разбора строки %2 в позиции %3: %4 @@ -4121,17 +3386,14 @@ Do you want overwrite the template? qdesigner_internal::BuddyEditor - Add buddy Добавить партнёра - Remove buddies Удалить партнёров - Remove %n buddies Удалить %n партнёра @@ -4140,7 +3402,6 @@ Do you want overwrite the template? - Add %n buddies Добавить %n партнёра @@ -4149,7 +3410,6 @@ Do you want overwrite the template? - Set automatically Установить автоматически @@ -4157,7 +3417,6 @@ Do you want overwrite the template? qdesigner_internal::BuddyEditorPlugin - Edit Buddies Изменение партнёров @@ -4165,7 +3424,6 @@ Do you want overwrite the template? qdesigner_internal::BuddyEditorTool - Edit Buddies Изменение партнёров @@ -4173,12 +3431,10 @@ Do you want overwrite the template? qdesigner_internal::ButtonGroupMenu - Select members Выбрать элементы - Break Разделить @@ -4186,32 +3442,26 @@ Do you want overwrite the template? qdesigner_internal::ButtonTaskMenu - Assign to button group Назначить группу кнопок - Button group Группа кнопок - New button group Новая группа кнопок - Change text... Изменить текст... - None Нет - Button group '%1' Группа кнопок '%1' @@ -4219,57 +3469,46 @@ Do you want overwrite the template? qdesigner_internal::CodeDialog - Save... Сохранить... - Copy All Копировать всё - &Find in Text... &Найти в тексте... - A temporary form file could not be created in %1. Не удалось создать временный файл формы в %1. - The temporary form file %1 could not be written. Не удалось записать временный файл формы %1. - %1 - [Code] %1 - [код] - Save Code Сохранить код - Header Files (*.%1) Заголовочные файлы (*.%1) - The file %1 could not be opened: %2 Не удалось открыть файл %1: %2 - The file %1 could not be written: %2 Не удалось записать файл %1: %2 - %1 - Error %1 - Ошибка @@ -4277,7 +3516,6 @@ Do you want overwrite the template? qdesigner_internal::ColorAction - Text Color Цвет текста @@ -4285,12 +3523,10 @@ Do you want overwrite the template? qdesigner_internal::ComboBoxTaskMenu - Edit Items... Изменить элементы... - Change Combobox Contents Изменено содержимое Combobox @@ -4298,7 +3534,6 @@ Do you want overwrite the template? qdesigner_internal::CommandLinkButtonTaskMenu - Change description... Изменить описание... @@ -4306,17 +3541,14 @@ Do you want overwrite the template? qdesigner_internal::ConnectionEdit - Select All Выделить всё - Deselect All Снять выделение - Delete Удалить @@ -4324,52 +3556,42 @@ Do you want overwrite the template? qdesigner_internal::ConnectionModel - Sender Отправитель - Signal Сигнал - Receiver Получатель - Slot Слот - <sender> <отправитель> - <signal> <сигнал> - <receiver> <получатель> - <slot> <слот> - The connection already exists!<br>%1 Подключение уже существует!<br>%1 - Signal and Slot Editor Радактор сигналов и слотов @@ -4377,42 +3599,34 @@ Do you want overwrite the template? qdesigner_internal::ContainerWidgetTaskMenu - Delete Удалить - Insert Вставить - Insert Page Before Current Page Вставить страницу перед текущей - Insert Page After Current Page Вставить страницу после текущей - Add Subwindow Добавить дочернее окно - Subwindow Дочернее окно - Page Страница - Page %1 of %2 Страница %1 из %2 @@ -4420,18 +3634,15 @@ Do you want overwrite the template? qdesigner_internal::DPI_Chooser - System (%1 x %2) System resolution Системное (%1 x %2) - User defined Пользовательское - x DPI X/Y separator x @@ -4440,49 +3651,38 @@ Do you want overwrite the template? qdesigner_internal::DesignerPropertyManager - - AlignLeft - AlignHCenter - AlignRight - AlignJustify - AlignTop - - AlignVCenter - AlignBottom - %1, %2 %1, %2 - Customized (%n roles) Настроено (%n роль) @@ -4491,75 +3691,58 @@ Do you want overwrite the template? - Inherited Унаследованная - Horizontal Горизонтальное - Vertical Вертикальное - Normal Off Нормальный, выкл - Normal On Нормальный, вкл - Disabled Off Выключенный, выкл - Disabled On Выключенный, вкл - Active Off Активный, выкл - Active On Активный, вкл - Selected Off Выбранный, выкл - Selected On Выбранный, вкл - - translatable переводимый - - disambiguation уточнение - - comment примечание @@ -4567,48 +3750,38 @@ Do you want overwrite the template? qdesigner_internal::DeviceProfileDialog - Device Profiles (*.%1) Профили устройства (*.%1) - Default По умолчанию - Save Profile Сохранение профиля - Save Profile - Error Ошибка сохранения профиля - Unable to open the file '%1' for writing: %2 Не удалось открыть файл '%1' для записи: %2 - Open profile Открытие профиля - - Open Profile - Error Ошибка отрытия профиля - Unable to open the file '%1' for reading: %2 Не удалось открыть файл '%1' для чтения: %2 - '%1' is not a valid profile: %2 '%1' не является корректным профилем: %2 @@ -4616,57 +3789,46 @@ Do you want overwrite the template? qdesigner_internal::Dialog - Dialog Диалог - StringList Список строк - New String Новая строка - &New &Новая - Delete String Удалить строку - &Delete &Удалить - &Value: &Значение: - Move String Up Переместить строку вверх - Up Вверх - Move String Down Переместить строку вниз - Down Вниз @@ -4674,52 +3836,42 @@ Do you want overwrite the template? qdesigner_internal::EmbeddedOptionsControl - None Нет - Add a profile Добавить профиль - Edit the selected profile Изменить выбранный профиль - Delete the selected profile Удалить выбранный профиль - Add Profile Добавление профиля - New profile Новый профиль - Edit Profile Изменение профиля - Delete Profile Удаление профиля - Would you like to delete the profile '%1'? Желаете удалить профиль '%1'? - Default По умолчанию @@ -4727,12 +3879,10 @@ Do you want overwrite the template? qdesigner_internal::FilterWidget - Filter Фильтр - Clear text Очистить текст @@ -4740,12 +3890,10 @@ Do you want overwrite the template? qdesigner_internal::FormEditor - Resource File Changed Файл ресурсов был изменён - The file "%1" has changed outside Designer. Do you want to reload it? Файл "%1" был изменён вне Qt Designer. Желаете перезагрузить его? @@ -4753,7 +3901,6 @@ Do you want overwrite the template? qdesigner_internal::FormLayoutMenu - Add form layout row... Добавить строку компоновщика формы... @@ -4761,37 +3908,30 @@ Do you want overwrite the template? qdesigner_internal::FormWindow - Edit contents Изменить содержимое - F2 - Insert widget '%1' Вставить виджет '%1' - Resize Изменение размера - Key Move Перемещение клавишей - Key Resize Изменение размера клавишей - Paste %n action(s) Вставлено %n действие @@ -4800,7 +3940,6 @@ Do you want overwrite the template? - Paste %n widget(s) Вставлен %n виджет @@ -4809,53 +3948,42 @@ Do you want overwrite the template? - Paste (%1 widgets, %2 actions) Вставлено (%1 виджетов, %2 действий) - Cannot paste widgets. Designer could not find a container without a layout to paste into. Не удалось вставить виджеты. Qt Designer не смог найти контейнер без компоновщика для вставки виджетов. - Break the layout of the container you want to paste into, select this container and then paste again. Удалите компоновщик из контейнера, в который желаете вставить виджеты, выберите его и повторите вставку. - Paste error Ошибка вставки - Raise widgets Поднятие виджетов - Lower widgets Опускание виджетов - Select Ancestor Выбрать предка - Lay out Компоновка - - Drop widget Вставка виджета - A QMainWindow-based form does not contain a central widget. Форма, основанная на QMainWindow, не содержит центрального виджета. @@ -4863,12 +3991,10 @@ Do you want overwrite the template? qdesigner_internal::FormWindowBase - Delete '%1' Удалить '%1' - Delete Удалить @@ -4876,200 +4002,159 @@ Do you want overwrite the template? qdesigner_internal::FormWindowManager - Cu&t &Вырезать - Cuts the selected widgets and puts them on the clipboard Вырезает выбранные виджеты и помещает их в буфер обмена - &Copy &Копировать - Copies the selected widgets to the clipboard Копирует выбранные виджеты в буфер обмена - &Paste В&ставить - Pastes the clipboard's contents Вставляет содержимое буфера обмена - &Delete &Удалить - Deletes the selected widgets Удаляет выбранные виджеты - Select &All &Выделить все - Selects all widgets Выделяет все виджеты - Bring to &Front Переместить &вперед - - Raises the selected widgets Поднимает выбранные виджеты на передний план - Send to &Back Переместить &назад - - Lowers the selected widgets Опускает выбранные виджеты на задний план - Adjust &Size Подогнать &размер - Adjusts the size of the selected widget Подгоняет размер выбранного виджета - Lay Out &Horizontally Скомпоновать по &горизонтали - Lays out the selected widgets horizontally Компонует выделенные виджеты по горизонтали (QHBoxLayout) - Lay Out &Vertically Скомпоновать по &вертикали - Lays out the selected widgets vertically Компонует выделенные виджеты по вертикали (QVBoxLayout) - Lay Out in a &Form Layout Скомпоновать в &две колонки - Lays out the selected widgets in a form layout Компонует выделенные виджеты в две колонки (QFormLayout) - Lay Out in a &Grid Скомпоновать по &сетке - Lays out the selected widgets in a grid Компонует выделенные виджеты по сетке (QGridLayout) - Lay Out Horizontally in S&plitter Скомпоновать по г&оризонтали с разделителем - Lays out the selected widgets horizontally in a splitter Компонует выделенные виджеты по горизонтали (QSplitter) - Lay Out Vertically in Sp&litter Скомпоновать по в&ертикали с разделителем - Lays out the selected widgets vertically in a splitter Компонует выделенные виджеты по вертикали (QSplitter) - &Break Layout &Удалить компоновщик - Breaks the selected layout Удаляет выбранный компоновщик - Si&mplify Grid Layout Упрост&ить компоновку по сетке - Removes empty columns and rows Удаляет пустые колонки и строки в QGridLayout - &Preview... &Предпросмотр... - Preview current form Предпросмотр формы - Form &Settings... &Настройки формы... - Break Layout Удалить компоновщик - Adjust Size Подогнать размер - Could not create form preview Title of warning message box Не удалось создать предпросмотр формы - Form Settings - %1 Настройки формы - %1 @@ -5077,12 +4162,10 @@ Do you want overwrite the template? qdesigner_internal::FormWindowSettings - None Нет - Device Profile: %1 Профиль устройства: %1 @@ -5090,37 +4173,30 @@ Do you want overwrite the template? qdesigner_internal::GridPanel - Form Форма - Grid Сетка - Visible Видимая - Grid &X Сетка &X - Snap Прилипать - Reset Сбросить - Grid &Y Сетка &Y @@ -5128,7 +4204,6 @@ Do you want overwrite the template? qdesigner_internal::GroupBoxTaskMenu - Change title... Изменить заголовок... @@ -5136,7 +4211,6 @@ Do you want overwrite the template? qdesigner_internal::HtmlTextEdit - Insert HTML entity Вставить элемент HTML @@ -5144,92 +4218,74 @@ Do you want overwrite the template? qdesigner_internal::IconSelector - The pixmap file '%1' cannot be read. Невозможно прочитать файл растрового изображения '%1'. - The file '%1' does not appear to be a valid pixmap file: %2 Файл '%1' не похож на корректный файл растрового изображения: %2 - The file '%1' could not be read: %2 Не удалось прочитать файл %1: %2 - Choose a Pixmap Выбор растрового изображения - Pixmap Read Error Ошибка чтения растрового изображения - ... ... - Normal Off Нормальный, выкл - Normal On Нормальный, вкл - Disabled Off Выключенный, выкл - Disabled On Выключенный, вкл - Active Off Активный, выкл - Active On Активный, вкл - Selected Off Выбранный, выкл - Selected On Выбранный, вкл - Choose Resource... Выбрать ресурс... - Choose File... Выбрать файл... - Reset Сбросить - Reset All Сбросить всё @@ -5237,58 +4293,46 @@ Do you want overwrite the template? qdesigner_internal::ItemListEditor - Properties &<< Свойства &<< - - Properties &>> Свойства &>> - Items List Список элементов - New Item Новый элемент - &New &Новый - Delete Item Удалить элемент - &Delete &Удалить - Move Item Up Переместить элемент вверх - U U - Move Item Down Переместить элемент вниз - D D @@ -5296,12 +4340,10 @@ Do you want overwrite the template? qdesigner_internal::LabelTaskMenu - Change rich text... Изменить форматированный текст... - Change plain text... Изменить обычный текст... @@ -5309,7 +4351,6 @@ Do you want overwrite the template? qdesigner_internal::LanguageResourceDialog - Choose Resource Выбор ресурса @@ -5317,7 +4358,6 @@ Do you want overwrite the template? qdesigner_internal::LineEditTaskMenu - Change text... Изменить текст... @@ -5325,17 +4365,14 @@ Do you want overwrite the template? qdesigner_internal::ListWidgetEditor - New Item Новый элемент - Edit List Widget Изменение виджета List - Edit Combobox Изменение виджета ComboBox @@ -5343,12 +4380,10 @@ Do you want overwrite the template? qdesigner_internal::ListWidgetTaskMenu - Edit Items... Изменить элементы... - Change List Contents Изменение содержимого списка @@ -5356,22 +4391,18 @@ Do you want overwrite the template? qdesigner_internal::MdiContainerWidgetTaskMenu - Next Subwindow Следующее дочернее докно - Previous Subwindow Предыдущее дочернее докно - Tile Замостить - Cascade Каскадом @@ -5379,7 +4410,6 @@ Do you want overwrite the template? qdesigner_internal::MenuTaskMenu - Remove Удалить @@ -5387,7 +4417,6 @@ Do you want overwrite the template? qdesigner_internal::MorphMenu - Morph into Преобразовать в @@ -5395,42 +4424,34 @@ Do you want overwrite the template? qdesigner_internal::NewActionDialog - New Action... Новое действие... - &Text: &Текст: - Object &name: &Имя объекта: - &Icon: &Значок: - Shortcut: Горячая клавиша: - Checkable: Триггерное: - ToolTip: Подсказка: - ... ... @@ -5438,41 +4459,34 @@ Do you want overwrite the template? qdesigner_internal::NewDynamicPropertyDialog - Set Property Name Установка имени свойства - The current object already has a property named '%1'. Please select another, unique one. Объект уже содержит свойство с именем '%1'. Укажите другое имя. - The '_q_' prefix is reserved for the Qt library. Please select another name. Приставка '_q_' зарезервирована для целей библиотеки Qt. Укажите другое имя. - Create Dynamic Property Создание динамического свойства - Property Name Имя свойства - horizontalSpacer - Property Type Тип свойства @@ -5480,83 +4494,67 @@ Please select another name. qdesigner_internal::NewFormWidget - Default size Размер по умолчанию - QVGA portrait (240x320) QVGA книжная (240x320) - QVGA landscape (320x240) QVGA альбомная (320x240) - VGA portrait (480x640) VGA книжная (480x640) - VGA landscape (640x480) VGA альбомная (640x480) - Widgets New Form Dialog Categories Виджеты - Custom Widgets Пользовательские виджеты - None Нет - Error loading form Ошибка загрузки формы - Unable to open the form template file '%1': %2 Невозможно открыть файл шаблона формы '%1': %2 - Internal error: No template selected. Внутренняя ошибка: Шаблон не выбран. - 0 0 - Choose a template for a preview Выберите шаблон для предпросмотра - Embedded Design Оформление портативных устройств - Device: Устройство: - Screen Size: Размер экрана: @@ -5564,37 +4562,30 @@ Please select another name. qdesigner_internal::NewPromotedClassPanel - Add Добавить - New Promoted Class Новый преобразованный класс - Base class name: Имя базового класса: - Promoted class name: Имя преобразованного класса: - Header file: Заголовочный файл: - Global include Глобальное включение - Reset Восстановить @@ -5602,12 +4593,10 @@ Please select another name. qdesigner_internal::ObjectInspector - &Find in Text... &Найти в тексте... - Change Current Page Смена текущей страницы @@ -5615,32 +4604,26 @@ Please select another name. qdesigner_internal::OrderDialog - Index %1 (%2) Индекс %1 (%2) - %1 %2 %1 %2 - Change Page Order Изменение порядка страниц - Page Order Порядок страниц - Move page up Переместить страницу выше - Move page down Переместить страницу ниже @@ -5648,47 +4631,38 @@ Please select another name. qdesigner_internal::PaletteEditor - Edit Palette Правка палитры - Tune Palette Настройка палитры - Show Details Показывать детали - Compute Details Расчитывать детали - Quick Быстрый - Preview Предпросмотр - Disabled Выключенная - Inactive Неактивная - Active Активная @@ -5696,7 +4670,6 @@ Please select another name. qdesigner_internal::PaletteEditorButton - Change Palette Изменить палитру @@ -5704,22 +4677,18 @@ Please select another name. qdesigner_internal::PaletteModel - Color Role Роль цвета - Active Активный - Inactive Неактивный - Disabled Выключенный @@ -5727,28 +4696,22 @@ Please select another name. qdesigner_internal::PixmapEditor - Choose Resource... Выбрать ресурс... - Choose File... Выбрать файл... - Copy Path Скопировать путь - Paste Path Вставить путь - - ... ... @@ -5756,7 +4719,6 @@ Please select another name. qdesigner_internal::PlainTextEditorDialog - Edit text Правка текста @@ -5764,37 +4726,30 @@ Please select another name. qdesigner_internal::PluginDialog - Components Компоненты - Plugin Information Информация о модуле - Refresh Обновить - Scan for newly installed custom widget plugins. Поиск вновь установленных модулей пользовательских виджетов. - Qt Designer couldn't find any plugins Qt Designer не может найти ни одного модуля - Qt Designer found the following plugins Qt Designer нашёл следующие модули - New custom widget plugins have been found. Найдены новые модули пользовательских виджетов. @@ -5802,7 +4757,6 @@ Please select another name. qdesigner_internal::PreviewActionGroup - %1 Style Стиль %1 @@ -5810,47 +4764,38 @@ Please select another name. qdesigner_internal::PreviewConfigurationWidget - Default По умолчанию - None Нет - Browse... Обзор... - Load Custom Device Skin Загрузить особую обложку устройства - All QVFB Skins (*.%1) Все обложки QVFB (*.%1) - %1 - Duplicate Skin %1 - Повторяющаяся обложка - The skin '%1' already exists. Обложка '%1' уже существует. - %1 - Error %1 - Ошибка - %1 is not a valid skin directory: %2 %1 не является корректным каталогом обложек: @@ -5860,24 +4805,20 @@ Please select another name. qdesigner_internal::PreviewDeviceSkin - &Portrait &Книжная - Landscape (&CCW) Rotate form preview counter-clockwise Альбомная (&против ЧС) - &Landscape (CW) Rotate form preview clockwise &Альбомная (по ЧС) - &Close &Закрыть @@ -5885,7 +4826,6 @@ Please select another name. qdesigner_internal::PreviewManager - %1 - [Preview] %1 - [Предпросмотр] @@ -5893,7 +4833,6 @@ Please select another name. qdesigner_internal::PreviewMdiArea - The moose in the noose ate the goose who was loose. Palette editor background @@ -5903,57 +4842,46 @@ ate the goose who was loose. qdesigner_internal::PreviewWidget - Preview Window Окно предпросмотра - LineEdit LineEdit - ComboBox ComboBox - PushButton PushButton - ButtonGroup2 ButtonGroup2 - CheckBox1 CheckBox1 - CheckBox2 CheckBox2 - ButtonGroup ButtonGroup - RadioButton1 RadioButton1 - RadioButton2 RadioButton2 - RadioButton3 RadioButton3 @@ -5961,22 +4889,18 @@ ate the goose who was loose. qdesigner_internal::PromotionModel - Name Имя - Header file Заголовочный файл - Global include Глобальное включение - Usage Использование @@ -5984,27 +4908,22 @@ ate the goose who was loose. qdesigner_internal::PromotionTaskMenu - Promoted widgets... Преобразованные виджеты... - Promote to ... Преобразовать в ... - Change signals/slots... Изменить сигналы/слоты... - Promote to Преобразовать в - Demote to %1 Преобразовать в %1 @@ -6012,57 +4931,46 @@ ate the goose who was loose. qdesigner_internal::PropertyEditor - Add Dynamic Property... Добавить динамическое свойство... - Remove Dynamic Property Удалить динамическое свойство - Sorting Сортировка - Color Groups Цветовые группы - Tree View Древовидный список - Drop Down Button View Вид выпадающего списка - String... Строка... - Bool... Булево... - Other... Другое... - Configure Property Editor Настроить радактор свойств - Object: %1 Class: %2 Объект: %1 @@ -6072,7 +4980,6 @@ Class: %2 qdesigner_internal::PropertyLineEdit - Insert line break Вставить разрыв строки @@ -6080,27 +4987,22 @@ Class: %2 qdesigner_internal::QDesignerPromotionDialog - Promoted Widgets Преобразованные виджеты - Promoted Classes Преобразованные классы - Promote Преобразовать - Change signals/slots... Изменить сигналы/слоты... - %1 - Error %1 - Ошибка @@ -6108,22 +5010,18 @@ Class: %2 qdesigner_internal::QDesignerResource - Loading qrc file Загрузка файла qrc - The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> Не удалось найти указанный файл qrc <p><b>%1</b></p><p>Желаете обновить его расположение?</p> - New location for %1 Новое расположение %1 - Resource files (*.qrc) Файл ресурсов (*.qrc) @@ -6131,112 +5029,90 @@ Class: %2 qdesigner_internal::QDesignerTaskMenu - Change objectName... Изменить objectName... - Change toolTip... Изменить toolTip... - Change whatsThis... Изменить whatsThis... - Change styleSheet... Изменить styleSheet... - Create Menu Bar Создать панель меню - Add Tool Bar Добавить панель инструментов - Create Status Bar Создать строку состояния - Remove Status Bar Удалить строку состояния - Change script... Изменить сценарий... - Change signals/slots... Изменить сигналы/слоты... - Go to slot... Перейти к слоту... - Size Constraints Ограничения размера - Set Minimum Width Установить минимальную ширину - Set Minimum Height Установить минимальную высоту - Set Minimum Size Установить минимальный размер - Set Maximum Width Установить максимальную ширину - Set Maximum Height Установить максимальную высоту - Set Maximum Size Установить максимальный размер - Edit ToolTip Правка текста всплывающей подсказки - Edit WhatsThis Правка текста подсказки режима "Что это?" - no signals available Нет доступных сигналов - Set size constraint on %n widget(s) Установка ограничений размера для %n виджета @@ -6248,42 +5124,34 @@ Class: %2 qdesigner_internal::QDesignerWidgetBox - - Unexpected element <%1> Неожиданный элемент <%1> - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 %5 Возникла ошибка разбора в строке %1 позиции %2 кода XML, определённого для виджета %3: %4 %5 - The XML code specified for the widget %1 does not contain any widget elements. %2 Код XML, определённый для виджета %1, не содержит каких-либо элементов виджетов. %2 - An error has been encountered at line %1 of %2: %3 Обнаружена ошибка в строке %1 из %2: %3 - Unexpected element <%1> encountered when parsing for <widget> or <ui> Обнаружен неожиданный элемент <%1> вместо <widget> или <ui> - Unexpected end of file encountered when parsing widgets. Файл неожиданно закончился при разборе виджетов. - A widget element could not be found. Не удалось обнаружить элемент виджета. @@ -6291,73 +5159,58 @@ Class: %2 qdesigner_internal::QtGradientStopsController - H H - S S - V V - - Hue Оттенок - Sat Насыщ - Val Знач - Saturation Насыщенность - Value Значение - R R - G G - B B - Red Красный - Green Зелёный - Blue Синий @@ -6365,27 +5218,22 @@ Class: %2 qdesigner_internal::RichTextEditorDialog - Edit text Правка текста - Rich Text Форматированный текст - Source Исходник - &OK &ОК - &Cancel От&мена @@ -6393,72 +5241,58 @@ Class: %2 qdesigner_internal::RichTextEditorToolBar - Bold Жирный - CTRL+B - Italic Курсив - CTRL+I - Underline Подчёркнутый - CTRL+U - Left Align По левому краю - Center По центру - Right Align По правому краю - Justify По ширине - Superscript Верхний индекс - Subscript Нижний индекс - Insert &Link Вставить &ссылку - Insert &Image Вставить &изображение @@ -6466,17 +5300,14 @@ Class: %2 qdesigner_internal::ScriptDialog - Edit script Правка сценария - <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>Укажите сценарий Qt, который должен выполняться при загрузке формы.<br>Виджет и его дочерние виджеты доступны через переменные <i>widget</i> и <i>childWidgets</i>. - Syntax error Синтаксическая ошибка @@ -6484,7 +5315,6 @@ Class: %2 qdesigner_internal::ScriptErrorDialog - Script errors Ошибки сценария @@ -6492,23 +5322,18 @@ Class: %2 qdesigner_internal::SignalSlotDialog - There is already a slot with the signature '%1'. Уже есть слот с сигнатурой '%1'. - There is already a signal with the signature '%1'. Уже есть сигнал с сигнатурой '%1'. - %1 - Duplicate Signature %1 - Повторяющаяся сигнатура - - Signals/Slots of %1 Сигналы/слоты %1 @@ -6516,12 +5341,10 @@ Class: %2 qdesigner_internal::SignalSlotEditorPlugin - Edit Signals/Slots Изменение сигналов/слотов - F4 @@ -6529,7 +5352,6 @@ Class: %2 qdesigner_internal::SignalSlotEditorTool - Edit Signals/Slots Изменение сигналов/слотов @@ -6537,7 +5359,6 @@ Class: %2 qdesigner_internal::StatusBarTaskMenu - Remove Удалить @@ -6545,7 +5366,6 @@ Class: %2 qdesigner_internal::StringListEditorButton - Change String List Изменить список строк @@ -6553,38 +5373,30 @@ Class: %2 qdesigner_internal::StyleSheetEditorDialog - - Valid Style Sheet Корректная таблица стилей - Add Resource... Добавить ресурс... - Add Gradient... Добавить градиент... - Add Color... Добавить цвет... - Add Font... Добавить шрифт... - Edit Style Sheet Правка таблицы стилей - Invalid Style Sheet Некорректная таблица стилей @@ -6592,27 +5404,22 @@ Class: %2 qdesigner_internal::TabOrderEditor - Start from Here Начать отсюда - Restart Перезапустить - Tab Order List... Список порядка переключений... - Tab Order List Список порядка переключений - Tab Order Порядок переключений @@ -6620,7 +5427,6 @@ Class: %2 qdesigner_internal::TabOrderEditorPlugin - Edit Tab Order Изменение порядка переключений @@ -6628,7 +5434,6 @@ Class: %2 qdesigner_internal::TabOrderEditorTool - Edit Tab Order Изменить порядок переключений @@ -6636,48 +5441,38 @@ Class: %2 qdesigner_internal::TableWidgetEditor - - Properties &>> Свойства &>> - Edit Table Widget Правка табличного виджета - &Items &Элементы - Table Items Элементы таблицы - New Column Новый столбец - New Row Новая строка - &Columns С&толбцы - &Rows &Строки - Properties &<< Свойства &<< @@ -6685,7 +5480,6 @@ Class: %2 qdesigner_internal::TableWidgetTaskMenu - Edit Items... Изменить элементы... @@ -6693,22 +5487,18 @@ Class: %2 qdesigner_internal::TemplateOptionsWidget - Pick a directory to save templates in Выберите каталог для сохранения шаблонов - Form Форма - Additional Template Paths Дополнительные пути к шаблонам - ... ... @@ -6716,22 +5506,18 @@ Class: %2 qdesigner_internal::TextEditTaskMenu - Edit HTML Правка HTML - Change HTML... Изменить HTML... - Edit Text Правка текста - Change Plain Text... Правка обычного текста... @@ -6739,22 +5525,18 @@ Class: %2 qdesigner_internal::TextEditor - Choose Resource... Выбрать ресурс... - Choose File... Выбрать файл... - ... ... - Choose a File Выбор файла @@ -6762,27 +5544,22 @@ Class: %2 qdesigner_internal::ToolBarEventFilter - Insert Separator before '%1' Вставить разделитель перед '%1' - Append Separator Добавить разделитель - Remove action '%1' Удалить действие '%1' - Remove Toolbar '%1' Удалить панель инструментов '%1' - Insert Separator Вставить разделитель @@ -6790,125 +5567,98 @@ Class: %2 qdesigner_internal::TreeWidgetEditor - New Column Новый столбец - &Columns С&толбцы - Per column properties Свойства столбца - Common properties Общие свойства - - New Item Новый элемент - - New Subitem Новый дочерний элемент - Properties &<< Свойства &<< - - Properties &>> Свойства &>> - Edit Tree Widget Изменение виджета Дерево - &Items &Элементы - Tree Items Элементы дерева - 1 1 - &New &Новый - New &Subitem Новый &дочерний элемент - Delete Item Удалить элемент - &Delete &Удалить - Move Item Left (before Parent Item) Переместить элемент влево (перед родительским) - L L - Move Item Right (as a First Subitem of the Next Sibling Item) Переместить элемент вправо (сделать первым дочерним элементом соседнего элемента) - R - Move Item Up Переместить элемент вверх - U U - Move Item Down Переместить элемент вниз - D D @@ -6916,7 +5666,6 @@ Class: %2 qdesigner_internal::TreeWidgetTaskMenu - Edit Items... Изменить элементы... @@ -6924,7 +5673,6 @@ Class: %2 qdesigner_internal::WidgetBox - Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. Предупреждение: Не удалось создать виджет. Это могло произойти из-за некорректного XML пользовательского виджета. @@ -6932,42 +5680,34 @@ Class: %2 qdesigner_internal::WidgetBoxTreeWidget - Scratchpad Блокнот - Custom Widgets Пользовательские виджеты - Expand all Развернуть всё - Collapse all Свернуть всё - List View Список - Icon View Значки - Remove Удалить - Edit name Изменить имя @@ -6975,7 +5715,6 @@ Class: %2 qdesigner_internal::WidgetDataBase - A custom widget plugin whose class name (%1) matches that of an existing class has been found. Обнаружен пользовательский модуль виджета, имя класса (%1) которого совпадает с уже имеющимся. @@ -6983,7 +5722,6 @@ Class: %2 qdesigner_internal::WidgetEditorTool - Edit Widgets Изменение виджетов @@ -6991,34 +5729,28 @@ Class: %2 qdesigner_internal::WidgetFactory - The custom widget factory registered for widgets of class %1 returned 0. Пользовательская фабрика виджетов, зарегистрированная для класса %1, вернула 0. - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. Обнаружено несоответствие имени класса при создании виджета с использованием пользовательской фабрики виджетов, зарегистрированной для класса %1. Она вернула виджет класса %2. - %1 Widget Виджет %1 - The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. При создании компоновщика не удалось определить текущую страницу контейнера '%1' (%2). Это указывает на некорректность файла ui - возможно, компоновщик был создан для контейнерного виджета. - Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. Попытка добавить компоновщик виджету '%1' (%2), у которого уже есть компоновщик типа %3. Это указывает на некорректность файла ui. - Cannot create style '%1'. Не удалось создать стиль '%1'. @@ -7026,12 +5758,10 @@ This indicates an inconsistency in the ui-file. qdesigner_internal::WizardContainerWidgetTaskMenu - Next Далее - Back Назад @@ -7039,7 +5769,6 @@ This indicates an inconsistency in the ui-file. qdesigner_internal::ZoomMenu - %1 % Zoom factor %1 % @@ -7048,7 +5777,6 @@ This indicates an inconsistency in the ui-file. qdesigner_internal::ZoomablePreviewDeviceSkin - &Zoom Мас&штаб diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts index 625a0f1..2d06f25 100644 --- a/translations/linguist_ru.ts +++ b/translations/linguist_ru.ts @@ -4,7 +4,6 @@ AboutDialog - Qt Linguist Qt Linguist @@ -12,77 +11,62 @@ BatchTranslationDialog - Qt Linguist - Batch Translation Qt Linguist - Пакетный перевод - Options Параметры - Set translated entries to finished Помечать переведенные записи как завершённые - Retranslate entries with existing translation Переводить записи, уже имеющие перевод - Translate also finished entries Также переводить записи с завершёнными переводами - Phrase book preference Предпочитаемые глоссарии - Move up Поднять - Move down Опустить - &Run &Выполнить - Cancel Отмена - Batch Translation of '%1' - Qt Linguist Пакетный перевод '%1' - Qt Linguist - Searching, please wait... Идёт поиск, ожидайте... - &Cancel От&мена - Linguist batch translator Пакетный переводчик Qt Linguist - Batch translated %n entries Автоматически переведена %n запись @@ -91,12 +75,10 @@ - Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включен параметр "Помечать переведенные записи как завершённые" - The batch translator will search through the selected phrase books in the order given above Пакетный переводчик будет искать в выбранных глоссариях в указанном выше порядке @@ -104,45 +86,36 @@ DataModel - <qt>Duplicate messages found in '%1': <qt>В '%1' обнаружены повторяющиеся сообщения: - - <p>[more duplicates omitted] <p>[остальные повторы не указаны] - <p>* ID: %1 <p>* ID: %1 - <p>* Context: %1<br>* Source: %2 <p>* Контекст: %1<br>* Источник: %2 - <br>* Comment: %3 <br>* Комментарий: %3 - Linguist does not know the plural rules for '%1'. Will assume a single universal form. Qt Linguist не знает правила множественных форм для '%1'. Будет использована универсальная единичная форма. - Cannot create '%2': %1 Не удалось создать '%2': %1 - Universal Form Универсальная форма @@ -150,37 +123,30 @@ Will assume a single universal form. ErrorsView - Accelerator possibly superfluous in translation. Возможно, лишний акселератор в переводе. - Accelerator possibly missing in translation. Возможно, пропущен акселератор в переводе. - Translation does not end with the same punctuation as the source text. Перевод не заканчивается тем же знаком препинания, что и исходный текст. - A phrase book suggestion for '%1' was ignored. Предложение глоссария для '%1' пропущено. - Translation does not refer to the same place markers as in the source text. Перевод не содержит тех же маркеров форматирования, что и исходный текст. - Translation does not contain the necessary %n place marker. Перевод не содержит необходимого маркера форматирования %n. - Unknown error Неизвестная ошибка @@ -188,98 +154,79 @@ Will assume a single universal form. FindDialog - Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog - Find Поиск - This window allows you to search for some text in the translation source file. Данное окно позволяет искать текст в файле перевода. - &Find what: &Искать: - Type in the text to search for. Введите искомый текст. - Options Параметры - Source texts are searched when checked. Если отмечено, поиск будет вестись в исходных текстах. - &Source texts &Исходные тексты - Translations are searched when checked. Если отмечено, поиск будет вестись в переведённых текстах. - &Translations &Переводы - Texts such as 'TeX' and 'tex' are considered as different when checked. Если отмечено, строки "ПрИмЕр" и "пример" будет считаться разными. - &Match case С учётом &регистра - Comments and contexts are searched when checked. Если отмечено, поиск будет вестись по контекстам и комментариям. - &Comments &Комментарии - Ignore &accelerators Пропускать &акселераторы - Click here to find the next occurrence of the text you typed in. Найти следующее совпадение для введённого текста. - Find Next Найти далее - Click here to close this window. Закрыть окно. - Cancel Отмена @@ -287,30 +234,25 @@ Will assume a single universal form. FormMultiWidget - Alt+Delete translate, but don't change - Shift+Alt+Insert translate, but don't change - Alt+Insert translate, but don't change - Confirmation - Qt Linguist Подтверждение - Qt Linguist - Delete non-empty length variant? Удалить вариант перевода? @@ -318,7 +260,6 @@ Will assume a single universal form. LRelease - Dropped %n message(s) which had no ID. Удалено %n сообщение, у которого не было ID. @@ -327,7 +268,6 @@ Will assume a single universal form. - Excess context/disambiguation dropped from %n message(s). Удалён лишний контекст из %n сообщения. @@ -336,107 +276,80 @@ Will assume a single universal form. - - Generated %n translation(s) (%1 finished and %2 unfinished) - + Generated %n translation(s) (%1 finished and %2 unfinished) - Создан %n перевод (%1 завершённых и %2 незавершённых) - - Создано %n перевода (%1 завершённых и %2 незавершённых) - - Создано %n переводов (%1 завершённых и %2 незавершённых) - + Создан %n перевод (%1 завершённых и %2 незавершённых) + Создано %n перевода (%1 завершённых и %2 незавершённых) + Создано %n переводов (%1 завершённых и %2 незавершённых) - - Ignored %n untranslated source text(s) - + Ignored %n untranslated source text(s) - Пропущен %n непереведённый исходный текст - - Пропущено %n непереведённых исходных текста - - Пропущено %n непереведённых исходных текстов - + Пропущен %n непереведённый исходный текст + Пропущено %n непереведённых исходных текста + Пропущено %n непереведённых исходных текстов MainWindow - This is the application's main window. Основное окно программы. - Source text Исходный текст - - Index Индекс - - Context Контекст - Items Записи - This panel lists the source contexts. В данной панели перечислены исходные контексты. - Strings Строки - Phrases and guesses Фразы и похожие переводы - Sources and Forms Исходники и формы - Warnings Предупреждения - MOD status bar: file(s) modified ИЗМ - Loading... Загрузка... - - Loading File - Qt Linguist Загрузка файла - Qt Linguist - The file '%1' does not seem to be related to the currently open file(s) '%2'. Close the open file(s) first? @@ -445,7 +358,6 @@ Close the open file(s) first? Закрыть открытые файлы? - 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? @@ -454,7 +366,6 @@ Skip loading the first named file? Пропустить загрузку файла? - %n translation unit(s) loaded. Загружена %n запись. @@ -463,124 +374,84 @@ Skip loading the first named file? - Related files (%1);; Связанные файлы (%1);; - Open Translation Files Открыть файлы перевода - - File saved. Файл сохранён. - - - Release Скомпилировать - Qt message files for released applications (*.qm) All files (*) Скомпилированные файлы перевода для приложений Qt (*.qm) Все файлы (*) - - File created. Файл создан. - - Printing... Печать... - Context: %1 Контекст: %1 - finished завершён - unresolved неразрешённый - obsolete устаревший - - Printing... (page %1) Печать... (страница %1) - - Printing completed Печать завершена - - Printing aborted Печать прервана - Search wrapped. Поиск с начала. - - - - - - - - - - Qt Linguist Qt Linguist - - Cannot find the string '%1'. Не удалось найти строку '%1'. - Search And Translate in '%1' - Qt Linguist Поиск и перевод '%1' - Qt Linguist - - - Translate - Qt Linguist Перевод - Qt Linguist - Translated %n entry(s) Переведена %n запись @@ -589,39 +460,32 @@ All files (*) - No more occurrences of '%1'. Start over? Нет больше совпадений с '%1'. Начать заново? - Create New Phrase Book Создать глоссарий - Qt phrase books (*.qph) All files (*) Глоссарии Qt (*.qph) Все файлы (*) - Phrase book created. Глоссарий создан. - Open Phrase Book Открыть глоссарий - Qt phrase books (*.qph);;All files (*) Глоссарии Qt (*.qph);;Все файлы (*) - %n phrase(s) loaded. Загружена %n фраза. @@ -630,879 +494,690 @@ All files (*) - - - Add to phrase book Добавить в глоссарий - No appropriate phrasebook found. Подходящий глоссарий не найден. - Adding entry to phrasebook %1 Добавление записи в глоссарий %1 - Select phrase book to add to Выберите глоссарий, в который желаете добавить фразу - Unable to launch Qt Assistant (%1) Не удалось запустить Qt Assistant (%1) - Version %1 Версия %1 - <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). <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist - инструмент для добавления переводов в приложения на основе Qt.</p><p>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения. - Do you want to save the modified files? Желаете сохранить изменённые файлы? - Do you want to save '%1'? Желаете сохранить '%1'? - Qt Linguist[*] Qt Linguist[*] - %1[*] - Qt Linguist %1[*] - Qt Linguist - - No untranslated translation units left. Непереведённых записей не осталось. - &Window &Окно - Minimize Свернуть - Ctrl+M - Display the manual for %1. Показать руководство для %1. - Display information about %1. Показать информацию о %1. - &Save '%1' &Сохранить'%1' - Save '%1' &As... Сохранить'%1' &как... - Release '%1' Скомпилировать '%1' - Release '%1' As... Скомпилировать '%1' как... - &Close '%1' &Закрыть '%1' - - &Save &Сохранить - - - Save &As... Сохранить &как... - - - Release As... Скомпилировать как... - - &Close &Закрыть - Save All Сохранить все - - &Release All С&компилировать все - Close All Закрыть все - &Release С&компилировать - Translation File &Settings for '%1'... &Параметры файла перевода для '%1'... - &Batch Translation of '%1'... Пак&етный перевод '%1'... - Search And &Translate in '%1'... &Найти и перевести в '%1'... - - Translation File &Settings... &Параметры файла перевода... - - &Batch Translation... Пак&етный перевод... - Search And &Translate... &Найти и перевести... - - File Файл - - Edit Правка - - Translation Перевод - - Validation Проверка - - Help Справка - Cannot read from phrase book '%1'. Не удалось прочитать из глоссария '%1'. - Close this phrase book. Закрыть глоссарий. - Enables you to add, modify, or delete entries in this phrase book. Позволяет добавлять, изменять и удалять записи в глоссарии. - Print the entries in this phrase book. Печать записей фраз глоссария. - Cannot create phrase book '%1'. Не удалось создать глоссарий '%1'. - Do you want to save phrase book '%1'? Желаете сохранить глоссарий '%1'? - All Все - MainWindow Главное окно - &Phrases Фра&зы - &Close Phrase Book &Закрыть глоссарий - &Edit Phrase Book &Редактироваь глоссарий - &Print Phrase Book &Печатать глоссарий - V&alidation П&роверка - &View &Вид - Vie&ws Вид&ы - &Toolbars Пан&ели инструментов - &Help &Справка - &Translation П&еревод - &File &Файл - Recently Opened &Files Недавно открытые &файлы - &Edit &Правка - &Open... &Открыть... - Open a Qt translation source file (TS file) for editing Открыть исходный файл переводов Qt (файл TS) для изменения - Ctrl+O - E&xit В&ыход - Close this window and exit. Закрыть окно и выйти. - Ctrl+Q - Save Сохранить - Save changes made to this Qt translation source file Сохранить изменения в данном исходном файле перевода Qt - Save As... Сохранить как... - Save changes made to this Qt translation source file into a new file. Сохранить изменения в данном исходном файле перевода Qt в новый файл. - Create a Qt message file suitable for released applications from the current message file. Скомпилировать файл перевода Qt из текущего файла. - &Print... &Печать... - Print a list of all the translation units in the current translation source file. Печать списка всех записей перевода из текущего файла. - Ctrl+P - &Undo &Отменить - Undo the last editing operation performed on the current translation. Отменить последнее изменение текущего перевода. - Ctrl+Z - &Redo &Повторить - Redo an undone editing operation performed on the translation. Повторить отменённую правку перевода. - Ctrl+Y - Cu&t Выр&езать - Copy the selected translation text to the clipboard and deletes it. Скопировать отмеченный текст в буфер обмена и удалить его из оригинала. - Ctrl+X - &Copy &Копировать - Copy the selected translation text to the clipboard. Скопировать отмеченный текст в буфер обмена. - Ctrl+C - &Paste &Вставить - Paste the clipboard text into the translation. Вставить текст из буфера обмена в перевод. - Ctrl+V - Select &All В&ыделить всё - Select the whole translation text. Выделить весь текст перевода. - Ctrl+A - &Find... &Найти... - Search for some text in the translation source file. Найти текст в исходном файле перевода. - Ctrl+F - Find &Next Найти д&алее - Continue the search where it was left. Продолжить поиск с места, где он был остановлен. - F3 - &Prev Unfinished &Предыдущий незавершённый - 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. Создание готового файла перевода Qt из текущего файла. Имя файла будет автоматически определено из имени .ts файла. - Length Variants Варианты перевода - Move to the previous unfinished item. Перейти к предыдущему незавершённому переводу. - Ctrl+K - &Next Unfinished &Следующий незавершённый - Move to the next unfinished item. Перейти к следующему незавершённому переводу. - Ctrl+J - P&rev Пр&едыдущий - Move to the previous item. Перейти к предыдущему переводу. - Ctrl+Shift+K - Ne&xt С&ледующий - Move to the next item. Перейти к следующему переводу. - Ctrl+Shift+J - &Done and Next &Готово и далее - Mark this item as done and move to the next unfinished item. Пометить перевод как завершённый и перейти к следующему незавершённому. - Copy from source text Скопировать из исходного текста - Copies the source text into the translation field. Скопировать исходный текст в поле перевода. - Ctrl+B - &Accelerators &Акселераторы - 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. Переключение проверки акселераторов, т.е. совпадает ли количество амперсандов в исходном и переведённом текстах. Если выявлено несовпадение, будет показано сообщение в окне предупреждений. - &Ending Punctuation &Знаки препинания - Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. Переключение проверки знаков препинания в конце текста. Если выявлено несовпадение, будет показано сообщение в окне предупреждений. - &Phrase matches Совпадение &фраз - Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. Переключение проверки использования предложений для фраз. Если выявлено несовпадение, будет показано сообщение в окне предупреждений. - Place &Marker Matches Совпадение &маркеров - 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. Переключение проверки маркеров форматирования, т.е. все ли маркеры (%1, %2, ...) исходного текста присутствуют в переведённом. Если выявлено несовпадение, будет показано сообщение в окне предупреждений. - &New Phrase Book... &Новый глоссарий... - Create a new phrase book. Создать глоссарий. - Ctrl+N - &Open Phrase Book... &Открыть глоссарий... - Open a phrase book to assist translation. Открыть глоссарий для помощи в переводе. - Ctrl+H - &Reset Sorting &Сброс сортировки - Sort the items back in the same order as in the message file. Упорядочить элементы в той последовательности, в которой они находятся в файле. - &Display guesses &Предлагать похожие - Set whether or not to display translation guesses. Определяет необходимо или нет отображать похожие переводы. - &Statistics &Статистика - Display translation statistics. Показать статистику перевода. - &Manual &Руководство - F1 - About Qt Linguist О Qt Linguist - About Qt О Qt - &What's This? &Что это? - What's This? Что это? - Enter What's This? mode. Переход в режим "Что это?". - Shift+F1 - &Search And Translate... &Найти и перевести... - Replace the translation on all entries that matches the search source text. Заменить перевод всех записей, которые совпадают с искомым исходным текстом. - Batch translate all entries using the information in the phrase books. Перевести все записи в пакетном режиме, используя информацию из глоссария. - Open/Refresh Form &Preview Открыть/обновить предпрос&мотр формы - Form Preview Tool Инструмент предпросмотра форм - F5 - &Add to Phrase Book &Добавить в глоссарий - Ctrl+T - Open Read-O&nly... Открыть только для &чтения... - &Save All &Сохранить все - Ctrl+S - Close Закрыть - &Close All &Закрыть все - Ctrl+W - Previous unfinished item Предыдущий незавершённый перевод - Next unfinished item Следующий незавершённый перевод - Move to previous item Перейти к предыдущему переводу - Next item Следующий перевод - Mark item as done and move to the next unfinished item Пометить перевод как завершённый и перейти к следующему незавершённому - Copies the source text into the translation field Скопировать исходный текст в поле перевода - Toggle the validity check of accelerators Переключение проверки акселераторов - Toggle the validity check of ending punctuation Переключение проверки знаков препинания в конце текста - Toggle checking that phrase suggestions are used Переключение проверки использования предложений для фраз - Toggle the validity check of place markers Переключение проверки маркеров форматирования - Display information about the Qt toolkit by Nokia. Показать информацию об инструментарии Qt от Nokia. @@ -1510,104 +1185,84 @@ All files (*) MessageEditor - This is the right panel of the main window. Правая панель основного окна - Russian Русский - German Немецкий - Japanese Японский - French Французский - Polish Польский - Chinese Китайский - This whole panel allows you to view and edit the translation of some source text. Данная панель позволяет просматривать и редактировать перевод исходного текста. - Source text Исходный текст - This area shows the source text. В данной области отображается исходный текст. - Source text (Plural) Исходный текст (множественная форма) - This area shows the plural form of the source text. В данной области отображается исходный текст во множественной форме. - Developer comments Комментарий разработчика - This area shows a comment that may guide you, and the context in which the text occurs. В данной области отображается комментарий, который поможет определить в каком контексте встречается переводимый текст. - Here you can enter comments for your own use. They have no effect on the translated applications. Здесь вы можете оставить комментарий для собственного использования. Комментарии не влияют на перевод приложений. - %1 translation (%2) %1 перевод (%2) - This is where you can enter or modify the translation of the above source text. Здесь вы можете ввести или изменить перевод текста, представленного выше. - %1 translation %1 перевод - %1 translator comments %1 перевод: комментарий переводчика - '%1' Line: %2 '%1' @@ -1617,22 +1272,18 @@ Line: %2 MessageModel - Completion status for %1 Состояние завершённости для %1 - <file header> <заголовок файла> - <context comment> <контекстный комментарий> - <unnamed context> <безымянный контекст> @@ -1640,113 +1291,91 @@ Line: %2 PhraseBookBox - Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox. - (New Entry) (Новая запись) - %1[*] - Qt Linguist %1[*] - Qt Linguist - Qt Linguist Qt Linguist - Cannot save phrase book '%1'. Не удалось сохранить глоссарий '%1'. - Edit Phrase Book Правка глоссария - This window allows you to add, modify, or delete entries in a phrase book. Данное окно позволяет добавлять, изменять и удалять записи в глоссарии. - &Translation: &Перевод: - This is the phrase in the target language corresponding to the source phrase. Перевод, соответствующий исходной фразе. - S&ource phrase: &Исходная фраза: - This is a definition for the source phrase. Определение исходной фразы. - This is the phrase in the source language. Фраза на исходном языке. - &Definition: &Определение: - Click here to add the phrase to the phrase book. Добавить фразу в глоссарий. - &New Entry Новая &запись - Click here to remove the entry from the phrase book. Удалить фразу из глоссария. - &Remove Entry &Удалить - Settin&gs... &Настройки... - Click here to save the changes made. Сохранить изменения. - &Save &Сохранить - Click here to close this window. Закрыть окно. - Close Закрыть @@ -1754,17 +1383,14 @@ Line: %2 PhraseModel - Source phrase Исходная фраза - Translation Перевод - Definition Определение @@ -1772,22 +1398,18 @@ Line: %2 PhraseView - Insert Вставить - Edit Правка - Guess (%1) Похожая (%1) - Guess Похожая @@ -1795,63 +1417,46 @@ Line: %2 QObject - Translation files (%1);; Файлы перевода (%1);; - All files (*) Все файлы (*) - - - - - - - Qt Linguist Qt Linguist - GNU Gettext localization files Файлы локализации GNU Gettext - GNU Gettext localization template files Файлы шаблонов локализации GNU Gettext - Compiled Qt translations Скомпилированные переводы Qt - Qt Linguist 'Phrase Book' 'Глоссарий' Qt Linguist - Qt translation sources (format 1.1) Исходные файлы перевода Qt (формат 1.1) - Qt translation sources (format 2.0) Исходные файлы перевода Qt (формат 2.0) - Qt translation sources (latest format) Исходные файлы перевода Qt (последний формат) - XLIFF localization files Файлы локализации XLIFF @@ -1859,17 +1464,14 @@ Line: %2 SourceCodeView - <i>Source code not available</i> <i>Исходный код недоступен</i> - <i>File %1 not available</i> <i>Файл %1 недоступен</i> - <i>File %1 not readable</i> <i>Невозможно прочитать файл %1</i> @@ -1877,42 +1479,34 @@ Line: %2 Statistics - Statistics Статистика - Close Закрыть - Translation Перевод - Source Источник - 0 0 - Words: Слов: - Characters: Символов: - Characters (with spaces): Символов (с пробелами): @@ -1920,72 +1514,58 @@ Line: %2 TranslateDialog - This window allows you to search for some text in the translation source file. Данное окно позволяет искать текст в файле перевода. - Type in the text to search for. Введите искомый текст. - Find &source text: &Найти текст: - &Translate to: &Перевести как: - Search options Параметры поиска - Texts such as 'TeX' and 'tex' are considered as different when checked. Если отмечено, строки "ПрИмЕр" и "пример" будет считаться разными. - Match &case С учётом &регистра - Mark new translation as &finished Помечать перевод как завер&шённый - Click here to find the next occurrence of the text you typed in. Найти следующее совпадение для введённого текста. - Find Next Найти далее - Translate Перевести - Translate All Перевести все - Click here to close this window. Закрыть окно. - Cancel Отмена @@ -1993,33 +1573,26 @@ Line: %2 TranslationSettingsDialog - Source language Исходный язык - Language Язык - Country/Region Страна/Регион - Target language Язык перевода - Any Country Любая страна - - Settings for '%1' - Qt Linguist Настройки для '%1' - Qt Linguist diff --git a/translations/qt_help_ru.ts b/translations/qt_help_ru.ts index f1aa0fa..be3583c 100644 --- a/translations/qt_help_ru.ts +++ b/translations/qt_help_ru.ts @@ -4,106 +4,92 @@ QCLuceneResultWidget - Search Results Результат поиска - Note: Примечание: - The search results may not be complete since the documentation is still being indexed! Результат поиска может быть неполным, так как документация ещё индексируется! - Your search did not match any documents. По вашему запросу не найдено ни одного документа. - (The reason for this might be that the documentation is still being indexed.) (Причиной этого может быть то, что документация ещё индексируется.) + QHelp + + Untitled + Безымянный + + + QHelpCollectionHandler - The collection file '%1' is not set up yet! Файл коллекции справки '%1' ещё не установлен! - Cannot load sqlite database driver! Не удалось загрузить драйвер базы данных sqlite! - - Cannot open collection file: %1 Не удалось открыть файл коллекции справки: %1 - Cannot create tables in file %1! Не удалось создать таблицы в файле %1! - The collection file '%1' already exists! Файл коллекции справки '%1' уже существует! - Unknown filter '%1'! Неизвестный фильтр '%1'! - Invalid documentation file '%1'! Некорректный файл документации '%1'! - Cannot register namespace '%1'! Не удалось зарегистрировать пространство имён %1! - Cannot open database '%1' to optimize! Не удалось открыть базу данных '%1' для оптимизации! - Cannot create directory: %1 Не удалось создать каталог: %1 - Cannot copy collection file: %1 Не удалось скопировать файл коллекции справки: %1 - Cannot register filter %1! Не удалось зарегистрировать фильтр %1! - Cannot open documentation file %1! Не удалось открыть файл документации %1! - The namespace %1 was not registered! Пространство имён %1 не зарегистрировано! - Namespace %1 already exists! Пространство имён %1 уже существует! @@ -111,7 +97,6 @@ QHelpDBReader - Cannot open database '%1' '%2': %3 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 Не удалось открыть базу данных '%1' '%2': %3 @@ -120,12 +105,10 @@ QHelpEngineCore - Cannot open documentation file %1: %2! Не удалось открыть файл документации %1: %2! - The specified namespace does not exist! Указанное пространство имён не существует! @@ -133,132 +116,106 @@ QHelpGenerator - Invalid help data! Некорректные данные справки! - No output file name specified! Не указано имя результирующего файла! - Building up file structure... Создание структуры файла... - The file %1 cannot be overwritten! Невозможно перезаписать файл %1! - Cannot open data base file %1! Не удалось открыть файл базы данных %1! - Cannot register namespace %1! Не удалось зарегистрировать пространство имён %1! - Insert custom filters... Добавление индивидуальных фильтров... - Insert help data for filter section (%1 of %2)... Добавление данных справки для раздела фильтра (%1 из %2)... - Documentation successfully generated. Документация успешно создана. - Some tables already exist! Некоторые таблицы уже существуют! - Cannot create tables! Не удалось создать таблицы! - Cannot register virtual folder! Не удалось зарегистрировать виртуальный каталог! - Insert files... Добавление файлов... - The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. Файл %1 должен быть в каталоге '%2' или в его подкаталоге. Пропускаем. - The file %1 does not exist! Skipping it. Файл %1 не существует! Пропускаем. - Cannot open file %1! Skipping it. Не удалось открыть файл %1! Пропускаем. - The filter %1 is already registered! Фильтр %1 уже зарегистрирован! - Cannot register filter %1! Не удалось зарегистрировать фильтр %1! - Insert indices... Добавление указателей... - Insert contents... Добавление оглавления... - Cannot insert contents! Не удалось добавить оглавление! - Cannot register contents! Не удалось зарегистрировать оглавление! - File '%1' does not exist. Файл '%1' не существует. - File '%1' cannot be opened. Невозможно открыть файл '%1'. - File '%1' contains an invalid link to file '%2' Файл '%1' содержит некорректную ссылку на файл '%2' - Invalid links in HTML files. В файлах HTML обнаружены некорректные ссылки. @@ -266,47 +223,38 @@ QHelpProject - Unknown token. Неизвестный идентификатор. - Unknown token. Expected "QtHelpProject"! Неизвестный идентификатор. Ожидается "QtHelpProject"! - Error in line %1: %2 Ошибка в строке %1: %2 - Virtual folder has invalid syntax. Виртуальный каталог имеет некорректный синтаксис. - Namespace has invalid syntax. Пространство имён имеет некорректный синтаксис. - Missing namespace in QtHelpProject. В QtHelpProject отсутствует пространство имён. - Missing virtual folder in QtHelpProject В QtHelpProject отсутствует виртуальный каталог - Missing attribute in keyword at line %1. Отсутствует атрибут у ключевого слова в строке %1. - The input file %1 could not be opened! Невозможно открыть исходный файл %1! @@ -314,52 +262,42 @@ QHelpSearchQueryWidget - Search for: Искать: - Previous search Предыдущий запрос - Next search Следующий запрос - Search Поиск - Advanced search Расширенный поиск - words <B>similar</B> to: <B>похожие</B> слова: - <B>without</B> the words: <B>не содержит</B> слов: - with <B>exact phrase</B>: содержит <B>точную фразу</B>: - with <B>all</B> of the words: содержит <B>все</B> слова: - with <B>at least one</B> of the words: содержит <B>хотя бы одно</B> из слов: @@ -367,7 +305,6 @@ QHelpSearchResultWidget - %1 - %2 of %n Hits %1 - %2 из %n совпадения @@ -376,7 +313,6 @@ - 0 - 0 of 0 Hits 0 - 0 из 0 совпадений diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts index deae134..5fbd6e3 100644 --- a/translations/qt_ru.ts +++ b/translations/qt_ru.ts @@ -4,7 +4,6 @@ CloseButton - Close Tab Закрыть вкладку @@ -12,12 +11,10 @@ FakeReply - Fake error ! Фиктивная ошибка ! - Invalid URL Некорректный адрес URL @@ -25,37 +22,30 @@ MAC_APPLICATION_MENU - Services Службы - Hide %1 Скрыть %1 - Hide Others Скрыть остальные - Show All Показать все - Preferences... Настройки… - Quit %1 Завершить %1 - About %1 О программе %1 @@ -63,32 +53,26 @@ Phonon:: - Notifications Уведомления - Music Музыка - Video Видео - Communication Общение - Games Игры - Accessibility Специальные возможности @@ -96,24 +80,18 @@ Phonon::AudioOutput - - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> <html>Звуковое устройство <b>%1</b> не работает.<br/>Будет использоваться <b>%2</b>.</html> - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> <html>Переключение на звуковое устройство <b>%1</b><br/>, которое стало доступно и имеет высший приоритет.</html> - - Revert back to device '%1' Возвращение к устройству "%1" - <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> <html>Переключение на устройство вывода звука <b>%1</b><br/>, которое имеет высший приоритет или настроено для обработки данного потока.</html> @@ -121,14 +99,12 @@ Phonon::Gstreamer::Backend - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. Внимание: Похоже, пакет gstreamer0.10-plugins-good не установлен. Некоторые возможности воспроизведения видео недоступны. - Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled Внимание: Похоже, основной модуль GStreamer не установлен. @@ -138,7 +114,6 @@ Phonon::Gstreamer::MediaObject - Cannot start playback. Check your GStreamer installation and make sure you @@ -149,49 +124,34 @@ have libgstreamer-plugins-base installed. что пакет libgstreamer-plugins-base установлен. - Missing codec helper script assistant. Отсутствует сценарий установки кодека. - Plugin codec installation failed for codec: %0 Не удалось установить модуль кодека: %0 - A required codec is missing. You need to install the following codec(s) to play this content: %0 Отсутствует необходимый кодек. Вам нужно установить следующие кодеки для воспроизведения данного содержимого: %0 - - - - - - - - Could not open media source. Не удалось открыть источник медиа-данных. - Invalid source type. Некорректный тип источника медиа-данных. - Could not locate media source. Не удалось найти источник медиа-данных. - Could not open audio device. The device is already in use. Не удалось открыть звуковое устройство. Устройство уже используется. - Could not decode media source. Не удалось декодировать источник медиа-данных. @@ -199,162 +159,130 @@ have libgstreamer-plugins-base installed. Phonon::MMF - Audio Output Воспроизведение звука - The audio output device Устройство воспроизведения звука - No error Нет ошибки - Not found Не найдено - Out of memory Недостаточно ресурсов - Not supported Не поддерживается - Overflow Переполнение - Underflow Переполнение - Already exists Уже существует - Path not found Путь не найден - In use Используется - Not ready Не готово - Access denied Доступ запрещён - Could not connect Не удалось установить соединение - Disconnected Соединение разорвано - Permission denied Доступ запрещён - Insufficient bandwidth Недостаточная скорость передачи данных - Network unavailable Сеть недоступна - Network communication error Ошибка сетевого обмена данными - Streaming not supported Потоковое воспроизведение не поддерживается - Server alert Сигнал сервера - Invalid protocol Некорректный протокол - Invalid URL Некорректный адрес URL - Multicast error Ошибка широковещательной передачи - Proxy server error Ошибка прокси-сервера - Proxy server not supported Прокси-сервер не поддерживается - Audio output error Ошибка воспроизведения звука - Video output error Ошибка воспроизведения видео - Decoder error Ошибка декодирования - Audio or video components could not be played Аудио- или видео-состовляющая не может быть воспроизведена - DRM error Ошибка DRM - Unknown error (%1) Неизвестная ошибка (%1) @@ -362,33 +290,26 @@ have libgstreamer-plugins-base installed. Phonon::MMF::AbstractMediaPlayer - Not ready to play Не готов к воспроизведению - - Error opening file Ошибка открытия файла - Error opening URL Ошибка открытия адреса URL - Setting volume failed Не удалось установить уровень громкости - Loading clip failed Не удалось загрузить клип - Playback complete Воспроизведение завершено @@ -396,22 +317,18 @@ have libgstreamer-plugins-base installed. Phonon::MMF::AbstractVideoPlayer - Pause failed Не удалось приостановить воспроизведение - Seek failed Не удалось установить позицию - Getting position failed Не удалось получить позицию - Opening clip failed Не удалось открыть клип @@ -419,7 +336,6 @@ have libgstreamer-plugins-base installed. Phonon::MMF::AudioEqualizer - %1 Hz %1 Гц @@ -427,7 +343,6 @@ have libgstreamer-plugins-base installed. Phonon::MMF::AudioPlayer - Getting position failed Не удалось получить позицию @@ -435,11 +350,6 @@ have libgstreamer-plugins-base installed. Phonon::MMF::DsaVideoPlayer - - - - - Video display error Ошибка отображения видео @@ -447,7 +357,6 @@ have libgstreamer-plugins-base installed. Phonon::MMF::EffectFactory - Enabled Включено @@ -455,61 +364,51 @@ have libgstreamer-plugins-base installed. Phonon::MMF::EnvironmentalReverb - Decay HF ratio (%) DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. Коэффициент затухания ВЧ (%) - Decay time (ms) DecayTime: Time over which reverberation is diminished. Время затухания (мс) - Density (%) 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. Плотность (%) - Diffusion (%) 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. Рассеивание (%) - Reflections delay (ms) ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. Затухание отражений (мс) - Reflections level (mB) ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. Уровень отражений (мБар) - Reverb delay (ms) ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. Задержка эха (мс) - Reverb level (mB) ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. Уровень эха (мБар) - Room HF level RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. Уровень ВЧ отражений - Room level (mB) RoomLevel: Master volume control for all reflected sound. Уровень отражений (мБар) @@ -518,20 +417,17 @@ have libgstreamer-plugins-base installed. Phonon::MMF::MediaObject - Error opening source: type not supported - Ошибка открытыия источника: тип не поддерживается + Ошибка открытия источника: тип не поддерживается - Error opening source: media type could not be determined - Ошибка открытыия источника: тип носителя не определён + Ошибка открытия источника: не удалось определить тип медиа-данных Phonon::MMF::StereoWidening - Level (%) Уровень (%) @@ -539,8 +435,6 @@ have libgstreamer-plugins-base installed. Phonon::MMF::SurfaceVideoPlayer - - Video display error Ошибка отображения видео @@ -548,22 +442,14 @@ have libgstreamer-plugins-base installed. Phonon::VolumeSlider - - - - Volume: %1% Громкость: %1% - - - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% Используйте данный регулятор для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1% - Muted Без звука @@ -571,12 +457,10 @@ have libgstreamer-plugins-base installed. Q3Accel - %1, %2 not defined %1, %2 не определён - Ambiguous %1 not handled @@ -584,27 +468,22 @@ have libgstreamer-plugins-base installed. Q3DataTable - True Да - False Нет - Insert Вставить - Update Обновить - Delete Удалить @@ -612,313 +491,238 @@ have libgstreamer-plugins-base installed. Q3FileDialog - Copy or Move a File Копировать или переместить файл - Read: %1 Чтение: %1 - - Write: %1 Запись: %1 - - Cancel Отмена - - - - All Files (*) Все файлы (*) - Name Имя - Size Размер - Type Тип - Date Дата - Attributes Атрибуты - - &OK &ОК - Look &in: &Папка: - - - File &name: &Имя файла: - File &type: &Тип файла: - Back Назад - One directory up Вверх на один уровень - Create New Folder Создать папку - List View Список - Detail View Подробный вид - Preview File Info Предпросмотр информации о файле - Preview File Contents Предпросмотр содержимого файла - Read-write Чтение и запись - Read-only Только чтение - Write-only Только запись - Inaccessible Нет доступа - Symlink to File Ссылка на файл - Symlink to Directory Ссылка на каталог - Symlink to Special Ссылка на спецфайл - File Файл - Dir Каталог - Special Спецфайл - - - Open Открыть - - Save As Сохранить как - - - &Open &Открыть - - &Save &Сохранить - &Rename &Переименовать - &Delete &Удалить - R&eload О&бновить - Sort by &Name По &имени - Sort by &Size По &размеру - Sort by &Date По &дате - &Unsorted &Не упорядочивать - Sort Упорядочить - Show &hidden files Показать ск&рытые файлы - the file файл - the directory каталог - the symlink ссылку - Delete %1 Удалить %1 - <qt>Are you sure you wish to delete %1 "%2"?</qt> <qt>Вы действительно хотите удалить %1 "%2"?</qt> - &Yes &Да - &No &Нет - New Folder 1 Новая папка 1 - New Folder Новая папка - New Folder %1 Новая папка %1 - Find Directory Найти каталог - - Directories Каталоги - Directory: Каталог: - - Error Ошибка - %1 File not found. Check path and filename. @@ -927,17 +731,14 @@ Check path and filename. Проверьте правильность пути и имени файла. - All Files (*.*) Все файлы (*.*) - Open Открыть - Select a Directory Выбрать каталог @@ -945,29 +746,24 @@ Check path and filename. Q3LocalFs - - Could not read directory %1 Не удалось прочитать каталог %1 - Could not create directory %1 Не удалось создать каталог %1 - Could not remove file or directory %1 Не удалось удалить файл или каталог %1 - Could not rename %1 to @@ -978,14 +774,12 @@ to %2 - Could not open %1 Не удалось открыть %1 - Could not write %1 Не удалось записать @@ -995,12 +789,10 @@ to Q3MainWindow - Line up Выровнять - Customize... Настроить... @@ -1008,7 +800,6 @@ to Q3NetworkProtocol - Operation stopped by the user Операция остановлена пользователем @@ -1016,8 +807,6 @@ to Q3ProgressDialog - - Cancel Отмена @@ -1025,28 +814,22 @@ to Q3TabDialog - - OK ОК - Apply Применить - Help Справка - Defaults По умолчанию - Cancel Отмена @@ -1054,38 +837,30 @@ to Q3TextEdit - &Undo &Отменить действие - &Redo &Повторить действие - Cu&t &Вырезать - &Copy &Копировать - &Paste В&ставить - Clear Очистить - - Select All Выделить всё @@ -1093,67 +868,54 @@ to Q3TitleBar - System Системное меню - Restore up Восстановить - Minimize Свернуть - Restore down Восстановить - Maximize Распахнуть - Close Закрыть - Contains commands to manipulate the window Содержит команды управления окном - Puts a minimized window back to normal Возвращает свёрнутое окно в нормальное состояние - Moves the window out of the way Сворачивает окно - Puts a maximized window back to normal Возвращает распахнутое окно в нормальное состояние - Makes the window full screen Разворачивает окно на весь экран - Closes the window Зыкрывает окно - Displays the name of the window and contains controls to manipulate it Отображает название окна и содержит команды управления им @@ -1161,7 +923,6 @@ to Q3ToolBar - More... Больше... @@ -1169,51 +930,38 @@ to Q3UrlOperator - - - The protocol `%1' is not supported Протокол "%1" не поддерживается - The protocol `%1' does not support listing directories Протокол "%1" не поддерживает просмотр каталогов - The protocol `%1' does not support creating new directories Протокол "%1" не поддерживает создание каталогов - The protocol `%1' does not support removing files or directories Протокол "%1" не поддерживает удаление файлов или каталогов - The protocol `%1' does not support renaming files or directories Протокол "%1" не поддерживает переименование файлов или каталогов - The protocol `%1' does not support getting files Протокол "%1" не поддерживает доставку файлов - The protocol `%1' does not support putting files Протокол "%1" не поддерживает отправку файлов - - The protocol `%1' does not support copying or moving files or directories Протокол "%1" не поддерживает копирование или перемещение файлов или каталогов - - (unknown) (неизвестно) @@ -1221,27 +969,22 @@ to Q3Wizard - &Cancel От&мена - < &Back < &Назад - &Next > &Далее > - &Finish &Завершить - &Help &Справка @@ -1249,45 +992,30 @@ to QAbstractSocket - - - - Host not found Узел не найден - - - Connection refused Отказано в соединении - Connection timed out Время на соединение истекло - - - Operation on socket is not supported Операция с сокетом не поддерживается - - Socket operation timed out Время на операцию с сокетом истекло - Socket is not connected Сокет не подключён - Network unreachable Сеть недоступна @@ -1295,17 +1023,14 @@ to QAbstractSpinBox - &Step up Шаг вв&ерх - Step &down Шаг вн&из - &Select All &Выделить всё @@ -1313,7 +1038,6 @@ to QAccessibleButton - Press Нажать @@ -1321,27 +1045,22 @@ to QApplication - Executable '%1' requires Qt %2, found Qt %3. Программный модуль "%1" требует Qt %2, найдена версия %3. - Incompatible Qt Library Error Ошибка совместимости библиотеки Qt - Activate Активировать - Activates the program's main window Активирует главное окно программы - QT_LAYOUT_DIRECTION 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. LTR @@ -1350,22 +1069,18 @@ to QAxSelect - Select ActiveX Control Выбор компоненты ActiveX - OK Выбрать - &Cancel От&мена - COM &Object: &Объект COM: @@ -1373,17 +1088,14 @@ to QCheckBox - Uncheck Снять отметку - Check Отметить - Toggle Переключить @@ -1391,57 +1103,46 @@ to QColorDialog - Hu&e: &Тон: - &Sat: &Нас: - &Val: &Ярк: - &Red: &Красный: - &Green: &Зелёный: - Bl&ue: С&иний: - A&lpha channel: &Альфа-канал: - Select Color Выбор цвета - &Basic colors &Основные цвета - &Custom colors &Пользовательские цвета - &Add to Custom Colors &Добавить к пользовательским цветам @@ -1449,23 +1150,18 @@ to QComboBox - - Open Открыть - False Нет - True Да - Close Закрыть @@ -1473,43 +1169,36 @@ to QCoreApplication - %1: key is empty QSystemSemaphore %1: пустой ключ - %1: unable to make key QSystemSemaphore %1: невозможно создать ключ - %1: ftok failed QSystemSemaphore %1: ошибка ftok - %1: already exists QSystemSemaphore %1: уже существует - %1: does not exist QSystemSemaphore %1: не существует - %1: out of resources QSystemSemaphore %1: недостаточно ресурсов - %1: unknown error %2 QSystemSemaphore %1: неизвестная ошибка %2 @@ -1518,22 +1207,18 @@ to QDB2Driver - Unable to connect Невозможно соединиться - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию - Unable to set autocommit Невозможно установить автозавершение транзакций @@ -1541,33 +1226,26 @@ to QDB2Result - - Unable to execute statement Невозможно выполнить выражение - Unable to prepare statement Невозможно подготовить выражение - Unable to bind variable Невозможно привязать значение - Unable to fetch record %1 Невозможно получить запись %1 - Unable to fetch next Невозможно получить следующую строку - Unable to fetch first Невозможно получить первую строку @@ -1575,22 +1253,18 @@ to QDateTimeEdit - AM AM - am am - PM PM - pm pm @@ -1598,17 +1272,14 @@ to QDeclarativeAbstractAnimation - Cannot animate non-existent property "%1" Невозможно анимировать несуществуещее свойство "%1" - Cannot animate read-only property "%1" Невозможно анимировать свойство только для чтения "%1" - Animation is an abstract class Animation - это абстрактный класс @@ -1616,7 +1287,6 @@ to QDeclarativeAnchorAnimation - Cannot set a duration of < 0 Невозможно установить длительность < 0 @@ -1624,67 +1294,50 @@ to QDeclarativeAnchors - Possible anchor loop detected on fill. Обнаружена возможная цикличная привязка на fill. - Possible anchor loop detected on centerIn. Обнаружена возможная цикличная привязка на centerIn. - - - - Cannot anchor to an item that isn't a parent or sibling. Невозможно установить привязку к элементу, не являющемуся родителем или соседом. - Possible anchor loop detected on vertical anchor. Обнаружена возможная цикличная привязка к вертикальной привязке. - Possible anchor loop detected on horizontal anchor. Обнаружена возможная цикличная привязка к горизонтальной привязке. - Cannot specify left, right, and hcenter anchors. Невозможно задать левую, правую и среднюю привязки. - - Cannot anchor to a null item. Невозможно привязаться к нулевому элементу. - Cannot anchor a horizontal edge to a vertical edge. Невозможно привязать горизонтальный край к вертикальному. - - Cannot anchor item to self. Невозможно привязать элемент к самому себе. - Cannot specify top, bottom, and vcenter anchors. Невозможно задать верхнюю, нижнюю и среднюю привязки. - Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. Невозможно использовать базовую привязку вместе с верхней, нижней и центральной по вертикали. - Cannot anchor a vertical edge to a horizontal edge. Невозможно привязать вертикальный край к горизонтальному. @@ -1692,7 +1345,6 @@ to QDeclarativeAnimatedImage - Qt was built without support for QMovie Qt было собрано без поддержки QMovie @@ -1700,7 +1352,6 @@ to QDeclarativeBehavior - Cannot change the animation assigned to a Behavior. Невозможно изменить анимацию, назначенную поведению. @@ -1708,7 +1359,6 @@ to QDeclarativeBinding - Binding loop detected for property "%1" Обнаружена цикличная привязка для свойства "%1" @@ -1716,7 +1366,6 @@ to QDeclarativeCompiledBindings - Binding loop detected for property "%1" Обнаружена цикличная привязка для свойства "%1" @@ -1724,381 +1373,303 @@ to QDeclarativeCompiler - - - - - - Invalid property assignment: "%1" is a read-only property Некорректное присваивание свойства: "%1" свойство только для чтения - Invalid property assignment: unknown enumeration Некорректное присваивание свойства: неизвестное перечисление - Invalid property assignment: string expected Некорректное присваивание свойства: ожидается значение типа "string" - Invalid property assignment: url expected Некорректное присваивание свойства: ожидается значение типа "url" - Invalid property assignment: unsigned int expected Некорректное присваивание свойства: ожидается значение типа "unsigned int" - Invalid property assignment: int expected Некорректное присваивание свойства: ожидается значение типа "int" - - Invalid property assignment: float expected - Некорректное присваивание свойства: ожидается значение типа "float" + Invalid property assignment: number expected + Некорректное присваивание свойства: ожидается число - - Invalid property assignment: double expected - Некорректное присваивание свойства: ожидается значение типа "double" - - - Invalid property assignment: color expected Некорректное присваивание свойства: ожидается значение типа "color" - Invalid property assignment: date expected Некорректное присваивание свойства: ожидается значение типа "date" - Invalid property assignment: time expected Некорректное присваивание свойства: ожидается значение типа "time" - Invalid property assignment: datetime expected Некорректное присваивание свойства: ожидается значение типа "datetime" - Invalid property assignment: point expected Некорректное присваивание свойства: ожидается значение типа "point" - Invalid property assignment: size expected Некорректное присваивание свойства: ожидается значение типа "size" - Invalid property assignment: rect expected Некорректное присваивание свойства: ожидается значение типа "rect" - Invalid property assignment: boolean expected Некорректное присваивание свойства: ожидается значение булевого типа - Invalid property assignment: 3D vector expected Некорректное присваивание свойства: ожидается значение типа "трёхмерный вектор" - Invalid property assignment: unsupported type "%1" Некорректное присваивание свойства: неподдерживаемый тип "%1" - Element is not creatable. Элемент не является создаваемым. - Component elements may not contain properties other than id Элементы Component не могут содержать свойств кроме id - Invalid component id specification Некорректная спецификация id компонента - - id is not unique id не уникален - Invalid component body specification Некорректная спецификация тела компонента - Component objects cannot declare new properties. Объекты Component не могут объявлять новые свойства. - Component objects cannot declare new signals. Объекты Component не могут объявлять новые сигналы. - Component objects cannot declare new functions. Объекты Component не могут объявлять новые функции. - Cannot create empty component specification Невозможно создать пустую спецификацю компонента - Incorrectly specified signal assignment Неверно указано назначение сигнала - Cannot assign a value to a signal (expecting a script to be run) Невозможно назначить значение сигналу (сценарий должен быть запущен) - Empty signal assignment Пустое назначение сигнала - Empty property assignment Пустое назначение свойства - Attached properties cannot be used here здесь - в данном контексте? Прикреплённые свойства не могут быть использованы здесь - - Non-existent attached object Несуществующий прикреплённый объект - - Invalid attached object assignment Некорректное назначение прикреплённого объекта - Cannot assign to non-existent default property Невозможно назначить несуществующему свойству по умолчанию - - Cannot assign to non-existent property "%1" Невозможно назначить несуществующему свойству "%1" - Invalid use of namespace Некорректное использование пространства имён - Not an attached property name Не является именем привязанного свойства - Invalid use of id property Некорректное использование свойства id - - Property has already been assigned a value Свойству уже назначено значение - - Invalid grouped property access Некорректный доступ к сгруппированному свойству - Cannot assign a value directly to a grouped property Невозможно присвоить значение непосредственно сгруппированному свойству - Invalid property use Некорректное использование свойства - Property assignment expected Ожидается назначение свойства - Single property assignment expected Ожидается одиночное назначение свойства - Unexpected object assignment Неожиданное назначение объекта - Cannot assign object to list Невозможно назначить объект списку - Can only assign one binding to lists Можно назначить только одну связь для списка - Cannot assign primitives to lists Невозможно назначить примитивы списку - Cannot assign multiple values to a script property Невозможно назначить множественное значение свойству сценария - Invalid property assignment: script expected Некорректное присваивание свойства: ожидается сценарий - Cannot assign object to property Невозможно назначить объектсвойству - "%1" cannot operate on "%2" "%1" не может воздействовать на "%2" - Duplicate default property Дублирование свойства по умолчанию - Duplicate property name Дублирование названия свойства - Property names cannot begin with an upper case letter Названия свойств не могут начинаться с заглавной буквы - + Illegal property name + Недопустимое название свойства + + Duplicate signal name Дублирование названия сигнала - Signal names cannot begin with an upper case letter Названия сигналов не могут начинаться с заглавной буквы - + Illegal signal name + Недопустимое название сигнала + + Duplicate method name Дублирование название метода - Method names cannot begin with an upper case letter Названия методов не могут начинаться с заглавной буквы - + Illegal method name + Недопустимое название метода + + Property value set multiple times Значение свойства задано несколько раз - Invalid property nesting Некорректное вложенность свойств - Cannot override FINAL property Невозможно переопределить свойство FINAL - Invalid property type Некорректный тип свойства - Invalid empty ID Некорректный пустой идентификатор - IDs cannot start with an uppercase letter Идентификаторы не могут начинаться с заглавной буквы - IDs must start with a letter or underscore Идентификаторы должны начинаться с буквы или подчёркивания - IDs must contain only letters, numbers, and underscores Идентификаторы должны содержать только буквы, цифры и подчёркивания - ID illegally masks global JavaScript property Идентификатор неверно маскирует глобальное свойство JavaScript - - No property alias location Отсутствует размещение псевдонима свойства - - Invalid alias location Некорректное размещение псевдонима - Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> Некорректная ссылка на псевдоним. Ссылка на псевдоним должна быть указана, как <id> или <id>.<property> - Invalid alias reference. Unable to find id "%1" Некорректная ссылка на псевдоним. Не удалось найти id "%1" @@ -2106,7 +1677,6 @@ to QDeclarativeComponent - Invalid empty URL Пустой адрес URL @@ -2114,23 +1684,18 @@ to QDeclarativeCompositeTypeManager - - Resource %1 unavailable Ресурс "%1" недоступен - Namespace %1 cannot be used as a type Пространство имён "%1" не может быть использовано в качестве типа - %1 %2 %1 %2 - Type %1 unavailable Тип "%1" недоступен @@ -2138,23 +1703,18 @@ to QDeclarativeConnections - - Cannot assign to non-existent property "%1" Невозможно назначить несуществующему свойству "%1" - Connections: nested objects not allowed Подключения: вложенные объекты недопустимы - Connections: syntax error Подключения: синтаксическая ошибка - Connections: script expected Подключения: ожидается сценарий @@ -2162,33 +1722,26 @@ to QDeclarativeEngine - executeSql called outside transaction() executeSql() вызван вне transaction() - Read-only Transaction Транзакция только для чтения - Version mismatch: expected %1, found %2 Несовпадение версий: ожидалась %1, найдена %2 - SQL transaction failed Не удалось выполнить транзакцию SQL - transaction: missing callback транзакция: отсутствует обратный вызов - - SQL: database version mismatch Не совпадает версия базы данных SQL @@ -2196,12 +1749,10 @@ to QDeclarativeFlipable - front is a write-once property front - свойство для однократной записи - back is a write-once property back - свойство для однократной записи @@ -2209,75 +1760,58 @@ to QDeclarativeImportDatabase - module "%1" definition "%2" not readable невозможно прочитать определение "%2" модуля "%1" - plugin cannot be loaded for module "%1": %2 модуль не может быть загружен для подмодуля "%1": %2 - module "%1" plugin "%2" not found подмодуль "%1" модуля "%2" не найден - - module "%1" version %2.%3 is not installed модуль "%1" версии %2.%3 не установлен - module "%1" is not installed модуль "%1" не установлен - - "%1": no such directory "%1": каталог не существует - import "%1" has no qmldir and no namespace каталог "%1" не содержит ни qmldir, ни namespace - - %1 is not a namespace - %1 - некорректное пространство имён - - nested namespaces not allowed - вложенные пространства имён недопустимы - - local directory локальный каталог - is ambiguous. Found in %1 and in %2 неоднозначно. Найдено в %1 и %2 - is ambiguous. Found in %1 in version %2.%3 and %4.%5 неоднозначно. Найдено в %1 версий %2.%3 и %4.%5 - is instantiated recursively обрабатывается рекурсивно - is not a type не является типом @@ -2285,7 +1819,6 @@ to QDeclarativeKeyNavigationAttached - KeyNavigation is only available via attached properties KeyNavigation доступна только через прикреплённые свойства @@ -2293,7 +1826,6 @@ to QDeclarativeKeysAttached - Keys is only available via attached properties Keys доступны только через прикреплённые свойства @@ -2301,59 +1833,46 @@ to QDeclarativeListModel - remove: index %1 out of range remove: индекс %1 вне диапазона - insert: value is not an object insert: значение не является объектом - insert: index %1 out of range insert: индекс %1 вне диапазона - move: out of range move: индекс вне диапазона - append: value is not an object append: значение не является объектом - set: value is not an object set: значение не является объектом - - set: index %1 out of range set: индекс %1 вне диапазона - - ListElement: cannot contain nested elements ListElement: не может содержать вложенные элементы - ListElement: cannot use reserved "id" property ListElement: невозможно использовать зарезервированное свойство "id" - ListElement: cannot use script for property value ListElement: невозможно использовать сценарий в качестве значения свойства - ListModel: undefined property '%1' ListModel: неопределённое свойство "%1" @@ -2361,7 +1880,6 @@ to QDeclarativeLoader - Loader does not support loading non-visual elements. Загрузчик не поддерживает загрузку невизуальных элементов. @@ -2369,18 +1887,14 @@ to QDeclarativeParentAnimation - Unable to preserve appearance under complex transform Невозможно сохранить внешний вид при сложном преобразовании - - Unable to preserve appearance under non-uniform scale Невозможно сохранить внешний вид при неоднородном масштабе - Unable to preserve appearance under scale of 0 Невозможно сохранить внешний вид при масштабе 0 @@ -2388,18 +1902,14 @@ to QDeclarativeParentChange - Unable to preserve appearance under complex transform Невозможно сохранить внешний вид при сложном преобразовании - - Unable to preserve appearance under non-uniform scale Невозможно сохранить внешний вид при неоднородном масштабе - Unable to preserve appearance under scale of 0 Невозможно сохранить внешний вид при масштабе 0 @@ -2407,144 +1917,110 @@ to QDeclarativeParser - - - Illegal unicode escape sequence Неверная unicode esc-последовательность - Illegal character Недопустимый символ - Unclosed string at end of line Незакрытый текст в конце строки - Illegal escape squence Неверная esc-последовательность - Unclosed comment at end of file Незакрытый комментарий в конце строки - Illegal syntax for exponential number Недопустимый синтаксис для экспоненциального числа - Identifier cannot start with numeric literal Идентификатор не может начинаться с цифры - Unterminated regular expression literal Незаконченный литерал регулярного выражения - Invalid regular expression flag '%0' Некорректный флаг "%0" в регулярном выражении - - Unterminated regular expression backslash sequence Регулярное выражение содержит незавершённую экранированную последовательность - Unterminated regular expression class Регулярное выражение содержит незавершённый класс - - Syntax error Синтаксическая ошибка - Unexpected token `%1' Неожиданный символ "%1" - - Expected token `%1' Ожидается символ "%1" - - - Property value set multiple times Значение свойства установлено несколько раз - Expected type name Ожидается название типа - Invalid import qualifier ID Некорректный ID спецификатора импорта - Reserved name "Qt" cannot be used as an qualifier Зарезервированное имя "Qt" не может быть использовано в качестве спецификатора - Script import qualifiers must be unique. Спецификаторы импорта сценария должны быть уникальными. - Script import requires a qualifier Для импорта сценария требуется спецификатор - Library import requires a version Импорт библиотеки требует версию - Expected parameter type Ожидается тип параметра - Invalid property type modifier Некорректный модификатор типа свойства - Unexpected property type modifier Неожиданный модификатор типа свойства - Expected property type Ожидается тип свойства - Readonly not yet supported Readonly ещё не поддерживается - JavaScript declaration outside Script element Определение JavaScript вне элемента Script @@ -2552,39 +2028,28 @@ to QDeclarativePauseAnimation - Cannot set a duration of < 0 Невозможно установить длительность < 0 - QDeclarativePixmapCache + QDeclarativePixmap - Error decoding: %1: %2 Ошибка декодирования: %1: %2 - Failed to get image from provider: %1 - Не удалось получить изображение от поставщика: %1 + Не удалось получить изображение от постащика изображений: %1 - - Cannot open: %1 Не удалось открыть: %1 - - - Unknown Error loading %1 - Неизвестная ошибка загрузки %1 - QDeclarativePropertyAnimation - Cannot set a duration of < 0 Невозможно установить длительность < 0 @@ -2592,17 +2057,14 @@ to QDeclarativePropertyChanges - PropertyChanges does not support creating state-specific objects. PropertyChanges не поддерживают создание объектов, зависимых от состояния. - Cannot assign to non-existent property "%1" Невозможно назначить несуществующему свойству "%1" - Cannot assign to read-only property "%1" Невозможно назначить свойству только для чтения "%1" @@ -2610,13 +2072,10 @@ to QDeclarativeTextInput - - Could not load cursor delegate Не удалось загрузить делегат курсора - Could not instantiate cursor delegate Не удалось инстанциировать делегат курсора @@ -2624,47 +2083,38 @@ to QDeclarativeVME - Unable to create object of type %1 Невозможно создать объект типа "%1" - Cannot assign value %1 to property %2 Невозможно установить значение "%1" свойству "%2" - Cannot assign object type %1 with no default method Невозможно назначить объект типа %1 без метода по умолчанию - Cannot connect mismatched signal/slot %1 %vs. %2 Невозможно подключить отсутствующий сигнал/слот %1 к %2 - Cannot assign an object to signal property %1 Невозможно назначить объект к свойству сигнала %1 - Cannot assign object to list Невозможно назначить объект списку - Cannot assign object to interface property Невозможно назначить объект свойству интерфейса - Unable to create attached object Не удалось создать вложенный объект - Cannot set properties on %1 as it is null Невозможно установить свойства для %1, так как он нулевой @@ -2672,7 +2122,6 @@ to QDeclarativeVisualDataModel - Delegate component must be Item type. Компинент делегата должен быть типа Item. @@ -2680,8 +2129,6 @@ to QDeclarativeXmlListModel - - Qt was built without support for xmlpatterns Qt было собрано без поддержки xmlpatterns @@ -2689,7 +2136,6 @@ to QDeclarativeXmlListModelRole - An XmlRole query must not start with '/' Запрос XmlRole не должен начинаться с '/' @@ -2697,7 +2143,6 @@ to QDeclarativeXmlRoleList - An XmlListModel query must start with '/' or "//" Запрос XmlListModel должен начинаться с '/' или "//" @@ -2705,17 +2150,14 @@ to QDial - QDial QDial - SpeedoMeter SpeedoMeter - SliderHandle SliderHandle @@ -2723,12 +2165,10 @@ to QDialog - What's This? Что это? - Done Готово @@ -2736,124 +2176,98 @@ to QDialogButtonBox - - - OK ОК - Save Сохранить - &Save &Сохранить - Open Открыть - Cancel Отмена - &Cancel От&мена - Close Закрыть - &Close &Закрыть - Apply Применить - Reset Сбросить - Help Справка - Don't Save Не сохранять - Discard Отклонить - &Yes &Да - Yes to &All Да для &всех - &No &Нет - N&o to All Н&ет для всех - Save All Сохранить все - Abort Прервать - Retry Повторить - Ignore Пропустить - Restore Defaults Восстановить значения - Close without Saving Закрыть без сохранения - &OK &ОК @@ -2861,29 +2275,24 @@ to QDirModel - Name Имя - Size Размер - Kind Match OS X Finder Вид - Type All other platforms Тип - Date Modified Дата изменения @@ -2891,17 +2300,14 @@ to QDockWidget - Close Закрыть - Dock Прикрепить - Float Открепить @@ -2909,12 +2315,10 @@ to QDoubleSpinBox - More Больше - Less Меньше @@ -2922,27 +2326,22 @@ to QErrorMessage - &Show this message again &Показывать это сообщение в дальнейшем - &OK &Закрыть - Debug Message: Отладочное сообщение: - Warning: Предупреждение: - Fatal Error: Критическая ошибка: @@ -2950,38 +2349,30 @@ to QFile - - Destination file exists Файл существует - Will not rename sequential file using block copy Последовательный файл не будет переименован с использованием поблочного копирования - Cannot remove source file Невозможно удалить исходный файл - Cannot open %1 for input Невозможно открыть %1 для ввода - Cannot open for output Невозможно открыть для вывода - Failure to write block Сбой записи блока - Cannot create %1 for output Невозможно создать %1 для вывода @@ -2989,143 +2380,110 @@ to QFileDialog - - All Files (*) Все файлы (*) - - Back Назад - - List View Список - - Detail View Подробный вид - - File Файл - File Folder Match Windows Explorer Папка с файлами - Folder All other platforms Папка - Alias Mac OS X Finder Псевдоним - Shortcut All other platforms Ярлык - Open Открыть - Save As Сохранить как - - - &Open &Открыть - - &Save &Сохранить - '%1' is write protected. Do you want to delete it anyway? - + "%1" защищён от записи. +Действительно желаете удалить? - Recent Places Недавние документы - &Rename &Переименовать - &Delete &Удалить - Show &hidden files Показать ск&рытые файлы - New Folder Новая папка - Find Directory Найти каталог - Directories Каталоги - All Files (*.*) Все файлы (*.*) - - Directory: Каталог: - %1 already exists. Do you want to replace it? %1 уже существует. Хотите заменить его? - %1 File not found. Please verify the correct file name was given. @@ -3134,25 +2492,18 @@ Please verify the correct file name was given. Проверьте правильность указанного имени файла. - My Computer Мой компьютер - - Parent Directory Родительский каталог - - Files of type: Типы файлов: - - %1 Directory not found. Please verify the correct directory name was given. @@ -3161,97 +2512,74 @@ Please verify the correct directory name was given. Проверьте правильность указанного имени каталога. - Are sure you want to delete '%1'? Вы действительно хотите удалить "%1"? - Could not delete directory. Не удалось удалить каталог. - Drive Диск - Unknown Неизвестный - Show Показать - - Forward Вперёд - &New Folder &Новая папка - - &Choose &Выбрать - Remove Удалить - - File &name: &Имя файла: - - Look in: Перейти к: - - Create New Folder Создать папку - Go back Назад - Go forward Вперёд - Go to the parent directory Перейти в родительский каталог - Create a New Folder Создать новую папку - Change to list view mode Переключить в режим списка - Change to detail view mode Переключить в подробный режим @@ -3259,83 +2587,64 @@ Please verify the correct directory name was given. QFileSystemModel - - %1 TB %1 Тб - - %1 GB %1 Гб - - %1 MB %1 Мб - - %1 KB %1 Кб - %1 bytes %1 байт - Invalid filename Некорректное имя файла - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. <b>Имя "%1" не может быть использовано.</b><p>Попробуйте использовать имя меньшей длины и/или без символов пунктуации. - Name Имя - Size Размер - Kind Match OS X Finder Вид - Type All other platforms Тип - Date Modified Дата изменения - My Computer Мой компьютер - Computer Компьютер - %1 byte(s) %1 байт @@ -3343,221 +2652,170 @@ Please verify the correct directory name was given. QFontDatabase - - Normal Обычный - - - Bold Жирный - - Demi Bold Полужирный - - - Black Чёрный - Demi Средний - - Light Светлый - - Italic Курсив - - Oblique Наклонный - Any Любая - Latin Латиница - Greek Греческая - Cyrillic Кириллица - Armenian Армянская - Hebrew Иврит - Arabic Арабская - Syriac Сирийская - Thaana Таана - Devanagari Деванагири - Bengali Бенгальская - Gurmukhi Гурмукхи - Gujarati Гуджарати - Oriya Ория - Tamil Тамильская - Telugu Телугу - Kannada Каннада - Malayalam Малайялам - Sinhala Сингальская - Thai Тайская - Lao Лаосская - Tibetan Тибетская - Myanmar Мьянма - Georgian Грузинская - Khmer Кхмерская - Simplified Chinese Китайская упрощённая - Traditional Chinese Китайская традиционная - Japanese Японская - Korean Корейская - Vietnamese Вьетнамская - Symbol Символьная - Ogham Огамическая - Runic Руническая - N'Ko Нко @@ -3565,47 +2823,38 @@ Please verify the correct directory name was given. QFontDialog - &Font &Шрифт - Font st&yle &Начертание - &Size &Размер - Effects Эффекты - Stri&keout Зачёр&кнутый - &Underline П&одчёркнутый - Sample Пример - Select Font Выбор шрифта - Wr&iting System &Система письма @@ -3613,145 +2862,104 @@ Please verify the correct directory name was given. QFtp - Host %1 found Узел %1 найден - Host found Узел найден - - - Connected to host %1 Установлено соединение с узлом %1 - Connected to host Соединение с узлом установлено - Connection to %1 closed Соединение с %1 закрыто - - - Connection closed Соединение закрыто - - Host %1 not found Узел %1 не найден - - Connection refused to host %1 В соединении с узлом %1 отказано - Connection timed out to host %1 Время на соединение с узлом %1 истекло - - - - Unknown error Неизвестная ошибка - - Connecting to host failed: %1 Не удалось соединиться с узлом: %1 - - Login failed: %1 Не удалось авторизоваться: %1 - - Listing directory failed: %1 Не удалось прочитать каталог: %1 - - Changing directory failed: %1 Не удалось сменить каталог: %1 - - Downloading file failed: %1 Не удалось загрузить файл: %1 - - Uploading file failed: %1 Не удалось отгрузить файл: %1 - - Removing file failed: %1 Не удалось удалить файл: %1 - - Creating directory failed: %1 Не удалось создать каталог: %1 - - Removing directory failed: %1 Не удалось удалить каталог: %1 - - Not connected Соединение не установлено - - Connection refused for data connection Отказ в соединении для передачи данных @@ -3759,12 +2967,10 @@ Please verify the correct directory name was given. QHostInfo - Unknown error Неизвестная ошибка - No host name given Имя узла не задано @@ -3772,37 +2978,22 @@ Please verify the correct directory name was given. QHostInfoAgent - - - - Host not found Узел не найден - - - - Unknown address type Неизвестный тип адреса - - - Unknown error Неизвестная ошибка - - No host name given Имя узла не задано - - Invalid hostname Некорректное имя узла @@ -3810,153 +3001,110 @@ Please verify the correct directory name was given. QHttp - - Connection refused Отказано в соединении - - - Host %1 not found Узел %1 не найден - - Wrong content length Неверная длина содержимого - - HTTP request failed HTTP-запрос не удался - Host %1 found Узел %1 найден - Host found Узел найден - Connected to host %1 Установлено соединение с узлом %1 - Connected to host Соединение с узлом установлено - Connection to %1 closed Соединение с узлом %1 закрыто - - Connection closed Соединение закрыто - - - - Unknown error Неизвестная ошибка - - Request aborted Запрос прерван - - No server set to connect to Не указан сервер для подключения - - Server closed connection unexpectedly Сервер неожиданно разорвал соединение - - Invalid HTTP response header Некорректный HTTP-заголовок ответа - Unknown authentication method Неизвестный метод авторизации - - - - Invalid HTTP chunked body Некорректное HTTP-фрагментирование данных - Error writing response to device Ошибка записи ответа на устройство - Proxy authentication required Требуется авторизация на прокси-сервере - Authentication required Требуется авторизация - Proxy requires authentication Прокси-сервер требует авторизацию - Host requires authentication Узел требует авторизацию - Data corrupted Данные повреждены - SSL handshake failed Квитирование SSL не удалось - Unknown protocol specified Указан неизвестный протокол - Connection refused (or timed out) В соединении отказано (или время ожидания истекло) - HTTPS connection requested but SSL support not compiled in Запрошено соединение по протоколу HTTPS, но поддержка SSL не скомпилирована @@ -3964,47 +3112,38 @@ Please verify the correct directory name was given. QHttpSocketEngine - Did not receive HTTP response from proxy Не получен HTTP-ответ от прокси-сервера - Error parsing authentication request from proxy Ошибка разбора запроса авторизации от прокси-сервера - Authentication required Требуется авторизация - Proxy denied connection Прокси-сервер запретил соединение - Error communicating with HTTP proxy Ошибка обмена данными с прокси-сервером HTTP - Proxy server not found Прокси-сервер не найден - Proxy connection refused В соединении прокси-сервером отказано - Proxy server connection timed out Время на соединение с прокси-сервером истекло - Proxy connection closed prematurely Соединение с прокси-сервером неожиданно закрыто @@ -4012,22 +3151,18 @@ Please verify the correct directory name was given. QIBaseDriver - Error opening database Ошибка открытия базы данных - Could not start transaction Не удалось начать транзакцию - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию @@ -4035,89 +3170,70 @@ Please verify the correct directory name was given. QIBaseResult - Unable to create BLOB Невозможно создать BLOB - Unable to write BLOB Невозможно записать BLOB - Unable to open BLOB Невозможно открыть BLOB - Unable to read BLOB Невозможно прочитать BLOB - - Could not find array Не удалось найти массив - Could not get array data Не удалось найти данные массива - Could not get query info Не удалось найти информацию о запросе - Could not start transaction Не удалось начать транзакцию - Unable to commit transaction Невозможно завершить транзакцию - Could not allocate statement Не удалось получить ресурсы для создания выражения - Could not prepare statement Не удалось подготовить выражение - - Could not describe input statement Не удалось описать входящее выражение - Could not describe statement Не удалось описать выражение - Unable to close statement Невозможно закрыть выражение - Unable to execute query Невозможно выполнить запрос - Could not fetch next item Не удалось получить следующий элемент - Could not get statement info Не удалось найти информацию о выражении @@ -4125,27 +3241,22 @@ Please verify the correct directory name was given. QIODevice - Permission denied Доступ запрещён - Too many open files Слишком много открытых файлов - No such file or directory Файл или каталог не существует - No space left on device Нет свободного места на устройстве - Unknown error Неизвестная ошибка @@ -4153,32 +3264,26 @@ Please verify the correct directory name was given. QInputContext - XIM Метод ввода X-сервера - FEP Метод ввода S60 FEP - XIM input method Метод ввода X-сервера - Windows input method Метод ввода Windows - Mac OS X input method Метод ввода Mac OS X - S60 FEP input method Метод ввода S60 FEP @@ -4186,7 +3291,6 @@ Please verify the correct directory name was given. QInputDialog - Enter a value: Укажите значение: @@ -4194,67 +3298,50 @@ Please verify the correct directory name was given. QLibrary - Could not mmap '%1': %2 Не удалось выполнить mmap "%1": %2 - Plugin verification data mismatch in '%1' Проверочная информация для модуля "%1" не совпадает - Could not unmap '%1': %2 Не удалось выполнить unmap "%1": %2 - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] Модуль "%1" использует несоместимую библиотеку Qt. (%2.%3.%4) [%5] - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" Модуль "%1" использует несоместимую библиотеку Qt. Ожидается ключ "%2", но получен ключ "%3" - Unknown error Неизвестная ошибка - - - The shared library was not found. Динамическая библиотека не найдена. - The file '%1' is not a valid Qt plugin. Файл "%1" - не является корректным модулем Qt. - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) Модуль "%1" использует несоместимую библиотеку Qt. (Невозможно совместить релизные и отладочные библиотеки.) - - Cannot load library %1: %2 Невозможно загрузить библиотеку %1: %2 - - Cannot unload library %1: %2 Невозможно выгрузить библиотеку %1: %2 - - Cannot resolve symbol "%1" in %2: %3 Невозможно разрешить символ "%1" в %2: %3 @@ -4262,37 +3349,30 @@ Please verify the correct directory name was given. QLineEdit - Select All Выделить всё - &Undo &Отменить действие - &Redo &Повторить действие - Cu&t &Вырезать - &Copy &Копировать - &Paste В&ставить - Delete Удалить @@ -4300,23 +3380,18 @@ Please verify the correct directory name was given. QLocalServer - - %1: Name error %1: Некорректное имя - %1: Permission denied %1: Доступ запрещён - %1: Address in use %1: Адрес используется - %1: Unknown error %2 %1: Неизвестная ошибка %2 @@ -4324,70 +3399,46 @@ Please verify the correct directory name was given. QLocalSocket - - %1: Connection refused %1: Отказано в соединении - - %1: Remote closed %1: Закрыто удаленной стороной - - - - %1: Invalid name %1: Некорректное имя - - %1: Socket access error %1: Ошибка обращения к сокету - - %1: Socket resource error %1: Ошибка выделения ресурсов сокета - - %1: Socket operation timed out %1: Время на операцию с сокетом истекло - - %1: Datagram too large %1: Датаграмма слишком большая - - - %1: Connection error %1: Ошибка соединения - - %1: The socket operation is not supported %1: Операция с сокетом не поддерживается - %1: Unknown error %1: Неизвестная ошибка - - %1: Unknown error %2 %1: Неизвестная ошибка %2 @@ -4395,27 +3446,22 @@ Please verify the correct directory name was given. QMYSQLDriver - Unable to open database ' Невозможно открыть базу данных ' - Unable to connect Невозможно соединиться - Unable to begin transaction Невозможно начать транзакцию - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию @@ -4423,60 +3469,46 @@ Please verify the correct directory name was given. QMYSQLResult - - Unable to fetch data Невозможно получить данные - Unable to execute query Невозможно выполнить запрос - Unable to store result Невозможно сохранить результат - - Unable to prepare statement Невозможно подготовить выражение - Unable to reset statement Невозможно сбросить выражение - Unable to bind value Невозможно привязать значение - Unable to execute statement Невозможно выполнить выражение - - Unable to bind outvalues Невозможно привязать результирующие значения - Unable to store statement results Невозможно сохранить результаты выполнения выражения - Unable to execute next query Невозможно выполнить следующий запрос - Unable to store next result Невозможно сохранить следующий результат @@ -4484,7 +3516,6 @@ Please verify the correct directory name was given. QMdiArea - (Untitled) (Неозаглавлено) @@ -4492,92 +3523,74 @@ Please verify the correct directory name was given. QMdiSubWindow - %1 - [%2] %1 - [%2] - Close Закрыть - Minimize Свернуть - Restore Down Восстановить - &Restore &Восстановить - &Move &Переместить - &Size &Размер - Mi&nimize &Свернуть - Ma&ximize Р&аспахнуть - Stay on &Top Оставаться &сверху - &Close &Закрыть - Maximize Распахнуть - Unshade Восстановить из заголовка - Shade Свернуть в заголовок - Restore Восстановить - Help Справка - Menu Меню - - [%1] - [%1] @@ -4585,21 +3598,14 @@ Please verify the correct directory name was given. QMenu - - Close Закрыть - - Open Открыть - - - Execute Выполнить @@ -4607,7 +3613,6 @@ Please verify the correct directory name was given. QMenuBar - Actions Действия @@ -4615,40 +3620,30 @@ Please verify the correct directory name was given. QMessageBox - - - - OK Закрыть - <h3>About Qt</h3><p>This program uses Qt version %1.</p> <h3>О Qt</h3><p>Данная программа использует Qt версии %1.</p> - <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><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> <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> - About Qt О Qt - Help Справка - Show Details... Показать подробности... - Hide Details... Скрыть подробности... @@ -4656,7 +3651,6 @@ Please verify the correct directory name was given. QMultiInputContext - Select IM Выбор режима ввода @@ -4664,12 +3658,10 @@ Please verify the correct directory name was given. QMultiInputContextPlugin - Multiple input method switcher Переключатель режима множественного ввода - Multiple input method switcher that uses the context menu of the text widgets Переключатель режима множественного ввода, используемый в контекстном меню текстовых редакторов @@ -4677,132 +3669,106 @@ Please verify the correct directory name was given. QNativeSocketEngine - The remote host closed the connection Удалённый узел закрыл соединение - Network operation timed out Время на сетевую операцию истекло - Out of resources Недостаточно ресурсов - Unsupported socket operation Операция с сокетом не поддерживается - Protocol type not supported Протокол не поддерживается - Invalid socket descriptor Некорректный дескриптор сокета - Network unreachable Сеть недоступна - Permission denied Доступ запрещён - Connection timed out Время на соединение истекло - Connection refused Отказано в соединении - The bound address is already in use Адрес уже используется - The address is not available Адрес недоступен - The address is protected Адрес защищён - Unable to send a message Невозможно отправить сообщение - Unable to receive a message Невозможно получить сообщение - Unable to write Невозможно записать - Network error Ошибка сети - Another socket is already listening on the same port Другой сокет уже прослушивает этот порт - Unable to initialize non-blocking socket Невозможно инициализировать не-блочный сокет - Unable to initialize broadcast socket Невозможно инициализировать широковещательный сокет - Attempt to use IPv6 socket on a platform with no IPv6 support Попытка использовать IPv6 на платформе, не поддерживающей IPv6 - Host unreachable Узел недоступен - Datagram was too large to send Датаграмма слишком большая для отправки - Operation on non-socket Операция с не-сокетом - Unknown error Неизвестная ошибка - The proxy type is invalid for this operation Некорректный тип прокси-сервера для данной операции @@ -4810,7 +3776,6 @@ Please verify the correct directory name was given. QNetworkAccessCacheBackend - Error opening %1 Ошибка открытия %1 @@ -4818,12 +3783,10 @@ Please verify the correct directory name was given. QNetworkAccessDataBackend - Operation not supported on %1 Операция не поддерживается для %1 - Invalid URI: %1 Некорректный URI: %1 @@ -4831,17 +3794,14 @@ Please verify the correct directory name was given. QNetworkAccessDebugPipeBackend - Write error writing to %1: %2 Ошибка записи в %1: %2 - Socket error on %1: %2 Ошика сокета для %1: %2 - Remote host closed the connection prematurely on %1 Удалённый узел неожиданно прервал соединение для %1 @@ -4849,30 +3809,22 @@ Please verify the correct directory name was given. QNetworkAccessFileBackend - - Request for opening non-local file %1 Запрос на открытие файла вне файловой системы %1 - - Error opening %1: %2 Ошибка открытия %1: %2 - Write error writing to %1: %2 Ошибка записи в %1: %2 - - Cannot open %1: Path is a directory Невозможно открыть %1: Указан путь к каталогу - Read error reading from %1: %2 Ошибка чтения из %1: %2 @@ -4880,27 +3832,22 @@ Please verify the correct directory name was given. QNetworkAccessFtpBackend - No suitable proxy found Подходящий прокси-сервер не найден - Cannot open %1: is a directory Невозможно открыть %1: Указан путь к каталогу - Logging in to %1 failed: authentication required Соединение с %1 не удалось: требуется авторизация - Error while downloading %1: %2 Ошибка в процессе загрузки %1: %2 - Error while uploading %1: %2 Ошибка в процессе отгрузки %1: %2 @@ -4908,7 +3855,6 @@ Please verify the correct directory name was given. QNetworkAccessHttpBackend - No suitable proxy found Подходящий прокси-сервер не найден @@ -4916,7 +3862,6 @@ Please verify the correct directory name was given. QNetworkAccessManager - Network access is disabled. Доступ в сеть отключён. @@ -4924,22 +3869,18 @@ Please verify the correct directory name was given. QNetworkReply - Error downloading %1 - server replied: %2 Ошибка загрузки %1 - ответ сервера: %2 - Protocol "%1" is unknown Неизвестный протокол "%1" - Network session error. Ошибка сетевой сессии. - Temporary network failure. Временная ошибка сети. @@ -4947,8 +3888,6 @@ Please verify the correct directory name was given. QNetworkReplyImpl - - Operation canceled Операция отменена @@ -4956,7 +3895,6 @@ Please verify the correct directory name was given. QNetworkSession - Invalid configuration. Некорректная конфигурация. @@ -4964,48 +3902,35 @@ Please verify the correct directory name was given. QNetworkSessionPrivateImpl - Roaming error или перемещения? Ошибка роуминга - Session aborted by user or system Сессия прервана пользователем или системой - Unidentified Error Неопределённая ошибка - - Unknown session error. Неизвестная ошибка сессии. - - The session was aborted by the user or system. Сессия была прервана пользователем или системой. - - The requested operation is not supported by the system. Требуемая операция не поддерживается системой. - - The specified configuration cannot be used. Невозможно использовать указанную конфигурацию. - - Roaming was aborted or is not possible. Роуминг прерван или невозможен. @@ -5013,28 +3938,23 @@ Please verify the correct directory name was given. QOCIDriver - Unable to initialize QOCIDriver Невозможно инициализировать - Unable to logon Невозможно авторизоваться - Unable to begin transaction Невозможно начать транзакцию - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию @@ -5042,44 +3962,34 @@ Please verify the correct directory name was given. QOCIResult - - - Unable to bind column for batch execute Невозможно привязать столбец для пакетного выполнения - Unable to execute batch statement Невозможно выполнить пакетное выражение - Unable to goto next Невозможно перейти к следующей строке - Unable to alloc statement Невозможно создать выражение - Unable to prepare statement Невозможно подготовить выражение - Unable to get statement type Невозможно определить тип выражения - Unable to bind value Невозможно привязать результирующие значения - Unable to execute statement Невозможно выполнить выражение @@ -5087,32 +3997,26 @@ Please verify the correct directory name was given. QODBCDriver - Unable to connect Невозможно соединиться - Unable to disable autocommit Невозможно отключить автозавершение транзакций - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию - Unable to enable autocommit Невозможно включить автозавершение транзакций - Unable to connect - Driver doesn't support all functionality required Невозможно соединиться - Драйвер не поддерживает требуемый функционал @@ -5120,51 +4024,38 @@ Please verify the correct directory name was given. QODBCResult - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult::reset: Невозможно установить "SQL_CURSOR_STATIC" атрибутом выражение. Проверьте настройки драйвера ODBC - - Unable to execute statement Невозможно выполнить выражение - Unable to fetch next Невозможно получить следующую строку - Unable to prepare statement Невозможно подготовить выражение - Unable to bind variable Невозможно привязать значение - - - Unable to fetch last Невозможно получить последнюю строку - Unable to fetch Невозможно получить данные - Unable to fetch first Невозможно получить первую строку - Unable to fetch previous Невозможно получить предыдущую строку @@ -5172,19 +4063,14 @@ Please verify the correct directory name was given. QObject - "%1" duplicates a previous role name and will be disabled. "%1" повторяет имя предыдущей роли и не будет использовано. - - invalid query: "%1" Некорректный запрос: "%1" - - PulseAudio Sound Server Звуковой сервер PulseAudio @@ -5192,12 +4078,10 @@ Please verify the correct directory name was given. QPPDOptionsModel - Name Имя - Value Значение @@ -5205,32 +4089,26 @@ Please verify the correct directory name was given. QPSQLDriver - Unable to connect Невозможно соединиться - Could not begin transaction Не удалось начать транзакцию - Could not commit transaction Не удалось завершить транзакцию - Could not rollback transaction Не удалось отозвать транзакцию - Unable to subscribe Невозможно подписаться - Unable to unsubscribe Невозможно отписаться @@ -5238,12 +4116,10 @@ Please verify the correct directory name was given. QPSQLResult - Unable to create query Невозможно создать запрос - Unable to prepare statement Невозможно подготовить выражение @@ -5251,102 +4127,82 @@ Please verify the correct directory name was given. QPageSetupWidget - Centimeters (cm) Сантиметры (cm) - Millimeters (mm) Миллиметры (mm) - Inches (in) Дюймы (in) - Points (pt) Точки (pt) - Form Форма - Paper Бумага - Page size: Размер страницы: - Width: Ширина: - Height: Высота: - Paper source: Источник бумаги: - Orientation Ориентация - Portrait Книжная - Landscape Альбомная - Reverse landscape Перевёрнутая альбомная - Reverse portrait Перевёрнутая книжная - Margins Поля - top margin верхнее поле - left margin левое поле - right margin правое поле - bottom margin нижнее поле @@ -5354,12 +4210,10 @@ Please verify the correct directory name was given. QPluginLoader - Unknown error Неизвестная ошибка - The plugin was not loaded. Модуль не был загружен. @@ -5367,433 +4221,344 @@ Please verify the correct directory name was given. QPrintDialog - locally connected соединено локально - - Aliases: %1 Псевдонимы: %1 - - unknown неизвестно - OK Закрыть - Print all Все страницы - Print range Диапазон страниц - A0 (841 x 1189 mm) A0 (841 x 1189 мм) - A1 (594 x 841 mm) A1 (594 x 841 мм) - A2 (420 x 594 mm) A2 (420 x 594 мм) - A3 (297 x 420 mm) A3 (297 x 420 мм) - A5 (148 x 210 mm) A5 (148 x 210 мм) - A6 (105 x 148 mm) A6 (105 x 148 мм) - A7 (74 x 105 mm) A7 (74 x 105 мм) - A8 (52 x 74 mm) A8 (52 x 74 мм) - A9 (37 x 52 mm) A9 (37 x 52 мм) - B0 (1000 x 1414 mm) B0 (1000 x 1414 мм) - B1 (707 x 1000 mm) B1 (707 x 1000 мм) - B2 (500 x 707 mm) B2 (500 x 707 мм) - B3 (353 x 500 mm) B3 (353 x 500 мм) - B4 (250 x 353 mm) B4 (250 x 353 мм) - B6 (125 x 176 mm) B6 (125 x 176 мм) - B7 (88 x 125 mm) B7 (88 x 125 мм) - B8 (62 x 88 mm) B8 (62 x 88 мм) - B9 (44 x 62 mm) B9 (44 x 62 мм) - B10 (31 x 44 mm) B10 (31 x 44 мм) - C5E (163 x 229 mm) C5E (163 x 229 мм) - DLE (110 x 220 mm) DLE (110 x 220 мм) - Folio (210 x 330 mm) Folio (210 x 330 мм) - Ledger (432 x 279 mm) Ledger (432 x 279 мм) - Tabloid (279 x 432 mm) Tabloid (279 x 432 мм) - US Common #10 Envelope (105 x 241 mm) Конверт US #10 (105x241 мм) - Print current page Текущая страница - A4 (210 x 297 mm, 8.26 x 11.7 inches) A4 (210 x 297 мм, 8.26 x 11.7 дюймов) - B5 (176 x 250 mm, 6.93 x 9.84 inches) B5 (176 x 250 мм, 6.93 x 9.84 дюймов) - Executive (7.5 x 10 inches, 191 x 254 mm) Executive (191 x 254 мм, 7.5 x 10 дюймов) - Legal (8.5 x 14 inches, 216 x 356 mm) Legal (216 x 356 мм, 8.5 x 14 дюймов) - Letter (8.5 x 11 inches, 216 x 279 mm) Letter (216 x 279 мм, 8.5 x 11 дюймов) - Print selection Выделенный фрагмент - - - Print Печать - Print To File ... Печать в файл ... - File %1 is not writable. Please choose a different file name. %1 недоступен для записи. Выберите другое имя файла. - %1 already exists. Do you want to overwrite it? %1 уже существует. Хотите заменить его? - File exists Файл существует - <qt>Do you want to overwrite it?</qt> <qt>Хотите заменить?</qt> - %1 is a directory. Please choose a different file name. %1 - это каталог. Выберите другое имя файла. - The 'From' value cannot be greater than the 'To' value. Значение "с" не может быть больше значения "по". - A0 A0 - A1 A1 - A2 A2 - A3 A3 - A4 A4 - A5 A5 - A6 A6 - A7 A7 - A8 A8 - A9 A9 - B0 B0 - B1 B1 - B2 B2 - B3 B3 - B4 B4 - B5 B5 - B6 B6 - B7 B7 - B8 B8 - B9 B9 - B10 B10 - C5E C5E - DLE DLE - Executive Executive - Folio Folio - Ledger Ledger - Legal Legal - Letter Letter - Tabloid Tabloid - US Common #10 Envelope US Common #10 Envelope - Custom Пользовательский - - &Options >> &Параметры >> - &Options << &Параметры << - Print to File (PDF) Печать в файл (PDF) - Print to File (Postscript) Печать в файл (Postscript) - Local file Локальный файл - Write %1 file Запись %1 файла - &Print &Печать @@ -5801,108 +4566,86 @@ Please choose a different file name. QPrintPreviewDialog - %1% %1% - Print Preview Просмотр печати - Next page Следующая страница - Previous page Предыдущая страница - First page Первая страница - Last page Последняя страница - Fit width По ширине - Fit page На всю страницу - Zoom in Увеличить - Zoom out Уменьшить - Portrait Книжная - Landscape Альбомная - Show single page Показать одну страницу - Show facing pages Показать титульные страницы - Show overview of all pages Показать обзор всех страниц - Print Печать - Page setup Параметры страницы - Close Закрыть - Export to PDF Экспорт в PDF - Export to PostScript Экспорт в Postscript - - Page Setup Параметры страницы @@ -5910,17 +4653,14 @@ Please choose a different file name. QPrintPropertiesWidget - Form Форма - Page Страница - Advanced Дополнительно @@ -5928,102 +4668,82 @@ Please choose a different file name. QPrintSettingsOutput - Form Форма - Copies Копии - Print range Диапазон печати - Print all Все - Pages from Страницы с - to по - Selection Выделенный фрагмент - Output Settings Настройки вывода - Copies: Количество копий: - Collate - Разобрать про копиям + Разобрать по копиям - Reverse Обратный порядок - Options Параметры - Color Mode Режим цвета - Color Цвет - Grayscale Оттенки серого - Duplex Printing Двусторонняя печать - None Нет - Long side По длинной стороне - Short side По короткой стороне - Current Page Текущая страница @@ -6031,47 +4751,38 @@ Please choose a different file name. QPrintWidget - Form Форма - Printer Принтер - &Name: &Название: - P&roperties С&войства - Location: Расположение: - Preview Просмотр - Type: Тип: - Output &file: Вывод в &файл: - ... ... @@ -6079,62 +4790,38 @@ Please choose a different file name. QProcess - - Could not open input redirection for reading Не удалось открыть перенаправление ввода для чтения - - Could not open output redirection for writing Не удалось открыть перенаправление вывода для записи - Resource error (fork failure): %1 Ошибка выделения ресурсов (сбой fork): %1 - - - - - - - - - Process operation timed out Время на операцию с процессом истекло - - - - Error reading from process Ошибка получения данных от процесса - - - Error writing to process Ошибка отправки данных процессу - Process crashed Процесс завершился с ошибкой - No program defined Программа не указана - Process failed to start: %1 Не удалось запустить процесс: %1 @@ -6142,7 +4829,6 @@ Please choose a different file name. QProgressDialog - Cancel Отмена @@ -6150,7 +4836,6 @@ Please choose a different file name. QPushButton - Open Открыть @@ -6158,7 +4843,6 @@ Please choose a different file name. QRadioButton - Check Отметить @@ -6166,57 +4850,46 @@ Please choose a different file name. QRegExp - no error occurred ошибки отсутствуют - disabled feature used использование отключённых возможностей - bad char class syntax неправильный синтаксис класса символов - bad lookahead syntax неправильный предварительный синтаксис - bad repetition syntax неправильный синтаксис повторения - invalid octal value некорректное восьмеричное значение - missing left delim отсутствует левый разделитель - unexpected end неожиданный конец - met internal limit достигнуто внутреннее ограничение - invalid interval некорректный интервал - invalid category некорректная категория @@ -6224,22 +4897,18 @@ Please choose a different file name. QSQLite2Driver - Error opening database Ошибка открытия базы данных - Unable to begin transaction Невозможно начать транзакцию - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию @@ -6247,12 +4916,10 @@ Please choose a different file name. QSQLite2Result - Unable to fetch results Невозможно получить результаты - Unable to execute statement Невозможно выполнить выражение @@ -6260,27 +4927,22 @@ Please choose a different file name. QSQLiteDriver - Error opening database Ошибка открытия базы данных - Error closing database Ошибка закрытия базы данных - Unable to begin transaction Невозможно начать транзакцию - Unable to commit transaction Невозможно завершить транзакцию - Unable to rollback transaction Невозможно отозвать транзакцию @@ -6288,34 +4950,26 @@ Please choose a different file name. QSQLiteResult - - - Unable to fetch row Невозможно получить строку - Unable to execute statement Невозможно выполнить выражение - Unable to reset statement Невозможно сбросить выражение - Unable to bind parameters Невозможно привязать параметр - Parameter count mismatch Количество параметров не совпадает - No query Отсутствует запрос @@ -6323,32 +4977,26 @@ Please choose a different file name. QScriptBreakpointsModel - ID ID - Location Размещение - Condition Условие - Ignore-count Пропущено - Single-shot Однократно - Hit-count Совпадений @@ -6356,12 +5004,10 @@ Please choose a different file name. QScriptBreakpointsWidget - New Новая - Delete Удалить @@ -6369,143 +5015,114 @@ Please choose a different file name. QScriptDebugger - - Go to Line Перейти к строке - Line: Строка: - Interrupt Прервать - Shift+F5 Shift+F5 - Continue Продолжить - F5 F5 - Step Into Войти в - F11 F11 - Step Over Перейти через - F10 F10 - Step Out Выйти из функции - Shift+F11 Shift+F11 - Run to Cursor Выполнить до курсора - Ctrl+F10 Ctrl+F10 - Run to New Script Выполнить до нового сценария - Toggle Breakpoint Установить/убрать точку останова - F9 F9 - Clear Debug Output Очистить отладочный вывод - Clear Error Log Очистить журнал ошибок - Clear Console Очистить консоль - &Find in Script... &Найти в сценарии... - Ctrl+F Ctrl+F - Find &Next Найти &следующее - F3 F3 - Find &Previous Найти &предыдущее - Shift+F3 Shift+F3 - Ctrl+G Ctrl+G - Debug Отладка @@ -6513,32 +5130,26 @@ Please choose a different file name. QScriptDebuggerCodeFinderWidget - Close Закрыть - Previous Предыдущий - Next Следующий - Case Sensitive Учитывать регистр - Whole words Слова целиком - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Поиск с начала @@ -6546,12 +5157,10 @@ Please choose a different file name. QScriptDebuggerLocalsModel - Name Название - Value Значение @@ -6559,17 +5168,14 @@ Please choose a different file name. QScriptDebuggerStackModel - Level Уровень - Name Название - Location Размещение @@ -6577,22 +5183,18 @@ Please choose a different file name. QScriptEdit - Toggle Breakpoint Установить/убрать точку останова - Disable Breakpoint Убрать точку останова - Enable Breakpoint Установить точку останова - Breakpoint Condition: Условие точки останова: @@ -6600,52 +5202,42 @@ Please choose a different file name. QScriptEngineDebugger - Loaded Scripts Загруженные сценарии - Breakpoints Точки останова - Stack Стек - Locals Локальные переменные - Console Консоль - Debug Output Отладочный вывод - Error Log Журнал ошибок - Search Поиск - View Вид - Qt Script Debugger Отладчик сценариев Qt @@ -6653,7 +5245,6 @@ Please choose a different file name. QScriptNewBreakpointWidget - Close Закрыть @@ -6661,84 +5252,66 @@ Please choose a different file name. QScrollBar - Scroll here Прокрутить сюда - Left edge К левой границе - Top Вверх - Right edge К правой границе - Bottom Вниз - Page left На страницу влево - - Page up На страницу вверх - Page right На страницу вправо - - Page down На страницу вниз - Scroll left Прокрутить влево - Scroll up Прокрутить вверх - Scroll right Прокрутить вправо - Scroll down Прокрутить вниз - Line up На строку вверх - Position Положение - Line down На строку вниз @@ -6746,111 +5319,78 @@ Please choose a different file name. QSharedMemory - %1: create size is less then 0 %1: размер меньше нуля - - %1: unable to lock %1: невозможно заблокировать - %1: unable to unlock %1: невозможно разблокировать - - - %1: permission denied %1: доступ запрещён - - - %1: already exists %1: уже существует - %1: doesn't exists %1: не существует - - - %1: out of resources %1: недостаточно ресурсов - - - %1: unknown error %2 %1: неизвестная ошибка %2 - %1: key is empty %1: пустой ключ - %1: ftok failed %1: ошибка ftok - - - %1: unable to make key %1: невозможно создать ключ - - %1: doesn't exist %1: не существует - %1: UNIX key file doesn't exist %1: специфический ключ UNIX не существует - %1: system-imposed size restrictions %1: системой наложены ограничения на размер - %1: not attached %1: не приложенный - - %1: invalid size %1: некорректный размер - - %1: key error %1: некорректный ключ - %1: size query failed %1: не удалось запросить размер - %1: unable to set key on lock %1: невозможно установить ключ блокировки @@ -6858,1063 +5398,884 @@ Please choose a different file name. QShortcut - Space 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. Пробел - Esc Esc - Tab Tab - Backtab Backtab - Backspace Backspace - Return Return - Enter Enter - Ins Ins - Del Del - Pause Pause - Print Print - SysReq SysReq - Home Home - End End - Left Влево - Up Вверх - Right Вправо - Down Вниз - PgUp PgUp - PgDown PgDown - CapsLock CapsLock - NumLock NumLock - ScrollLock ScrollLock - Menu Меню - Help Справка - Back Назад - Forward Вперёд - Stop Остановить - Refresh Обновить - Volume Down Тише - Volume Mute Выключить звук - Volume Up Громче - Bass Boost Усиление басов - Bass Up Басы выше - Bass Down Басы ниже - Treble Up ВЧ выше - Treble Down ВЧ ниже - Media Play - Воспроизведение + Начать воспроизведение - Media Stop Остановить воспроизведение - Media Previous Воспроизвести предыдущее - Media Next Воспроизвести следующее - Media Record - Запись + Начать запись + + + Media Pause + Media player pause button + Приостановить воспроизведение + + + Toggle Media Play/Pause + Media player button to toggle between playing and paused + Приостановить/продолжить воспроизведение - Favorites Избранное - Search Поиск - Standby Режим ожидания - Open URL Открыть URL - Launch Mail Почта - Launch Media Проигрыватель - Launch (0) Запустить (0) - Launch (1) Запустить (1) - Launch (2) Запустить (2) - Launch (3) Запустить (3) - Launch (4) Запустить (4) - Launch (5) Запустить (5) - Launch (6) Запустить (6) - Launch (7) Запустить (7) - Launch (8) Запустить (8) - Launch (9) Запустить (9) - Launch (A) Запустить (A) - Launch (B) Запустить (B) - Launch (C) Запустить (C) - Launch (D) Запустить (D) - Launch (E) Запустить (E) - Launch (F) Запустить (F) - Monitor Brightness Up Увеличить яркость монитора - Monitor Brightness Down Уменьшить яркость монитора - Keyboard Light On/Off Вкл./Откл. подсветку клавиатуры - Keyboard Brightness Up Увеличить яркость подсветки клавиатуры - Keyboard Brightness Down Уменьшить яркость подсветки клавиатуры - Power Off Отключение питания - Wake Up Пробуждение - Eject Извлечь - Screensaver Экранная заставка - WWW WWW - Sleep Спящий режим - LightBulb Лампочка - Shop Магазин - History История - Add Favorite Добавить в избранное - Hot Links Горячие ссылки - Adjust Brightness Настройка яркости - Finance Финансы - Community Сообщество - Audio Rewind Перемотка аудио назад - Back Forward - Application Left - Application Right - Book Книга - CD CD - Calculator Калькулятор - Clear Очистить - Clear Grab - Close Закрыть - Copy Копировать - Cut Вырезать - Display - DOS DOS - Documents Документы - Spreadsheet Электронная таблицы - Browser Обозреватель - Game Игра - Go Перейти - iTouch iTouch - Logoff Выйти из системы - Market Рынок - Meeting Встреча - Keyboard Menu Клавиатурное меню - Menu PB - My Sites Мои сайты - News Новости - Home Office Домашний офис - Option Опция - Paste Вставить - Phone Телефон - Reply Ответить - Reload Перезагрузить - Rotate Windows Повернуть окна - Rotation PB - Rotation KB - Save Сохранить - Send Отправить - Spellchecker Проверка орфографии - Split Screen Разделить экран - Support Поддержка - Task Panel Панель задач - Terminal Терминал - Tools Инструменты - Travel Путешествие - Video Видео - Word Processor Текстовый редактор - XFer - Zoom In Увеличить - Zoom Out Уменьшить - Away Ушёл - Messenger Клиент обмена мгновенными сообщениями - WebCam Вэб-камера - Mail Forward Переслать письмо - Pictures Изображения - Music Музыка - Battery Батарея - Bluetooth Bluetooth - Wireless Беспроводная сеть - Ultra Wide Band - + Сверхширокополосная связь - Audio Forward - + Последовательное воспроизведение - Audio Repeat - + Воспроизведение по кругу - Audio Random Play - + Случайное воспроизведение - Subtitle Субтитры - Audio Cycle Track - + Зацикленное воспроизведение дорожки - Time Время - View Вид - Top Menu Главное меню - Suspend - + Приостановить - Hibernate - + Усыпить - Print Screen Печать экрана - Page Up На страницу вверх - Page Down На страницу вниз - Caps Lock Верний регистр - Num Lock Цифровые клавиши - Number Lock Цифровые клавиши - Scroll Lock Scroll Lock - Insert Вставить - Delete Удалить - Escape Escape - System Request Системный запрос - + Toggle Call/Hangup + Button that will hang up if we're in call, or make a call if we're not. + Снять/положить трубку + + + Voice Dial + Button to trigger voice dialling + Голосовой вызов + + + Last Number Redial + Button to redial the last number called + Повторный набор + + + Camera Shutter + Button to trigger the camera shutter (take a picture) + Затвор камеры + + + Camera Focus + Button to focus the camera + Фокусировка камеры + + Kanji - Muhenkan - Henkan - Romaji - Hiragana - Katakana - Hiragana Katakana - Zenkaku - Hankaku - Zenkaku Hankaku - Touroku - Massyo - Kana Lock - Kana Shift - Eisu Shift - Eisu toggle - Code input - Multiple Candidate - Previous Candidate - Hangul - Hangul Start - Hangul End - Hangul Hanja - Hangul Jamo - Hangul Romaja - Hangul Jeonja - Hangul Banja - Hangul PreHanja - Hangul PostHanja - Hangul Special - - Select Выбрать - Yes Да - No Нет - Context1 - Context2 - Context3 - Context4 - Call + Button to start a call (note: a separate button is used to end the call) Позвонить - Hangup + Button to end a call (note: a separate button is used to start the call) Положить трубку - Flip - - Ctrl Ctrl - - Shift Shift - - Alt Alt - - Meta Meta - + + - F%1 F%1 - Home Page Домашняя страница @@ -7922,27 +6283,22 @@ Please choose a different file name. QSlider - Page left Страница влево - Page up Страница вверх - Position Положение - Page right Страница вправо - Page down Страница вниз @@ -7950,72 +6306,58 @@ Please choose a different file name. QSocks5SocketEngine - Connection to proxy refused В соединении с прокси-сервером отказано - Connection to proxy closed prematurely Соединение с прокси-сервером неожиданно закрыто - Proxy host not found Прокси-сервер не найден - Connection to proxy timed out Время на соединение с прокси-сервером истекло - Proxy authentication failed Не удалось авторизоваться на прокси-сервере - Proxy authentication failed: %1 Не удалось авторизоваться на прокси-сервере: %1 - SOCKS version 5 protocol error Ошибка протокола SOCKSv5 - General SOCKSv5 server failure Ошибка сервере SOCKSv5 - Connection not allowed by SOCKSv5 server Соединение не разрешено сервером SOCKSv5 - TTL expired TTL истекло - SOCKSv5 command not supported Команда SOCKSv5 не поддерживается - Address type not supported Тип адреса не поддерживается - Unknown SOCKSv5 proxy error code 0x%1 Неизвестная ошибка SOCKSv5 прокси (код 0x%1) - Network operation timed out Время на сетевую операцию истекло @@ -8023,32 +6365,26 @@ Please choose a different file name. QSoftKeyManager - Ok ОК - Select Выбрать - Done Готово - Options Параметры - Cancel Отмена - Exit Выход @@ -8056,12 +6392,10 @@ Please choose a different file name. QSpinBox - More Больше - Less Меньше @@ -8069,56 +6403,42 @@ Please choose a different file name. QSql - Delete Удалить - Delete this record? Удалить данную запись? - - - Yes Да - - - No Нет - Insert Вставить - Update Обновить - Save edits? Сохранить изменения? - Cancel Отмена - Confirm Подтверждение - Cancel your edits? Отменить изменения? @@ -8126,177 +6446,142 @@ Please choose a different file name. QSslSocket - Unable to write data: %1 Невозможно записать данные: %1 - Unable to decrypt data: %1 Невозможно расшифровать данные: %1 - Error while reading: %1 Ошибка чтения: %1 - Error during SSL handshake: %1 Ошибка квитирования SSL: %1 - Error creating SSL context (%1) Ошибка создания контекста SSL: (%1) - Invalid or empty cipher list (%1) Некорректный или пустой список шифров (%1) - Private key does not certify public key, %1 Закрытый ключ не соответствует открытому ключу, %1 - Error creating SSL session, %1 Ошибка создания сессии SSL, %1 - Error creating SSL session: %1 Ошибка создания сессии SSL: %1 - Cannot provide a certificate with no key, %1 Невозможно предоставить сертификат без ключа, %1 - Error loading local certificate, %1 Ошибка загрузки локального сертификата, %1 - Error loading private key, %1 Ошибка загрузки закрытого ключа, %1 - No error Нет ошибки - The issuer certificate could not be found Не удалось найти сертификат издателя - The certificate signature could not be decrypted Не удалось расшифровать подпись сертификата - The public key in the certificate could not be read Не удалось прочитать открытый ключ сертификата - The signature of the certificate is invalid Некорректная подпись сертификата - The certificate is not yet valid Срок действия сертификата ещё не наступил - The certificate has expired Срок действия сертификата истёк - The certificate's notBefore field contains an invalid time Поле notBefore сертификата содержит некорректное время - The certificate's notAfter field contains an invalid time Поле notAfter сертификата содержит некорректное время - The certificate is self-signed, and untrusted Сертификат самоподписанный и не является заверенным - The root certificate of the certificate chain is self-signed, and untrusted Корневой сертификат цепочки сертификатов самоподписанный и не является заверенным - The issuer certificate of a locally looked up certificate could not be found Не удалось найти сертификат издателя локального сертификата - No certificates could be verified Не удалось проверить сертификаты - One of the CA certificates is invalid Один из сертификатов центра сертификации некорректен - The basicConstraints path length parameter has been exceeded Превышено значение параметра длины пути поля basicConstraints сертификата - The supplied certificate is unsuitable for this purpose Представленный сертификат непригоден для данной цели - The root CA certificate is not trusted for this purpose Корневой сертификат центра сертификации не является заверенным для данной цели - The root CA certificate is marked to reject the specified purpose Корневой сертификат центра сертификации отмечен на отклонение для данной цели - The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate Текущий сертификат издателя был отклонён, так как название темы не совпадает с названием издателя сертификата - 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 Текущий сертификат издателя был отклонён, так как название издателя и серийный номер не совпадают с идентификатором ключа сертификата - The peer did not present any certificate Сертификат не был предоставлен - The host name did not match any of the valid hosts for this certificate Название узла не совпадает с допустимыми названиями узлов сертификата - Unknown error Неизвестная ошибка @@ -8304,22 +6589,18 @@ Please choose a different file name. QStateMachine - Missing initial state in compound state '%1' Отсутствует исходное состояние в составном состоянии "%1" - Missing default state in history state '%1' Отсутствует состояние по умолчанию в историческом состоянии "%1" - No common ancestor for targets and source of transition from state '%1' Нет общего предка у источника и цели перехода из состояния "%1" - Unknown error Неизвестная ошибка @@ -8327,30 +6608,22 @@ Please choose a different file name. QSystemSemaphore - %1: does not exist %1: не существует - - %1: out of resources %1: недостаточно ресурсов - - %1: permission denied %1: доступ запрещён - %1: already exists %1: уже существует - - %1: unknown error %2 %1: неизвестная ошибка %2 @@ -8358,12 +6631,10 @@ Please choose a different file name. QTDSDriver - Unable to open connection Невозможно открыть соединение - Unable to use database Невозможно использовать базу данных @@ -8371,12 +6642,10 @@ Please choose a different file name. QTabBar - Scroll Left Прокрутить влево - Scroll Right Прокрутить вправо @@ -8384,7 +6653,6 @@ Please choose a different file name. QTcpServer - Operation on socket is not supported Операция с сокетом не поддерживается @@ -8392,42 +6660,34 @@ Please choose a different file name. QTextControl - &Undo &Отменить действие - &Redo &Повторить действие - Cu&t &Вырезать - &Copy &Копировать - Copy &Link Location Скопировать &адрес ссылки - &Paste В&ставить - Delete Удалить - Select All Выделить всё @@ -8435,14 +6695,10 @@ Please choose a different file name. QToolButton - - Press Нажать - - Open Открыть @@ -8450,7 +6706,6 @@ Please choose a different file name. QUdpSocket - This platform does not support IPv6 Данная платформа не поддерживает IPv6 @@ -8458,12 +6713,10 @@ Please choose a different file name. QUndoGroup - Undo Отменить действие - Redo Повторить действие @@ -8471,7 +6724,6 @@ Please choose a different file name. QUndoModel - <empty> <пусто> @@ -8479,12 +6731,10 @@ Please choose a different file name. QUndoStack - Undo Отменить действие - Redo Повторить действие @@ -8492,57 +6742,46 @@ Please choose a different file name. QUnicodeControlCharacterMenu - LRM Left-to-right mark LRM Признак написания слева направо - RLM Right-to-left mark RLM Признак написания справа налево - ZWJ Zero width joiner ZWJ Объединяющий символ нулевой ширины - ZWNJ Zero width non-joiner ZWNJ Необъединяющий символ нулевой ширины - ZWSP Zero width space ZWSP Пробел нулевой ширины - LRE Start of left-to-right embedding LRE Начало встраивания написания слева направо - RLE Start of right-to-left embedding LRE Начало встраивания написания справа налево - LRO Start of left-to-right override LRO Начало замены написания слева направо - RLO Start of right-to-left override RLO Начало замены написания справа налево - PDF Pop directional formatting PDF Признак окончания написания с другим направлением - Insert Unicode control character Вставить управляющий символ Unicode @@ -8550,32 +6789,26 @@ Please choose a different file name. QWebFrame - Request cancelled Запрос отменён - Request blocked Запрос блокирован - Cannot show URL Невозможно отобразить URL - Frame load interrupted by policy change Загрузка фрейма прервана изменением политики - Cannot show mimetype Невозможно отобразить тип MIME - File does not exist Файл не существует @@ -8583,858 +6816,705 @@ Please choose a different file name. QWebPage - Web Inspector - %2 Web-инспектор - %2 - Redirection limit reached Достигнут предел переадресации - Bad HTTP request Некорректный HTTP-запрос - Scroll here Прокрутить сюда - Left edge К левой границе - Top Вверх - Right edge К правой границе - Bottom Вниз - Page left На страницу влево - Page up На страницу вверх - Page right На страницу вправо - Page down На страницу вниз - Scroll left Прокрутить влево - Scroll up Прокрутить вверх - Scroll right Прокрутить вправо - Scroll down Прокрутить вниз - JavaScript Alert - %1 JavaScript: Предупреждение - %1 - JavaScript Confirm - %1 JavaScript: Подтверждение - %1 - JavaScript Prompt - %1 JavaScript: Запрос - %1 - JavaScript Problem - %1 JavaScript: Проблема - %1 - The script on this page appears to have a problem. Do you want to stop the script? Сбой выполнения сценария на данной странице. Желаете остановить выполение сценария? - Move the cursor to the next character Переместить указатель к следующему символу - Move the cursor to the previous character Переместить указатель к предыдущему символу - Move the cursor to the next word Переместить указатель к следующему слову - Move the cursor to the previous word Переместить указатель к предыдущему слову - Move the cursor to the next line Переместить указатель на следующую строку - Move the cursor to the previous line Переместить указатель на предыдущую строку - Move the cursor to the start of the line Переместить указатель в начало строки - Move the cursor to the end of the line Переместить указатель в конец строки - Move the cursor to the start of the block Переместить указатель в начало блока - Move the cursor to the end of the block Переместить указатель в конец блока - Move the cursor to the start of the document Переместить указатель в начало документа - Move the cursor to the end of the document Переместить указатель в конец документа - Select all Выделить всё - Select to the next character Выделить до следующего символа - Select to the previous character Выделить до предыдущего символа - Select to the next word Выделить до следующего слова - Select to the previous word Выделить до предыдущего слова - Select to the next line Выделить до следующей строки - Select to the previous line Выделить до предыдущей строки - Select to the start of the line Выделить до начала строки - Select to the end of the line Выделить до конца строки - Select to the start of the block Выделить до начала блока - Select to the end of the block Выделить до конца блока - Select to the start of the document Выделить до начала документа - Select to the end of the document Выделить до конца документа - Delete to the start of the word Удалить до начала слова - Delete to the end of the word Удалить до конца слова - Insert a new paragraph Вставить новый параграф - Insert a new line Вставить новую строку - Paste and Match Style Вставить, сохранив стиль - Remove formatting Удалить форматирование - Strikethrough Зачёркнутый - Subscript Подстрочный - Superscript Надстрочный - Insert Bulleted List Вставить маркированный список - Insert Numbered List Вставить нумерованный список - Indent Увеличить отступ - Outdent Уменьшить отступ - Center По центру - Justify По ширине - Align Left По левому краю - Align Right По правому краю - Submit default label for Submit buttons in forms on web pages Отправить - Submit Submit (input element) alt text for <input> elements with no alt, title, or value Отправить - Reset default label for Reset buttons in forms on web pages Сбросить - This is a searchable index. Enter search keywords: text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' Индекс поиска. Введите ключевые слова для поиска: - Choose File title for file button used in HTML forms Обзор... - No file selected text to display in file button used in HTML forms when no file is selected Файл не указан - Open in New Window Open in New Window context menu item Открыть в новом окне - Save Link... Download Linked File context menu item Сохранить по ссылке как... - Copy Link Copy Link context menu item Копировать адрес ссылки - Open Image Open Image in New Window context menu item Открыть изображение - Save Image Download Image context menu item Сохранить изображение - Copy Image Copy Link context menu item - Копировать изображение в буффер обмена + Копировать изображение - Open Frame Open Frame in New Window context menu item Открыть фрейм - Copy Copy context menu item Копировать - Go Back Back context menu item Назад - Go Forward Forward context menu item Вперёд - Stop Stop context menu item Остановить - Reload Reload context menu item Обновить - Cut Cut context menu item Вырезать - Paste Paste context menu item Вставить - No Guesses Found No Guesses Found context menu item Совпадений не найдено - Ignore Ignore Spelling context menu item ?Пропускать Пропустить - Add To Dictionary Learn Spelling context menu item Добавить в словарь - Search The Web Search The Web context menu item Искать в Интернет - Look Up In Dictionary Look Up in Dictionary context menu item Искать в словаре - Open Link Open Link context menu item Открыть ссылку - Ignore Ignore Grammar context menu item ?Пропускать Пропустить - Spelling Spelling and Grammar context sub-menu item Орфография - Show Spelling and Grammar menu item title Показать панель проверки правописания - Hide Spelling and Grammar menu item title Скрыть панель проверки правописания - Check Spelling Check spelling context menu item Проверка орфографии - Check Spelling While Typing Check spelling while typing context menu item Проверять орфографию при наборе текста - Check Grammar With Spelling Check grammar with spelling context menu item Проверять грамматику с орфографией - Fonts Font context sub-menu item Шрифты - Bold Bold context menu item Жирный - Italic Italic context menu item Курсив - Underline Underline context menu item Подчёркнутый - Outline Outline context menu item Перечёркнутый - Direction Writing direction context sub-menu item Направление письма - Text Direction Text direction context sub-menu item Направление текста - Default Default writing direction context menu item По умолчанию - Left to Right Left to Right context menu item Слева направо - Right to Left Right to Left context menu item Справа налево - Inspect Inspect Element context menu item Проверить - No recent searches Label for only item in menu that appears when clicking on the search field image, when no searches have been performed История поиска пуста - Recent searches label for first item in the menu that appears when clicking on the search field image, used as embedded menu title История поиска - Clear recent searches menu item in Recent Searches menu that empties menu's contents Очистить историю поиска - Missing Plug-in Label text to be used when a plug-in is missing Модуль отсутствует - Unknown Unknown filesize FTP directory listing item Неизвестно - %1 (%2x%3 pixels) Title string for images %1 (%2x%3 px) - Loading... Media controller status message when the media is loading Загрузка... - Live Broadcast Media controller status message when watching a live broadcast Потоковое вещание - Audio Element Media controller element Аудио-элемент - Video Element Media controller element Видео-элемент - Mute Button Media controller element Кнопка "Отключить звук" - Unmute Button Media controller element Кнопка "Включить звук" - Play Button Media controller element Кнопка "Воспроизведение" - Pause Button Media controller element Кнопка "Пауза" - Slider Media controller element Регулятор - Slider Thumb Media controller element Указатель регулятора - Rewind Button Media controller element Кнопка "Перемотка назад" - Return to Real-time Button Media controller element Кнопка "Вернуть в реальное время" - Elapsed Time Media controller element Прошло времени - Remaining Time Media controller element Осталось времени - Status Display Media controller element Отображение состояния - Fullscreen Button Media controller element Кнопка "На весь экран" - Seek Forward Button Media controller element Кнопка "Перемотка вперёд" - Seek Back Button Media controller element Кнопка "Перемотка назад" - Audio element playback controls and status display Media controller element Элементы управления воспроизведением звука и отображением состояния - Video element playback controls and status display Media controller element Элементы управления воспроизведением видео и отображением состояния - Mute audio tracks Media controller element Отключить звуковые дорожки - Unmute audio tracks Media controller element Включить звуковые дорожки - Begin playback Media controller element Начать воспроизведение - Pause playback Media controller element Приостановить воспроизведение - Movie time scrubber Media controller element Перемотка - Movie time scrubber thumb Media controller element Позиция перемотки - Rewind movie Media controller element Перемотка в начало - Return streaming movie to real-time Media controller element Возвращает потоковое видео к воспроизведению в реальном времени - Current movie time Media controller element Текущее время фильма - Remaining movie time Media controller element Оставшееся время фильма - Current movie status Media controller element Текущее состояние фильма - Play movie in full-screen mode Media controller element - Воспроизведение фильма в режиме отображения на весь экран + Воспроизведение в режиме отображения на весь экран - Seek quickly back Media controller element Быстрая перемотка назад - Seek quickly forward Media controller element Быстрая перемотка вперёд - Indefinite time Media time description Время не определено - %1 days %2 hours %3 minutes %4 seconds Media time description %1 дней %2 часов %3 минут %4 секунд - %1 hours %2 minutes %3 seconds Media time description %1 часов %2 минут %3 секунд - %1 minutes %2 seconds Media time description %1 минут %2 секунд - %1 seconds Media time description %1 секунд - %n file(s) number of chosen file @@ -9447,7 +7527,6 @@ Please choose a different file name. QWhatsThisAction - What's This? Что это? @@ -9455,7 +7534,6 @@ Please choose a different file name. QWidget - * * @@ -9463,57 +7541,46 @@ Please choose a different file name. QWizard - Cancel Отмена - Help Справка - < &Back < &Назад - &Finish &Завершить - &Help &Справка - Go Back Назад - Continue Продолжить - Commit Передать - Done Готово - &Next &Далее - &Next > &Далее > @@ -9521,69 +7588,54 @@ Please choose a different file name. QWorkspace - &Restore &Восстановить - &Move &Переместить - &Size &Размер - Mi&nimize &Свернуть - Ma&ximize Р&аспахнуть - &Close &Закрыть - Stay on &Top Оставаться &сверху - Minimize Свернуть - Restore Down Восстановить - Close Закрыть - - Sh&ade Св&ернуть в заголовок - - %1 - [%2] %1 - [%2] - &Unshade В&осстановить из заголовка @@ -9591,117 +7643,94 @@ Please choose a different file name. QXml - no error occurred ошибки отсутствуют - error triggered by consumer ошибка вызвана пользователем - unexpected end of file неожиданный конец файла - more than one document type definition указано более одного типа документа - error occurred while parsing element ошибка разбора элемента - tag mismatch тэг не совпадает - error occurred while parsing content ошибка разбора документа - unexpected character неожиданный символ - invalid name for processing instruction некорректное имя директивы разбора - version expected while reading the XML declaration в объявлении XML ожидается параметр version - wrong value for standalone declaration некорректное значение параметра standalone - error occurred while parsing document type definition ошибка разбора объявления типа документа - letter is expected ожидалась буква - error occurred while parsing comment ошибка разбора комментария - error occurred while parsing reference ошибка разбора ссылки - internal general entity reference not allowed in DTD внутренняя ссылка на общий объект недопустима в DTD - external parsed general entity reference not allowed in attribute value внешняя ссылка на общий объект недопустима в значении атрибута - external parsed general entity reference not allowed in DTD внешняя ссылка на общий объект недопустима в DTD - unparsed entity reference in wrong context неразобранная ссылка на объект в неправильном контексте - recursive entities рекурсивные объекты - error in the text declaration of an external entity ошибка в объявлении внешнего объекта - encoding declaration or standalone declaration expected while reading the XML declaration в объявлении XML ожидаются параметры encoding или standalone - standalone declaration expected while reading the XML declaration в объявлении XML ожидается параметр standalone @@ -9709,27 +7738,22 @@ Please choose a different file name. QXmlPatternistCLI - Warning in %1, at line %2, column %3: %4 Предупреждение в %1, в строке %2, столбце %3: %4 - Warning in %1: %2 Предупреждение в %1: %2 - Unknown location Неизвестное расположение - Error %1 in %2, at line %3, column %4: %5 Ошибка %1 в %2, в строке %3, столбце %4: %5 - Error %1 in %2: %3 Ошибка %1 в %2: %3 @@ -9737,184 +7761,142 @@ Please choose a different file name. QXmlStream - - Extra content at end of document. Лишние данные в конце документа. - Invalid entity value. Некорректное значение объекта. - Invalid XML character. Некорректный символ XML. - Sequence ']]>' not allowed in content. Последовательность "]]>" недопустима в содержимом. - Namespace prefix '%1' not declared Префикс пространства имён "%1" не объявлен - Attribute redefined. Атрибут переопределён. - Unexpected character '%1' in public id literal. Неожиданный символ "%1" в литерале открытого идентификатора. - Invalid XML version string. Некорректная строка версии XML. - Unsupported XML version. Неподдерживаемая версия XML. - %1 is an invalid encoding name. %1 - не является корректным названием кодировки. - Encoding %1 is unsupported Кодировка %1 не поддерживается - Standalone accepts only yes or no. Псевдоатрибут "standalone" может принимать только значения "yes" или "no". - Invalid attribute in XML declaration. Некорректный атрибут в объявлении XML. - Premature end of document. Неожиданный конец документа. - Invalid document. Некорректный документ. - Expected Ожидалось - , but got ' , получили ' - Unexpected ' Неожиданное ' - Expected character data. Ожидаются символьные данные. - Recursive entity detected. Обнаружен рекурсивный объект. - Start tag expected. Ожидается открывающий тэг. - XML declaration not at start of document. Объявление XML находится не в начале документа. - NDATA in parameter entity declaration. NDATA в объявлении параметра. - %1 is an invalid processing instruction name. %1 не является корректным названием обрабатываемой инструкции. - Invalid processing instruction name. Некорректное название обрабатываемой инструкции. - - - - Illegal namespace declaration. Некорректное объявление пространства имён. - Invalid XML name. Некорректное имя XML. - Opening and ending tag mismatch. Открывающий тэг не совпадает с закрывающим. - Reference to unparsed entity '%1'. Ссылка на необработанный объект "%1". - - - Entity '%1' not declared. Объект "%1" не объявлен. - Reference to external entity '%1' in attribute value. Ссылка на внешний объект "%1" в значении атрибута. - Invalid character reference. Некорректная символьная ссылка. - - Encountered incorrectly encoded content. Обнаружено некорректно закодированное содержимое. - The standalone pseudo attribute must appear after the encoding. Псевдоатрибут "standalone" должен находиться после указания кодировки. - %1 is an invalid PUBLIC identifier. %1 - некорректный идентификатор PUBLIC. @@ -9922,702 +7904,558 @@ Please choose a different file name. QtXmlPatterns - - At least one component must be present. Должна присутствовать как минимум одна компонента. - %1 is not a valid value of type %2. %1 не является правильным значением типа %2. - When casting to %1 from %2, the source value cannot be %3. При преобразовании %2 в %1 исходное значение не может быть %3. - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. Булево значение не может быть вычислено для последовательностей, которые содержат два и более атомарных значения. - The data of a processing instruction cannot contain the string %1 Данные обрабатываемой инструкции не могут содержать строку "%1" - - %1 is an invalid %2 %1 некоррекно для %2 - %1 is not a valid XML 1.0 character. Символ %1 недопустим для XML 1.0. - %1 was called. %1 было вызвано. - In the replacement string, %1 must be followed by at least one digit when not escaped. В замещаемой строке "%1" должно сопровождаться как минимум одной цифрой, если неэкранировано. - In the replacement string, %1 can only be used to escape itself or %2, not %3 В замещаемой строке символ "%1" может использоваться только для экранирования самого себя или "%2", но не "%3" - %1 matches newline characters %1 соответствует символам конца строки - Matches are case insensitive Соответствия регистронезависимы - %1 is an invalid regular expression pattern: %2 %1 - некорректный шаблон регулярного выражения: %2 - It will not be possible to retrieve %1. Будет невозможно восстановить %1. - The default collection is undefined Набор по умолчанию не определён - %1 cannot be retrieved %1 не может быть восстановлен - The item %1 did not match the required type %2. Элемент %1 не соответствует необходимому типу %2. - - %1 is an unknown schema type. %1 является схемой неизвестного типа. - A template with name %1 has already been declared. Шаблон с именем %1 уже был объявлен. - Only one %1 declaration can occur in the query prolog. Только одно объявление %1 может присутствовать в прологе запроса. - The initialization of variable %1 depends on itself Инициализация переменной %1 зависит от себя самой - The variable %1 is unused Переменная %1 не используется - Version %1 is not supported. The supported XQuery version is 1.0. Версия %1 не поддерживается. Поддерживается XQuery версии 1.0. - No function with signature %1 is available Функция с сигнатурой %1 отсутствует - It is not possible to redeclare prefix %1. Невозможно переопределить префикс %1. - Prefix %1 is already declared in the prolog. Префикс %1 уже объявлен в прологе. - The name of an option must have a prefix. There is no default namespace for options. Название опции должно содержать префикс. Нет пространства имён по умолчанию для опций. - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. Возможность импорта схем не поддерживается, следовательно, объявлений %1 быть не должно. - The target namespace of a %1 cannot be empty. Целевое пространство имён %1 не может быть пустым. - The module import feature is not supported Возможность импорта модулей не поддерживается - 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 Пространство имён пользовательской функции в модуле библиотеки должен соответствовать пространству имён модуля. Другими словами, он должен быть %1 вместо %2 - A function already exists with the signature %1. Функция с сигнатурой %1 уже существует. - No external functions are supported. All supported functions can be used directly, without first declaring them as external Внешние функции не поддерживаются. Все поддерживаемые функции могут использоваться напрямую без первоначального объявления их в качестве внешних - The %1-axis is unsupported in XQuery Ось %1 не поддерживается в XQuery - The namespace URI cannot be the empty string when binding to a prefix, %1. URI пространства имён не может быть пустой строкой при связывании с префиксом %1. - %1 is an invalid namespace URI. %1 - некорректный URI пространства имён. - It is not possible to bind to the prefix %1 Невозможно связать с префиксом %1 - Two namespace declaration attributes have the same name: %1. Два атрибута объявления пространств имён имеют одинаковое имя: %1. - The namespace URI must be a constant and cannot use enclosed expressions. URI пространства имён должен быть константой и не может содержать выражений. - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. %1 является объявлением атрибута вне области объявлений. Имейте в виду, возможность импорта схем не поддерживается. - empty пусто - zero or one нуль или один - exactly one ровно один - one or more один или более - zero or more нуль или более - The focus is undefined. Фокус не определён. - An attribute by name %1 has already been created. Атрибут с именем %1 уже существует. - Network timeout. Время ожидания сети истекло. - Element %1 can't be serialized because it appears outside the document element. Элемент %1 не может быть сериализован, так как расположен вне документа. - Year %1 is invalid because it begins with %2. Год %1 неверен, так как начинается с %2. - Day %1 is outside the range %2..%3. День %1 вне диапазона %2..%3. - Month %1 is outside the range %2..%3. Месяц %1 вне диапазона %2..%3. - Overflow: Can't represent date %1. Переполнение: Не удаётся представить дату %1. - Day %1 is invalid for month %2. День %1 неверен для месяца %2. - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; Время 24:%1:%2.%3 некорректно. 24 часа, но минуты, секунды и/или миллисекунды отличны от 0; - Time %1:%2:%3.%4 is invalid. Время %1:%2:%3.%4 некорректно. - Overflow: Date can't be represented. Переполнение: невозможно представить дату. - At least one time component must appear after the %1-delimiter. Как минимум одна компонента времени должна следовать за разделителем '%1'. - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. Деление числа типа %1 на %2 (не числовое выражение) недопустимо. - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. Деление числа типа %1 на %2 или %3 (плюс или минус нуль) недопустимо. - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. Умножение числа типа %1 на %2 или %3 (плюс-минус бесконечность) недопустимо. - A value of type %1 cannot have an Effective Boolean Value. Значение типа %1 не может быть булевым значением. - Value %1 of type %2 exceeds maximum (%3). Значение %1 типа %2 больше максимума (%3). - Value %1 of type %2 is below minimum (%3). Значение %1 типа %2 меньше минимума (%3). - A value of type %1 must contain an even number of digits. The value %2 does not. Значение типа %1 должно содержать четное количество цифр. Значение %2 этому требованию не удовлетворяет. - %1 is not valid as a value of type %2. Значение %1 некорректно для типа %2. - Operator %1 cannot be used on type %2. Оператор %1 не может использоваться для типа %2. - Operator %1 cannot be used on atomic values of type %2 and %3. Оператор %1 не может использоваться для атомарных значений типов %2 и %3. - The namespace URI in the name for a computed attribute cannot be %1. URI пространства имён в названии рассчитываемого атрибута не может быть %1. - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. Название расчитываемого атрибута не может иметь URI пространства имён %1 с локальным именем %2. - Type error in cast, expected %1, received %2. Ошибка типов в преобразовании, ожидалось %1, получено %2. - 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. При преобразовании в %1 или производные от него типы исходное значение должно быть того же типа или строковым литералом. Тип %2 недопустим. - A comment cannot contain %1 Комментарий не может содержать %1 - A comment cannot end with a %1. Комментарий не может оканчиваться на %1. - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. Узел-атрибут не может быть потомком узла-документа. Атрибут %1 неуместен. - A library module cannot be evaluated directly. It must be imported from a main module. Модуль библиотеки не может использоваться напрямую. Он должен быть импортирован из основного модуля. - No template by name %1 exists. Шаблон с именем %1 отсутствует. - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. Значение типа %1 не может быть условием. Условием могут являться числовой и булевый типы. - A positional predicate must evaluate to a single numeric value. Позиционный предикат должен вычисляться как числовое выражение. - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. Целевое имя в обрабатываемой инструкции не может быть %1 в любой комбинации нижнего и верхнего регистров. Имя %2 некорректно. - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. %1 некорректное целевое имя в обрабатываемой инструкции. Имя должно быть значением типа %2, например: %3. - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. Последняя часть пути должна содержать узлы или атомарные значения, но не может содержать и то, и другое одновременно. - No namespace binding exists for the prefix %1 Отсутствует привязка к пространству имён для префикса %1 - No namespace binding exists for the prefix %1 in %2 Отсутствует привязка к пространству имён для префикса %1 в %2 - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. Первый аргумент %1 не может быть типа %2. Он должен быть числового типа, типа xs:yearMonthDuration или типа xs:dayTimeDuration. - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Первый аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5. - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Второй аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5. - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. Если оба значения имеют региональные смещения, смещения должны быть одинаковы. %1 и %2 не одинаковы. - %1 must be followed by %2 or %3, not at the end of the replacement string. "%1" должно сопровождаться "%2" или "%3", но не в конце замещаемой строки. - %1 and %2 match the start and end of a line. %1 и %2 соответствуют началу и концу строки. - Whitespace characters are removed, except when they appear in character classes Символы пробелов удалены (за исключением тех, что были в символах классов) - %1 is an invalid flag for regular expressions. Valid flags are: %1 - некорректный флаг регулярного выражения. Допустимые флаги: - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. Префикс не должен быть указан, если первый параметр - пустая последовательность или пустая строка (вне пространства имён). Был указан префикс %1. - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). Форма нормализации %1 не поддерживается. Поддерживаются только %2, %3, %4, %5 и пустая, т.е. пустая строка (без нормализации). - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. Региональное смещение должно быть в переделах от %1 до %2 включительно. %3 выходит за допустимые пределы. - Required cardinality is %1; got cardinality %2. Необходимо %1 элементов, получено %2. - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. Имя кодировки %1 некорректно. Имя кодировки должно содержать только символы латиницы без пробелов и должно удовлетворять регулярному выражению %2. - The keyword %1 cannot occur with any other mode name. Ключевое слово %1 не может встречаться с любым другим названием режима. - No variable with name %1 exists Переменная с именем %1 отсутствует - The value of attribute %1 must be of type %2, which %3 isn't. Значение атрибута %1 должно быть типа %2, но %3 не соответствует данному типу. - The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. Не удаётся связать префикс %1. По умолчанию префикс связан с пространством имён %2. - A variable with name %1 has already been declared. Переменная с именем %1 уже объявлена. - No value is available for the external variable with name %1. Отсутствует значение для внешней переменной с именем %1. - A stylesheet function must have a prefixed name. Функция стилей должна иметь имя с префиксом. - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. Пространтсво имён %1 зарезервировано, поэтому пользовательские функции не могут его использовать. Попробуйте предопределённый префикс %2, который существует для подобных ситуаций. - An argument with name %1 has already been declared. Every argument name must be unique. Аргумент с именем %1 уже объявлен. Имя каждого аргумента должно быть уникальным. - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. Если функция %1 используется для сравнения внутри шаблона, аргумент должен быть ссылкой на переменную или строковым литералом. - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. В шаблоне XSL-T первый аргумент функции %1 должен быть строковым литералом, если функция используется для сравнения. - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. В шаблоне XSL-T первый аргумент функции %1 должен быть литералом или ссылкой на переменную, если функция используется для сравнения. - In an XSL-T pattern, function %1 cannot have a third argument. В шаблоне XSL-T у функции %1 не должно быть третьего аргумента. - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. В шаблоне XSL-T только функции %1 и %2 могут использоваться для сравнения, но не %3. - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. В шаблоне XSL-T не может быть использована ось %1 - только оси %2 или %3. - %1 is an invalid template mode name. %1 не является корректным шаблоном имени режима. - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. Имя переменной, связанной с выражением for, должно отличаться от позиционной переменной. Две переменные с именем %1 конфликтуют. - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. Возможность проверки по схеме не поддерживается. Выражения %1 не могут использоваться. - None of the pragma expressions are supported. Therefore, a fallback expression must be present Ни одно из выражений pragma не поддерживается. Должно существовать запасное выражение - Each name of a template parameter must be unique; %1 is duplicated. Имя каждого параметра шаблона должно быть уникальным, но %1 повторяется. - No function with name %1 is available. Функция с именем %1 отсутствует. - %1 is not a valid numeric literal. %1 не является корректным числовым литералом. - W3C XML Schema identity constraint selector - W3C XML Schema identity constraint field - A construct was encountered which is disallowed in the current language(%1). Встречена конструкция, запрещённая для текущего языка (%1). - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). Пространство имён %1 может быть связано только с %2 (в данном случае уже предопределено). - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). Префикс %1 может быть связан только с %2 (в данном случае уже предопределено). - An attribute with name %1 has already appeared on this element. Атрибут с именем %1 уже существует для данного элемента. - A direct element constructor is not well-formed. %1 is ended with %2. Прямой конструктор элемента составлен некорректно. %1 заканчивается на %2. - The name %1 does not refer to any schema type. Название %1 не соответствует ни одному типу схемы. - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. %1 - сложный тип. Преобразование к сложным типам невозможно. Однако, преобразование к атомарным типам как %2 работает. - %1 is not an atomic type. Casting is only possible to atomic types. %1 - не атомарный тип. Преобразование возможно только к атомарным типам. - %1 is not a valid name for a processing-instruction. %1 не является корректным названием инструкции обработки. - The name of an extension expression must be in a namespace. Название выражения расширения должно быть в пространстве имён. - Required type is %1, but %2 was found. Требуется тип %1, но обнаружен %2. - Promoting %1 to %2 may cause loss of precision. Преобразование %1 к %2 может снизить точность. - It's not possible to add attributes after any other kind of node. Невозможно добавлять атрибуты после любого другого вида узла. - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. Поддерживается только Unicode Codepoint Collation (%1). %2 не поддерживается. - Integer division (%1) by zero (%2) is undefined. Целочисленное деление (%1) на нуль (%2) не определено. - Division (%1) by zero (%2) is undefined. Деление (%1) на нуль (%2) не определено. - Modulus division (%1) by zero (%2) is undefined. Деление по модулю (%1) на нуль (%2) не определено. - %1 takes at most %n argument(s). %2 is therefore invalid. %1 принимает не более %n аргумента. Следовательно, %2 некорректно. @@ -10626,7 +8464,6 @@ Please choose a different file name. - %1 requires at least %n argument(s). %2 is therefore invalid. %1 принимает не менее %n аргумента. Следовательно, %2 некорректно. @@ -10635,1655 +8472,1258 @@ Please choose a different file name. - The root node of the second argument to function %1 must be a document node. %2 is not a document node. Корневой узел второго аргумента функции %1 должен быть документом. %2 не является документом. - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) Пространство имён для пользовательских функций не может быть пустым (попробуйте предопределённый префикс %1, который существует для подобных ситуаций) - - A default namespace declaration must occur before function, variable, and option declarations. Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций. - Namespace declarations must occur before function, variable, and option declarations. Объявление пространства имён должно быть до объявления функций, переменных и опций. - Module imports must occur before function, variable, and option declarations. Импортируемые модули должны быть указаны до объявления функций, переменных и опций. - %1 is not a whole number of minutes. %1 не является полным количеством минут. - Attribute %1 can't be serialized because it appears at the top level. Атрибут %1 не может быть сериализован, так как присутствует на верхнем уровне. - %1 is an unsupported encoding. Кодировка %1 не поддерживается. - %1 contains octets which are disallowed in the requested encoding %2. %1 содержит октеты, которые недопустимы в требуемой кодировке %2. - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. Символ с кодом %1, присутствующий в %2 при использовании кодировки %3, не является допустимым символом XML. - Ambiguous rule match. Неоднозначное соответствие правилу. - In a namespace constructor, the value for a namespace cannot be an empty string. В конструкторе пространства имён значение пространства имён не может быть пустой строкой. - The prefix must be a valid %1, which %2 is not. Префикс должен быть корректным %1, но %2 им не является. - The prefix %1 cannot be bound. Префикс%1 не может быть связан. - Only the prefix %1 can be bound to %2 and vice versa. Только префикс %1 может быть связан с %2 и наоборот. - The parameter %1 is required, but no corresponding %2 is supplied. Необходим параметр %1 , но соответствующего %2 не передано. - The parameter %1 is passed, but no corresponding %2 exists. Передан параметр %1 , но соответствующего %2 не существует. - The URI cannot have a fragment URI не может содержать фрагмент - Element %1 is not allowed at this location. Элемент %1 недопустим в этом месте. - Text nodes are not allowed at this location. Текстовые узлы недопустимы в этом месте. - Parse error: %1 Ошибка разбора: %1 - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. Значение атрибута версии XSL-T должно быть типа %1, но %2 им не является. - Running an XSL-T 1.0 stylesheet with a 2.0 processor. Выполняется таблица стилей XSL-T 1.0 с обработчиком версии 2.0. - Unknown XSL-T attribute %1. Неизвествный атрибут XSL-T %1. - Attribute %1 and %2 are mutually exclusive. Атрибуты %1 и %2 взаимоисключающие. - In a simplified stylesheet module, attribute %1 must be present. В модуле упрощённой таблицы стилей обязан присутствовать атрибут %1. - If element %1 has no attribute %2, it cannot have attribute %3 or %4. Если элемент %1 не имеет атрибут %2, у него не может быть атрибутов %3 и %4. - Element %1 must have at least one of the attributes %2 or %3. Элемент %1 должен иметь как минимум один из атрибутов %2 или %3. - At least one mode must be specified in the %1-attribute on element %2. Как минимум один режим должен быть указан в атрибуте %1 элемента %2. - Element %1 must come last. Элемент %1 должен идти последним. - At least one %1-element must occur before %2. Как минимум один элемент %1 должен быть перед %2. - Only one %1-element can appear. Должен быть только один элемент %1. - At least one %1-element must occur inside %2. Как минимум один элемент %1 должен быть внутри %2. - When attribute %1 is present on %2, a sequence constructor cannot be used. Если %2 содержит атрибут %1, конструктор последовательности не может быть использован. - Element %1 must have either a %2-attribute or a sequence constructor. Элемент %1 должен иметь атрибут %2 или конструктор последовательности. - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. Если параметр необходим, значение по умолчание не может быть передано через атрибут %1 или конструктор последовательности. - Element %1 cannot have children. Элемент %1 не может иметь потомков. - Element %1 cannot have a sequence constructor. Элемент %1 не может иметь конструктор последовательности. - - The attribute %1 cannot appear on %2, when it is a child of %3. У %2 не может быть атрибута %1, когда он является потомком %3. - A parameter in a function cannot be declared to be a tunnel. Параметр функции не может быть объявлен туннелем. - This processor is not Schema-aware and therefore %1 cannot be used. Данный обработчик не работает со схемами, следовательно, %1 не может использоваться. - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. Элементы верхнего уровня таблицы стилей должны быть в пространстве имен, которым %1 не является. - The value for attribute %1 on element %2 must either be %3 or %4, not %5. Значение атрибута %1 элемента %2 должно быть или %3, или %4, но не %5. - Attribute %1 cannot have the value %2. Атрибут %1 не может принимать значение %2. - The attribute %1 can only appear on the first %2 element. Атрибут %1 может быть только у первого элемента %2. - At least one %1 element must appear as child of %2. Как минимум один элемент %1 должен быть в %2. - %1 has inheritance loop in its base type %2. - - Circular inheritance of base type %1. - Circular inheritance of union %1. - %1 is not allowed to derive from %2 by restriction as the latter defines it as final. - %1 is not allowed to derive from %2 by extension as the latter defines it as final. - Base type of simple type %1 cannot be complex type %2. - Simple type %1 cannot have direct base type %2. - - Simple type %1 is not allowed to have base type %2. - Simple type %1 can only have simple atomic type as base type. - Simple type %1 cannot derive from %2 as the latter defines restriction as final. - - Variety of item type of %1 must be either atomic or union. - - Variety of member types of %1 must be atomic. - - %1 is not allowed to derive from %2 by list as the latter defines it as final. - Simple type %1 is only allowed to have %2 facet. - Base type of simple type %1 must have variety of type list. - Base type of simple type %1 has defined derivation by restriction as final. - Item type of base type does not match item type of %1. - - Simple type %1 contains not allowed facet type %2. - - %1 is not allowed to derive from %2 by union as the latter defines it as final. - %1 is not allowed to have any facets. - Base type %1 of simple type %2 must have variety of union. - Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. - Member type %1 cannot be derived from member type %2 of %3's base type %4. - Derivation method of %1 must be extension because the base type %2 is a simple type. - Complex type %1 has duplicated element %2 in its content model. - Complex type %1 has non-deterministic content. - Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. - Content model of complex type %1 is not a valid extension of content model of %2. - Complex type %1 must have simple content. - Complex type %1 must have the same simple type as its base class %2. - Complex type %1 cannot be derived from base type %2%3. - Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. - Complex type %1 with simple content cannot be derived from complex base type %2. - Item type of simple type %1 cannot be a complex type. - Member type of simple type %1 cannot be a complex type. - %1 is not allowed to have a member type with the same name as itself. - - - %1 facet collides with %2 facet. - %1 facet must have the same value as %2 facet of base type. - %1 facet must be equal or greater than %2 facet of base type. - - - - - - - - %1 facet must be less than or equal to %2 facet of base type. - %1 facet contains invalid regular expression - Unknown notation %1 used in %2 facet. - %1 facet contains invalid value %2: %3. - %1 facet cannot be %2 or %3 if %4 facet of base type is %5. - %1 facet cannot be %2 if %3 facet of base type is %4. - - - %1 facet must be less than or equal to %2 facet. - - - %1 facet must be less than %2 facet of base type. - - %1 facet and %2 facet cannot appear together. - - - %1 facet must be greater than %2 facet of base type. - - %1 facet must be less than %2 facet. - - %1 facet must be greater than or equal to %2 facet of base type. - Simple type contains not allowed facet %1. - %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. - Only %1 and %2 facets are allowed when derived by union. - - %1 contains %2 facet with invalid data: %3. - Attribute group %1 contains attribute %2 twice. - Attribute group %1 contains two different attributes that both have types derived from %2. - Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. - Complex type %1 contains attribute %2 twice. - Complex type %1 contains two different attributes that both have types derived from %2. - Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. - Element %1 is not allowed to have a value constraint if its base type is complex. - Element %1 is not allowed to have a value constraint if its type is derived from %2. - - Value constraint of element %1 is not of elements type: %2. - Element %1 is not allowed to have substitution group affiliation as it is no global element. - Type of element %1 cannot be derived from type of substitution group affiliation. - Value constraint of attribute %1 is not of attributes type: %2. - Attribute %1 has value constraint but has type derived from %2. - %1 attribute in derived complex type must be %2 like in base type. - Attribute %1 in derived complex type must have %2 value constraint like in base type. - Attribute %1 in derived complex type must have the same %2 value constraint like in base type. - Attribute %1 in derived complex type must have %2 value constraint. - processContent of base wildcard must be weaker than derived wildcard. - - Element %1 exists twice with different types. - Particle contains non-deterministic wildcards. - - Base attribute %1 is required but derived attribute is not. - Type of derived attribute %1 cannot be validly derived from type of base attribute. - Value constraint of derived attribute %1 does not match value constraint of base attribute. - Derived attribute %1 does not exist in the base definition. - Derived attribute %1 does not match the wildcard in the base definition. - Base attribute %1 is required but missing in derived definition. - Derived definition contains an %1 element that does not exists in the base definition - Derived wildcard is not a subset of the base wildcard. - %1 of derived wildcard is not a valid restriction of %2 of base wildcard - Attribute %1 from base type is missing in derived type. - Type of derived attribute %1 differs from type of base attribute. - Base definition contains an %1 element that is missing in the derived definition - %1 references unknown %2 or %3 element %4. - %1 references identity constraint %2 that is no %3 or %4 element. - %1 has a different number of fields from the identity constraint %2 that it references. - Base type %1 of %2 element cannot be resolved. - Item type %1 of %2 element cannot be resolved. - Member type %1 of %2 element cannot be resolved. - - - Type %1 of %2 element cannot be resolved. - Base type %1 of complex type cannot be resolved. - %1 cannot have complex base type that has a %2. - Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. - Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. - Type of %1 element must be a simple type, %2 is not. - Substitution group %1 of %2 element cannot be resolved. - Substitution group %1 has circular definition. - - Duplicated element names %1 in %2 element. - - - - Reference %1 of %2 element cannot be resolved. - Circular group reference for %1. - %1 element is not allowed in this scope - %1 element cannot have %2 attribute with value other than %3. - %1 element cannot have %2 attribute with value other than %3 or %4. - %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. - Attribute group %1 has circular reference. - %1 attribute in %2 must have %3 use like in base type %4. - Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. - %1 has attribute wildcard but its base type %2 has not. - Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. - Enumeration facet contains invalid content: {%1} is not a value of type %2. - Namespace prefix of qualified name %1 is not defined. - - %1 element %2 is not a valid restriction of the %3 element it redefines: %4. - Empty particle cannot be derived from non-empty particle. - Derived particle is missing element %1. - Derived element %1 is missing value constraint as defined in base particle. - Derived element %1 has weaker value constraint than base particle. - Fixed value constraint of element %1 differs from value constraint in base particle. - Derived element %1 cannot be nillable as base element is not nillable. - Block constraints of derived element %1 must not be more weaker than in the base element. - Simple type of derived element %1 cannot be validly derived from base element. - Complex type of derived element %1 cannot be validly derived from base element. - Element %1 is missing in derived particle. - Element %1 does not match namespace constraint of wildcard in base particle. - Wildcard in derived particle is not a valid subset of wildcard in base particle. - processContent of wildcard in derived particle is weaker than wildcard in base particle. - Derived particle allows content that is not allowed in the base particle. - Can not process unknown element %1, expected elements are: %2. - Element %1 is not allowed in this scope, possible elements are: %2. - Child element is missing in that scope, possible child elements are: %1. - Document is not a XML schema. - %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. - %1 attribute of %2 element contains invalid content: {%3}. - Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. - - Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. - %1 element is not allowed to have the same %2 attribute value as the target namespace %3. - %1 element without %2 attribute is not allowed inside schema without target namespace. - - %1 element is not allowed inside %2 element if %3 attribute is present. - - - %1 element has neither %2 attribute nor %3 child element. - - - - - - - - - - - - - - %1 element with %2 child element must not have a %3 attribute. - %1 attribute of %2 element must be %3 or %4. - %1 attribute of %2 element must have a value of %3. - - %1 attribute of %2 element must have a value of %3 or %4. - - - - - - - - - - - - - - %1 element must not have %2 and %3 attribute together. - - Content of %1 attribute of %2 element must not be from namespace %3. - - %1 attribute of %2 element must not be %3. - %1 attribute of %2 element must have the value %3 because the %4 attribute is set. - Specifying use='prohibited' inside an attribute group has no effect. - %1 element must have either %2 or %3 attribute. - %1 element must have either %2 attribute or %3 or %4 as child element. - %1 element requires either %2 or %3 attribute. - Text or entity references not allowed inside %1 element Текст или ссылка на объект недопустимы в качестве содержимого элемента %1 - - %1 attribute of %2 element must contain %3, %4 or a list of URIs. - %1 element is not allowed in this context. - %1 attribute of %2 element has larger value than %3 attribute. - Prefix of qualified name %1 is not defined. - - %1 attribute of %2 element must either contain %3 or the other values. - Component with ID %1 has been defined previously. - Element %1 already defined. Элемент %1 уже определён. - Attribute %1 already defined. Атрибут %1 уже определён. - Type %1 already defined. Тип %1 уже определён. - Attribute group %1 already defined. - Element group %1 already defined. Группа элементов %1 уже определёна. - Notation %1 already defined. - Identity constraint %1 already defined. - Duplicated facets in simple type %1. - - - %1 is not valid according to %2. %1 некорректно в соответствии с %2. - String content does not match the length facet. - String content does not match the minLength facet. - String content does not match the maxLength facet. - String content does not match pattern facet. - String content is not listed in the enumeration facet. - Signed integer content does not match the maxInclusive facet. - Signed integer content does not match the maxExclusive facet. - Signed integer content does not match the minInclusive facet. - Signed integer content does not match the minExclusive facet. - Signed integer content is not listed in the enumeration facet. - Signed integer content does not match pattern facet. - Signed integer content does not match in the totalDigits facet. - Unsigned integer content does not match the maxInclusive facet. - Unsigned integer content does not match the maxExclusive facet. - Unsigned integer content does not match the minInclusive facet. - Unsigned integer content does not match the minExclusive facet. - Unsigned integer content is not listed in the enumeration facet. - Unsigned integer content does not match pattern facet. - Unsigned integer content does not match in the totalDigits facet. - Double content does not match the maxInclusive facet. - Double content does not match the maxExclusive facet. - Double content does not match the minInclusive facet. - Double content does not match the minExclusive facet. - Double content is not listed in the enumeration facet. - Double content does not match pattern facet. - Decimal content does not match in the fractionDigits facet. - Decimal content does not match in the totalDigits facet. - Date time content does not match the maxInclusive facet. - Date time content does not match the maxExclusive facet. - Date time content does not match the minInclusive facet. - Date time content does not match the minExclusive facet. - Date time content is not listed in the enumeration facet. - Date time content does not match pattern facet. - Duration content does not match the maxInclusive facet. - Duration content does not match the maxExclusive facet. - Duration content does not match the minInclusive facet. - Duration content does not match the minExclusive facet. - Duration content is not listed in the enumeration facet. - Duration content does not match pattern facet. - Boolean content does not match pattern facet. - Binary content does not match the length facet. - Binary content does not match the minLength facet. - Binary content does not match the maxLength facet. - Binary content is not listed in the enumeration facet. - Invalid QName content: %1. Некорректное содержимое QName: %1. - QName content is not listed in the enumeration facet. - QName content does not match pattern facet. - Notation content is not listed in the enumeration facet. - List content does not match length facet. - List content does not match minLength facet. - List content does not match maxLength facet. - List content is not listed in the enumeration facet. - List content does not match pattern facet. - Union content is not listed in the enumeration facet. - Union content does not match pattern facet. - Data of type %1 are not allowed to be empty. - Element %1 is missing child element. - There is one IDREF value with no corresponding ID: %1. - Loaded schema file is invalid. Загруженный файл схемы некорректен. - %1 contains invalid data. %1 содержит некорректные данные. - xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. Пространство имён xsi:schemaLocation %1 уже встречалось ранее в данном документе. - xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. xsi:noNamespaceSchemaLocation не может встречаться после первого не-`namespace` элемента или атрибута. - No schema defined for validation. Схема для проверки не определена. - No definition for element %1 available. Отсутствует определение элемента %1. - - - Specified type %1 is not known to the schema. - Element %1 is not defined in this scope. Элемент %1 не определён в данном контексте. - Declaration for element %1 does not exist. - Element %1 contains invalid content. - Element %1 is declared as abstract. - Element %1 is not nillable. Элемент %1 необнуляемый. - Attribute %1 contains invalid data: %2 - Element contains content although it is nillable. Элемент необнуляемый, т.к. имеет содержимое. - Fixed value constraint not allowed if element is nillable. - Element %1 cannot contain other elements, as it has a fixed content. Элемент %1 не может содержать другие элементы, т.к. имеет статическое содержимое. - Specified type %1 is not validly substitutable with element type %2. - Complex type %1 is not allowed to be abstract. - Element %1 contains not allowed attributes. - - Element %1 contains not allowed child element. - - Content of element %1 does not match its type definition: %2. - - - Content of element %1 does not match defined value constraint. - Element %1 contains not allowed child content. - Element %1 contains not allowed text content. - Element %1 is missing required attribute %2. - Attribute %1 does not match the attribute wildcard. - Declaration for attribute %1 does not exist. - Element %1 contains two attributes of type %2. - Attribute %1 contains invalid content. - Element %1 contains unknown attribute %2. - - Content of attribute %1 does not match its type definition: %2. - - Content of attribute %1 does not match defined value constraint. - Non-unique value found for constraint %1. - Key constraint %1 contains absent fields. - Key constraint %1 contains references nillable element %2. - No referenced value found for key reference %1. - More than one value found for field %1. Для поля %1 найдено более одного значения. - Field %1 has no simple type. - ID value '%1' is not unique. Значение ID "%1" неуникально. - '%1' attribute contains invalid QName content: %2. Атрибут `%1` имеет некорректное содержимое QName: %2. diff --git a/translations/qtconfig_ru.ts b/translations/qtconfig_ru.ts index 2d435e6..7137d21 100644 --- a/translations/qtconfig_ru.ts +++ b/translations/qtconfig_ru.ts @@ -4,151 +4,114 @@ MainWindow - Desktop Settings (Default) Настройки рабочего стола (по умолчанию) - Choose style and palette based on your desktop settings. Выбор стиля и палитры на основе настроек рабочего стола. - On The Spot - - - - Auto (default) Автоматически (по умолчанию) - Choose audio output automatically. Автоматический выбор звукового выхода. - - aRts aRts - Experimental aRts support for GStreamer. Экспериментальная поддержка aRts в GStreamer. - Phonon GStreamer backend not available. Модуль поддержки GStreamer недоступен. - Choose render method automatically Автоматический выбор метода отрисовки - - X11 X11 - Use X11 Overlays Использовать оверлеи X11 - - OpenGL OpenGL - Use OpenGL if available Использовать OpenGL, если возможно - - Software Программный - Use simple software rendering Использовать простую программную отрисовку - No changes to be saved. Нет изменений для сохранения. - Saving changes... Сохранение изменений... - Over The Spot - Off The Spot - Root - Select a Directory Выбор каталога - <h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). <h3>%1</h3><br/>Версия %2<br/><br/>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения. - - - Qt Configuration Конфигурация Qt - Save Changes Сохранение изменений - Save changes to settings? Сохранить изменения настроек? - &Yes &Да - &No &Нет - &Cancel От&мена @@ -156,347 +119,278 @@ MainWindowBase - Qt Configuration Конфигурация Qt - Appearance Внешний вид - GUI Style Стиль пользовательского графического интерфейса - Select GUI &Style: &Стиль интерфейса: - Build Palette Палитра - &3-D Effects: Эффекты &3D: - Window Back&ground: &Фон окна: - &Tune Palette... &Настроить палитру... - Please use the KDE Control Center to set the palette. Используйте Центр управления KDE для настройки цветов. - Preview Предпросмотр - Select &Palette: Выбор &палитры: - Active Palette Палитра активных элементов - Inactive Palette Палитра неактивных элементов - Disabled Palette Палитра выключенных элементов - Fonts Шрифты - Default Font Шрифт по умолчанию - &Style: &Начертание: - &Point Size: &Размер: - F&amily: &Шрифт: - Sample Text Текст для примера (Sample Text) - Font Substitution Подстановка шрифтов - S&elect or Enter a Family: &Выберите шрифт для замены: - Current Substitutions: Текущие замены: - Up Выше - Down Ниже - Remove Удалить - Select s&ubstitute Family: &Заменять на шрифт: - Add Добавить - Interface Интерфейс - Feel Settings Настройка указателя - ms мс - &Double Click Interval: &Интервал двойного щелчка: - No blinking Без мигания - &Cursor Flash Time: &Период мигания курсора: - lines строк - Wheel &Scroll Lines: &Прокручивать строк при повороте колёсика: - Resolve symlinks in URLs Разрешать символьные ссылки в URL-ах - GUI Effects Эффекты пользовательского интерфейса - &Enable &Включить - Alt+E Alt+D - &Menu Effect: Эффект &меню: - C&omboBox Effect: Эффект &выпадающего списка: - &ToolTip Effect: Эффект &подсказки: - Tool&Box Effect: Эффект панели &инструментов: - Disable Выключен - Animate Анимация - Fade Затухание - Global Strut Минимальные размеры - Minimum &Width: Минимальная &ширина: - Minimum Hei&ght: Минимальная в&ысота: - pixels пикселей - Enhanced support for languages written right-to-left Расширенная поддержка письма справа налево - XIM Input Style: Стиль ввода XIM: - On The Spot - Over The Spot - Off The Spot - Root - Default Input Method: Метод ввода по умолчанию: - Printer Принтер - Enable Font embedding Разрешить встраивание шрифтов - Font Paths Пути к шрифтам - Browse... Обзор... - Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. Нажмите кнопку <b>Обзор...</b> или укажите каталог и нажмите Ввод для добавления его в список. - Phonon Phonon - About Phonon О Phonon - Current Version: Текущая версия: - Not available Недоступно - Website: Вэб-сайт: - <!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; } @@ -509,12 +403,10 @@ p, li { white-space: pre-wrap; } <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> - About GStreamer О GStreamer - <!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; } @@ -527,22 +419,18 @@ p, li { white-space: pre-wrap; } <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> - GStreamer backend settings Настройки модуля GStreamer - Preferred audio sink: Предпочитаемое звуковое устройство: - Preferred render method: Предпочитаемый метод отрисовки: - <!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; } @@ -555,57 +443,46 @@ p, li { white-space: pre-wrap; } <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;">Внимание: Изменение данных настроек может повлечь невозможность корректного запуска приложений.</span></p></body></html> - &File &Файл - &Help &Справка - &Save &Сохранить - Save Сохранить - Ctrl+S Ctrl+S - E&xit В&ыход - Exit Выход - &About &О программе - About О программе - About &Qt О &Qt - About Qt О Qt @@ -613,207 +490,166 @@ p, li { white-space: pre-wrap; } PaletteEditorAdvancedBase - Tune Palette Настройка палитры - <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> <b>Изменение палитры</b><p>Изменение палитры текущего виджета или формы.</p><p>Используйте сформированную палитру или выберите цвета для каждой группы цветов и каждой их роли.</p><p>Палитру можно проверить на виджетах в разных режимах отображения в разделе предпросмотра.</p> - Select &Palette: Выбор &палитры: - Active Palette Палитра активных элементов - Inactive Palette Палитра неактивных элементов - Disabled Palette Палитра выключенных элементов - Auto Автоматически - Build inactive palette from active Создать неактивную палитру из активной - Build disabled palette from active Создать выключенную палитру из активной - Central color &roles Роли &цветов - Choose central color role Выберите роль цвета - <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> <b>Выбор роли цвета.</b><p>Доступны следующие роли: <ul><li>Window - основной цвет фона.</li> <li>WindowText - основной цвет текста.</li> <li>Base - используется в качестве фона для, например, виджетов с текстовыми полями, обычно, белый или другой светлый цвет.</li> <li>Text - цвет текста используемый совместно с Base. Обычно, он совпадает с WindowText, так как в этом случае получается максимальный контраст и с Window, и с Base.</li> <li>Button - основной цвет фона кнопки, которой требуется цвет отличный от Window, например, в стиле Macintosh.</li> <li>ButtonText - цвет текста используемый совместно с Button.</li> <li>Highlight - цвет для обозначения выбранного или выделенного элемента.</li> <li>HighlightedText - цвет текста контрастирующий с Highlight.</li> <li>BrightText - цвет текста, который отличается от WindowText и хорошо контрастирует с черным.</li></ul></p> - Window - WindowText - Button - Base - Text - BrightText - ButtonText - Highlight - HighlightedText - &Select Color: &Выбор цвета: - Choose a color Выберите цвет - Choose a color for the selected central color role. Выберите цвет для указанной роли. - 3-D shadow &effects Эффекты т&рехмерной тени - Build &from button color Получ&ить из цвета кнопки - Generate shadings Создание полутонов - Check to let 3D-effect colors be calculated from button-color. Включите, чтобы цвета эффекта трёхмерности были получены из цвета кнопки. - Choose 3D-effect color role Выбор роли цвета дял эффекта трёхмерности - <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> <b>Выбор роли цвета.</b><p>Доступны следующие роли: <ul> <li>Light - светлее цвета Button. </li> <li>Midlight - среднее между Light и Button. </li> <li>Mid - среднее между Button и Dark. </li> <li>Dark - темнее цвета Button. </li> <li>Shadow - очень темный цвет. </li> </ul> - Light - Midlight - Mid - Dark - Shadow - Select Co&lor: Выбор &цвета: - Choose a color for the selected effect color role. Выбор цвета для указанной роли. - OK Принять - Close dialog and apply all changes. Закрыть окно с применением изменений. - Cancel Отмена - Close dialog and discard all changes. Закрыть окно с отменой изменений. @@ -821,7 +657,6 @@ p, li { white-space: pre-wrap; } PreviewFrame - Desktop settings will only take effect after an application restart. Настройки рабочего стола применятся после перезапуска приложения. @@ -829,62 +664,50 @@ p, li { white-space: pre-wrap; } PreviewWidgetBase - Preview Window Окно предпросмотра - ButtonGroup ButtonGroup - RadioButton1 RadioButton1 - RadioButton2 RadioButton2 - RadioButton3 RadioButton3 - ButtonGroup2 ButtonGroup2 - CheckBox1 CheckBox1 - CheckBox2 CheckBox2 - LineEdit LineEdit - ComboBox ComboBox - PushButton PushButton - <p> <a href="http://qt.nokia.com">http://qt.nokia.com</a> </p> diff --git a/translations/qvfb_ru.ts b/translations/qvfb_ru.ts index 28f7010..a1988de 100644 --- a/translations/qvfb_ru.ts +++ b/translations/qvfb_ru.ts @@ -4,71 +4,54 @@ AnimationSaveWidget - - Record Записать - Reset Сбросить - Save Сохранить - Save in MPEG format (requires netpbm package installed) Сохранить в формат MPEG (требуется установленный пакет netpbm) - - Click record to begin recording. Нажмите "Записать" для начала записи. - - Finished saving. Сохранение завершено. - Paused. Click record to resume, or save if done. Приостановлено. Нажмите "Записать" для продолжения или "Сохранить", если готово. - Pause Пауза - Recording... Идёт запись... - Saving... Сохранение... - - Save animation... Сохранение анимации... - Save canceled. Сохранение отменено. - Save failed! Сохранение не удалось! @@ -76,193 +59,155 @@ Config - Configure Настройка - Size Размер - 176x220 "SmartPhone" 176x220 "SmartPhone" - 240x320 "PDA" 240x320 "PDA" - 320x240 "TV" / "QVGA" 320x240 "TV" / "QVGA" - 640x480 "VGA" 640x480 "VGA" - 800x480 800x480 - 800x600 800x600 - 1024x768 1024x768 - Custom Особый - Depth Глубина - 1 bit monochrome 1 бит (монохромный) - 2 bit grayscale 2 бита (градации серого) - 4 bit grayscale 4 бита (градации серого) - 8 bit 8 бит - 12 (16) bit 12 (16) бит - 15 bit 15 бит - 16 bit 16 бит - 18 bit 18 бит - 24 bit 24 бита - 32 bit 32 бита - 32 bit ARGB 32 бита (ARGB) - Swap red and blue channels Поменять синий и красный каналы - BGR format Формат BGR - Skin Обложка - None Нет - Emulate touch screen (no mouse move) указателя? Эмулировать тачскрин (без перемещения мыши) - Emulate LCD screen (Only with fixed zoom of 3.0 times magnification) Эмулировать ж/к экран (только с 3-х кратным увеличением) - <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>. <p>Имейте в виду, что программы, использующие фрэймбуфер, будут завершены, если изменится <i>размер</i> и/или <i>глубина</i> экрана. - Gamma Гамма - Blue Синий - 1.0 1.0 - Green Зеленый - All Все - Red Красный - Set all to 1.0 Выставить все в 1.0 - &OK &ОК - &Cancel От&мена @@ -270,57 +215,46 @@ DeviceSkin - The image file '%1' could not be loaded. Не удалось загрузить изображение '%1'. - The skin directory '%1' does not contain a configuration file. Каталог обложки '%1' не содержит файла настроек. - The skin configuration file '%1' could not be opened. Не удалось открыть файл настроек обложки '%1'. - The skin configuration file '%1' could not be read: %2 Не удалось прочитать файл настроек обложки '%1': %2 - Syntax error: %1 Синтаксическая ошибка: %1 - The skin "up" image file '%1' does not exist. Файл изображения "up" '%1' не существует. - The skin "down" image file '%1' does not exist. Файл изображения "down" '%1' не существует. - The skin "closed" image file '%1' does not exist. Файл изображения "closed" '%1' не существует. - The skin cursor image file '%1' does not exist. Файл изображения курсора '%1' не существует. - Syntax error in area definition: %1 Синтаксическая ошибка в определении области: %1 - Mismatch in number of areas, expected %1, got %2. Несовпадение количества зон: ожидается %1, указано %2. @@ -328,17 +262,14 @@ QVFb - Browse... Обзор... - Load Custom Skin... Загрузить обложку пользователя... - All QVFB Skins (*.skin) Все обложки QVFB (*.skin) -- cgit v0.12 From 87d8bd31efb2a41c7e95d22ec86904c3bb7fdd79 Mon Sep 17 00:00:00 2001 From: Trever Fischer Date: Wed, 11 Aug 2010 18:58:43 +0200 Subject: Fix some #ifdefs to compile for a specific combination of featuress that was previously unsupported Merge-request: 2444 Reviewed-by: Oswald Buddenhagen --- src/gui/kernel/qapplication_win.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index ec26e81..0c48bfd 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -716,8 +716,10 @@ static void qt_set_windows_updateScrollBar(QWidget *widget) if (QWidget *w = static_cast(o)) qt_set_windows_updateScrollBar(w); } +#ifndef QT_NO_SCROLLBAR if (qobject_cast(widget)) widget->updateGeometry(); +#endif } @@ -1499,6 +1501,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa switch (message) { #ifndef Q_WS_WINCE +#ifndef QT_NO_SESSIONMANAGER case WM_QUERYENDSESSION: { if (sm_smActive) // bogus message from windows RETURN(true); @@ -1531,6 +1534,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa RETURN(0); } +#endif case WM_DISPLAYCHANGE: if (QApplication::type() == QApplication::Tty) break; @@ -2236,6 +2240,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa } break; +#ifndef QT_NO_CONTEXTMENU case WM_CONTEXTMENU: { // it's not VK_APPS or Shift+F10, but a click in the NC area @@ -2264,6 +2269,7 @@ extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wPa } break; #endif +#endif case WM_IME_STARTCOMPOSITION: case WM_IME_ENDCOMPOSITION: -- cgit v0.12 From 59d36ea601aef6182cba0e0f5fc56cc102e29c59 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 12 Aug 2010 11:32:56 +1000 Subject: Fix broken example code Task-number: QTBUG-12839 --- src/declarative/qml/qdeclarativecontext.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp index 3d25291..a58dc6c 100644 --- a/src/declarative/qml/qdeclarativecontext.cpp +++ b/src/declarative/qml/qdeclarativecontext.cpp @@ -80,10 +80,12 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() \code QDeclarativeEngine engine; + QStringListModel modelData; QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext()); - context->setContextProperty("myModel", modelData); + context->setContextProperty("myModel", &modelData); - QDeclarativeComponent component(&engine, "ListView { model=myModel }"); + QDeclarativeComponent component(&engine); + component.setData("import Qt 4.7\nListView { model: myModel }", QUrl()); component.create(context); \endcode @@ -104,12 +106,13 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() ... }; - MyDataSet *myDataSet = new MyDataSet; + MyDataSet myDataSet; QDeclarativeEngine engine; QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext()); - context->setContextObject(myDataSet); + context->setContextObject(&myDataSet); - QDeclarativeComponent component(&engine, "ListView { model=myModel }"); + QDeclarativeComponent component(&engine); + component.setData("import Qt 4.7\nListView { model: myModel }", QUrl()); component.create(context); \endcode -- cgit v0.12 From ee7c3b576ced47d3b68da1913cdf6995144bddd2 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 12 Aug 2010 12:38:53 +1000 Subject: Only modify pixmap cache reply when protected by a mutex QTBUG-12729 --- src/declarative/util/qdeclarativepixmapcache.cpp | 2 +- .../qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp index 9ced14f..de2de21 100644 --- a/src/declarative/util/qdeclarativepixmapcache.cpp +++ b/src/declarative/util/qdeclarativepixmapcache.cpp @@ -525,6 +525,7 @@ void QDeclarativePixmapReader::cancel(QDeclarativePixmapReply *reply) mutex.lock(); if (reply->loading) { cancelled.append(reply); + reply->data = 0; // XXX if (threadObject) threadObject->processJobs(); } else { @@ -738,7 +739,6 @@ void QDeclarativePixmapData::release() if (refCount == 0) { if (reply) { - reply->data = 0; reply->reader->cancel(reply); reply = 0; } diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp index 16d2063..6b36224 100644 --- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp +++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp @@ -71,6 +71,7 @@ private slots: void parallel(); void parallel_data(); void massive(); + void cancelcrash(); private: QDeclarativeEngine engine; @@ -316,6 +317,15 @@ void tst_qdeclarativepixmapcache::massive() } } +// QTBUG-12729 +void tst_qdeclarativepixmapcache::cancelcrash() +{ + QUrl url("http://127.0.0.1:14452/cancelcrash_notexist.png"); + for (int ii = 0; ii < 1000; ++ii) { + QDeclarativePixmap pix(&engine, url); + } +} + QTEST_MAIN(tst_qdeclarativepixmapcache) #include "tst_qdeclarativepixmapcache.moc" -- cgit v0.12 From 03d9d3cf641c8dde22a903870ac2b6e58ada6eec Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 12 Aug 2010 09:09:20 +0200 Subject: qdoc: All references to -assistant and -base were removed. Flags allowed are now -creator and -online. -creator is the default. --- doc/doc.pri | 2 +- tools/qdoc3/htmlgenerator.cpp | 18 +----------------- tools/qdoc3/htmlgenerator.h | 1 - tools/qdoc3/main.cpp | 15 ++++----------- 4 files changed, 6 insertions(+), 30 deletions(-) diff --git a/doc/doc.pri b/doc/doc.pri index e1efa21..a5db3c7 100644 --- a/doc/doc.pri +++ b/doc/doc.pri @@ -20,7 +20,7 @@ $$unixstyle { QDOC = $$replace(QDOC, "/", "\\") } ADP_DOCS_QDOCCONF_FILE = -online qt-build-docs.qdocconf -QT_DOCUMENTATION = ($$QDOC -assistant qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \ +QT_DOCUMENTATION = ($$QDOC -creator qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \ linguist.qdocconf qmake.qdocconf qdeclarative.qdocconf) && \ (cd $$QT_BUILD_TREE && \ $$GENERATOR doc-build/html-qt/qt.qhp -o doc/qch/qt.qch && \ diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 9e8d768..4603a40 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -293,12 +293,8 @@ void HtmlGenerator::initializeGenerator(const Config &config) application = Online; else if (app == "creator") application = Creator; - else if (app == "assistant") - application = Assistant; - else if (app == "base") - application = Assistant; else - application = Online; + application = Creator; projectDescription = config.getString(CONFIG_DESCRIPTION); if (projectDescription.isEmpty() && !project.isEmpty()) @@ -1841,10 +1837,6 @@ void HtmlGenerator::generateHeader(const QString& title, // CheckEmptyAndLoadList activating search out() << "\n"; break; - case Assistant: - out() << "\n"; - out() << "\n"; - break; case Creator: out() << "\n"; out() << "\n"; // offline narrow @@ -1866,11 +1858,6 @@ void HtmlGenerator::generateHeader(const QString& title, generateBreadCrumbs(title,node,marker); out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); break; - case Assistant: - out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); - generateBreadCrumbs(title,node,marker); - out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); - break; case Creator: out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version()); generateBreadCrumbs(title,node,marker); @@ -1988,9 +1975,6 @@ void HtmlGenerator::generateFooter(const Node *node) out() << " -->\n"; out() << "\n"; break; - case Assistant: - out() << "\n"; - break; case Creator: out() << "\n"; break; diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index 07226f5..eab10c6 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -97,7 +97,6 @@ class HtmlGenerator : public PageGenerator enum Application { Online, - Assistant, Creator}; public: diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index 38b76a4..fa7efee 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -194,10 +194,7 @@ static void processQdocconfFile(const QString &fileName) /* Set the application to which qdoc will create the output. - The three applications are: - - base or assistant: simple, basic html output - for offline viewing in the Assistant application. + The two applications are: creator: additional formatting for viewing in the Creator application. @@ -207,9 +204,9 @@ static void processQdocconfFile(const QString &fileName) */ if (appArg.isEmpty()) { qDebug() << "Warning: Application flag not specified on" - << "command line. Options are -assistant, -creator," - << "and -online (default)."; - appArg = "online"; + << "command line. Options are -creator (default)" + << "and -online."; + appArg = "creator"; } config.setStringList(CONFIG_APPLICATION, QStringList(appArg)); @@ -484,10 +481,6 @@ int main(int argc, char **argv) else if (opt == "-obsoletelinks") { obsoleteLinks = true; } - else if (opt == "-base") - appArg = "base"; - else if (opt == "-assistant") - appArg = "assistant"; else if (opt == "-creator") appArg = "creator"; else if (opt == "-online") -- cgit v0.12 From baf8eabd2c647d6ba2bf0a9dc5103f4726808c3d Mon Sep 17 00:00:00 2001 From: Justin McPherson Date: Thu, 12 Aug 2010 16:32:11 +1000 Subject: QAudioOutput(ALSA); Fix check for available devices. ALSA can return a list of one empty item when no devices are available. Task-number: QTBUG-12690 Reviewed-by: Andrew den Exter --- src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp | 31 +++++++++++++----------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp index f663dd2..633b309 100644 --- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp +++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp @@ -431,21 +431,24 @@ QList QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) while (*n != NULL) { name = snd_device_name_get_hint(*n, "NAME"); - descr = snd_device_name_get_hint(*n, "DESC"); - io = snd_device_name_get_hint(*n, "IOID"); - if((name != NULL) && (descr != NULL) && ((io == NULL) || (io == filter))) { - QString deviceName = QLatin1String(name); - QString deviceDescription = QLatin1String(descr); - allDevices.append(deviceName.toLocal8Bit().constData()); - if(deviceDescription.contains(QLatin1String("Default Audio Device"))) - devices.append(deviceName.toLocal8Bit().constData()); - } - if(name != NULL) + if (name != 0 && qstrcmp(name, "null") != 0) { + descr = snd_device_name_get_hint(*n, "DESC"); + io = snd_device_name_get_hint(*n, "IOID"); + + if ((descr != NULL) && ((io == NULL) || (io == filter))) { + QString deviceName = QLatin1String(name); + QString deviceDescription = QLatin1String(descr); + allDevices.append(deviceName.toLocal8Bit().constData()); + if (deviceDescription.contains(QLatin1String("Default Audio Device"))) + devices.append(deviceName.toLocal8Bit().constData()); + } + free(name); - if(descr != NULL) - free(descr); - if(io != NULL) - free(io); + if (descr != NULL) + free(descr); + if (io != NULL) + free(io); + } ++n; } snd_device_name_free_hint(hints); -- cgit v0.12 From 88a417b47b758d35ef67d7a73f9b9a8ef8a843e1 Mon Sep 17 00:00:00 2001 From: Sarah Smith Date: Thu, 12 Aug 2010 17:23:27 +1000 Subject: Fix memory leak. Mac only bug - run examples/opengl/overpainting under leak detect instrument on Mac OSX to see it. Memory leak in any application that called getProcAddress() - CFStrings have to be cleaned up if the name of the function you got them from contains the word "Create" - and we weren't doing that. Reviewed-by: Gunnar Sletta --- src/opengl/qgl_mac.mm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/opengl/qgl_mac.mm b/src/opengl/qgl_mac.mm index 4d7532e..66fe7d3 100644 --- a/src/opengl/qgl_mac.mm +++ b/src/opengl/qgl_mac.mm @@ -804,17 +804,22 @@ void QGLContext::generateFontDisplayLists(const QFont & /* fnt */, int /* listBa static CFBundleRef qt_getOpenGLBundle() { CFBundleRef bundle = 0; + CFStringRef urlString = QCFString::toCFStringRef(QLatin1String("/System/Library/Frameworks/OpenGL.framework")); QCFType url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, - QCFString::toCFStringRef(QLatin1String("/System/Library/Frameworks/OpenGL.framework")), kCFURLPOSIXPathStyle, false); + urlString, kCFURLPOSIXPathStyle, false); if (url) bundle = CFBundleCreate(kCFAllocatorDefault, url); + CFRelease(urlString); return bundle; } void *QGLContext::getProcAddress(const QString &proc) const { - return CFBundleGetFunctionPointerForName(QCFType(qt_getOpenGLBundle()), - QCFString(proc)); + CFStringRef procName = QCFString(proc).toCFStringRef(proc); + void *result = CFBundleGetFunctionPointerForName(QCFType(qt_getOpenGLBundle()), + procName); + CFRelease(procName); + return result; } #ifndef QT_MAC_USE_COCOA /***************************************************************************** -- cgit v0.12 From d32127afb9b1ec49d4dc5cc672eaea11ebe56b72 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 12 Aug 2010 10:25:41 +0200 Subject: QCoreApplication::library path, ensure mutex lock ordering Do not keep the libraryPathMutex locked while calling QFactoryLoader::refreshAll QFactoryLoader also lock a mutex, and recurse into QCoreApplication::libraryPath Reviewed-by: Brad Helgrind warning for reference: ==8442== Thread #1: lock order "0xDEBA470 before 0xDF63600" violated ==8442== at 0x4C2911E: QMutex::lock() (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==8442== by 0x7EE5870: QMutexLocker::QMutexLocker(QMutex*) (qmutex.h:102) ==8442== by 0x8025A8E: QCoreApplication::libraryPaths() (qcoreapplication.cpp:2234) ==8442== by 0x8006FDC: QFactoryLoader::update() (qfactoryloader.cpp:109) ==8442== by 0x8006F32: QFactoryLoader::QFactoryLoader(char const*, QString const&, Qt::CaseSensitivity) (qfactoryloader.cpp:99) ==8442== by 0x6DE4351: qt_guiPlatformPlugin() (qguiplatformplugin.cpp:101) ==8442== by 0x6DE7A5B: QApplicationPrivate::x11_apply_settings() (qapplication_x11.cpp:934) ==8442== by 0x6DE9BAD: qt_set_x11_resources(char const*, char const*, char const*, char const*) (qapplication_x11.cpp:1111) ==8442== by 0x6DF0CB3: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2323) ==8442== by 0x6D4EF4D: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:793) ==8442== by 0x6D4EABE: QApplication::QApplication(int&, char**, int) (qapplication.cpp:712) ==8442== by 0x41350F: main (tst_examples.cpp:227) ==8442== Required order was established by acquisition of lock at 0xDEBA470 ==8442== at 0x4C2911E: QMutex::lock() (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==8442== by 0x7EE5870: QMutexLocker::QMutexLocker(QMutex*) (qmutex.h:102) ==8442== by 0x8025FC3: QCoreApplication::addLibraryPath(QString const&) (qcoreapplication.cpp:2335) ==8442== by 0x6DE792D: QApplicationPrivate::x11_apply_settings() (qapplication_x11.cpp:927) ==8442== by 0x6DE9BAD: qt_set_x11_resources(char const*, char const*, char const*, char const*) (qapplication_x11.cpp:1111) ==8442== by 0x6DF0CB3: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2323) ==8442== by 0x6D4EF4D: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:793) ==8442== by 0x6D4EABE: QApplication::QApplication(int&, char**, int) (qapplication.cpp:712) ==8442== by 0x41350F: main (tst_examples.cpp:227) ==8442== followed by a later acquisition of lock at 0xDF63600 ==8442== at 0x4C2911E: QMutex::lock() (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==8442== by 0x7EE5870: QMutexLocker::QMutexLocker(QMutex*) (qmutex.h:102) ==8442== by 0x80086A9: QFactoryLoader::refreshAll() (qfactoryloader.cpp:249) ==8442== by 0x802607E: QCoreApplication::addLibraryPath(QString const&) (qcoreapplication.cpp:2344) ==8442== by 0x6DE792D: QApplicationPrivate::x11_apply_settings() (qapplication_x11.cpp:927) ==8442== by 0x6DE9BAD: qt_set_x11_resources(char const*, char const*, char const*, char const*) (qapplication_x11.cpp:1111) ==8442== by 0x6DF0CB3: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2323) ==8442== by 0x6D4EF4D: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:793) ==8442== by 0x6D4EABE: QApplication::QApplication(int&, char**, int) (qapplication.cpp:712) ==8442== by 0x41350F: main (tst_examples.cpp:227)a --- src/corelib/kernel/qcoreapplication.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 0a5e06e..512e193 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -2308,6 +2308,7 @@ void QCoreApplication::setLibraryPaths(const QStringList &paths) if (!coreappdata()->app_libpaths) coreappdata()->app_libpaths = new QStringList; *(coreappdata()->app_libpaths) = paths; + locker.unlock(); QFactoryLoader::refreshAll(); } @@ -2341,6 +2342,7 @@ void QCoreApplication::addLibraryPath(const QString &path) if (!canonicalPath.isEmpty() && !coreappdata()->app_libpaths->contains(canonicalPath)) { coreappdata()->app_libpaths->prepend(canonicalPath); + locker.unlock(); QFactoryLoader::refreshAll(); } } -- cgit v0.12 From dd916743ad6182b38db40226e82b46596942ba39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 12 Aug 2010 12:34:36 +0200 Subject: Added way to destroy the share widget in the GL graphics system. This lets us destroy the share widget temporarily if we want to free up OpenGL resources for a while. Reviewed-by: Gunnar Sletta --- src/opengl/qwindowsurface_gl.cpp | 19 +++++++++++++++++++ src/opengl/qwindowsurface_gl_p.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index 6b82ed3..b86fb78 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -199,6 +199,7 @@ public: return widget; } + // destroys the share widget and prevents recreation void cleanup() { QGLWidget *w = widget; cleanedUp = true; @@ -206,6 +207,20 @@ public: delete w; } + // destroys the share widget, but allows it to be recreated later on + void destroy() { + if (cleanedUp) + return; + + QGLWidget *w = widget; + + // prevent potential recursions + cleanedUp = true; + widget = 0; + delete w; + cleanedUp = false; + } + static bool cleanedUp; private: @@ -233,6 +248,10 @@ QGLWidget* qt_gl_share_widget() return _qt_gl_share_widget()->shareWidget(); } +void qt_destroy_gl_share_widget() +{ + _qt_gl_share_widget()->destroy(); +} struct QGLWindowSurfacePrivate { diff --git a/src/opengl/qwindowsurface_gl_p.h b/src/opengl/qwindowsurface_gl_p.h index 5e670fe..ffc2e86 100644 --- a/src/opengl/qwindowsurface_gl_p.h +++ b/src/opengl/qwindowsurface_gl_p.h @@ -67,6 +67,7 @@ class QWidget; struct QGLWindowSurfacePrivate; Q_OPENGL_EXPORT QGLWidget* qt_gl_share_widget(); +Q_OPENGL_EXPORT void qt_destroy_gl_share_widget(); class QGLWindowSurfaceGLPaintDevice : public QGLPaintDevice { -- cgit v0.12 From e83842f99c5c76faad4a4e85ea5cecb375da1c9c Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Thu, 12 Aug 2010 11:55:29 +0100 Subject: Fixed build failure Task-number: QTBUG-12713 --- demos/spectrum/3rdparty/fftreal/fftreal.pro | 2 ++ demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h | 4 ---- demos/spectrum/app/app.pro | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/demos/spectrum/3rdparty/fftreal/fftreal.pro b/demos/spectrum/3rdparty/fftreal/fftreal.pro index c9da205..6305af4 100644 --- a/demos/spectrum/3rdparty/fftreal/fftreal.pro +++ b/demos/spectrum/3rdparty/fftreal/fftreal.pro @@ -1,5 +1,7 @@ include(../../spectrum.pri) +static: error(This library cannot be built for static linkage) + TEMPLATE = lib TARGET = fftreal diff --git a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h index b8190a9..48d614e 100644 --- a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h +++ b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h @@ -22,10 +22,6 @@ #include -#ifndef QT_DLL -# error This library is licensed under the LGPL and must be dynamically linked -#endif - #if defined(FFTREAL_LIBRARY) # define FFTREAL_EXPORT Q_DECL_EXPORT #else diff --git a/demos/spectrum/app/app.pro b/demos/spectrum/app/app.pro index 1b419db..4fe8b6d 100644 --- a/demos/spectrum/app/app.pro +++ b/demos/spectrum/app/app.pro @@ -1,5 +1,7 @@ include(../spectrum.pri) +static: error(This application cannot be statically linked to the fftreal library) + TEMPLATE = app TARGET = spectrum -- cgit v0.12 From 142ce4d38094f1588b04758a6f9ff6787a784fe3 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 12 Aug 2010 15:03:06 +0300 Subject: Make bld.inf target in Symbian mkspecs to depend on .pro file Changes to .pro file weren't previously noticed and therefore qmake wasn't rerun. Qmake command itself was also incorrect. Task-number: QTBUG-12716 Reviewed-by: Shane Kearns --- qmake/generators/symbian/symmake_abld.cpp | 12 ++++++++---- qmake/generators/symbian/symmake_sbsv2.cpp | 11 +++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp index c896ac6..85dcab4 100644 --- a/qmake/generators/symbian/symmake_abld.cpp +++ b/qmake/generators/symbian/symmake_abld.cpp @@ -249,13 +249,17 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool } else { t << "all: debug release" << endl; t << endl; + + QString qmakeCmd = "\t$(QMAKE) \"" + project->projectFile() + "\" " + buildArgs(); + t << "qmake:" << endl; - t << "\t$(QMAKE) -spec symbian-abld -o \"" << fileInfo(Option::output.fileName()).fileName() - << "\" \"" << project->projectFile() << "\"" << endl; + t << qmakeCmd << endl; t << endl; - t << BLD_INF_FILENAME ":" << endl; - t << "\t$(QMAKE)" << endl; + + t << BLD_INF_FILENAME ": " << project->projectFile() << endl; + t << qmakeCmd << endl; t << endl; + t << "$(ABLD): " BLD_INF_FILENAME << endl; t << "\tbldmake bldfiles" << endl; t << endl; diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index 534a080..036eb1d 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -278,12 +278,15 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo } else { t << "all: debug release" << endl; t << endl; + + QString qmakeCmd = "\t$(QMAKE) \"" + project->projectFile() + "\" " + buildArgs(); + t << "qmake:" << endl; - t << "\t$(QMAKE) -spec symbian-sbsv2 -o \"" << fileInfo(Option::output.fileName()).fileName() - << "\" \"" << project->projectFile() << "\"" << endl; + t << qmakeCmd << endl; t << endl; - t << BLD_INF_FILENAME ":" << endl; - t << "\t$(QMAKE)" << endl; + + t << BLD_INF_FILENAME ": " << project->projectFile() << endl; + t << qmakeCmd << endl; t << endl; QString currentClause; -- cgit v0.12 From 3ee89bc0830f69d44f272eff5a0c886bff33c92e Mon Sep 17 00:00:00 2001 From: Alexis Menard Date: Thu, 12 Aug 2010 14:31:24 +0200 Subject: Properly emit geometryChanged() when the position change. Also emit the signal at the very end, so people can rely on the resize event to adjust some stuff in their item. Reviewed-by:yoann --- src/gui/graphicsview/qgraphicswidget.cpp | 3 ++- tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp index c486c45..0fabd18 100644 --- a/src/gui/graphicsview/qgraphicswidget.cpp +++ b/src/gui/graphicsview/qgraphicswidget.cpp @@ -385,12 +385,12 @@ void QGraphicsWidget::setGeometry(const QRectF &rect) if (wd->inSetPos) { //set the new pos d->geom.moveTopLeft(pos()); + emit geometryChanged(); return; } } QSizeF oldSize = size(); QGraphicsLayoutItem::setGeometry(newGeom); - emit geometryChanged(); // Send resize event bool resized = newGeom.size() != oldSize; if (resized) { @@ -403,6 +403,7 @@ void QGraphicsWidget::setGeometry(const QRectF &rect) emit heightChanged(); QApplication::sendEvent(this, &re); } + emit geometryChanged(); } /*! diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp index a771332..bda22eb 100644 --- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp +++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp @@ -111,6 +111,7 @@ private slots: void fontPropagationSceneChange(); void geometry_data(); void geometry(); + void geometryChanged(); void width(); void height(); void getContentsMargins_data(); @@ -776,11 +777,28 @@ void tst_QGraphicsWidget::geometry() QFETCH(QSizeF, size); widget.setPos(pos); widget.resize(size); - if (!size.isNull()) + if (!size.isNull() && !pos.isNull()) + QCOMPARE(spy.count(), 2); + if (!size.isNull() && pos.isNull()) QCOMPARE(spy.count(), 1); QCOMPARE(widget.geometry(), QRectF(pos, size)); } +void tst_QGraphicsWidget::geometryChanged() +{ + QGraphicsWidget w; + w.setGeometry(0, 0, 200, 200); + QCOMPARE(w.geometry(), QRectF(0, 0, 200, 200)); + QSignalSpy spy(&w, SIGNAL(geometryChanged())); + w.setGeometry(0, 0, 100, 100); + QCOMPARE(spy.count(), 1); + QCOMPARE(w.geometry(), QRectF(0, 0, 100, 100)); + w.setPos(10, 10); + QCOMPARE(spy.count(), 2); + QCOMPARE(w.geometry(), QRectF(10, 10, 100, 100)); + +} + void tst_QGraphicsWidget::width() { QGraphicsWidget w; -- cgit v0.12 From c622cb1c9c11ef6b51f1e2da61f94b83650f6703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 10 Aug 2010 11:50:16 +0200 Subject: Fixed autotest failure in tst_qgl::clipTest. Change fb00d5003ac5d91953a95d8164180f8f56a2b0f2 introduced a slight behavioural change by leaving the surface handle dangling. We need to unset the surface handle even if we don't own it to make sure we don't access it again. Reviewed-by: Gunnar Sletta --- src/opengl/qgl_egl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp index 3763926..a154325 100644 --- a/src/opengl/qgl_egl.cpp +++ b/src/opengl/qgl_egl.cpp @@ -240,6 +240,7 @@ void QGLContextPrivate::destroyEglSurfaceForDevice() if (QGLWidget *wgl = qobject_cast(w)) { if (wgl->d_func()->eglSurfaceWindowId != wgl->winId()) { qWarning("WARNING: Potential EGL surface leak! Not destroying surface."); + eglSurface = EGL_NO_SURFACE; return; } } -- cgit v0.12 From 2efd51c2808874c9217cdaea905754ae72d4e443 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 12 Aug 2010 15:32:23 +0200 Subject: Destroy the old runtime system only when existing pixmaps were migrated. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2448 Reviewed-by: Samuel Rødal --- src/gui/painting/qgraphicssystem_runtime.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp index e1e0ad0..2828e9d 100644 --- a/src/gui/painting/qgraphicssystem_runtime.cpp +++ b/src/gui/painting/qgraphicssystem_runtime.cpp @@ -366,7 +366,7 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name) #ifdef QT_DEBUG qDebug() << "QRuntimeGraphicsSystem::setGraphicsSystem( " << name << " )"; #endif - delete m_graphicsSystem; + QGraphicsSystem *oldSystem = m_graphicsSystem; m_graphicsSystem = QGraphicsSystemFactory::create(name); m_graphicsSystemName = name; @@ -393,6 +393,8 @@ void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name) proxy->m_windowSurface.reset(m_graphicsSystem->createWindowSurface(widget)); qt_widget_private(widget)->invalidateBuffer(widget->rect()); } + + delete oldSystem; } void QRuntimeGraphicsSystem::removePixmapData(QRuntimePixmapData *pixmapData) const -- cgit v0.12 From 677b96b3bfcbccae978f0d63f7e16a35783c0eec Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Thu, 12 Aug 2010 17:29:29 +0200 Subject: QNAM HTTP: Fix crash related to aborted uploads Task-number: QTBUG-12285 --- src/network/access/qhttpnetworkconnection.cpp | 2 ++ src/network/access/qhttpnetworkconnectionchannel.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index 9e2b85e..ae4d257 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -653,6 +653,8 @@ void QHttpNetworkConnectionPrivate::removeReply(QHttpNetworkReply *reply) // is the reply associated the currently processing of this channel? if (channels[i].reply == reply) { channels[i].reply = 0; + channels[i].request = QHttpNetworkRequest(); + channels[i].resendCurrent = false; if (!reply->isFinished() && !channels[i].alreadyPipelinedRequests.isEmpty()) { // the reply had to be prematurely removed, e.g. it was not finished diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index d3576dd..6437f6f 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -647,8 +647,10 @@ void QHttpNetworkConnectionChannel::allDone() // finished request. // Note that this may trigger a segfault at some other point. But then we can fix the underlying // problem. - if (!resendCurrent) + if (!resendCurrent) { + request = QHttpNetworkRequest(); reply = 0; + } // move next from pipeline to current request if (!alreadyPipelinedRequests.isEmpty()) { -- cgit v0.12 From 5478ba712afeb11768016d05bef975a5a48ae059 Mon Sep 17 00:00:00 2001 From: Donald Carr Date: Thu, 12 Aug 2010 18:43:51 +0000 Subject: Clean up rasterfallback mechanism in DirectFB Being able to debug which paint operations are slow with Qt/DirectFB is currently only possible in debug builds (which defeats the purpose somewhat) or by frequent recompilation (with different defines). This patch cleans up the mechanism somewhat and makes it available in release builds as well. The overhead is a single int comparison so it really isn't a performance issue to have this code in place at all times. Reviewed-by: Anders Bakken --- doc/src/platforms/emb-directfb-EmbLinux.qdoc | 11 ++ .../gfxdrivers/directfb/qdirectfbpaintengine.cpp | 187 +++++++++------------ 2 files changed, 95 insertions(+), 103 deletions(-) diff --git a/doc/src/platforms/emb-directfb-EmbLinux.qdoc b/doc/src/platforms/emb-directfb-EmbLinux.qdoc index 955258e..f416819 100644 --- a/doc/src/platforms/emb-directfb-EmbLinux.qdoc +++ b/doc/src/platforms/emb-directfb-EmbLinux.qdoc @@ -153,6 +153,17 @@ manufacturer to manufacture, different operations will be optimized. This require you to define the operations you want to warn about or disable. These are listed above in the DIRECTFB_DRAWINGOPERATIONS variable. +You can also customize this with environment variables. + +E.g. If you want to disable fallbacks for drawPixmap and fillRect and also get +a warning printed on stderr when a fallback would have happened. + +\code +$ export QT_DIRECTFB_WARN_ON_RASTERFALLBACKS="FILL_RECT|DRAW_PIXMAP" +$ export QT_DIRECTFB_DISABLE_RASTERFALLBACKS="FILL_RECT|DRAW_PIXMAP" +$ ./app -qws -display directfb +\endcode + Following is a table showing which options you have. \table diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index e4a0135..d5f0d42 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -167,7 +167,6 @@ struct CachedImage static QCache imageCache(4*1024*1024); // 4 MB #endif -#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS || defined QT_DEBUG #define VOID_ARG() static_cast(false) enum PaintOperation { DRAW_RECTS = 0x0001, DRAW_LINES = 0x0002, DRAW_IMAGE = 0x0004, @@ -178,88 +177,81 @@ enum PaintOperation { DRAW_STATICTEXT = 0x8000, ALL = 0xffff }; -#ifdef QT_DEBUG -static void initRasterFallbacksMasks(int *warningMask, int *disableMask) -{ - struct { - const char *name; - PaintOperation operation; - } const operations[] = { - { "DRAW_RECTS", DRAW_RECTS }, - { "DRAW_LINES", DRAW_LINES }, - { "DRAW_IMAGE", DRAW_IMAGE }, - { "DRAW_PIXMAP", DRAW_PIXMAP }, - { "DRAW_TILED_PIXMAP", DRAW_TILED_PIXMAP }, - { "STROKE_PATH", STROKE_PATH }, - { "DRAW_PATH", DRAW_PATH }, - { "DRAW_POINTS", DRAW_POINTS }, - { "DRAW_ELLIPSE", DRAW_ELLIPSE }, - { "DRAW_POLYGON", DRAW_POLYGON }, - { "DRAW_TEXT", DRAW_TEXT }, - { "FILL_PATH", FILL_PATH }, - { "FILL_RECT", FILL_RECT }, - { "DRAW_COLORSPANS", DRAW_COLORSPANS }, - { "DRAW_ROUNDED_RECT", DRAW_ROUNDED_RECT }, - { "ALL", ALL }, - { 0, ALL } - }; - - QStringList warning = QString::fromLatin1(qgetenv("QT_DIRECTFB_WARN_ON_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'), - QString::SkipEmptyParts); - QStringList disable = QString::fromLatin1(qgetenv("QT_DIRECTFB_DISABLE_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'), - QString::SkipEmptyParts); - *warningMask = 0; - *disableMask = 0; - if (!warning.isEmpty() || !disable.isEmpty()) { - for (int i=0; operations[i].name; ++i) { - const QString name = QString::fromLatin1(operations[i].name); - int idx = warning.indexOf(name); - if (idx != -1) { - *warningMask |= operations[i].operation; - warning.erase(warning.begin() + idx); - } - idx = disable.indexOf(name); - if (idx != -1) { - *disableMask |= operations[i].operation; - disable.erase(disable.begin() + idx); - } - } - } - if (!warning.isEmpty()) { - qWarning("QDirectFBPaintEngine QT_DIRECTFB_WARN_ON_RASTERFALLBACKS Unknown operation(s): %s", - qPrintable(warning.join(QLatin1String("|")))); - } - if (!disable.isEmpty()) { - qWarning("QDirectFBPaintEngine QT_DIRECTFB_DISABLE_RASTERFALLBACKS Unknown operation(s): %s", - qPrintable(disable.join(QLatin1String("|")))); - } - -} -#endif - -static inline int rasterFallbacksMask(bool warn) +enum { RasterWarn = 1, RasterDisable = 2 }; +static inline uint rasterFallbacksMask(PaintOperation op) { + uint ret = 0; #ifdef QT_DIRECTFB_WARN_ON_RASTERFALLBACKS - if (warn) - return QT_DIRECTFB_WARN_ON_RASTERFALLBACKS; + if (op & QT_DIRECTFB_WARN_ON_RASTERFALLBACKS) + ret |= RasterWarn; #endif #ifdef QT_DIRECTFB_DISABLE_RASTERFALLBACKS - if (!warn) - return QT_DIRECTFB_DISABLE_RASTERFALLBACKS; + if (op & QT_DIRECTFB_DISABLE_RASTERFALLBACKS) + ret |= RasterDisable; #endif -#ifndef QT_DEBUG - return 0; -#else - static int warnMask = -1; + static int warningMask = -1; static int disableMask = -1; - if (warnMask == -1) - initRasterFallbacksMasks(&warnMask, &disableMask); - return warn ? warnMask : disableMask; -#endif + if (warningMask < 0) { + struct { + const char *name; + PaintOperation operation; + } const operations[] = { + { "DRAW_RECTS", DRAW_RECTS }, + { "DRAW_LINES", DRAW_LINES }, + { "DRAW_IMAGE", DRAW_IMAGE }, + { "DRAW_PIXMAP", DRAW_PIXMAP }, + { "DRAW_TILED_PIXMAP", DRAW_TILED_PIXMAP }, + { "STROKE_PATH", STROKE_PATH }, + { "DRAW_PATH", DRAW_PATH }, + { "DRAW_POINTS", DRAW_POINTS }, + { "DRAW_ELLIPSE", DRAW_ELLIPSE }, + { "DRAW_POLYGON", DRAW_POLYGON }, + { "DRAW_TEXT", DRAW_TEXT }, + { "FILL_PATH", FILL_PATH }, + { "FILL_RECT", FILL_RECT }, + { "DRAW_COLORSPANS", DRAW_COLORSPANS }, + { "DRAW_ROUNDED_RECT", DRAW_ROUNDED_RECT }, + { "ALL", ALL }, + { 0, ALL } + }; + + QStringList warning = QString::fromLatin1(qgetenv("QT_DIRECTFB_WARN_ON_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'), + QString::SkipEmptyParts); + QStringList disable = QString::fromLatin1(qgetenv("QT_DIRECTFB_DISABLE_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'), + QString::SkipEmptyParts); + warningMask = 0; + disableMask = 0; + if (!warning.isEmpty() || !disable.isEmpty()) { + for (int i=0; operations[i].name; ++i) { + const QString name = QString::fromLatin1(operations[i].name); + int idx = warning.indexOf(name); + if (idx != -1) { + warningMask |= operations[i].operation; + warning.erase(warning.begin() + idx); + } + idx = disable.indexOf(name); + if (idx != -1) { + disableMask |= operations[i].operation; + disable.erase(disable.begin() + idx); + } + } + } + if (!warning.isEmpty()) { + qWarning("QDirectFBPaintEngine QT_DIRECTFB_WARN_ON_RASTERFALLBACKS Unknown operation(s): %s", + qPrintable(warning.join(QLatin1String("|")))); + } + if (!disable.isEmpty()) { + qWarning("QDirectFBPaintEngine QT_DIRECTFB_DISABLE_RASTERFALLBACKS Unknown operation(s): %s", + qPrintable(disable.join(QLatin1String("|")))); + } + } + if (op & warningMask) + ret |= RasterWarn; + if (op & disableMask) + ret |= RasterDisable; + return ret; } -#endif -#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DEBUG template static void rasterFallbackWarn(const char *msg, const char *func, const device *dev, uint transformationType, bool simplePen, @@ -267,16 +259,14 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device * const char *nameOne, const T1 &one, const char *nameTwo, const T2 &two, const char *nameThree, const T3 &three); -#endif -#if defined QT_DEBUG || (defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS && defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS) #define RASTERFALLBACK(op, one, two, three) \ { \ - const bool disable = op & rasterFallbacksMask(false); \ - if (op & rasterFallbacksMask(true)) \ - rasterFallbackWarn(disable \ - ? "Disabled raster engine operation" \ - : "Falling back to raster engine for", \ + static const uint rasterFallbacks = rasterFallbacksMask(op); \ + switch (rasterFallbacks) { \ + case 0: break; \ + case RasterWarn: \ + rasterFallbackWarn("Falling back to raster engine for", \ __FUNCTION__, \ state()->painter->device(), \ d_func()->transformationType, \ @@ -284,26 +274,20 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device * d_func()->clipType, \ d_func()->compositionModeStatus, \ #one, one, #two, two, #three, three); \ - if (disable) \ + break; \ + case RasterDisable|RasterWarn: \ + rasterFallbackWarn("Disabled raster engine operation", \ + __FUNCTION__, \ + state()->painter->device(), \ + d_func()->transformationType, \ + d_func()->simplePen, \ + d_func()->clipType, \ + d_func()->compositionModeStatus, \ + #one, one, #two, two, #three, three); \ + case RasterDisable: \ return; \ + } \ } -#elif defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS -#define RASTERFALLBACK(op, one, two, three) \ - if (op & rasterFallbacksMask(false)) \ - return; -#elif defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS -#define RASTERFALLBACK(op, one, two, three) \ - if (op & rasterFallbacksMask(true)) \ - rasterFallbackWarn("Falling back to raster engine for", \ - __FUNCTION__, state()->painter->device(), \ - d_func()->transformationType, \ - d_func()->simplePen, \ - d_func()->clipType, \ - d_func()->compositionModeStatus, \ - #one, one, #two, two, #three, three); -#else -#define RASTERFALLBACK(op, one, two, three) -#endif template static inline void drawLines(const T *lines, int n, const QTransform &transform, IDirectFBSurface *surface); @@ -1362,7 +1346,6 @@ static inline void drawRects(const T *rects, int n, const QTransform &transform, } } -#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DEBUG template inline const T *ptr(const T &t) { return &t; } template <> inline const bool* ptr(const bool &) { return 0; } template @@ -1403,8 +1386,6 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device * qWarning("%s", qPrintable(out)); } -#endif // QT_DIRECTFB_WARN_ON_RASTERFALLBACKS - QT_END_NAMESPACE #endif // QT_NO_QWS_DIRECTFB -- cgit v0.12 From d904fe2273be5d39b54b987eef6b9cc0d1b85c4b Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 13 Aug 2010 10:10:38 +1000 Subject: Fix configure -help output. declarative module is built by default. Task-number: QTBUG-12840 --- configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 35fe2eb..7c3f9a3 100755 --- a/configure +++ b/configure @@ -3677,8 +3677,8 @@ fi -no-scripttools .... Do not build the QtScriptTools module. + -scripttools ....... Build the QtScriptTools module. - + -no-declarative .....Do not build the declarative module. - -declarative ....... Build the declarative module. + -no-declarative .....Do not build the declarative module. + + -declarative ....... Build the declarative module. -platform target ... The operating system and compiler you are building on ($PLATFORM). -- cgit v0.12 From f9fe93e6e85294274d4e0ce81db09783cfacd733 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 13 Aug 2010 12:22:46 +1000 Subject: Clear previous animation data for non-triggering animations. We need to clear the data from the last run if the animation doesn't match any of the state actions (or if there are no actions). Task-number: QTBUG-12805 --- src/declarative/util/qdeclarativeanimation.cpp | 2 ++ .../data/nonTransitionBug.qml | 30 +++++++++++++++++++++ .../tst_qdeclarativeanimations.cpp | 31 ++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index a747706..2fca09d 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -2392,6 +2392,8 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions d->actions = &data->actions; } else { delete data; + d->va->setFromSourcedValue(0); //clear previous data + d->va->setAnimValue(0, QAbstractAnimation::DeleteWhenStopped); //clear previous data d->actions = 0; } } diff --git a/tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml b/tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml new file mode 100644 index 0000000..e9dc36e --- /dev/null +++ b/tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml @@ -0,0 +1,30 @@ +import Qt 4.7 + +Rectangle { + id: root + width: 200 + height: 200 + + Rectangle { + id: mover + objectName: "mover" + } + + states: [ + State { + name: "free" + }, + State { + name: "left" + PropertyChanges { + restoreEntryValues: false + target: mover + x: 0 + } + } + ] + + transitions: Transition { + PropertyAnimation { properties: "x"; duration: 50 } + } +} diff --git a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp index ec867fe..e5943fb 100644 --- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp +++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp @@ -48,6 +48,8 @@ #include #include +#include "../../../shared/util.h" + #ifdef Q_OS_SYMBIAN // In Symbian OS test data is located in applications private dir #define SRCDIR "." @@ -82,6 +84,7 @@ private slots: void easingProperties(); void rotation(); void runningTrueBug(); + void nonTransitionBug(); }; #define QTIMED_COMPARE(lhs, rhs) do { \ @@ -762,6 +765,34 @@ void tst_qdeclarativeanimations::runningTrueBug() QVERIFY(cloud->x() > qreal(0)); } +//QTBUG-12805 +void tst_qdeclarativeanimations::nonTransitionBug() +{ + //tests that the animation values from the previous transition are properly cleared + //in the case where an animation in the transition doesn't match anything (but previously did) + QDeclarativeEngine engine; + + QDeclarativeComponent c(&engine, SRCDIR "/data/nonTransitionBug.qml"); + QDeclarativeRectangle *rect = qobject_cast(c.create()); + QVERIFY(rect != 0); + QDeclarativeItemPrivate *rectPrivate = QDeclarativeItemPrivate::get(rect); + QDeclarativeRectangle *mover = rect->findChild("mover"); + + mover->setX(100); + QCOMPARE(mover->x(), qreal(100)); + + rectPrivate->setState("left"); + QTRY_COMPARE(mover->x(), qreal(0)); + + mover->setX(100); + QCOMPARE(mover->x(), qreal(100)); + + //make sure we don't try to animate back to 0 + rectPrivate->setState("free"); + QTest::qWait(300); + QCOMPARE(mover->x(), qreal(100)); +} + QTEST_MAIN(tst_qdeclarativeanimations) #include "tst_qdeclarativeanimations.moc" -- cgit v0.12 From 7e4807fed07e4c96086af00338601223b3353d29 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Fri, 13 Aug 2010 13:58:46 +1000 Subject: Better fix for d524da81ee257a6bd67d32d0bc870280a7d5b8a4. Wrap new APIs in ifndef QT_MOBILITY_BEARER. --- src/network/bearer/qnetworkconfiguration.cpp | 7 ------- src/network/bearer/qnetworkconfiguration.h | 10 ++++++++-- src/s60installs/eabi/QtNetworku.def | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/network/bearer/qnetworkconfiguration.cpp b/src/network/bearer/qnetworkconfiguration.cpp index 60851ac..3190a30 100644 --- a/src/network/bearer/qnetworkconfiguration.cpp +++ b/src/network/bearer/qnetworkconfiguration.cpp @@ -406,13 +406,6 @@ QList QNetworkConfiguration::children() const This function is deprecated. It is equivalent to calling bearerTypeName(), however bearerType() should be used in preference. */ -QString QNetworkConfiguration::bearerName() const -{ - // This function cannot be inline as it would break Qt Mobility. - // Qt Mobility uses the Qt header as well and since the Mobility Bearer library - // does not provide bearerTypeName() we cannot use an inline function. - return bearerTypeName(); -} /*! Returns the type of bearer used by this network configuration. diff --git a/src/network/bearer/qnetworkconfiguration.h b/src/network/bearer/qnetworkconfiguration.h index 18b92a9..593dbbe 100644 --- a/src/network/bearer/qnetworkconfiguration.h +++ b/src/network/bearer/qnetworkconfiguration.h @@ -103,6 +103,7 @@ public: Q_DECLARE_FLAGS(StateFlags, StateFlag) +#ifndef QT_MOBILITY_BEARER enum BearerType { BearerUnknown, BearerEthernet, @@ -114,17 +115,22 @@ public: BearerBluetooth, BearerWiMAX }; +#endif StateFlags state() const; Type type() const; Purpose purpose() const; - // Required to maintain source compatibility with Qt Mobility. +#ifndef QT_MOBILITY_BEARER #ifdef QT_DEPRECATED - QT_DEPRECATED QString bearerName() const; + // Required to maintain source compatibility with Qt Mobility. + QT_DEPRECATED inline QString bearerName() const { return bearerTypeName(); } #endif BearerType bearerType() const; QString bearerTypeName() const; +#else + QString bearerName() const; +#endif QString identifier() const; bool isRoamingAvailable() const; diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def index 2442ee8..6b34a19 100644 --- a/src/s60installs/eabi/QtNetworku.def +++ b/src/s60installs/eabi/QtNetworku.def @@ -1131,7 +1131,7 @@ EXPORTS _ZNK21QNetworkAccessManager13configurationEv @ 1130 NONAME _ZNK21QNetworkAccessManager17networkAccessibleEv @ 1131 NONAME _ZNK21QNetworkAccessManager19activeConfigurationEv @ 1132 NONAME - _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME + _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME ABSENT _ZNK21QNetworkConfiguration10identifierEv @ 1134 NONAME _ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1135 NONAME _ZNK21QNetworkConfiguration4nameEv @ 1136 NONAME -- cgit v0.12 From 167b63d2250e7923d7b660076a80e82af07d9cdb Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Fri, 13 Aug 2010 14:01:52 +1000 Subject: Make this constructor explicit in Qt too. --- src/network/bearer/qnetworksession.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/network/bearer/qnetworksession.h b/src/network/bearer/qnetworksession.h index e7fffac..0b40147 100644 --- a/src/network/bearer/qnetworksession.h +++ b/src/network/bearer/qnetworksession.h @@ -89,11 +89,7 @@ public: OperationNotSupportedError, InvalidConfigurationError }; -#ifndef QT_MOBILITY_BEARER - QNetworkSession(const QNetworkConfiguration& connConfig, QObject* parent =0); -#else explicit QNetworkSession(const QNetworkConfiguration& connConfig, QObject* parent =0); -#endif virtual ~QNetworkSession(); bool isOpen() const; -- cgit v0.12 From ade18bab3a2c4c877baa9be2a0012d670dafb64a Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Fri, 13 Aug 2010 17:09:27 +1000 Subject: Add autotest that checks that copy and cut don't work when echomode is set to hide text/password mode Task-number: QTBUG-12086 Reviewed-by: Michael Brasser --- .../tst_qdeclarativetextinput.cpp | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index 6e15a4a..ca9009d 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -741,6 +741,30 @@ void tst_qdeclarativetextinput::copyAndPaste() { textInput->paste(); QCOMPARE(textInput->text(), QString("Hello world!Hello world!")); QCOMPARE(textInput->text().length(), 24); + + // clear copy buffer + QClipboard *clipboard = QApplication::clipboard(); + QVERIFY(clipboard); + clipboard->clear(); + + // test that copy functionality is disabled + // when echo mode is set to hide text/password mode + int index = 0; + while (index < 4) { + QDeclarativeTextInput::EchoMode echoMode = QDeclarativeTextInput::EchoMode(index); + textInput->setEchoMode(echoMode); + textInput->setText("My password"); + textInput->select(0, textInput->text().length());; + textInput->copy(); + if (echoMode == QDeclarativeTextInput::Normal) { + QVERIFY(!clipboard->text().isEmpty()); + QCOMPARE(clipboard->text(), QString("My password")); + clipboard->clear(); + } else { + QVERIFY(clipboard->text().isEmpty()); + } + index++; + } #endif } -- cgit v0.12 From b52da4ab2179079a6aff95891786d2f6598048b5 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Fri, 13 Aug 2010 12:27:55 +0200 Subject: Multiple "Edit/Special Characters" menu entries on Mac OS X (Cocoa) Every time [NSApp setMainMenu:] is called, Cocoa will add the 'Special Characters' item to the 'Edit' menu. Before adding a new entry it will make sure that menu items list doesn't contain an item with the selector 'orderFrontCharacterPalette' & a 'nil' target. We need to return the index for the first entry (we have QCocoaMenuLoader as target). Task-number: QTBUG-12842 Reviewed-by: Denis --- src/gui/kernel/qcocoamenuloader_mac.mm | 5 +++++ src/gui/kernel/qcocoamenuloader_mac_p.h | 1 + src/gui/widgets/qcocoamenu_mac.mm | 12 ++++++++++++ src/gui/widgets/qcocoamenu_mac_p.h | 1 + 4 files changed, 19 insertions(+) diff --git a/src/gui/kernel/qcocoamenuloader_mac.mm b/src/gui/kernel/qcocoamenuloader_mac.mm index 8d65aa1..8d38f45 100644 --- a/src/gui/kernel/qcocoamenuloader_mac.mm +++ b/src/gui/kernel/qcocoamenuloader_mac.mm @@ -255,5 +255,10 @@ QT_USE_NAMESPACE qApp->quit(); } } + + - (void)orderFrontCharacterPalette:(id)sender + { + [NSApp orderFrontCharacterPalette:sender]; + } @end #endif // QT_MAC_USE_COCOA diff --git a/src/gui/kernel/qcocoamenuloader_mac_p.h b/src/gui/kernel/qcocoamenuloader_mac_p.h index a75ad0a..edacfa5 100644 --- a/src/gui/kernel/qcocoamenuloader_mac_p.h +++ b/src/gui/kernel/qcocoamenuloader_mac_p.h @@ -88,6 +88,7 @@ - (IBAction)hide:(id)sender; - (IBAction)qtDispatcherToQAction:(id)sender; - (void)qtUpdateMenubar; +- (void)orderFrontCharacterPalette:(id)sender; @end #endif // QT_MAC_USE_COCOA diff --git a/src/gui/widgets/qcocoamenu_mac.mm b/src/gui/widgets/qcocoamenu_mac.mm index ce85919..15fae23 100644 --- a/src/gui/widgets/qcocoamenu_mac.mm +++ b/src/gui/widgets/qcocoamenu_mac.mm @@ -188,6 +188,18 @@ QT_USE_NAMESPACE return NO; } +- (NSInteger)indexOfItemWithTarget:(id)anObject andAction:(SEL)actionSelector +{ + NSInteger index = [super indexOfItemWithTarget:anObject andAction:actionSelector]; + static SEL selForOFCP = NSSelectorFromString(@"orderFrontCharacterPalette:"); + if (index == -1 && selForOFCP == actionSelector) { + // Check if the 'orderFrontCharacterPalette' SEL exists for QCocoaMenuLoader object + QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = [NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)]; + return [super indexOfItemWithTarget:loader andAction:actionSelector]; + } + return index; +} + @end QT_BEGIN_NAMESPACE diff --git a/src/gui/widgets/qcocoamenu_mac_p.h b/src/gui/widgets/qcocoamenu_mac_p.h index d6ac8c5..1a42642 100644 --- a/src/gui/widgets/qcocoamenu_mac_p.h +++ b/src/gui/widgets/qcocoamenu_mac_p.h @@ -76,6 +76,7 @@ QT_FORWARD_DECLARE_CLASS(QAction) } - (id)initWithQMenu:(QMenu*)menu; - (BOOL)menuHasKeyEquivalent:(NSMenu *)menu forEvent:(NSEvent *)event target:(id *)target action:(SEL *)action; +- (NSInteger)indexOfItemWithTarget:(id)anObject andAction:(SEL)actionSelector; @end #endif -- cgit v0.12 From 5dedcd3c4cac993949295d109804a8f7cc3a5b0a Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 13 Aug 2010 12:23:46 +0200 Subject: diagramscene example: fix leak and crashes. In MainWindow::deleteItem, if there is arrow selected, we need to clean up the items from this arrow. We need to delete them first so there is no arrow in the list anymore when we calls removeArrows (which before, deleted arrow that were possibly in the list, resulting in crashes) Also avoid leak by giving parents to objects that needs it, and destroying items. Reviewed-by: Geir Vattekar Task-number: QTBUG-12753 --- doc/src/examples/diagramscene.qdoc | 3 ++- examples/graphicsview/diagramscene/mainwindow.cpp | 29 ++++++++++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/doc/src/examples/diagramscene.qdoc b/doc/src/examples/diagramscene.qdoc index f4d6b0d..7c643c2 100644 --- a/doc/src/examples/diagramscene.qdoc +++ b/doc/src/examples/diagramscene.qdoc @@ -265,7 +265,8 @@ \snippet examples/graphicsview/diagramscene/mainwindow.cpp 3 - This slot deletes the selected item, if any, from the scene. If + This slot deletes the selected item, if any, from the scene. It + deletes the arrows first in order to avoid to delete them twice. If the item to be deleted is a \c DiagramItem, we also need to delete arrows connected to it; we don't want arrows in the scene that aren't connected to items in both ends. diff --git a/examples/graphicsview/diagramscene/mainwindow.cpp b/examples/graphicsview/diagramscene/mainwindow.cpp index f09c552..7d82df0 100644 --- a/examples/graphicsview/diagramscene/mainwindow.cpp +++ b/examples/graphicsview/diagramscene/mainwindow.cpp @@ -45,6 +45,7 @@ #include "diagramitem.h" #include "diagramscene.h" #include "diagramtextitem.h" +#include "arrow.h" const int InsertTextButton = 10; @@ -55,7 +56,7 @@ MainWindow::MainWindow() createToolBox(); createMenus(); - scene = new DiagramScene(itemMenu); + scene = new DiagramScene(itemMenu, this); scene->setSceneRect(QRectF(0, 0, 5000, 5000)); connect(scene, SIGNAL(itemInserted(DiagramItem*)), this, SLOT(itemInserted(DiagramItem*))); @@ -123,11 +124,22 @@ void MainWindow::buttonGroupClicked(int id) void MainWindow::deleteItem() { foreach (QGraphicsItem *item, scene->selectedItems()) { - if (item->type() == DiagramItem::Type) { - qgraphicsitem_cast(item)->removeArrows(); + if (item->type() == Arrow::Type) { + scene->removeItem(item); + Arrow *arrow = qgraphicsitem_cast(item); + arrow->startItem()->removeArrow(arrow); + arrow->endItem()->removeArrow(arrow); + delete item; } - scene->removeItem(item); } + + foreach (QGraphicsItem *item, scene->selectedItems()) { + if (item->type() == DiagramItem::Type) { + qgraphicsitem_cast(item)->removeArrows(); + } + scene->removeItem(item); + delete item; + } } //! [3] @@ -313,7 +325,7 @@ void MainWindow::about() //! [21] void MainWindow::createToolBox() { - buttonGroup = new QButtonGroup; + buttonGroup = new QButtonGroup(this); buttonGroup->setExclusive(false); connect(buttonGroup, SIGNAL(buttonClicked(int)), this, SLOT(buttonGroupClicked(int))); @@ -345,7 +357,7 @@ void MainWindow::createToolBox() QWidget *itemWidget = new QWidget; itemWidget->setLayout(layout); - backgroundButtonGroup = new QButtonGroup; + backgroundButtonGroup = new QButtonGroup(this); connect(backgroundButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(backgroundButtonGroupClicked(QAbstractButton*))); @@ -460,7 +472,6 @@ void MainWindow::createToolbars() editToolBar->addAction(sendBackAction); fontCombo = new QFontComboBox(); - fontSizeCombo = new QComboBox(); connect(fontCombo, SIGNAL(currentFontChanged(QFont)), this, SLOT(currentFontChanged(QFont))); @@ -526,7 +537,7 @@ void MainWindow::createToolbars() linePointerButton->setCheckable(true); linePointerButton->setIcon(QIcon(":/images/linepointer.png")); - pointerTypeGroup = new QButtonGroup; + pointerTypeGroup = new QButtonGroup(this); pointerTypeGroup->addButton(pointerButton, int(DiagramScene::MoveItem)); pointerTypeGroup->addButton(linePointerButton, int(DiagramScene::InsertLine)); @@ -605,7 +616,7 @@ QMenu *MainWindow::createColorMenu(const char *slot, QColor defaultColor) names << tr("black") << tr("white") << tr("red") << tr("blue") << tr("yellow"); - QMenu *colorMenu = new QMenu; + QMenu *colorMenu = new QMenu(this); for (int i = 0; i < colors.count(); ++i) { QAction *action = new QAction(names.at(i), this); action->setData(colors.at(i)); -- cgit v0.12 From 448a8603bb0609bf880a2c1b92b26c2005e1cf63 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 13 Aug 2010 13:25:46 +0300 Subject: Fix check to remove unnecessary deployments in Symbian Previously check to remove files from deployment in case the deployment target location was the same as the source location was done using QFileInfo equality, which resolved to true when file didn't yet exist at the time qmake was run. Changed the check to compare absolute paths instead. Task-number: QTBUG-12879 Reviewed-by: Shane Kearns --- qmake/generators/symbian/initprojectdeploy_symbian.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qmake/generators/symbian/initprojectdeploy_symbian.cpp b/qmake/generators/symbian/initprojectdeploy_symbian.cpp index 382e012..776a646 100644 --- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp +++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp @@ -353,7 +353,11 @@ void initProjectDeploySymbian(QMakeProject* project, CopyItem &item = i.next(); QFileInfo fromItem(item.from); QFileInfo toItem(item.to); - if (fromItem == toItem) +#if defined(Q_OS_WIN) + if (0 == fromItem.absoluteFilePath().compare(toItem.absoluteFilePath(), Qt::CaseInsensitive)) +#else + if (0 == fromItem.absoluteFilePath().compare(toItem.absoluteFilePath())) +#endif i.remove(); } } -- cgit v0.12 From 5d32b723332acab5fdf880aa0d555ab8e05d79dd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 13 Aug 2010 12:59:55 +0100 Subject: Fix for memory leak in qt_init Reviewed-by: Miikka Heikkinen --- src/gui/kernel/qapplication_s60.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index e64ebb1..559bb6a 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1475,6 +1475,8 @@ void qt_init(QApplicationPrivate * /* priv */, int) S60->avkonComponentsSupportTransparency = (value==1) ? true : false; } } + delete repository; + repository = 0; #endif #ifdef QT_KEYPAD_NAVIGATION -- cgit v0.12 From 13d35e19a2bf78dd6a63b35f06a07d2b6e9c67c4 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 13 Aug 2010 14:01:49 +0200 Subject: qdoc: Added the fix to change qml-qml-file.name to qml-file.name --- tools/qdoc3/tree.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp index 56e3484..540ffa9 100644 --- a/tools/qdoc3/tree.cpp +++ b/tools/qdoc3/tree.cpp @@ -1963,8 +1963,8 @@ QString Tree::fullDocumentLocation(const Node *node) const if ((node->subType() == Node::QmlClass) || (node->subType() == Node::QmlBasicType)) { QString fb = node->fileBase(); - if (fb.startsWith(QLatin1String("QML:"))) - return node->fileBase() + ".html"; + if (fb.startsWith(QLatin1String("qml-"))) + return fb + ".html"; else return "qml-" + node->fileBase() + ".html"; } else @@ -1981,7 +1981,7 @@ QString Tree::fullDocumentLocation(const Node *node) const else if ((parentNode = node->parent())) { if (parentNode->subType() == Node::QmlPropertyGroup) { parentNode = parentNode->parent(); - parentName = "qml-" + parentNode->fileBase() + ".html"; + parentName = fullDocumentLocation(parentNode); } else parentName = fullDocumentLocation(node->parent()); -- cgit v0.12 From 6d0d767e63df3c997d6d7a8cb6cd4bf8c0dfc835 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Fri, 13 Aug 2010 14:05:17 +0200 Subject: Cocoa: Stacking order of modal dialogs is wrong Modal dialogs were sometimes hidden behind other normal windows on screen. The reason was that, upon going modal for a window, we actually resat the stacking level on the window in a faulty attempt to respect any stays-on-top window flags. This patch makes sure we avoid doing that, and at the same time, ensures we don't reintroduce the original bug as well. Task-number: QTBUG-12841 Reviewed-by: cduclos --- src/gui/kernel/qeventdispatcher_mac.mm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm index e26fbde..89f01d8 100644 --- a/src/gui/kernel/qeventdispatcher_mac.mm +++ b/src/gui/kernel/qeventdispatcher_mac.mm @@ -785,7 +785,7 @@ void QEventDispatcherMacPrivate::temporarilyStopAllModalSessions() // the stacking order of the windows while doing so, we put // up a block that is used in QCocoaWindow and QCocoaPanel: int stackSize = cocoaModalSessionStack.size(); - for (int i=stackSize-1; i>=0; --i) { + for (int i=0; i [window level]) + [window setLevel:levelBeforeEnterModal]; } currentModalSessionCached = info.session; } -- cgit v0.12 From 434ce6748ea7f082357b6d7ab542c9fa2285bd4c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 13 Aug 2010 15:22:25 +0300 Subject: Fix "installer_sis" and "deploy" targets when TARGET has path Dependencies got generated wrong in Makefile because sis is always created in the .pro file directory but dependency included path that was in TARGET. Task-number: QTBUG-12884 Reviewed-by: Shane Kearns --- mkspecs/features/sis_targets.prf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/sis_targets.prf b/mkspecs/features/sis_targets.prf index 99f5910..abdf2d4 100644 --- a/mkspecs/features/sis_targets.prf +++ b/mkspecs/features/sis_targets.prf @@ -11,7 +11,6 @@ else:!equals(DEPLOYMENT, default_deployment) { equals(GENERATE_SIS_TARGETS, true) { symbian-abld|symbian-sbsv2 { - sis_destdir = make_cache_name = .make.cache sis_target.target = sis sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \ @@ -50,7 +49,7 @@ equals(GENERATE_SIS_TARGETS, true) { ok_unsigned_sis_target.target = ok_unsigned_sis ok_unsigned_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg $(QT_SIS_TARGET) - target_sis_target.target = $${sis_destdir}$${TARGET}.sis + target_sis_target.target = $$basename(TARGET).sis target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis installer_sis_target.target = installer_sis @@ -59,7 +58,7 @@ equals(GENERATE_SIS_TARGETS, true) { , \ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \ ) - installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis + installer_sis_target.depends = $$basename(TARGET).sis ok_installer_sis_target.target = ok_installer_sis ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \ -- cgit v0.12 From 2dfd16e8a138da9d903b31ef461331016d16ec5b Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Fri, 13 Aug 2010 15:20:36 +0200 Subject: Doc: removed assistant style and reintroduced the index page icons. --- doc/src/template/style/narrow.css | 4 ++-- doc/src/template/style/style.css | 41 ++------------------------------------- 2 files changed, 4 insertions(+), 41 deletions(-) diff --git a/doc/src/template/style/narrow.css b/doc/src/template/style/narrow.css index e4ad135..349048f 100644 --- a/doc/src/template/style/narrow.css +++ b/doc/src/template/style/narrow.css @@ -54,7 +54,7 @@ .narrow .header .qtref a { - color: #363534; + color: #00732F; } .narrow .header .qtref span @@ -103,7 +103,7 @@ } .narrow .header #shortCut ul li a { - color: #44a51c; + color: #00732F; } .narrow .wrapper .hd diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css index 6a32e53..190c60a 100755 --- a/doc/src/template/style/style.css +++ b/doc/src/template/style/style.css @@ -1283,43 +1283,6 @@ -/* start of offline spec*/ - .offline .wrapper .hd - { - background: url(../images/page.png) no-repeat 0 -15px; - } - .offline .wrapper .bd - { - background: url(../images/bg_l_blank.png) repeat-y 0 0; - } - .offline .wrapper .ft - { - background: url(../images/page.png) no-repeat 0 -90px; - } - .offline .sidebar, - .offline .feedback, - .offline .t_button, - .offline #narrowsearch, - .offline #narrowmenu - { - display: none; - } - .offline .wrap - { - margin: 0 5px 0 5px; - } - .offline .wrap .breadcrumb - { - } - - .offline .wrap .content - { - padding-top: 15px; - } - - -/* end of offline spec*/ - /* start of creator spec*/ .creator { @@ -1339,9 +1302,9 @@ .creator #feedbackBox, .creator #feedback, .creator #blurpage, - .creator .indexbox .indexIcon span, + /*.creator .indexbox .indexIcon span,*/ .creator .wrapper .hd, - .creator .indexbox .indexIcon, +/* .creator .indexbox .indexIcon,*/ .creator .header #nav-logo, .creator #offlinemenu, .creator #offlinesearch, -- cgit v0.12 From 7c413e92841c7a6010c4ba5748f6f54448f8643e Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Wed, 28 Jul 2010 15:13:49 +0300 Subject: Do not change the session configuration state because of changes in QNetworkConfigurationManager. The session state is only changed according to status messages sent by icd. Fixes: NB#182148 - QNetworkSession changes to disconnected state immediately after opening session --- src/plugins/bearer/icd/qnetworksession_impl.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/bearer/icd/qnetworksession_impl.cpp b/src/plugins/bearer/icd/qnetworksession_impl.cpp index 2583b28..0b35349 100644 --- a/src/plugins/bearer/icd/qnetworksession_impl.cpp +++ b/src/plugins/bearer/icd/qnetworksession_impl.cpp @@ -339,8 +339,6 @@ void QNetworkSessionPrivateImpl::syncStateWithInterface() isOpen = false; opened = false; - connect(&manager, SIGNAL(updateCompleted()), this, SLOT(networkConfigurationsChanged())); - connect(engine, SIGNAL(iapStateChanged(const QString&, uint)), this, SLOT(iapStateChanged(const QString&, uint))); -- cgit v0.12 From d4c8461db653e498b9369c2a36de5b699bcbf87d Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Thu, 12 Aug 2010 14:46:46 +1000 Subject: Release lock before calling into icd engine. --- src/plugins/bearer/icd/qnetworksession_impl.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/bearer/icd/qnetworksession_impl.cpp b/src/plugins/bearer/icd/qnetworksession_impl.cpp index 0b35349..3170bf6 100644 --- a/src/plugins/bearer/icd/qnetworksession_impl.cpp +++ b/src/plugins/bearer/icd/qnetworksession_impl.cpp @@ -458,14 +458,15 @@ void QNetworkSessionPrivateImpl::syncStateWithInterface() else ptr->name = ptr->id; + const QString identifier = ptr->id; + + configLocker.unlock(); + // Add the new active configuration to manager or update the old config - if (!engine->hasIdentifier(ptr->id)) { - configLocker.unlock(); + if (!engine->hasIdentifier(identifier)) engine->addSessionConfiguration(ptr); - } else { - configLocker.unlock(); + else engine->changedSessionConfiguration(ptr); - } } break; -- cgit v0.12 From f7c07892e927a6420bb64a7011312f0a4a5a1fc9 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 16 Aug 2010 11:17:56 +1000 Subject: emit countChanged where appropriate in Repeater Task-number: QTBUG-12905 Reviewed-by: Bea Lam --- src/declarative/graphicsitems/qdeclarativerepeater.cpp | 5 ++++- .../declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativerepeater.cpp b/src/declarative/graphicsitems/qdeclarativerepeater.cpp index 68e7e9a..b4b6c02 100644 --- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp +++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp @@ -245,8 +245,8 @@ void QDeclarativeRepeater::setModel(const QVariant &model) connect(d->model, SIGNAL(destroyingItem(QDeclarativeItem*)), this, SLOT(destroyingItem(QDeclarativeItem*))); */ regenerate(); - emit countChanged(); } + emit countChanged(); } /*! @@ -377,6 +377,7 @@ void QDeclarativeRepeater::itemsInserted(int index, int count) d->deletables.insert(modelIndex, item); } } + emit countChanged(); } void QDeclarativeRepeater::itemsRemoved(int index, int count) @@ -391,6 +392,7 @@ void QDeclarativeRepeater::itemsRemoved(int index, int count) else break; } + emit countChanged(); } void QDeclarativeRepeater::itemsMoved(int from, int to, int count) @@ -420,6 +422,7 @@ void QDeclarativeRepeater::modelReset() if (!isComponentComplete()) return; regenerate(); + emit countChanged(); } QT_END_NAMESPACE diff --git a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp index 623b3d7..360d90f 100644 --- a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp +++ b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp @@ -309,11 +309,14 @@ void tst_QDeclarativeRepeater::dataModel() QCOMPARE(container->childItems().count(), 4); + QSignalSpy repeaterSpy(repeater, SIGNAL(countChanged())); testModel.addItem("four", "4"); QCOMPARE(container->childItems().count(), 5); + QCOMPARE(repeaterSpy.count(),1); testModel.removeItem(2); QCOMPARE(container->childItems().count(), 4); + QCOMPARE(repeaterSpy.count(),2); // Check that model changes are propagated QDeclarativeText *text = findItem(canvas->rootObject(), "myName", 1); -- cgit v0.12 From 8ae7f9508a94e37ceddd4c2b1b94dc43ff039cf3 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 16 Aug 2010 13:38:54 +1000 Subject: Make positioners work with QGraphicsWidgets also Task-number: QTBUG-12416 Reviewed-by: Alexis Menard --- .../graphicsitems/qdeclarativepositioners.cpp | 107 ++++++++++++--------- .../graphicsitems/qdeclarativepositioners_p.h | 8 +- .../graphicsitems/qdeclarativepositioners_p_p.h | 5 +- 3 files changed, 71 insertions(+), 49 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp index 179f13d..f32c532 100644 --- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp +++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp @@ -61,16 +61,33 @@ static const QDeclarativeItemPrivate::ChangeTypes watchedChanges | QDeclarativeItemPrivate::Opacity | QDeclarativeItemPrivate::Destroyed; -void QDeclarativeBasePositionerPrivate::watchChanges(QDeclarativeItem *other) +void QDeclarativeBasePositionerPrivate::watchChanges(QGraphicsObject *other) { - QDeclarativeItemPrivate *otherPrivate = static_cast(QGraphicsItemPrivate::get(other)); - otherPrivate->addItemChangeListener(this, watchedChanges); + if (QGraphicsItemPrivate::get(other)->isDeclarativeItem) { + QDeclarativeItemPrivate *otherPrivate = static_cast(QGraphicsItemPrivate::get(other)); + otherPrivate->addItemChangeListener(this, watchedChanges); + } else { + Q_Q(QDeclarativeBasePositioner); + QObject::connect(other, SIGNAL(widthChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + QObject::connect(other, SIGNAL(heightChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + } } -void QDeclarativeBasePositionerPrivate::unwatchChanges(QDeclarativeItem* other) +void QDeclarativeBasePositionerPrivate::unwatchChanges(QGraphicsObject* other) { - QDeclarativeItemPrivate *otherPrivate = static_cast(QGraphicsItemPrivate::get(other)); - otherPrivate->removeItemChangeListener(this, watchedChanges); + if (QGraphicsItemPrivate::get(other)->isDeclarativeItem) { + QDeclarativeItemPrivate *otherPrivate = static_cast(QGraphicsItemPrivate::get(other)); + otherPrivate->removeItemChangeListener(this, watchedChanges); + } else { + Q_Q(QDeclarativeBasePositioner); + QObject::disconnect(other, SIGNAL(widthChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + QObject::disconnect(other, SIGNAL(heightChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + } +} + +void QDeclarativeBasePositioner::graphicsWidgetGeometryChanged() +{ + prePositioning(); } /*! @@ -174,16 +191,16 @@ QVariant QDeclarativeBasePositioner::itemChange(GraphicsItemChange change, Q_D(QDeclarativeBasePositioner); if (change == ItemChildAddedChange){ QGraphicsItem* item = value.value(); - QDeclarativeItem* child = 0; + QGraphicsObject* child = 0; if(item) - child = qobject_cast(item->toGraphicsObject()); + child = item->toGraphicsObject(); if (child) prePositioning(); } else if (change == ItemChildRemovedChange) { QGraphicsItem* item = value.value(); - QDeclarativeItem* child = 0; + QGraphicsObject* child = 0; if(item) - child = qobject_cast(item->toGraphicsObject()); + child = item->toGraphicsObject(); if (child) { QDeclarativeBasePositioner::PositionedItem posItem(child); int idx = positionedItems.find(posItem); @@ -194,7 +211,6 @@ QVariant QDeclarativeBasePositioner::itemChange(GraphicsItemChange change, prePositioning(); } } - return QDeclarativeItem::itemChange(change, value); } @@ -216,7 +232,7 @@ void QDeclarativeBasePositioner::prePositioning() QPODVector oldItems; positionedItems.copyAndClear(oldItems); for (int ii = 0; ii < children.count(); ++ii) { - QDeclarativeItem *child = qobject_cast(children.at(ii)); + QGraphicsObject *child = children.at(ii)->toGraphicsObject(); if (!child) continue; QDeclarativeItemPrivate *childPrivate = static_cast(QGraphicsItemPrivate::get(child)); @@ -302,10 +318,10 @@ void QDeclarativeBasePositioner::finishApplyTransitions() d->moveActions.clear(); } -static inline bool isInvisible(QDeclarativeItem *child) +static inline bool isInvisible(QGraphicsObject *child) { QDeclarativeItemPrivate *childPrivate = static_cast(QGraphicsItemPrivate::get(child)); - return child->opacity() == 0.0 || childPrivate->explicitlyHidden || !child->width() || !child->height(); + return child->opacity() == 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height(); } /*! @@ -440,9 +456,9 @@ void QDeclarativeColumn::doPositioning(QSizeF *contentSize) if(child.item->y() != voffset) positionY(voffset, child); - contentSize->setWidth(qMax(contentSize->width(), child.item->width())); + contentSize->setWidth(qMax(contentSize->width(), QGraphicsItemPrivate::get(child.item)->width())); - voffset += child.item->height(); + voffset += QGraphicsItemPrivate::get(child.item)->height(); voffset += spacing(); } @@ -454,8 +470,8 @@ void QDeclarativeColumn::reportConflictingAnchors() QDeclarativeBasePositionerPrivate *d = static_cast(QDeclarativeBasePositionerPrivate::get(this)); for (int ii = 0; ii < positionedItems.count(); ++ii) { const PositionedItem &child = positionedItems.at(ii); - if (child.item) { - QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors; + if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) { + QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast(child.item))->_anchors; if (anchors) { QDeclarativeAnchors::Anchors usedAnchors = anchors->usedAnchors(); if (usedAnchors & QDeclarativeAnchors::TopAnchor || @@ -579,9 +595,9 @@ void QDeclarativeRow::doPositioning(QSizeF *contentSize) if(child.item->x() != hoffset) positionX(hoffset, child); - contentSize->setHeight(qMax(contentSize->height(), child.item->height())); + contentSize->setHeight(qMax(contentSize->height(), QGraphicsItemPrivate::get(child.item)->height())); - hoffset += child.item->width(); + hoffset += QGraphicsItemPrivate::get(child.item)->width(); hoffset += spacing(); } @@ -593,8 +609,8 @@ void QDeclarativeRow::reportConflictingAnchors() QDeclarativeBasePositionerPrivate *d = static_cast(QDeclarativeBasePositionerPrivate::get(this)); for (int ii = 0; ii < positionedItems.count(); ++ii) { const PositionedItem &child = positionedItems.at(ii); - if (child.item) { - QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors; + if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) { + QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast(child.item))->_anchors; if (anchors) { QDeclarativeAnchors::Anchors usedAnchors = anchors->usedAnchors(); if (usedAnchors & QDeclarativeAnchors::LeftAnchor || @@ -814,10 +830,11 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize) const PositionedItem &child = positionedItems.at(childIndex++); if (!child.item || isInvisible(child.item)) continue; - if (child.item->width() > maxColWidth[j]) - maxColWidth[j] = child.item->width(); - if (child.item->height() > maxRowHeight[i]) - maxRowHeight[i] = child.item->height(); + QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item); + if (childPrivate->width() > maxColWidth[j]) + maxColWidth[j] = childPrivate->width(); + if (childPrivate->height() > maxRowHeight[i]) + maxRowHeight[i] = childPrivate->height(); } } } else { @@ -833,10 +850,11 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize) const PositionedItem &child = positionedItems.at(childIndex++); if (!child.item || isInvisible(child.item)) continue; - if (child.item->width() > maxColWidth[j]) - maxColWidth[j] = child.item->width(); - if (child.item->height() > maxRowHeight[i]) - maxRowHeight[i] = child.item->height(); + QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item); + if (childPrivate->width() > maxColWidth[j]) + maxColWidth[j] = childPrivate->width(); + if (childPrivate->height() > maxRowHeight[i]) + maxRowHeight[i] = childPrivate->height(); } } } @@ -855,7 +873,7 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize) } if (m_flow == LeftToRight) { - contentSize->setWidth(qMax(contentSize->width(), xoffset + child.item->width())); + contentSize->setWidth(qMax(contentSize->width(), xoffset + QGraphicsItemPrivate::get(child.item)->width())); contentSize->setHeight(yoffset + maxRowHeight[curRow]); xoffset+=maxColWidth[curCol]+spacing(); @@ -869,7 +887,7 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize) break; } } else { - contentSize->setHeight(qMax(contentSize->height(), yoffset + child.item->height())); + contentSize->setHeight(qMax(contentSize->height(), yoffset + QGraphicsItemPrivate::get(child.item)->height())); contentSize->setWidth(xoffset + maxColWidth[curCol]); yoffset+=maxRowHeight[curRow]+spacing(); @@ -891,8 +909,8 @@ void QDeclarativeGrid::reportConflictingAnchors() QDeclarativeBasePositionerPrivate *d = static_cast(QDeclarativeBasePositionerPrivate::get(this)); for (int ii = 0; ii < positionedItems.count(); ++ii) { const PositionedItem &child = positionedItems.at(ii); - if (child.item) { - QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors; + if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) { + QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast(child.item))->_anchors; if (anchors && (anchors->usedAnchors() || anchors->fill() || anchors->centerIn())) { d->anchorConflict = true; break; @@ -1026,14 +1044,15 @@ void QDeclarativeFlow::doPositioning(QSizeF *contentSize) if (!child.item || isInvisible(child.item)) continue; + QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item); if (d->flow == LeftToRight) { - if (widthValid() && hoffset && hoffset + child.item->width() > width()) { + if (widthValid() && hoffset && hoffset + childPrivate->width() > width()) { hoffset = 0; voffset += linemax + spacing(); linemax = 0; } } else { - if (heightValid() && voffset && voffset + child.item->height() > height()) { + if (heightValid() && voffset && voffset + childPrivate->height() > height()) { voffset = 0; hoffset += linemax + spacing(); linemax = 0; @@ -1045,17 +1064,17 @@ void QDeclarativeFlow::doPositioning(QSizeF *contentSize) positionY(voffset, child); } - contentSize->setWidth(qMax(contentSize->width(), hoffset + child.item->width())); - contentSize->setHeight(qMax(contentSize->height(), voffset + child.item->height())); + contentSize->setWidth(qMax(contentSize->width(), hoffset + childPrivate->width())); + contentSize->setHeight(qMax(contentSize->height(), voffset + childPrivate->height())); if (d->flow == LeftToRight) { - hoffset += child.item->width(); + hoffset += childPrivate->width(); hoffset += spacing(); - linemax = qMax(linemax, qCeil(child.item->height())); + linemax = qMax(linemax, qCeil(childPrivate->height())); } else { - voffset += child.item->height(); + voffset += childPrivate->height(); voffset += spacing(); - linemax = qMax(linemax, qCeil(child.item->width())); + linemax = qMax(linemax, qCeil(childPrivate->width())); } } } @@ -1065,8 +1084,8 @@ void QDeclarativeFlow::reportConflictingAnchors() Q_D(QDeclarativeFlow); for (int ii = 0; ii < positionedItems.count(); ++ii) { const PositionedItem &child = positionedItems.at(ii); - if (child.item) { - QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors; + if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) { + QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast(child.item))->_anchors; if (anchors && (anchors->usedAnchors() || anchors->fill() || anchors->centerIn())) { d->anchorConflict = true; break; diff --git a/src/declarative/graphicsitems/qdeclarativepositioners_p.h b/src/declarative/graphicsitems/qdeclarativepositioners_p.h index c03e518..f9ecc0a 100644 --- a/src/declarative/graphicsitems/qdeclarativepositioners_p.h +++ b/src/declarative/graphicsitems/qdeclarativepositioners_p.h @@ -91,14 +91,16 @@ Q_SIGNALS: protected Q_SLOTS: void prePositioning(); + void graphicsWidgetGeometryChanged(); protected: virtual void doPositioning(QSizeF *contentSize)=0; virtual void reportConflictingAnchors()=0; - struct PositionedItem { - PositionedItem(QDeclarativeItem *i) : item(i), isNew(false), isVisible(true) {} + class PositionedItem { + public : + PositionedItem(QGraphicsObject *i) : item(i), isNew(false), isVisible(true) {} bool operator==(const PositionedItem &other) const { return other.item == item; } - QDeclarativeItem *item; + QGraphicsObject *item; bool isNew; bool isVisible; }; diff --git a/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h b/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h index 822079b..35946e9 100644 --- a/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h @@ -94,8 +94,8 @@ public: QDeclarativeTransitionManager addTransitionManager; QDeclarativeTransitionManager moveTransitionManager; - void watchChanges(QDeclarativeItem *other); - void unwatchChanges(QDeclarativeItem* other); + void watchChanges(QGraphicsObject *other); + void unwatchChanges(QGraphicsObject* other); bool queuedPositioning : 1; bool doingPositioning : 1; bool anchorConflict : 1; @@ -123,6 +123,7 @@ public: if (newGeometry.size() != oldGeometry.size()) q->prePositioning(); } + virtual void itemVisibilityChanged(QDeclarativeItem *) { schedulePositioning(); -- cgit v0.12 From b8505789fdf977fcdec91f94557fe13bcef1e7cc Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Thu, 29 Jul 2010 15:22:33 +0300 Subject: The QNetworkConfigurationManager did not get the online status correctly even when there was an active connection. Fixes: NB#181984 - QNetworkConfigurationManager reports offline even when connected. Signed-off-by: Tomasz Bursztyka Signed-off-by: Jukka Rissanen --- src/plugins/bearer/icd/qicdengine.cpp | 97 +++++++++++++++++++++++++---------- src/plugins/bearer/icd/qicdengine.h | 2 +- 2 files changed, 71 insertions(+), 28 deletions(-) diff --git a/src/plugins/bearer/icd/qicdengine.cpp b/src/plugins/bearer/icd/qicdengine.cpp index 0900329..87b31da 100644 --- a/src/plugins/bearer/icd/qicdengine.cpp +++ b/src/plugins/bearer/icd/qicdengine.cpp @@ -275,6 +275,8 @@ void QIcdEngine::initialize() userChoiceConfigurations.insert(cpPriv->id, ptr); doRequestUpdate(); + + getIcdInitialState(); } static inline QString network_attrs_to_security(uint network_attrs) @@ -623,7 +625,11 @@ void QIcdEngine::doRequestUpdate(QList scanned) changed = true; } - if (ptr->state != QNetworkConfiguration::Discovered) { + /* If this config is the current active one, we do not set it + * to discovered. + */ + if ((ptr->state != QNetworkConfiguration::Discovered) && + (ptr->state != QNetworkConfiguration::Active)) { ptr->state = QNetworkConfiguration::Discovered; changed = true; } @@ -786,10 +792,50 @@ void QIcdEngine::startListeningStateSignalsForAllConnections() ICD_DBUS_API_INTERFACE, ICD_DBUS_API_STATE_SIG, this, SLOT(connectionStateSignalsSlot(QDBusMessage))); +} + +void QIcdEngine::getIcdInitialState() +{ + /* Instead of requesting ICD status asynchronously, we ask it synchronously. + * It ensures that we always get right icd status BEFORE initialize() ends. + * If not, initialize() might end before we got icd status and + * QNetworkConfigurationManager::updateConfigurations() + * call from user might also end before receiving icd status. + * In such case, we come up to a bug: + * QNetworkConfigurationManagerPrivate::isOnline() will be false even + * if we are connected. + */ + Maemo::Icd icd; + QList state_results; + QMutexLocker locker(&mutex); + QNetworkConfigurationPrivatePointer ptr; + + if (icd.state(state_results) && !state_results.isEmpty()) { + + if (!(state_results.first().params.network_attrs == 0 && + state_results.first().params.network_id.isEmpty())) { + + switch (state_results.first().state) { + case ICD_STATE_CONNECTED: + m_onlineIapId = state_results.first().params.network_id; + + ptr = accessPointConfigurations.value(m_onlineIapId); + if (ptr) { + ptr->state = QNetworkConfiguration::Active; + + QMutexLocker configLocker(&ptr->mutex); + configLocker.unlock(); - // Calling ICD_DBUS_API_STATE_REQ makes sure that initial state will be updated immediately - m_gettingInitialConnectionState = true; - m_dbusInterface->call(ICD_DBUS_API_STATE_REQ); + locker.unlock(); + emit configurationChanged(ptr); + locker.relock(); + } + break; + default: + break; + } + } + } } void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg) @@ -814,12 +860,12 @@ void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg) ptr->type = QNetworkConfiguration::InternetAccessPoint; if (ptr->state != QNetworkConfiguration::Active) { ptr->state = QNetworkConfiguration::Active; - if (!m_gettingInitialConnectionState) { - configLocker.unlock(); - locker.unlock(); - emit configurationChanged(ptr); - locker.relock(); - } + + configLocker.unlock(); + locker.unlock(); + emit configurationChanged(ptr); + locker.relock(); + m_onlineIapId = iapid; } } else { @@ -840,22 +886,21 @@ void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg) ptr->type = QNetworkConfiguration::InternetAccessPoint; if (ptr->state == QNetworkConfiguration::Active) { ptr->state = QNetworkConfiguration::Discovered; - if (!m_gettingInitialConnectionState) { - configLocker.unlock(); - locker.unlock(); - emit configurationChanged(ptr); - locker.relock(); - // Note: If ICD switches used IAP from one to another: - // 1) new IAP is reported to be online first - // 2) old IAP is reported to be offline then - // => Device can be reported to be offline only - // if last known online IAP is reported to be disconnected - if (iapid == m_onlineIapId) { - // It's known that there is only one global ICD connection - // => Because ICD state was reported to be DISCONNECTED, Device is offline - m_onlineIapId.clear(); - } + configLocker.unlock(); + locker.unlock(); + emit configurationChanged(ptr); + locker.relock(); + + // Note: If ICD switches used IAP from one to another: + // 1) new IAP is reported to be online first + // 2) old IAP is reported to be offline then + // => Device can be reported to be offline only + // if last known online IAP is reported to be disconnected + if (iapid == m_onlineIapId) { + // It's known that there is only one global ICD connection + // => Because ICD state was reported to be DISCONNECTED, Device is offline + m_onlineIapId.clear(); } } } else { @@ -876,8 +921,6 @@ void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg) locker.unlock(); emit iapStateChanged(iapid, icd_connection_state); locker.relock(); - - m_gettingInitialConnectionState = false; } void QIcdEngine::requestUpdate() diff --git a/src/plugins/bearer/icd/qicdengine.h b/src/plugins/bearer/icd/qicdengine.h index a768d84..0d5ba27 100644 --- a/src/plugins/bearer/icd/qicdengine.h +++ b/src/plugins/bearer/icd/qicdengine.h @@ -152,6 +152,7 @@ private: void startListeningStateSignalsForAllConnections(); void doRequestUpdate(QList scanned = QList()); void cancelAsyncConfigurationUpdate(); + void getIcdInitialState(); private: IapMonitor *iapMonitor; @@ -162,7 +163,6 @@ private: QList m_scanResult; bool firstUpdate; - bool m_gettingInitialConnectionState; bool m_scanGoingOn; }; -- cgit v0.12 From dbdbac99ef4ae5243a5f2571b66d4949dbfdc88c Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Mon, 16 Aug 2010 11:14:24 +1000 Subject: Fixed a typo when doing a lock. Conflicts: src/plugins/bearer/icd/qicdengine.cpp --- src/plugins/bearer/icd/qicdengine.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plugins/bearer/icd/qicdengine.cpp b/src/plugins/bearer/icd/qicdengine.cpp index 87b31da..cae2b7c 100644 --- a/src/plugins/bearer/icd/qicdengine.cpp +++ b/src/plugins/bearer/icd/qicdengine.cpp @@ -821,9 +821,8 @@ void QIcdEngine::getIcdInitialState() ptr = accessPointConfigurations.value(m_onlineIapId); if (ptr) { - ptr->state = QNetworkConfiguration::Active; - QMutexLocker configLocker(&ptr->mutex); + ptr->state = QNetworkConfiguration::Active; configLocker.unlock(); locker.unlock(); -- cgit v0.12 From 6f911718ba51b84ea34b45baf7f8b16954c33371 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Mon, 16 Aug 2010 11:16:41 +1000 Subject: Mutex is already locked when private member function is called. Conflicts: src/plugins/bearer/icd/qicdengine.cpp --- src/plugins/bearer/icd/qicdengine.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/plugins/bearer/icd/qicdengine.cpp b/src/plugins/bearer/icd/qicdengine.cpp index cae2b7c..3264f15 100644 --- a/src/plugins/bearer/icd/qicdengine.cpp +++ b/src/plugins/bearer/icd/qicdengine.cpp @@ -807,7 +807,6 @@ void QIcdEngine::getIcdInitialState() */ Maemo::Icd icd; QList state_results; - QMutexLocker locker(&mutex); QNetworkConfigurationPrivatePointer ptr; if (icd.state(state_results) && !state_results.isEmpty()) { @@ -825,9 +824,9 @@ void QIcdEngine::getIcdInitialState() ptr->state = QNetworkConfiguration::Active; configLocker.unlock(); - locker.unlock(); + mutex.unlock(); emit configurationChanged(ptr); - locker.relock(); + mutex.lock(); } break; default: -- cgit v0.12 From a1deaf3227ed6bfc086f0142a057d76ccf735e76 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Thu, 12 Aug 2010 15:17:59 +1000 Subject: Register QNetworkConfigurationPrivatePointer metatype. --- src/network/bearer/qnetworkconfigmanager_p.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp index c4f7c00..dd174bf 100644 --- a/src/network/bearer/qnetworkconfigmanager_p.cpp +++ b/src/network/bearer/qnetworkconfigmanager_p.cpp @@ -63,6 +63,7 @@ QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate() : pollTimer(0), mutex(QMutex::Recursive), forcedPolling(0), firstUpdate(true) { qRegisterMetaType("QNetworkConfiguration"); + qRegisterMetaType("QNetworkConfigurationPrivatePointer"); moveToThread(QCoreApplicationPrivate::mainThread()); updateConfigurations(); -- cgit v0.12 From d379b4b4d284a1fe5f7cd436d103fbede43b9ca3 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Thu, 12 Aug 2010 14:48:30 +1000 Subject: Remove version 0.41 of libconninet. --- src/3rdparty/libconninet/AUTHORS | 0 src/3rdparty/libconninet/COPYING | 510 ------ src/3rdparty/libconninet/ChangeLog | 0 src/3rdparty/libconninet/INSTALL | 229 --- src/3rdparty/libconninet/Makefile.am | 49 - src/3rdparty/libconninet/NEWS | 0 src/3rdparty/libconninet/README | 0 src/3rdparty/libconninet/autogen.sh | 3 - src/3rdparty/libconninet/config.guess | 1533 ------------------ src/3rdparty/libconninet/config.sub | 1693 -------------------- src/3rdparty/libconninet/configure.ac | 90 -- src/3rdparty/libconninet/conninet.pc.in | 11 - src/3rdparty/libconninet/debian/changelog | 285 ---- src/3rdparty/libconninet/debian/compat | 1 - src/3rdparty/libconninet/debian/control | 39 - src/3rdparty/libconninet/debian/copyright | 19 - .../libconninet/debian/libconninet0-dev.dirs | 2 - .../libconninet/debian/libconninet0-dev.files | 4 - src/3rdparty/libconninet/debian/libconninet0.dirs | 1 - src/3rdparty/libconninet/debian/libconninet0.files | 1 - src/3rdparty/libconninet/debian/rules | 123 -- src/3rdparty/libconninet/doxygen.cfg.in | 1147 ------------- src/3rdparty/libconninet/src/Makefile.am | 36 - src/3rdparty/libconninet/src/dbusdispatcher.cpp | 611 ------- src/3rdparty/libconninet/src/dbusdispatcher.h | 91 -- src/3rdparty/libconninet/src/iapconf.cpp | 299 ---- src/3rdparty/libconninet/src/iapconf.h | 84 - src/3rdparty/libconninet/src/iapmonitor.cpp | 110 -- src/3rdparty/libconninet/src/iapmonitor.h | 48 - src/3rdparty/libconninet/src/maemo_icd.cpp | 1277 --------------- src/3rdparty/libconninet/src/maemo_icd.h | 182 --- src/3rdparty/libconninet/src/proxyconf.cpp | 315 ---- src/3rdparty/libconninet/src/proxyconf.h | 53 - src/3rdparty/libconninet/tests/Makefile.am | 39 - .../libconninet/tests/ut_dbusdispatcher.cpp | 191 --- src/3rdparty/libconninet/tests/ut_iapconf.cpp | 186 --- src/3rdparty/libconninet/tests/ut_iapmonitor.cpp | 118 -- src/3rdparty/libconninet/tests/ut_maemo_icd.cpp | 274 ---- src/3rdparty/libconninet/tests/ut_proxyconf.cpp | 400 ----- 39 files changed, 10054 deletions(-) delete mode 100644 src/3rdparty/libconninet/AUTHORS delete mode 100644 src/3rdparty/libconninet/COPYING delete mode 100644 src/3rdparty/libconninet/ChangeLog delete mode 100644 src/3rdparty/libconninet/INSTALL delete mode 100644 src/3rdparty/libconninet/Makefile.am delete mode 100644 src/3rdparty/libconninet/NEWS delete mode 100644 src/3rdparty/libconninet/README delete mode 100755 src/3rdparty/libconninet/autogen.sh delete mode 100755 src/3rdparty/libconninet/config.guess delete mode 100755 src/3rdparty/libconninet/config.sub delete mode 100644 src/3rdparty/libconninet/configure.ac delete mode 100644 src/3rdparty/libconninet/conninet.pc.in delete mode 100644 src/3rdparty/libconninet/debian/changelog delete mode 100644 src/3rdparty/libconninet/debian/compat delete mode 100644 src/3rdparty/libconninet/debian/control delete mode 100644 src/3rdparty/libconninet/debian/copyright delete mode 100644 src/3rdparty/libconninet/debian/libconninet0-dev.dirs delete mode 100644 src/3rdparty/libconninet/debian/libconninet0-dev.files delete mode 100644 src/3rdparty/libconninet/debian/libconninet0.dirs delete mode 100644 src/3rdparty/libconninet/debian/libconninet0.files delete mode 100755 src/3rdparty/libconninet/debian/rules delete mode 100644 src/3rdparty/libconninet/doxygen.cfg.in delete mode 100644 src/3rdparty/libconninet/src/Makefile.am delete mode 100644 src/3rdparty/libconninet/src/dbusdispatcher.cpp delete mode 100644 src/3rdparty/libconninet/src/dbusdispatcher.h delete mode 100644 src/3rdparty/libconninet/src/iapconf.cpp delete mode 100644 src/3rdparty/libconninet/src/iapconf.h delete mode 100644 src/3rdparty/libconninet/src/iapmonitor.cpp delete mode 100644 src/3rdparty/libconninet/src/iapmonitor.h delete mode 100644 src/3rdparty/libconninet/src/maemo_icd.cpp delete mode 100644 src/3rdparty/libconninet/src/maemo_icd.h delete mode 100644 src/3rdparty/libconninet/src/proxyconf.cpp delete mode 100644 src/3rdparty/libconninet/src/proxyconf.h delete mode 100644 src/3rdparty/libconninet/tests/Makefile.am delete mode 100644 src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp delete mode 100644 src/3rdparty/libconninet/tests/ut_iapconf.cpp delete mode 100644 src/3rdparty/libconninet/tests/ut_iapmonitor.cpp delete mode 100644 src/3rdparty/libconninet/tests/ut_maemo_icd.cpp delete mode 100644 src/3rdparty/libconninet/tests/ut_proxyconf.cpp diff --git a/src/3rdparty/libconninet/AUTHORS b/src/3rdparty/libconninet/AUTHORS deleted file mode 100644 index e69de29..0000000 diff --git a/src/3rdparty/libconninet/COPYING b/src/3rdparty/libconninet/COPYING deleted file mode 100644 index b124cf5..0000000 --- a/src/3rdparty/libconninet/COPYING +++ /dev/null @@ -1,510 +0,0 @@ - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes a de-facto standard. To achieve this, non-free programs must -be allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at least - three years, to give the same user the materials specified in - Subsection 6a, above, for a charge no more than the cost of - performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms -of the ordinary General Public License). - - To apply these terms, attach the following notices to the library. -It is safest to attach them to the start of each source file to most -effectively convey the exclusion of warranty; and each file should -have at least the "copyright" line and a pointer to where the full -notice is found. - - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or -your school, if any, to sign a "copyright disclaimer" for the library, -if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James - Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/src/3rdparty/libconninet/ChangeLog b/src/3rdparty/libconninet/ChangeLog deleted file mode 100644 index e69de29..0000000 diff --git a/src/3rdparty/libconninet/INSTALL b/src/3rdparty/libconninet/INSTALL deleted file mode 100644 index 54caf7c..0000000 --- a/src/3rdparty/libconninet/INSTALL +++ /dev/null @@ -1,229 +0,0 @@ -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/src/3rdparty/libconninet/Makefile.am b/src/3rdparty/libconninet/Makefile.am deleted file mode 100644 index 250637a..0000000 --- a/src/3rdparty/libconninet/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -SUBDIRS = src tests - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = conninet.pc - -MAINTAINERCLEANFILES = \ - Makefile.in config.h.in configure \ - install-sh ltmain.sh missing mkinstalldirs \ - config.log config.status config.guess config.sub \ - build-stamp compile depcomp acinclude.m4 aclocal.m4 \ - debian/files \ - debian/libconninet0.postinst.debhelper \ - debian/libconninet0.postrm.debhelper \ - debian/libconninet0.substvars - -EXTRA_DIST = \ - debian/changelog \ - debian/compat \ - debian/control \ - debian/copyright \ - debian/libconninet0-dev.dirs \ - debian/libconninet0-dev.files \ - debian/libconninet0.dirs \ - debian/libconninet0.files \ - debian/rules - -# get rid of debian build dirs -maintainer-clean-local: - -rm -rf debian/build debian/tmp \ - debian/libconninet0 \ - debian/libconninet0-dev \ - debian/libconninet0-dbg - -if DOXYGEN_DOCS_ENABLED - DOXYGEN_LINE = $(DOXYGEN) doxygen.cfg -else - DOXYGEN_LINE = -endif - -.PHONY : doc - -doc: - $(DOXYGEN_LINE) - -deb: dist - -mkdir $(top_builddir)/debian-build - cd $(top_builddir)/debian-build && tar zxf ../$(top_builddir)/$(PACKAGE)-$(VERSION).tar.gz - cd $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) && dpkg-buildpackage -rfakeroot -sa -D - -rm -rf $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) diff --git a/src/3rdparty/libconninet/NEWS b/src/3rdparty/libconninet/NEWS deleted file mode 100644 index e69de29..0000000 diff --git a/src/3rdparty/libconninet/README b/src/3rdparty/libconninet/README deleted file mode 100644 index e69de29..0000000 diff --git a/src/3rdparty/libconninet/autogen.sh b/src/3rdparty/libconninet/autogen.sh deleted file mode 100755 index a8fd885..0000000 --- a/src/3rdparty/libconninet/autogen.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -autoreconf --verbose --install --force diff --git a/src/3rdparty/libconninet/config.guess b/src/3rdparty/libconninet/config.guess deleted file mode 100755 index e3a2116..0000000 --- a/src/3rdparty/libconninet/config.guess +++ /dev/null @@ -1,1533 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-06-10' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd | genuineintel) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/src/3rdparty/libconninet/config.sub b/src/3rdparty/libconninet/config.sub deleted file mode 100755 index eb0389a..0000000 --- a/src/3rdparty/libconninet/config.sub +++ /dev/null @@ -1,1693 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-06-11' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/src/3rdparty/libconninet/configure.ac b/src/3rdparty/libconninet/configure.ac deleted file mode 100644 index 2a383ee..0000000 --- a/src/3rdparty/libconninet/configure.ac +++ /dev/null @@ -1,90 +0,0 @@ -AC_INIT([libconninet], patsubst(esyscmd([dpkg-parsechangelog | sed -n '/^Version: \(.*\)$/ {s//\1/;p}']), [ -]), [jukka.rissanen@nokia.com]) -AM_INIT_AUTOMAKE([foreign]) - -AC_PROG_CXX -AC_PROG_LIBTOOL - -AC_ARG_ENABLE(docs, [ --enable-docs Build DOXYGEN documentation (requires Doxygen)],enable_docs=$enableval,enable_docs=auto) - -AC_PATH_PROG(DOXYGEN, doxygen, no) -AC_MSG_CHECKING([whether to build Doxygen documentation]) - -if test x$DOXYGEN = xno ; then - have_doxygen=no -else - have_doxygen=yes -fi -if test x$enable_docs = xauto ; then - if test x$have_doxygen = xno ; then - enable_docs=no - else - enable_docs=yes - fi -fi -if test x$enable_docs = xyes; then - if test x$have_doxygen = xno; then - AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found]) - else - AC_MSG_RESULT(yes) - fi -else - AC_MSG_RESULT(no) -fi - -AM_CONDITIONAL(DOXYGEN_DOCS_ENABLED, test x$enable_docs = xyes) -AC_SUBST(DOXYGEN) - -PKG_CHECK_MODULES(GLIB, glib-2.0) -AC_SUBST(GLIB_CFLAGS) -AC_SUBST(GLIB_LIBS) - -PKG_CHECK_MODULES(QTCORE, QtCore) -AC_SUBST(QTCORE_CFLAGS) -AC_SUBST(QTCORE_LIBS) - -PKG_CHECK_MODULES(QTNETWORK, QtNetwork) -AC_SUBST(QTNETWORK_CFLAGS) -AC_SUBST(QTNETWORK_LIBS) - -PKG_CHECK_MODULES(QTDBUS, QtDBus) -AC_SUBST(QTDBUS_CFLAGS) -AC_SUBST(QTDBUS_LIBS) - -PKG_CHECK_MODULES(QTTEST, QtTest) -AC_SUBST(QTTEST_CFLAGS) -AC_SUBST(QTTEST_LIBS) - -PKG_CHECK_MODULES(DBUS, dbus-glib-1) -AC_SUBST(DBUS_CFLAGS) -AC_SUBST(DBUS_LIBS) - -PKG_CHECK_MODULES(CONNSETTINGS, connsettings) -AC_SUBST(CONNSETTINGS_CFLAGS) -AC_SUBST(CONNSETTINGS_LIBS) - -PKG_CHECK_MODULES(OSSO_IC, osso-ic) -AC_SUBST(OSSO_IC_CFLAGS) -AC_SUBST(OSSO_IC_LIBS) - -PKG_CHECK_MODULES(ICD_DEV, icd2) -AC_SUBST(ICD_DEV_CFLAGS) -AC_SUBST(ICD_DEV_LIBS) - -PKG_CHECK_MODULES(GCONF, gconf-2.0) -AC_SUBST(GCONF_CFLAGS) -AC_SUBST(GCONF_LIBS) - -PKG_CHECK_MODULES(QGCONF, gq-gconf) -AC_SUBST(QGCONF_CFLAGS) -AC_SUBST(QGCONF_LIBS) - -CONCFLAGS="-Wall -Werror -Wmissing-prototypes" -AC_SUBST(CONCFLAGS) - -AC_CONFIG_FILES([Makefile \ - src/Makefile \ - tests/Makefile \ - conninet.pc \ - doxygen.cfg]) -AC_OUTPUT diff --git a/src/3rdparty/libconninet/conninet.pc.in b/src/3rdparty/libconninet/conninet.pc.in deleted file mode 100644 index 68cdee0..0000000 --- a/src/3rdparty/libconninet/conninet.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: libconninet -Description: Internet Connectivity support library -Version: @VERSION@ -Requires: dbus-1 >= 0.60 glib-2.0 QtCore QtDBus QtGui -Libs: -lconninet -Cflags: -I${includedir}/conninet diff --git a/src/3rdparty/libconninet/debian/changelog b/src/3rdparty/libconninet/debian/changelog deleted file mode 100644 index 436d318..0000000 --- a/src/3rdparty/libconninet/debian/changelog +++ /dev/null @@ -1,285 +0,0 @@ -libconninet (0.41+0m6) unstable; urgency=low - - * This entry has been added by BIFH queue processor - version has been changed to 0.41+0m6 - - -- Qing Jin Thu, 15 Jul 2010 15:56:38 +0300 - -libconninet (0.41) unstable; urgency=low - - * Fixes: NB#175098 - Qt4.7 Webkit crashes when bearer API QNetworkSession - constructor calls QNetworkSession::syncStateWithInterface() which in turn - calls Maemo::state() and Maemo::addrinfo() and webkit expects that event - loop is not run but those function process main loop events. - Now Maemo::state() and Maemo::addrinfo() are changed to be synchronous - and fully blocking functions. The old non-blocking versions are called - Maemo::state_non_blocking() and Maemo::addrinfo_non_blocking(). - - -- Jukka Rissanen Wed, 14 Jul 2010 10:12:47 +0300 - -libconninet (0.40) unstable; urgency=low - - * Fixes: NB#167465 - Unable to open network connection using libbearer - - -- Jukka Rissanen Tue, 11 May 2010 10:47:10 +0300 - -libconninet (0.39) unstable; urgency=low - - * Fixes: NB#167982 - initialize DBus vtable in DBusDispatcher. - - -- Aapo Makela Mon, 10 May 2010 14:42:39 +0300 - -libconninet (0.38) unstable; urgency=low - - * Changing icd2 connect_req to be synchronous as the check for - returned connect signal did not work correctly, this caused a - long timeout when connect() was called. - * Scan sometimes missed results and did not return them to caller. - * HTTP proxy settings were not set correctly. - - -- Jukka Rissanen Thu, 15 Apr 2010 11:25:06 +0300 - -libconninet (0.37) unstable; urgency=low - - * Make proxy config reference counting atomic. - - -- Jukka Rissanen Wed, 3 Mar 2010 13:23:08 +0200 - -libconninet (0.36) unstable; urgency=low - - * Fixes: NB#157586 - Cleanup dbus listener when WLAN scanning object is - deleted. - - -- Jukka Rissanen Fri, 26 Feb 2010 13:30:41 +0200 - -libconninet (0.35) unstable; urgency=low - - * Fixes: NB#156883 - libconninet fails to build under the Platform SDK (SB2) - - -- Jukka Rissanen Thu, 18 Feb 2010 12:14:40 +0200 - -libconninet (0.34) unstable; urgency=low - - * Coverity fix - - -- Jukka Rissanen Tue, 16 Feb 2010 16:38:00 +0200 - -libconninet (0.33) unstable; urgency=low - - * Added API to update Qt proxy config. - - -- Jukka Rissanen Tue, 26 Jan 2010 15:48:36 +0200 - -libconninet (0.32) unstable; urgency=low - - * Fixed IAPConf to unset value when set value is invalid. - * Updated IAPMonitor to use libconnsettings. - - -- Aapo Makela Wed, 03 Feb 2010 07:32:45 +0200 - -libconninet (0.31) unstable; urgency=low - - * Fixes: NB#154892 - Check nulls in IAPConf. - - -- Aapo Makela Mon, 01 Feb 2010 09:32:06 +0200 - -libconninet (0.30) unstable; urgency=low - - * Updated IAPConf to use libconnsettings. - - -- Aapo Makela Fri, 29 Jan 2010 12:58:03 +0200 - -libconninet (0.29) unstable; urgency=low - - * Fixed dependencies - - -- Jukka Rissanen Fri, 15 Jan 2010 10:16:07 +0200 - -libconninet (0.28) unstable; urgency=low - - * Get rid of libdui dependency - - -- Jukka Rissanen Wed, 13 Jan 2010 09:56:26 +0200 - -libconninet (0.27) unstable; urgency=low - - * Insert new pending calls to the list in DBusDispatcher. - - -- Aapo Makela Tue, 22 Dec 2009 14:27:32 +0200 - -libconninet (0.26) unstable; urgency=low - - * Added possibility to specify different signal path for DBusDispatcher. - - -- Aapo Makela Wed, 25 Nov 2009 14:27:34 +0200 - -libconninet (0.25) unstable; urgency=low - - * Fixes: NB#146450 - All scan results were not returned to the caller. - - -- Jukka Rissanen Mon, 16 Nov 2009 17:23:15 +0200 - -libconninet (0.24) unstable; urgency=low - - * Wait all scan results for all network types in Maemo::Icd::scan() - - -- Jukka Rissanen Fri, 6 Nov 2009 14:45:23 +0200 - -libconninet (0.23) unstable; urgency=low - - * Fixes: NB#143361 - Assert failure in session class for GPRS IAP. - - -- Jukka Rissanen Mon, 19 Oct 2009 16:00:14 +0300 - -libconninet (0.22) unstable; urgency=low - - * Fixed the error checking if scan returns 0 results. - - -- Jukka Rissanen Wed, 7 Oct 2009 13:50:27 +0300 - -libconninet (0.21) unstable; urgency=low - - * Support multiple DBusDispatcher classes at the same time. This is - required by Maemo::Icd class so that multiple instances of it can - be used the same time. - - -- Jukka Rissanen Mon, 5 Oct 2009 16:33:43 +0300 - -libconninet (0.20) unstable; urgency=low - - * Fixed memory leak in IAPConf::setValue() - - -- Jukka Rissanen Fri, 2 Oct 2009 13:02:21 +0300 - -libconninet (0.19) unstable; urgency=low - - * Fixed connect_req to one specific IAP in Icd class. - - -- Jukka Rissanen Tue, 29 Sep 2009 17:02:46 +0300 - -libconninet (0.18) unstable; urgency=low - - * Make sure the library will not abort in Icd class if scan does - not return any results. - - -- Jukka Rissanen Tue, 22 Sep 2009 17:00:12 +0300 - -libconninet (0.17) unstable; urgency=low - - * Added IAP monitoring support. - - -- Jukka Rissanen Mon, 21 Sep 2009 16:29:31 +0300 - -libconninet (0.16) unstable; urgency=low - - * Disabled the old osso-ic dbus interface as it is currently not used. - * Fixed the addrinfo request, now addresses are returned correctly to - the caller. - - -- Jukka Rissanen Thu, 17 Sep 2009 15:56:13 +0300 - -libconninet (0.15) unstable; urgency=low - - * Enabling state_req, statistics_req and addrinfo_req support - functions in Maemo::Icd as the corresponding DBUS API functions are - fixed in icd2 v0.89 - - -- Jukka Rissanen Fri, 24 Jul 2009 15:23:02 +0300 - -libconninet (0.14) unstable; urgency=low - - * Icd statistics support added. - * Icd address information support added. - * Icd scan method does not return the final (and empty) result any more. - * Added initial unit test implementation for Icd class. - * Some of the status functions in Icd class disabled because of issues - in icd2 and the dbus api. - - -- Jukka Rissanen Thu, 23 Jul 2009 11:03:05 +0300 - -libconninet (0.13) unstable; urgency=low - - * Added API to get all the configured IAPs. - - -- Jukka Rissanen Tue, 21 Jul 2009 09:47:18 +0300 - -libconninet (0.12) unstable; urgency=low - - * Replaced duivaluespace by Dui in pkg-config file because the - duivaluespace is deprecated. - - -- Jukka Rissanen Mon, 20 Jul 2009 16:00:10 +0300 - -libconninet (0.11) unstable; urgency=low - - * Using libdui instead of libduivaluespace because it is deprecated. - * The IAPConf::clear() uses native gconf API instead of launching gconftool - * Check that state_req call returned list and the list contains entries - before trying to access it. - - -- Jukka Rissanen Mon, 20 Jul 2009 14:55:15 +0300 - -libconninet (0.10) unstable; urgency=low - - * connect() did not return ok when connection succeeded. - - -- Jukka Rissanen Thu, 25 Jun 2009 09:31:21 +0300 - -libconninet (0.9) unstable; urgency=low - - * Connection timeout set to 2.5min, same as in fremantle. - - -- Jukka Rissanen Wed, 17 Jun 2009 13:36:40 +0300 - -libconninet (0.8) unstable; urgency=low - - * Fix state_req signal received from Icd - - -- Jukka Rissanen Thu, 11 Jun 2009 17:19:33 +0300 - -libconninet (0.7) unstable; urgency=low - - * Icd disconnect and select reqs are made synchronous as we do not - wait the return status. The previous async version was causing core - dumps if Icd class was destroyed too early. - - -- Jukka Rissanen Thu, 11 Jun 2009 11:52:36 +0300 - -libconninet (0.6) unstable; urgency=low - - * Fixed the libconninet0-dev dependencies. - - -- Jukka Rissanen Mon, 8 Jun 2009 10:47:56 +0300 - -libconninet (0.5) unstable; urgency=low - - * Fixed missing QObject connect functions. - * Fixed IAPConf to return invalid QVariant if the value does not exist. - - -- Jukka Rissanen Mon, 01 Jun 2009 13:58:53 +0300 - -libconninet (0.4) unstable; urgency=low - - * Fixed QObject signal setting for Maemo::Icd - - -- Jukka Rissanen Wed, 20 May 2009 13:51:11 +0300 - -libconninet (0.3) unstable; urgency=low - - * Refactoring classes - * Added IAPConf class. - - -- Jukka Rissanen Thu, 14 May 2009 13:24:11 +0300 - -libconninet (0.2) unstable; urgency=low - - * Fixed pkgconfig file which had wrong dependency - * Added DBus array and struct support to DBusDispatcher. - - -- Jukka Rissanen Wed, 13 May 2009 12:11:00 +0300 - -libconninet (0.1) unstable; urgency=low - - * Initial Release. - - -- Jukka Rissanen Tue, 12 May 2009 16:10:27 +0200 diff --git a/src/3rdparty/libconninet/debian/compat b/src/3rdparty/libconninet/debian/compat deleted file mode 100644 index b8626c4..0000000 --- a/src/3rdparty/libconninet/debian/compat +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/src/3rdparty/libconninet/debian/control b/src/3rdparty/libconninet/debian/control deleted file mode 100644 index 2db660f..0000000 --- a/src/3rdparty/libconninet/debian/control +++ /dev/null @@ -1,39 +0,0 @@ -Source: libconninet -Priority: optional -Maintainer: Jukka Rissanen -Build-Depends: debhelper (>= 4.0.0), autotools-dev, libglib2.0-dev (>= 2.8), - libdbus-1-dev (>= 0.60), libconnsettings0-dev (>= 0.4), icd2-osso-ic-dev, - icd2-dev, libqt4-dev, libgconf2-dev (>> 2.6.4), libgq-gconf-dev -Standards-Version: 3.6.2 -Section: libs - -Package: libconninet0-dev -Section: libdevel -Architecture: any -Depends: libconninet0 (= ${Source-Version}), libdbus-1-dev (>= 0.60), - libglib2.0-dev (>= 2.8), libconnsettings0-dev (>= 0.4), libqt4-dev, - icd2-osso-ic-dev, icd2-dev, libgconf2-dev (>> 2.6.4), libgq-gconf-dev -Description: Internet Connectivity support library development files - Internet Connectivity support library (libconninet) provides common - support functions for connecting to icd2 and accessing configuration - data. - . - This package contains the header files. - -Package: libconninet0 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Internet Connectivity support library - Internet Connectivity support library (libconninet) provides common - support functions for connecting to icd2 and accessing configuration - data. - . - This package contains the shared libraries. - -Package: libconninet0-dbg -Section: libs -Architecture: any -Depends: libconninet0 (= ${Source-Version}), ${shlibs:Depends}, ${misc:Depends} -Description: Debug symbols for the Internet Connectivity support library - Internet Connectivity support library (libconninet) debug symbols. diff --git a/src/3rdparty/libconninet/debian/copyright b/src/3rdparty/libconninet/debian/copyright deleted file mode 100644 index 97e8e68..0000000 --- a/src/3rdparty/libconninet/debian/copyright +++ /dev/null @@ -1,19 +0,0 @@ -libconninet - Internet Connectivity support library - -Copyright (C) 2009 Nokia Corporation. All rights reserved. - -Contact: Jukka Rissanen - -This library is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License version 2.1 -as published by the Free Software Foundation. - -This library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -02110-1301 USA diff --git a/src/3rdparty/libconninet/debian/libconninet0-dev.dirs b/src/3rdparty/libconninet/debian/libconninet0-dev.dirs deleted file mode 100644 index 4418816..0000000 --- a/src/3rdparty/libconninet/debian/libconninet0-dev.dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/lib -usr/include diff --git a/src/3rdparty/libconninet/debian/libconninet0-dev.files b/src/3rdparty/libconninet/debian/libconninet0-dev.files deleted file mode 100644 index 78bbac8..0000000 --- a/src/3rdparty/libconninet/debian/libconninet0-dev.files +++ /dev/null @@ -1,4 +0,0 @@ -usr/include/* -usr/lib/lib*.so -usr/lib/pkgconfig/* -usr/share/pkgconfig/* diff --git a/src/3rdparty/libconninet/debian/libconninet0.dirs b/src/3rdparty/libconninet/debian/libconninet0.dirs deleted file mode 100644 index 6845771..0000000 --- a/src/3rdparty/libconninet/debian/libconninet0.dirs +++ /dev/null @@ -1 +0,0 @@ -usr/lib diff --git a/src/3rdparty/libconninet/debian/libconninet0.files b/src/3rdparty/libconninet/debian/libconninet0.files deleted file mode 100644 index d0dbfd1..0000000 --- a/src/3rdparty/libconninet/debian/libconninet0.files +++ /dev/null @@ -1 +0,0 @@ -usr/lib/lib*.so.* diff --git a/src/3rdparty/libconninet/debian/rules b/src/3rdparty/libconninet/debian/rules deleted file mode 100755 index 2a3d395..0000000 --- a/src/3rdparty/libconninet/debian/rules +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - -# shared library versions, option 1 -#version=2.0.5 -#major=2 -# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so -version=`ls src/.libs/lib*.so.* | \ - awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'` -major=`ls src/.libs/lib*.so.* | \ - awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'` - -configure: configure.ac debian/changelog - -./autogen.sh - -config.status: configure - dh_testdir - # Add here commands to configure the package. - CFLAGS="$(CFLAGS)" ./configure \ - --host=$(DEB_HOST_GNU_TYPE) \ - --build=$(DEB_BUILD_GNU_TYPE) \ - --prefix=/usr \ - --mandir=\$${prefix}/share/man \ - --infodir=\$${prefix}/share/info - - -build: build-stamp -build-stamp: config.status - dh_testdir - - # Add here commands to compile the package. - $(MAKE) - - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp - - # Add here commands to clean up after the build process. - -$(MAKE) distclean -ifneq "$(wildcard /usr/share/misc/config.sub)" "" - cp -f /usr/share/misc/config.sub config.sub -endif -ifneq "$(wildcard /usr/share/misc/config.guess)" "" - cp -f /usr/share/misc/config.guess config.guess -endif - - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - # Add here commands to install the package into debian/tmp - $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_movefiles - dh_installchangelogs ChangeLog - dh_installdocs - dh_installexamples -# dh_install -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip --dbg-package=libconninet0 - dh_compress - dh_fixperms -# dh_perl -# dh_python - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install diff --git a/src/3rdparty/libconninet/doxygen.cfg.in b/src/3rdparty/libconninet/doxygen.cfg.in deleted file mode 100644 index 80a4c8d..0000000 --- a/src/3rdparty/libconninet/doxygen.cfg.in +++ /dev/null @@ -1,1147 +0,0 @@ -# Doxyfile 1.3.7 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = "Internet Connectivity Support Library" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = @VERSION@ - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 2 levels of 10 sub-directories under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of source -# files, where putting all generated files in the same directory would otherwise -# cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, -# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en -# (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, -# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is used -# as the annotated text. Otherwise, the brief description is used as-is. If left -# blank, the following values are used ("$name" is automatically replaced with the -# name of the entity): "The $name class" "The $name widget" "The $name file" -# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited -# members of a class in the documentation of that class as if those members were -# ordinary class members. Constructors, destructors and assignment operators of -# the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = YES - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = YES - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = YES - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = conic/conic.h \ - conic/conicconnection.h \ - conic/conicconnectionevent.h \ - conic/conicevent.h \ - conic/coniciap.h \ - conic/conicstatisticsevent.h - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp -# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories -# that are symbolic links (a Unix filesystem feature) are excluded from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. - -INPUT_FILTER = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_PREDEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse the -# parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or -# super classes. Setting the tag to NO turns the diagrams off. Note that this -# option is superseded by the HAVE_DOT option below. This is only a fallback. It is -# recommended to install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found on the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_WIDTH = 1024 - -# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_HEIGHT = 1024 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes that -# lay further from the root node will be omitted. Note that setting this option to -# 1 or 2 may greatly reduce the computation time needed for large code bases. Also -# note that a graph may be further truncated if the graph's image dimensions are -# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). -# If 0 is used for the depth value (the default), the graph is not depth-constrained. - -MAX_DOT_GRAPH_DEPTH = 0 - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/src/3rdparty/libconninet/src/Makefile.am b/src/3rdparty/libconninet/src/Makefile.am deleted file mode 100644 index be7a1e5..0000000 --- a/src/3rdparty/libconninet/src/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -DEFS = -DDBUS_API_SUBJECT_TO_CHANGE -DGCONF_DISABLE_DEPRECATED -INCLUDES = @GLIB_CFLAGS@ @DBUS_CFLAGS@ @GCONF_CFLAGS@ @OSSO_IC_CFLAGS@ @ICD_DEV_CFLAGS@ @QTCORE_CFLAGS@ @QTNETWORK_CFLAGS@ @QTDBUS_CFLAGS@ @QGCONF_CFLAGS@ @CONNSETTINGS_CFLAGS@ -LIBS = @GLIB_LIBS@ @DBUS_LIBS@ @GCONF_LIBS@ @OSSO_IC_LIBS@ @ICD_DEV_LIBS@ @QTCORE_LIBS@ @QTDBUS_LIBS@ @QTNETWORK_CFLAGS@ @QGCONF_LIBS@ @CONNSETTINGS_LIBS@ - -AM_CFLAGS = $(CONCFLAGS) - -lib_LTLIBRARIES = libconninet.la -libconninet_la_SOURCES = \ - maemo_icd.cpp \ - dbusdispatcher.cpp \ - iapconf.cpp \ - iapmonitor.cpp \ - proxyconf.cpp - -#libconninet_la_LDFLAGS = -version-info 0:0:0 - -conninetincludedir = $(includedir)/conninet -conninetinclude_HEADERS = \ - maemo_icd.h \ - dbusdispatcher.h \ - iapconf.h \ - iapmonitor.h \ - proxyconf.h - -nodist_libconninet_la_SOURCES = \ - moc_maemo_icd.cpp \ - moc_dbusdispatcher.cpp - -MAINTAINERCLEANFILES = Makefile.in - -# This rule lets GNU make create any moc_*.cpp from the equivalent *.h -moc_%.cpp: %.h - moc $< -o $@ - -# This line ensures that generated moc files are deleted when we make clean. -CLEANFILES = *_moc.cpp *.loT diff --git a/src/3rdparty/libconninet/src/dbusdispatcher.cpp b/src/3rdparty/libconninet/src/dbusdispatcher.cpp deleted file mode 100644 index f5b830a..0000000 --- a/src/3rdparty/libconninet/src/dbusdispatcher.cpp +++ /dev/null @@ -1,611 +0,0 @@ -/* * This file is part of conninet * - * - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * - * Contact: Aapo Makela - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * version 2.1 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include "dbusdispatcher.h" - -namespace Maemo { - -/*! - \class Maemo::DBusDispatcher - - \brief DBusDispatcher is a class, which is able to send DBUS method call - messages and receive unicast signals from DBUS object. -*/ - -class DBusDispatcherPrivate -{ -public: - DBusDispatcherPrivate(const QString& service, - const QString& path, - const QString& interface, - const QString& signalPath) - : service(service), path(path), interface(interface), - signalPath(signalPath), connection(0) - { - memset(&signal_vtable, 0, sizeof(signal_vtable)); - } - - ~DBusDispatcherPrivate() - { - foreach(DBusPendingCall *call, pending_calls) { - dbus_pending_call_cancel(call); - dbus_pending_call_unref(call); - } - } - - QString service; - QString path; - QString interface; - QString signalPath; - struct DBusConnection *connection; - QList pending_calls; - struct DBusObjectPathVTable signal_vtable; -}; - -static bool constantVariantList(const QVariantList& variantList) { - // Special case, empty list == empty struct - if (variantList.isEmpty()) { - return false; - } else { - QVariant::Type type = variantList[0].type(); - // Iterate items in the list and check if they are same type - foreach(QVariant variant, variantList) { - if (variant.type() != type) { - return false; - } - } - } - return true; -} - -static QString variantToSignature(const QVariant& argument, - bool constantList = true) { - switch (argument.type()) { - case QVariant::Bool: - return "b"; - case QVariant::ByteArray: - return "ay"; - case QVariant::Char: - return "y"; - case QVariant::Int: - return "i"; - case QVariant::UInt: - return "u"; - case QVariant::StringList: - return "as"; - case QVariant::String: - return "s"; - case QVariant::LongLong: - return "x"; - case QVariant::ULongLong: - return "t"; - case QVariant::List: - { - QString signature; - QVariantList variantList = argument.toList(); - if (!constantList) { - signature += DBUS_STRUCT_BEGIN_CHAR_AS_STRING; - foreach(QVariant listItem, variantList) { - signature += variantToSignature(listItem); - } - signature += DBUS_STRUCT_END_CHAR_AS_STRING; - } else { - if (variantList.isEmpty()) - return ""; - signature = "a" + variantToSignature(variantList[0]); - } - - return signature; - } - default: - qDebug() << "Unsupported variant type: " << argument.type(); - break; - } - - return ""; -} - -static bool appendVariantToDBusMessage(const QVariant& argument, - DBusMessageIter *dbus_iter) { - int idx = 0; - DBusMessageIter array_iter; - QStringList str_list; - dbus_bool_t bool_data; - dbus_int32_t int32_data; - dbus_uint32_t uint32_data; - dbus_int64_t int64_data; - dbus_uint64_t uint64_data; - char *str_data; - char char_data; - - switch (argument.type()) { - - case QVariant::Bool: - bool_data = argument.toBool(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_BOOLEAN, - &bool_data); - break; - - case QVariant::ByteArray: - str_data = argument.toByteArray().data(); - dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY, - DBUS_TYPE_BYTE_AS_STRING, &array_iter); - dbus_message_iter_append_fixed_array(&array_iter, - DBUS_TYPE_BYTE, - &str_data, - argument.toByteArray().size()); - dbus_message_iter_close_container(dbus_iter, &array_iter); - break; - - case QVariant::Char: - char_data = argument.toChar().toAscii(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_BYTE, - &char_data); - break; - - case QVariant::Int: - int32_data = argument.toInt(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_INT32, - &int32_data); - break; - - case QVariant::String: - str_data = argument.toString().toLatin1().data(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_STRING, - &str_data); - break; - - case QVariant::StringList: - str_list = argument.toStringList(); - dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY, - "s", &array_iter); - for (idx = 0; idx < str_list.size(); idx++) { - str_data = str_list.at(idx).toLatin1().data(); - dbus_message_iter_append_basic(&array_iter, - DBUS_TYPE_STRING, - &str_data); - } - dbus_message_iter_close_container(dbus_iter, &array_iter); - break; - - case QVariant::UInt: - uint32_data = argument.toUInt(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_UINT32, - &uint32_data); - break; - - case QVariant::ULongLong: - uint64_data = argument.toULongLong(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_UINT64, - &uint64_data); - break; - - case QVariant::LongLong: - int64_data = argument.toLongLong(); - dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_INT64, - &int64_data); - break; - - case QVariant::List: - { - QVariantList variantList = argument.toList(); - bool constantList = constantVariantList(variantList); - DBusMessageIter array_iter; - - // List is mapped either as an DBUS array (all items same type) - // DBUS struct (variable types) depending on constantList - if (constantList) { - // Resolve the signature for the first item - QString signature = ""; - if (!variantList.isEmpty()) { - signature = variantToSignature( - variantList[0], - constantVariantList(variantList[0].toList())); - } - - // Mapped as DBUS array - dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY, - signature.toAscii(), - &array_iter); - - foreach(QVariant listItem, variantList) { - appendVariantToDBusMessage(listItem, &array_iter); - } - - dbus_message_iter_close_container(dbus_iter, &array_iter); - } else { - // Mapped as DBUS struct - dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_STRUCT, - NULL, - &array_iter); - - foreach(QVariant listItem, variantList) { - appendVariantToDBusMessage(listItem, &array_iter); - } - - dbus_message_iter_close_container(dbus_iter, &array_iter); - } - - break; - } - default: - qDebug() << "Unsupported variant type: " << argument.type(); - break; - } - - return true; -} - -static QVariant getVariantFromDBusMessage(DBusMessageIter *iter) { - dbus_bool_t bool_data; - dbus_int32_t int32_data; - dbus_uint32_t uint32_data; - dbus_int64_t int64_data; - dbus_uint64_t uint64_data; - char *str_data; - char char_data; - int argtype = dbus_message_iter_get_arg_type(iter); - - switch (argtype) { - - case DBUS_TYPE_BOOLEAN: - { - dbus_message_iter_get_basic(iter, &bool_data); - QVariant variant((bool)bool_data); - return variant; - } - - case DBUS_TYPE_ARRAY: - { - // Handle all arrays here - int elem_type = dbus_message_iter_get_element_type(iter); - DBusMessageIter array_iter; - - dbus_message_iter_recurse(iter, &array_iter); - - if (elem_type == DBUS_TYPE_BYTE) { - QByteArray byte_array; - do { - dbus_message_iter_get_basic(&array_iter, &char_data); - byte_array.append(char_data); - } while (dbus_message_iter_next(&array_iter)); - QVariant variant(byte_array); - return variant; - } else if (elem_type == DBUS_TYPE_STRING) { - QStringList str_list; - do { - dbus_message_iter_get_basic(&array_iter, &str_data); - str_list.append(str_data); - } while (dbus_message_iter_next(&array_iter)); - QVariant variant(str_list); - return variant; - } else { - QVariantList variantList; - do { - variantList << getVariantFromDBusMessage(&array_iter); - } while (dbus_message_iter_next(&array_iter)); - QVariant variant(variantList); - return variant; - } - break; - } - - case DBUS_TYPE_BYTE: - { - dbus_message_iter_get_basic(iter, &char_data); - QChar ch(char_data); - QVariant variant(ch); - return variant; - } - - case DBUS_TYPE_INT32: - { - dbus_message_iter_get_basic(iter, &int32_data); - QVariant variant((int)int32_data); - return variant; - } - - case DBUS_TYPE_UINT32: - { - dbus_message_iter_get_basic(iter, &uint32_data); - QVariant variant((uint)uint32_data); - return variant; - } - - case DBUS_TYPE_STRING: - { - dbus_message_iter_get_basic(iter, &str_data); - QString str(str_data); - QVariant variant(str); - return variant; - } - - case DBUS_TYPE_INT64: - { - dbus_message_iter_get_basic(iter, &int64_data); - QVariant variant((qlonglong)int64_data); - return variant; - } - - case DBUS_TYPE_UINT64: - { - dbus_message_iter_get_basic(iter, &uint64_data); - QVariant variant((qulonglong)uint64_data); - return variant; - } - - case DBUS_TYPE_STRUCT: - { - // Handle all structs here - DBusMessageIter struct_iter; - dbus_message_iter_recurse(iter, &struct_iter); - - QVariantList variantList; - do { - variantList << getVariantFromDBusMessage(&struct_iter); - } while (dbus_message_iter_next(&struct_iter)); - QVariant variant(variantList); - return variant; - } - - default: - qDebug() << "Unsupported DBUS type: " << argtype; - } - - return QVariant(); -} - -static DBusHandlerResult signalHandler (DBusConnection *connection, - DBusMessage *message, - void *object_ref) { - (void)connection; - QString interface; - QString signal; - DBusDispatcher *dispatcher = (DBusDispatcher *)object_ref; - - if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_SIGNAL) { - interface = dbus_message_get_interface(message); - signal = dbus_message_get_member(message); - - QList arglist; - DBusMessageIter dbus_iter; - - if (dbus_message_iter_init(message, &dbus_iter)) { - // Read return arguments - while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) { - arglist << getVariantFromDBusMessage(&dbus_iter); - dbus_message_iter_next(&dbus_iter); - } - } - - dispatcher->emitSignalReceived(interface, signal, arglist); - return DBUS_HANDLER_RESULT_HANDLED; - } - (void)message; - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -} - -DBusDispatcher::DBusDispatcher(const QString& service, - const QString& path, - const QString& interface, - QObject *parent) - : QObject(parent), - d_ptr(new DBusDispatcherPrivate(service, path, interface, path)) { - setupDBus(); -} - -DBusDispatcher::DBusDispatcher(const QString& service, - const QString& path, - const QString& interface, - const QString& signalPath, - QObject *parent) - : QObject(parent), - d_ptr(new DBusDispatcherPrivate(service, path, interface, signalPath)) { - setupDBus(); -} - -DBusDispatcher::~DBusDispatcher() -{ - if (d_ptr->connection) { - dbus_connection_close(d_ptr->connection); - dbus_connection_unref(d_ptr->connection); - } - delete d_ptr; -} - -void DBusDispatcher::setupDBus() -{ - d_ptr->connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, NULL); - - if (d_ptr->connection == NULL) - qDebug() << "Unable to get DBUS connection!"; - else { - d_ptr->signal_vtable.message_function = signalHandler; - - dbus_connection_set_exit_on_disconnect(d_ptr->connection, FALSE); - dbus_connection_setup_with_g_main(d_ptr->connection, NULL); - dbus_connection_register_object_path(d_ptr->connection, - d_ptr->signalPath.toLatin1(), - &d_ptr->signal_vtable, - this); - } -} - -static DBusMessage *prepareDBusCall(const QString& service, - const QString& path, - const QString& interface, - const QString& method, - const QVariant& arg1 = QVariant(), - const QVariant& arg2 = QVariant(), - const QVariant& arg3 = QVariant(), - const QVariant& arg4 = QVariant(), - const QVariant& arg5 = QVariant(), - const QVariant& arg6 = QVariant(), - const QVariant& arg7 = QVariant(), - const QVariant& arg8 = QVariant()) -{ - DBusMessage *message = dbus_message_new_method_call(service.toLatin1(), - path.toLatin1(), - interface.toLatin1(), - method.toLatin1()); - DBusMessageIter dbus_iter; - - // Append variants to DBUS message - QList arglist; - if (arg1.isValid()) arglist << arg1; - if (arg2.isValid()) arglist << arg2; - if (arg3.isValid()) arglist << arg3; - if (arg4.isValid()) arglist << arg4; - if (arg5.isValid()) arglist << arg5; - if (arg6.isValid()) arglist << arg6; - if (arg7.isValid()) arglist << arg7; - if (arg8.isValid()) arglist << arg8; - - dbus_message_iter_init_append (message, &dbus_iter); - - while (!arglist.isEmpty()) { - QVariant argument = arglist.takeFirst(); - appendVariantToDBusMessage(argument, &dbus_iter); - } - - return message; -} - -QList DBusDispatcher::call(const QString& method, - const QVariant& arg1, - const QVariant& arg2, - const QVariant& arg3, - const QVariant& arg4, - const QVariant& arg5, - const QVariant& arg6, - const QVariant& arg7, - const QVariant& arg8) { - DBusMessageIter dbus_iter; - DBusMessage *message = prepareDBusCall(d_ptr->service, d_ptr->path, - d_ptr->interface, method, - arg1, arg2, arg3, arg4, arg5, - arg6, arg7, arg8); - DBusMessage *reply = dbus_connection_send_with_reply_and_block( - d_ptr->connection, - message, -1, NULL); - dbus_message_unref(message); - - QList replylist; - if (reply != NULL && dbus_message_iter_init(reply, &dbus_iter)) { - // Read return arguments - while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) { - replylist << getVariantFromDBusMessage(&dbus_iter); - dbus_message_iter_next(&dbus_iter); - } - } - if (reply != NULL) dbus_message_unref(reply); - return replylist; -} - -class PendingCallInfo { -public: - QString method; - DBusDispatcher *dispatcher; - DBusDispatcherPrivate *priv; -}; - -static void freePendingCallInfo(void *memory) { - PendingCallInfo *info = (PendingCallInfo *)memory; - delete info; -} - -static void pendingCallFunction (DBusPendingCall *pending, - void *memory) { - PendingCallInfo *info = (PendingCallInfo *)memory; - QString errorStr; - QList replyList; - DBusMessage *reply = dbus_pending_call_steal_reply (pending); - - Q_ASSERT(reply != NULL); - - if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { - errorStr = dbus_message_get_error_name (reply); - } else { - DBusMessageIter dbus_iter; - dbus_message_iter_init(reply, &dbus_iter); - // Read return arguments - while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) { - replyList << getVariantFromDBusMessage(&dbus_iter); - dbus_message_iter_next(&dbus_iter); - } - } - - info->priv->pending_calls.removeOne(pending); - info->dispatcher->emitCallReply(info->method, replyList, errorStr); - dbus_message_unref(reply); - dbus_pending_call_unref(pending); -} - -bool DBusDispatcher::callAsynchronous(const QString& method, - const QVariant& arg1, - const QVariant& arg2, - const QVariant& arg3, - const QVariant& arg4, - const QVariant& arg5, - const QVariant& arg6, - const QVariant& arg7, - const QVariant& arg8) { - DBusMessage *message = prepareDBusCall(d_ptr->service, d_ptr->path, - d_ptr->interface, method, - arg1, arg2, arg3, arg4, arg5, - arg6, arg7, arg8); - DBusPendingCall *call = NULL; - dbus_bool_t ret = dbus_connection_send_with_reply(d_ptr->connection, - message, &call, -1); - PendingCallInfo *info = new PendingCallInfo; - info->method = method; - info->dispatcher = this; - info->priv = d_ptr; - - dbus_pending_call_set_notify(call, pendingCallFunction, info, freePendingCallInfo); - d_ptr->pending_calls.append(call); - return (bool)ret; -} - -void DBusDispatcher::emitSignalReceived(const QString& interface, - const QString& signal, - const QList& args) { - emit signalReceived(interface, signal, args); } - -void DBusDispatcher::emitCallReply(const QString& method, - const QList& args, - const QString& error) { - emit callReply(method, args, error); } - -void DBusDispatcher::synchronousDispatch(int timeout_ms) -{ - dbus_connection_read_write_dispatch(d_ptr->connection, timeout_ms); -} - -} // Maemo namespace - diff --git a/src/3rdparty/libconninet/src/dbusdispatcher.h b/src/3rdparty/libconninet/src/dbusdispatcher.h deleted file mode 100644 index 2f71b6f..0000000 --- a/src/3rdparty/libconninet/src/dbusdispatcher.h +++ /dev/null @@ -1,91 +0,0 @@ -/* * This file is part of conn-dui-settings-inet * - * - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * - * Contact: Aapo Makela - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * version 2.1 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - -#ifndef DBUSDISPATCHER_H -#define DBUSDISPATCHER_H - -#include -#include - -namespace Maemo { - -class DBusDispatcherPrivate; -class DBusDispatcher : public QObject -{ - Q_OBJECT - -public: - DBusDispatcher(const QString& service, - const QString& path, - const QString& interface, - QObject *parent = 0); - DBusDispatcher(const QString& service, - const QString& path, - const QString& interface, - const QString& signalPath, - QObject *parent = 0); - ~DBusDispatcher(); - - QList call(const QString& method, - const QVariant& arg1 = QVariant(), - const QVariant& arg2 = QVariant(), - const QVariant& arg3 = QVariant(), - const QVariant& arg4 = QVariant(), - const QVariant& arg5 = QVariant(), - const QVariant& arg6 = QVariant(), - const QVariant& arg7 = QVariant(), - const QVariant& arg8 = QVariant()); - bool callAsynchronous(const QString& method, - const QVariant& arg1 = QVariant(), - const QVariant& arg2 = QVariant(), - const QVariant& arg3 = QVariant(), - const QVariant& arg4 = QVariant(), - const QVariant& arg5 = QVariant(), - const QVariant& arg6 = QVariant(), - const QVariant& arg7 = QVariant(), - const QVariant& arg8 = QVariant()); - void emitSignalReceived(const QString& interface, - const QString& signal, - const QList& args); - void emitCallReply(const QString& method, - const QList& args, - const QString& error = ""); - void synchronousDispatch(int timeout_ms); - -Q_SIGNALS: - void signalReceived(const QString& interface, - const QString& signal, - const QList& args); - void callReply(const QString& method, - const QList& args, - const QString& error); - -protected: - void setupDBus(); - -private: - DBusDispatcherPrivate *d_ptr; -}; - -} // Maemo namespace - -#endif diff --git a/src/3rdparty/libconninet/src/iapconf.cpp b/src/3rdparty/libconninet/src/iapconf.cpp deleted file mode 100644 index 2e77fa5..0000000 --- a/src/3rdparty/libconninet/src/iapconf.cpp +++ /dev/null @@ -1,299 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. - - Contact: Aapo Makela - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#include -#include -#include - -#include "iapconf.h" - -#define QSTRING_TO_CONST_CSTR(str) \ - str.toUtf8().constData() - -namespace Maemo { - -class IAPConfPrivate { -public: - ConnSettings *settings; - - ConnSettingsValue *variantToValue(const QVariant &variant); - QVariant valueToVariant(ConnSettingsValue *value); -}; - -ConnSettingsValue *IAPConfPrivate::variantToValue(const QVariant &variant) -{ - // Convert variant to ConnSettingsValue - ConnSettingsValue *value = conn_settings_value_new(); - if (value == 0) { - qWarning("IAPConf: Unable to create new ConnSettingsValue"); - return 0; - } - - switch(variant.type()) { - - case QVariant::Invalid: - value->type = CONN_SETTINGS_VALUE_INVALID; - break; - - case QVariant::String: { - char *valueStr = strdup(QSTRING_TO_CONST_CSTR(variant.toString())); - value->type = CONN_SETTINGS_VALUE_STRING; - value->value.string_val = valueStr; - break; - } - - case QVariant::Int: - value->type = CONN_SETTINGS_VALUE_INT; - value->value.int_val = variant.toInt(); - break; - - case QMetaType::Float: - case QVariant::Double: - value->type = CONN_SETTINGS_VALUE_DOUBLE; - value->value.double_val = variant.toDouble(); - break; - - case QVariant::Bool: - value->type = CONN_SETTINGS_VALUE_BOOL; - value->value.bool_val = variant.toBool() ? 1 : 0; - break; - - case QVariant::ByteArray: { - QByteArray array = variant.toByteArray(); - value->type = CONN_SETTINGS_VALUE_BYTE_ARRAY; - value->value.byte_array.len = array.size(); - value->value.byte_array.val = (unsigned char *)malloc(array.size()); - memcpy(value->value.byte_array.val, array.constData(), array.size()); - break; - } - - case QVariant::List: { - QVariantList list = variant.toList(); - ConnSettingsValue **list_val = (ConnSettingsValue **)malloc( - (list.size() + 1) * sizeof(ConnSettingsValue *)); - - for (int idx = 0; idx < list.size(); idx++) { - list_val[idx] = variantToValue(list.at(idx)); - } - list_val[list.size()] = 0; - - value->type = CONN_SETTINGS_VALUE_LIST; - value->value.list_val = list_val; - break; - } - - default: - qWarning("IAPConf: Can not handle QVariant of type %d", - variant.type()); - conn_settings_value_destroy(value); - return 0; - } - - return value; -} - -QVariant IAPConfPrivate::valueToVariant(ConnSettingsValue *value) -{ - if (value == 0 || value->type == CONN_SETTINGS_VALUE_INVALID) { - return QVariant(); - } - - switch(value->type) { - - case CONN_SETTINGS_VALUE_BOOL: - return QVariant(value->value.bool_val ? true : false); - - case CONN_SETTINGS_VALUE_STRING: - return QVariant(QString(value->value.string_val)); - - case CONN_SETTINGS_VALUE_DOUBLE: - return QVariant(value->value.double_val); - - case CONN_SETTINGS_VALUE_INT: - return QVariant(value->value.int_val); - - case CONN_SETTINGS_VALUE_LIST: { - // At least with GConf backend connsettings returns byte array as list - // of ints, first check for that case - if (value->value.list_val && value->value.list_val[0]) { - bool canBeConvertedToByteArray = true; - for (int idx = 0; value->value.list_val[idx]; idx++) { - ConnSettingsValue *val = value->value.list_val[idx]; - if (val->type != CONN_SETTINGS_VALUE_INT - || val->value.int_val > 255 - || val->value.int_val < 0) { - canBeConvertedToByteArray = false; - break; - } - } - - if (canBeConvertedToByteArray) { - QByteArray array; - for (int idx = 0; value->value.list_val[idx]; idx++) { - array.append(value->value.list_val[idx]->value.int_val); - } - return array; - } - - // Create normal list - QVariantList list; - for (int idx = 0; value->value.list_val[idx]; idx++) { - list.append(valueToVariant(value->value.list_val[idx])); - } - return list; - } - } - - case CONN_SETTINGS_VALUE_BYTE_ARRAY: - return QByteArray::fromRawData((char *)value->value.byte_array.val, - value->value.byte_array.len); - - default: - return QVariant(); - } -} - -// Public class implementation - -IAPConf::IAPConf(const QString &iap_id) - : d_ptr(new IAPConfPrivate) -{ - d_ptr->settings = conn_settings_open(CONN_SETTINGS_CONNECTION, - QSTRING_TO_CONST_CSTR(iap_id)); - if (d_ptr->settings == 0) { - qWarning("IAPConf: Unable to open ConnSettings for %s", - QSTRING_TO_CONST_CSTR(iap_id)); - } -} - -IAPConf::~IAPConf() -{ - conn_settings_close(d_ptr->settings); - delete d_ptr; -} - -void IAPConf::setValue(const QString& key, const QVariant& value) -{ - // Invalid value means unsetting the given key - if (!value.isValid()) { - int err = conn_settings_unset(d_ptr->settings, - QSTRING_TO_CONST_CSTR(key)); - if (err != CONN_SETTINGS_E_NO_ERROR) { - qWarning("IAPConf: unable to unset key %s: %s", - QSTRING_TO_CONST_CSTR(key), - conn_settings_error_text((ConnSettingsError)err)); - } - return; - } - - // Convert value to ConnSettingsValue - ConnSettingsValue *val = d_ptr->variantToValue(value); - if (val == 0) return; - - // Set value and handle errors - int error = conn_settings_set(d_ptr->settings, - QSTRING_TO_CONST_CSTR(key), - val); - if (error != CONN_SETTINGS_E_NO_ERROR) { - qWarning("IAPConf: error in setting key %s: %s", - QSTRING_TO_CONST_CSTR(key), - conn_settings_error_text((ConnSettingsError)error)); - } - - // Destroy value - conn_settings_value_destroy(val); - return; -} - -void IAPConf::set(const QString& key1, const QVariant& value1, - const QString& key2, const QVariant& value2, - const QString& key3, const QVariant& value3, - const QString& key4, const QVariant& value4, - const QString& key5, const QVariant& value5, - const QString& key6, const QVariant& value6, - const QString& key7, const QVariant& value7, - const QString& key8, const QVariant& value8, - const QString& key9, const QVariant& value9, - const QString& key10, const QVariant& value10) -{ - if (!key1.isEmpty()) setValue(key1, value1); - if (!key2.isEmpty()) setValue(key2, value2); - if (!key3.isEmpty()) setValue(key3, value3); - if (!key4.isEmpty()) setValue(key4, value4); - if (!key5.isEmpty()) setValue(key5, value5); - if (!key6.isEmpty()) setValue(key6, value6); - if (!key7.isEmpty()) setValue(key7, value7); - if (!key8.isEmpty()) setValue(key8, value8); - if (!key9.isEmpty()) setValue(key9, value9); - if (!key10.isEmpty()) setValue(key10, value10); -} - -QVariant IAPConf::value(const QString& key) const -{ - ConnSettingsValue *val = conn_settings_get(d_ptr->settings, - QSTRING_TO_CONST_CSTR(key)); - - QVariant variant = d_ptr->valueToVariant(val); - conn_settings_value_destroy(val); - return variant; -} - -void IAPConf::clear(const char *default_path) -{ - Q_UNUSED(default_path); // default path is unused - - int error = conn_settings_remove(d_ptr->settings); - if (error != CONN_SETTINGS_E_NO_ERROR) { - qWarning("IAPConf: Error when removing IAP: %s", - conn_settings_error_text((ConnSettingsError)error)); - } -} - -void IAPConf::clearAll() -{ - ConnSettings *settings = conn_settings_open(CONN_SETTINGS_CONNECTION, - NULL); - conn_settings_remove(settings); - conn_settings_close(settings); -} - - -void IAPConf::getAll(QList &all_iaps, bool return_path) -{ - Q_UNUSED(return_path); // We don't use return path currently - - // Go through all available connections and add them to the list - char **ids = conn_settings_list_ids(CONN_SETTINGS_CONNECTION); - if (ids == 0) { - // No ids found - nothing to do - return; - } - - for (int idx = 0; ids[idx]; idx++) { - all_iaps.append(QString(ids[idx])); - free(ids[idx]); - } - free(ids); -} - - -} // namespace Maemo diff --git a/src/3rdparty/libconninet/src/iapconf.h b/src/3rdparty/libconninet/src/iapconf.h deleted file mode 100644 index 57c0856..0000000 --- a/src/3rdparty/libconninet/src/iapconf.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009 Nokia Corporation. All rights reserved. - - Contact: Aapo Makela - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#ifndef IAPCONF_H -#define IAPCONF_H - -#include -#include - -namespace Maemo { - -class IAPConfPrivate; -class IAPConf { -public: - IAPConf(const QString &iap_id); - virtual ~IAPConf(); - - /** - Convenience method for setting multiple IAP values with one call. - */ - void set(const QString& key1, const QVariant& value1, - const QString& key2 = "", const QVariant& value2 = QVariant(), - const QString& key3 = "", const QVariant& value3 = QVariant(), - const QString& key4 = "", const QVariant& value4 = QVariant(), - const QString& key5 = "", const QVariant& value5 = QVariant(), - const QString& key6 = "", const QVariant& value6 = QVariant(), - const QString& key7 = "", const QVariant& value7 = QVariant(), - const QString& key8 = "", const QVariant& value8 = QVariant(), - const QString& key9 = "", const QVariant& value9 = QVariant(), - const QString& key10 = "", const QVariant& value10 = QVariant()); - - /** - Set one IAP value. - */ - void setValue(const QString& key, const QVariant& value); - - /** - Get one IAP value. - */ - QVariant value(const QString& key) const; - - /** - Clear this IAP from GConf - */ - void clear(const char *default_path=0); - - /** - Clear all IAP specific information from GConf (including all IAPs). - DO NOT USE THIS FUNCTION IN ANYWHERE ELSE EXCEPT IN TEST CODE! - */ - void clearAll(); - - /** - Return all the IAPs found in the system. If return_path is true, - then do not strip the IAP path away. - */ - static void getAll(QList &all_iaps, bool return_path=false); - -private: - IAPConfPrivate *d_ptr; -}; - -} // namespace Maemo - -#endif diff --git a/src/3rdparty/libconninet/src/iapmonitor.cpp b/src/3rdparty/libconninet/src/iapmonitor.cpp deleted file mode 100644 index c44cbc8..0000000 --- a/src/3rdparty/libconninet/src/iapmonitor.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#include - -#include -#include "iapmonitor.h" - -namespace Maemo { - - -void conn_settings_notify_func (ConnSettingsType type, - const char *id, - const char *key, - ConnSettingsValue *value, - void *user_data); - -class IAPMonitorPrivate { -private: - IAPMonitor *monitor; - ConnSettings *settings; - -public: - - IAPMonitorPrivate(IAPMonitor *monitor) - : monitor(monitor) - { - settings = conn_settings_open(CONN_SETTINGS_CONNECTION, NULL); - conn_settings_add_notify( - settings, - (ConnSettingsNotifyFunc *)conn_settings_notify_func, - this); - } - - ~IAPMonitorPrivate() - { - conn_settings_del_notify(settings); - conn_settings_close(settings); - } - - void iapAdded(const QString &iap) - { - monitor->iapAdded(iap); - } - - void iapRemoved(const QString &iap) - { - monitor->iapRemoved(iap); - } -}; - -void conn_settings_notify_func (ConnSettingsType type, - const char *id, - const char *key, - ConnSettingsValue *value, - void *user_data) -{ - if (type != CONN_SETTINGS_CONNECTION) return; - IAPMonitorPrivate *priv = (IAPMonitorPrivate *)user_data; - - QString iapId(key); - iapId = iapId.split("/")[0]; - if (value != 0) { - priv->iapAdded(iapId); - } else if (iapId == QString(key)) { - // IAP is removed only when the directory gets removed - priv->iapRemoved(iapId); - } -} - -IAPMonitor::IAPMonitor() - : d_ptr(new IAPMonitorPrivate(this)) -{ -} - -IAPMonitor::~IAPMonitor() -{ - delete d_ptr; -} - -void IAPMonitor::iapAdded(const QString &id) -{ - // By default do nothing -} - -void IAPMonitor::iapRemoved(const QString &id) -{ - // By default do nothing -} - -} // namespace Maemo diff --git a/src/3rdparty/libconninet/src/iapmonitor.h b/src/3rdparty/libconninet/src/iapmonitor.h deleted file mode 100644 index 558f23e..0000000 --- a/src/3rdparty/libconninet/src/iapmonitor.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#ifndef IAPMONITOR_H -#define IAPMONITOR_H - -#include - -namespace Maemo { - -class IAPMonitorPrivate; -class IAPMonitor { -public: - IAPMonitor(); - ~IAPMonitor(); - -protected: - virtual void iapAdded(const QString &id); - virtual void iapRemoved(const QString &id); - -private: - IAPMonitorPrivate *d_ptr; - Q_DECLARE_PRIVATE(IAPMonitor); -}; - -} // namespace Maemo - -#endif // IAPMONITOR_H - diff --git a/src/3rdparty/libconninet/src/maemo_icd.cpp b/src/3rdparty/libconninet/src/maemo_icd.cpp deleted file mode 100644 index bc84fbc..0000000 --- a/src/3rdparty/libconninet/src/maemo_icd.cpp +++ /dev/null @@ -1,1277 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#include -#include "maemo_icd.h" -#include -#include -#include -#include -#include -#include -#include - - -namespace Maemo { - -/* Reference counting singleton class that creates a single connection - * to icd so that icd reference counting works as expected. This is - * needed because DBusDispatcher uses private dbus connections - * which come and go and icd cannot use that information to - * determine whether application quit or not. So we create one - * persistent connection that is only teared down when application - * quits or calls disconnect() - */ -class IcdRefCounting -{ -public: - IcdRefCounting() : first_call(true) { } - void setup(enum icd_connection_flags flag); - void cleanup(); - -private: - bool first_call; - struct DBusConnection *connection; -}; - -Q_GLOBAL_STATIC(IcdRefCounting, icdRefCounting); - - -void IcdRefCounting::setup(enum icd_connection_flags flag) -{ - if (first_call) { - DBusMessage *msg = NULL; - - connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, NULL); - dbus_connection_set_exit_on_disconnect(connection, FALSE); - dbus_connection_setup_with_g_main(connection, NULL); - - msg = dbus_message_new_method_call(ICD_DBUS_API_INTERFACE, - ICD_DBUS_API_PATH, - ICD_DBUS_API_INTERFACE, - ICD_DBUS_API_CONNECT_REQ); - if (msg == NULL) - goto out; - - if (!dbus_message_append_args(msg, - DBUS_TYPE_UINT32, &flag, - DBUS_TYPE_INVALID)) - goto out; - - if (!dbus_connection_send_with_reply(connection, msg, - NULL, 60*1000)) - goto out; - - first_call = false; - return; - - out: - dbus_connection_close(connection); - dbus_connection_unref(connection); - } -} - -void IcdRefCounting::cleanup() -{ - if (!first_call) { - dbus_connection_close(connection); - dbus_connection_unref(connection); - first_call = true; - } -} - - -class IcdPrivate -{ -public: - IcdPrivate(Icd *myfriend) - { - init(10000, IcdNewDbusInterface, myfriend); - } - - IcdPrivate(unsigned int timeout, Icd *myfriend) - { - init(timeout, IcdNewDbusInterface, myfriend); - } - - IcdPrivate(unsigned int timeout, IcdDbusInterfaceVer ver, Icd *myfriend) - { - /* Note that the old Icd interface is currently disabled and - * the new one is always used. - */ - init(timeout, IcdNewDbusInterface, myfriend); - } - - ~IcdPrivate() - { - QObject::disconnect(mDBus, - SIGNAL(signalReceived(const QString&, - const QString&, - const QList&)), - icd, - SLOT(icdSignalReceived(const QString&, - const QString&, - const QList&))); - - QObject::disconnect(mDBus, - SIGNAL(callReply(const QString&, - const QList&, - const QString&)), - icd, - SLOT(icdCallReply(const QString&, - const QList&, - const QString&))); - - delete mDBus; - mDBus = 0; - } - - /* Icd2 dbus API functions */ - QStringList scan(icd_scan_request_flags flags, - QStringList &network_types, - QList& scan_results, - QString& error); - void scanCancel(); - bool connect(icd_connection_flags flags, IcdConnectResult& result); - bool connect(icd_connection_flags flags, QList& params, - IcdConnectResult& result); - bool connect(icd_connection_flags flags, QString& iap, QString& result); - void select(uint flags); - void disconnect(uint connect_flags, QString& service_type, - uint service_attrs, QString& service_id, - QString& network_type, uint network_attrs, - QByteArray& network_id); - void disconnect(uint connect_flags); - - uint state(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStateResult &state_result); - uint statistics(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStatisticsResult& stats_result); - uint addrinfo(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdAddressInfoResult& addr_result); - - uint state(QList& state_results); - uint state_non_blocking(QList& state_results); - uint statistics(QList& stats_results); - uint addrinfo(QList& addr_results); - uint addrinfo_non_blocking(QList& addr_results); - - void signalReceived(const QString& interface, - const QString& signal, - const QList& args); - void callReply(const QString& method, - const QList& args, - const QString& error); - - QString error() { return mError; } - -public: - DBusDispatcher *mDBus; - QString mMethod; - QString mInterface; - QString mSignal; - QString mError; - QList mArgs; - QList receivedSignals; - unsigned int timeout; - IcdDbusInterfaceVer icd_dbus_version; - Icd *icd; - - void init(unsigned int dbus_timeout, IcdDbusInterfaceVer ver, - Icd *myfriend) - { - if (ver == IcdNewDbusInterface) { - mDBus = new DBusDispatcher(ICD_DBUS_API_INTERFACE, - ICD_DBUS_API_PATH, - ICD_DBUS_API_INTERFACE); - } else { - mDBus = new DBusDispatcher(ICD_DBUS_SERVICE, - ICD_DBUS_PATH, - ICD_DBUS_INTERFACE); - } - icd_dbus_version = ver; - - /* This connect has a side effect as it means that only one - * Icd object can exists in one time. This should be fixed! - */ - QObject::connect(mDBus, - SIGNAL(signalReceived(const QString&, - const QString&, - const QList&)), - myfriend, - SLOT(icdSignalReceived(const QString&, - const QString&, - const QList&))); - - QObject::connect(mDBus, - SIGNAL(callReply(const QString&, - const QList&, - const QString&)), - myfriend, - SLOT(icdCallReply(const QString&, - const QList&, - const QString&))); - - icd = myfriend; - timeout = dbus_timeout; - } - - void clearState() - { - mMethod.clear(); - mInterface.clear(); - mSignal.clear(); - mError.clear(); - mArgs.clear(); - receivedSignals.clear(); - } - - bool doConnect(IcdConnectResult& result); - bool doConnect(QString& result); - bool doState(); -}; - - -void IcdPrivate::signalReceived(const QString& interface, - const QString& signal, - const QList& args) -{ - // Signal handler, which simply records what has been signalled - mInterface = interface; - mSignal = signal; - mArgs = args; - - //qDebug() << "signal" << signal << "received:" << args; - receivedSignals << QVariant(interface) << QVariant(signal) << QVariant(args); -} - - -void IcdPrivate::callReply(const QString& method, - const QList& /*args*/, - const QString& error) -{ - mMethod = method; - mError = error; -} - - -static void get_scan_result(QList& args, - IcdScanResult& ret) -{ - int i=0; - - if (args.isEmpty()) - return; - - ret.status = args[i++].toUInt(); - ret.timestamp = args[i++].toUInt(); - ret.scan.service_type = args[i++].toString(); - ret.service_name = args[i++].toString(); - ret.scan.service_attrs = args[i++].toUInt(); - ret.scan.service_id = args[i++].toString(); - ret.service_priority = args[i++].toInt(); - ret.scan.network_type = args[i++].toString(); - ret.network_name = args[i++].toString(); - ret.scan.network_attrs = args[i++].toUInt(); - ret.scan.network_id = args[i++].toByteArray(); - ret.network_priority = args[i++].toInt(); - ret.signal_strength = args[i++].toInt(); - ret.station_id = args[i++].toString(); - ret.signal_dB = args[i++].toInt(); -} - - -static void get_connect_result(QList& args, - IcdConnectResult& ret) -{ - int i=0; - - if (args.isEmpty()) - return; - - ret.connect.service_type = args[i++].toString(); - ret.connect.service_attrs = args[i++].toInt(); - ret.connect.service_id = args[i++].toString(); - ret.connect.network_type = args[i++].toString(); - ret.connect.network_attrs = args[i++].toInt(); - ret.connect.network_id = args[i++].toByteArray(); - ret.status = args[i++].toInt(); -} - - -QStringList IcdPrivate::scan(icd_scan_request_flags flags, - QStringList &network_types, - QList& scan_results, - QString& error) -{ - QStringList scanned_types; - QTimer timer; - QVariant reply; - QVariantList vl; - bool last_result = false; - IcdScanResult result; - int all_waited; - - clearState(); - reply = mDBus->call(ICD_DBUS_API_SCAN_REQ, (uint)flags); - if (reply.type() != QVariant::List) - return scanned_types; - vl = reply.toList(); - if (vl.isEmpty()) { - error = "Scan did not return anything."; - return scanned_types; - } - reply = vl.first(); - scanned_types = reply.toStringList(); - //qDebug() << "Scanning:" << scanned_types; - all_waited = scanned_types.size(); - - timer.setSingleShot(true); - timer.start(timeout); - - scan_results.clear(); - while (!last_result) { - while (timer.isActive() && mInterface.isEmpty() && mError.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - } - - if (!timer.isActive()) { - //qDebug() << "Timeout happened"; - break; - } - - if (mSignal != ICD_DBUS_API_SCAN_SIG) { - //qDebug() << "Received" << mSignal << "while waiting" << ICD_DBUS_API_SCAN_SIG << ", ignoring"; - mInterface.clear(); - continue; - } - - if (mError.isEmpty()) { - QString msgInterface = receivedSignals.takeFirst().toString(); - QString msgSignal = receivedSignals.takeFirst().toString(); - QList msgArgs = receivedSignals.takeFirst().toList(); - //qDebug() << "Signal" << msgSignal << "received."; - //qDebug() << "Params:" << msgArgs; - - while (!msgSignal.isEmpty()) { - get_scan_result(msgArgs, result); - -#if 0 - qDebug() << "Received: " << - "status =" << result.status << - ", timestamp =" << result.timestamp << - ", service_type =" << result.scan.service_type << - ", service_name =" << result.service_name << - ", service_attrs =" << result.scan.service_attrs << - ", service_id =" << result.scan.service_id << - ", service_priority =" << result.service_priority << - ", network_type =" << result.scan.network_type << - ", network_name =" << result.network_name << - ", network_attrs =" << result.scan.network_attrs << - ", network_id =" << "-" << - ", network_priority =" << result.network_priority << - ", signal_strength =" << result.signal_strength << - ", station_id =" << result.station_id << - ", signal_dB =" << result.signal_dB; -#endif - - if (result.status == ICD_SCAN_COMPLETE) { - //qDebug() << "waited =" << all_waited; - if (--all_waited == 0) { - last_result = true; - break; - } - } else - scan_results << result; - - if (receivedSignals.isEmpty()) - break; - - msgInterface = receivedSignals.takeFirst().toString(); - msgSignal = receivedSignals.takeFirst().toString(); - msgArgs = receivedSignals.takeFirst().toList(); - } - mInterface.clear(); - - } else { - qWarning() << "Error while scanning:" << mError; - break; - } - } - timer.stop(); - - error = mError; - return scanned_types; -} - - -void IcdPrivate::scanCancel() -{ - mDBus->call(ICD_DBUS_API_SCAN_CANCEL); -} - - -bool IcdPrivate::doConnect(IcdConnectResult& result) -{ - QTimer timer; - bool status = false; - - timer.setSingleShot(true); - timer.start(timeout); - - //qDebug() << "Waiting" << ICD_DBUS_API_CONNECT_SIG << "signal"; - - while (timer.isActive() && mInterface.isEmpty() && - mSignal != ICD_DBUS_API_CONNECT_SIG && - mError.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - } - - timer.stop(); - - if (mError.isEmpty()) { - if (!mArgs.isEmpty()) { - get_connect_result(mArgs, result); - status = true; - } else - status = false; - } else - status = false; - - return status; -} - - -bool IcdPrivate::connect(icd_connection_flags flags, IcdConnectResult& result) -{ - clearState(); - //mDBus->callAsynchronous(ICD_DBUS_API_CONNECT_REQ, (uint)flags); - mDBus->call(ICD_DBUS_API_CONNECT_REQ, (uint)flags); - icdRefCounting()->setup(flags); - return doConnect(result); -} - - -bool IcdPrivate::connect(icd_connection_flags flags, QList& params, - IcdConnectResult& result) -{ - QVariantList varlist; - QVariantList varlist2; - - foreach (ConnectParams param, params) { - QVariantList items; - - items.append(QVariant(param.connect.service_type)); - items.append(QVariant(param.connect.service_attrs)); - items.append(QVariant(param.connect.service_id)); - items.append(QVariant(param.connect.network_type)); - items.append(QVariant(param.connect.network_attrs)); - items.append(QVariant(param.connect.network_id)); - - varlist.append(items); - } - - varlist2.append(QVariant(varlist)); - - clearState(); - //mDBus->callAsynchronous(ICD_DBUS_API_CONNECT_REQ, (uint)flags, varlist2); - mDBus->call(ICD_DBUS_API_CONNECT_REQ, (uint)flags, varlist2); - icdRefCounting()->setup(flags); - return doConnect(result); -} - - -bool IcdPrivate::doConnect(QString& ret) -{ - QTimer timer; - bool status = false; - - timer.setSingleShot(true); - timer.start(timeout); - - while (timer.isActive() && mInterface.isEmpty() && - mError.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - } - - timer.stop(); - - if (mError.isEmpty()) { - if (!mArgs.isEmpty()) { - status = true; - //ret = mArgs[0]; // TODO correctly - } else - status = false; - } else - status = false; - - return status; -} - - -bool IcdPrivate::connect(icd_connection_flags flags, QString& iap, QString& result) -{ - clearState(); - //mDBus->callAsynchronous(ICD_CONNECT_REQ, iap, (uint)flags); - mDBus->call(ICD_CONNECT_REQ, iap, (uint)flags); - icdRefCounting()->setup(flags); - return doConnect(result); -} - - -void IcdPrivate::select(uint flags) -{ - mDBus->call(ICD_DBUS_API_SELECT_REQ, flags); -} - - -void IcdPrivate::disconnect(uint flags, QString& service_type, - uint service_attrs, QString& service_id, - QString& network_type, uint network_attrs, - QByteArray& network_id) -{ - clearState(); - mDBus->call(ICD_DBUS_API_DISCONNECT_REQ, flags, - service_type, service_attrs, service_id, - network_type, network_attrs, network_id); - icdRefCounting()->cleanup(); -} - - -void IcdPrivate::disconnect(uint flags) -{ - clearState(); - mDBus->call(ICD_DBUS_API_DISCONNECT_REQ, flags); - icdRefCounting()->cleanup(); -} - - -static void get_state_all_result(QList& args, - IcdStateResult& ret) -{ - int i=0; - - ret.params.service_type = args[i++].toString(); - ret.params.service_attrs = args[i++].toUInt(); - ret.params.service_id = args[i++].toString(); - ret.params.network_type = args[i++].toString(); - ret.params.network_attrs = args[i++].toUInt(); - ret.params.network_id = args[i++].toByteArray(); - ret.error = args[i++].toString(); - ret.state = args[i++].toInt(); -} - - -static void get_state_all_result2(QList& args, - IcdStateResult& ret) -{ - int i=0; - - ret.params.network_type = args[i++].toString(); - ret.state = args[i++].toInt(); - - // Initialize the other values so that the caller can - // notice we only returned partial status - ret.params.service_type = QString(); - ret.params.service_attrs = 0; - ret.params.service_id = QString(); - ret.params.network_attrs = 0; - ret.params.network_id = QByteArray(); - ret.error = QString(); -} - - -uint IcdPrivate::state(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStateResult& state_result) -{ - QTimer timer; - QVariant reply; - uint total_signals; - QVariantList vl; - - clearState(); - - reply = mDBus->call(ICD_DBUS_API_STATE_REQ, - service_type, service_attrs, service_id, - network_type, network_attrs, network_id); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - total_signals = reply.toUInt(); - if (!total_signals) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - - if (mSignal != ICD_DBUS_API_STATE_SIG) { - mInterface.clear(); - continue; - } - } - - timer.stop(); - - if (mError.isEmpty()) { - if (!mArgs.isEmpty()) { - if (mArgs.size()>2) - get_state_all_result(mArgs, state_result); - else { - // We are not connected as we did not get the status we asked - return 0; - } - } - } else { - qWarning() << "Error:" << mError; - } - - // The returned value should be one because we asked for one state - return total_signals; -} - - -uint IcdPrivate::state_non_blocking(QList& state_results) -{ - QTimer timer; - QVariant reply; - QVariantList vl; - uint signals_left, total_signals; - IcdStateResult result; - - clearState(); - reply = mDBus->call(ICD_DBUS_API_STATE_REQ); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - signals_left = total_signals = reply.toUInt(); - if (!signals_left) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - state_results.clear(); - mError.clear(); - while (signals_left) { - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - } - - if (!timer.isActive()) { - total_signals = 0; - break; - } - - if (mSignal != ICD_DBUS_API_STATE_SIG) { - continue; - } - - if (mError.isEmpty()) { - if (!mArgs.isEmpty()) { - if (mArgs.size()==2) - get_state_all_result2(mArgs, result); - else - get_state_all_result(mArgs, result); - state_results << result; - } - signals_left--; - } else { - qWarning() << "Error:" << mError; - break; - } - } - timer.stop(); - - return total_signals; -} - - -/* Special version of the state() call which does not call event loop. - * Needed in order to fix NB#175098 where Qt4.7 webkit crashes because event - * loop is run when webkit does not expect it. This function is called from - * bearer management API syncStateWithInterface() in QNetworkSession - * constructor. - */ -uint IcdPrivate::state(QList& state_results) -{ - QTimer timer; - QVariant reply; - QVariantList vl; - uint signals_left, total_signals; - IcdStateResult result; - - clearState(); - reply = mDBus->call(ICD_DBUS_API_STATE_REQ); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - signals_left = total_signals = reply.toUInt(); - if (!signals_left) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - state_results.clear(); - mError.clear(); - while (signals_left) { - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - mDBus->synchronousDispatch(1000); - } - - if (!timer.isActive()) { - total_signals = 0; - break; - } - - if (mSignal != ICD_DBUS_API_STATE_SIG) { - continue; - } - - if (mError.isEmpty()) { - if (!mArgs.isEmpty()) { - if (mArgs.size()==2) - get_state_all_result2(mArgs, result); - else - get_state_all_result(mArgs, result); - state_results << result; - } - signals_left--; - } else { - qWarning() << "Error:" << mError; - break; - } - } - timer.stop(); - - return total_signals; -} - - -static void get_statistics_all_result(QList& args, - IcdStatisticsResult& ret) -{ - int i=0; - - if (args.isEmpty()) - return; - - ret.params.service_type = args[i++].toString(); - ret.params.service_attrs = args[i++].toUInt(); - ret.params.service_id = args[i++].toString(); - ret.params.network_type = args[i++].toString(); - ret.params.network_attrs = args[i++].toUInt(); - ret.params.network_id = args[i++].toByteArray(); - ret.time_active = args[i++].toUInt(); - ret.signal_strength = (enum icd_nw_levels)args[i++].toUInt(); - ret.bytes_sent = args[i++].toUInt(); - ret.bytes_received = args[i++].toUInt(); -} - - -uint IcdPrivate::statistics(QList& stats_results) -{ - QTimer timer; - QVariant reply; - QVariantList vl; - uint signals_left, total_signals; - IcdStatisticsResult result; - - clearState(); - reply = mDBus->call(ICD_DBUS_API_STATISTICS_REQ); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - if (reply.type() != QVariant::UInt) - return 0; - signals_left = total_signals = reply.toUInt(); - - if (!signals_left) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - stats_results.clear(); - while (signals_left) { - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - } - - if (!timer.isActive()) { - total_signals = 0; - break; - } - - if (mSignal != ICD_DBUS_API_STATISTICS_SIG) { - continue; - } - - if (mError.isEmpty()) { - get_statistics_all_result(mArgs, result); - stats_results << result; - signals_left--; - } else { - qWarning() << "Error:" << mError; - break; - } - } - timer.stop(); - - return total_signals; -} - - -uint IcdPrivate::statistics(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStatisticsResult& stats_result) -{ - QTimer timer; - QVariant reply; - uint total_signals; - QVariantList vl; - - clearState(); - - reply = mDBus->call(ICD_DBUS_API_STATISTICS_REQ, - service_type, service_attrs, service_id, - network_type, network_attrs, network_id); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - total_signals = reply.toUInt(); - if (!total_signals) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - - if (mSignal != ICD_DBUS_API_STATISTICS_SIG) { - mInterface.clear(); - continue; - } - } - - timer.stop(); - - if (mError.isEmpty()) { - get_statistics_all_result(mArgs, stats_result); - } else { - qWarning() << "Error:" << mError; - } - - // The returned value should be one because we asked for one statistics - return total_signals; -} - - -static void get_addrinfo_all_result(QList& args, - IcdAddressInfoResult& ret) -{ - int i=0; - - if (args.isEmpty()) - return; - - ret.params.service_type = args[i++].toString(); - ret.params.service_attrs = args[i++].toUInt(); - ret.params.service_id = args[i++].toString(); - ret.params.network_type = args[i++].toString(); - ret.params.network_attrs = args[i++].toUInt(); - ret.params.network_id = args[i++].toByteArray(); - - QVariantList vl = args[i].toList(); - QVariant reply = vl.first(); - QList lst = reply.toList(); - for (int k=0; k& addr_results) -{ - QTimer timer; - QVariant reply; - QVariantList vl; - uint signals_left, total_signals; - IcdAddressInfoResult result; - - clearState(); - reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - if (reply.type() != QVariant::UInt) - return 0; - signals_left = total_signals = reply.toUInt(); - if (!signals_left) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - addr_results.clear(); - while (signals_left) { - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - mDBus->synchronousDispatch(1000); - } - - if (!timer.isActive()) { - total_signals = 0; - break; - } - - if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) { - continue; - } - - if (mError.isEmpty()) { - get_addrinfo_all_result(mArgs, result); - addr_results << result; - signals_left--; - } else { - qWarning() << "Error:" << mError; - break; - } - } - timer.stop(); - return total_signals; -} - -uint IcdPrivate::addrinfo_non_blocking(QList& addr_results) -{ - QTimer timer; - QVariant reply; - QVariantList vl; - uint signals_left, total_signals; - IcdAddressInfoResult result; - - clearState(); - reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - if (reply.type() != QVariant::UInt) - return 0; - signals_left = total_signals = reply.toUInt(); - if (!signals_left) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - addr_results.clear(); - while (signals_left) { - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - } - - if (!timer.isActive()) { - total_signals = 0; - break; - } - - if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) { - continue; - } - - if (mError.isEmpty()) { - get_addrinfo_all_result(mArgs, result); - addr_results << result; - signals_left--; - } else { - qWarning() << "Error:" << mError; - break; - } - } - timer.stop(); - return total_signals; -} - - -uint IcdPrivate::addrinfo(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdAddressInfoResult& addr_result) -{ - QTimer timer; - QVariant reply; - uint total_signals; - QVariantList vl; - - clearState(); - - reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ, - service_type, service_attrs, service_id, - network_type, network_attrs, network_id); - if (reply.type() != QVariant::List) - return 0; - vl = reply.toList(); - if (vl.isEmpty()) - return 0; - reply = vl.first(); - total_signals = reply.toUInt(); - - if (!total_signals) - return 0; - - timer.setSingleShot(true); - timer.start(timeout); - - mInterface.clear(); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - - if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) { - mInterface.clear(); - continue; - } - } - - timer.stop(); - - if (mError.isEmpty()) { - get_addrinfo_all_result(mArgs, addr_result); - } else { - qWarning() << "Error:" << mError; - } - - // The returned value should be one because we asked for one addrinfo - return total_signals; -} - - -Icd::Icd(QObject *parent) - : QObject(parent), d(new IcdPrivate(this)) -{ -} - -Icd::Icd(unsigned int timeout, QObject *parent) - : QObject(parent), d(new IcdPrivate(timeout, this)) -{ -} - -Icd::Icd(unsigned int timeout, IcdDbusInterfaceVer ver, QObject *parent) - : QObject(parent), d(new IcdPrivate(timeout, ver, this)) -{ -} - -Icd::~Icd() -{ - delete d; -} - - -QStringList Icd::scan(icd_scan_request_flags flags, - QStringList &network_types, - QList& scan_results, - QString& error) -{ - return d->scan(flags, network_types, scan_results, error); -} - - -void Icd::scanCancel() -{ - d->scanCancel(); -} - - -bool Icd::connect(icd_connection_flags flags, IcdConnectResult& result) -{ - return d->connect(flags, result); -} - - -bool Icd::connect(icd_connection_flags flags, QList& params, - IcdConnectResult& result) -{ - return d->connect(flags, params, result); -} - - -bool Icd::connect(icd_connection_flags flags, QString& iap, QString& result) -{ - return d->connect(flags, iap, result); -} - - -void Icd::select(uint flags) -{ - d->select(flags); -} - - -void Icd::disconnect(uint connect_flags, QString& service_type, - uint service_attrs, QString& service_id, - QString& network_type, uint network_attrs, - QByteArray& network_id) -{ - d->disconnect(connect_flags, service_type, - service_attrs, service_id, - network_type, network_attrs, - network_id); -} - - -void Icd::disconnect(uint connect_flags) -{ - d->disconnect(connect_flags); -} - - -uint Icd::state(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStateResult &state_result) -{ - return d->state(service_type, service_attrs, service_id, - network_type, network_attrs, network_id, - state_result); -} - - -uint Icd::statistics(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStatisticsResult& stats_result) -{ - return d->statistics(service_type, service_attrs, service_id, - network_type, network_attrs, network_id, - stats_result); -} - - -uint Icd::addrinfo(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdAddressInfoResult& addr_result) -{ - return d->addrinfo(service_type, service_attrs, service_id, - network_type, network_attrs, network_id, - addr_result); -} - - -uint Icd::state(QList& state_results) -{ - return d->state(state_results); -} - -uint Icd::state_non_blocking(QList& state_results) -{ - return d->state_non_blocking(state_results); -} - -uint Icd::statistics(QList& stats_results) -{ - return d->statistics(stats_results); -} - - -uint Icd::addrinfo(QList& addr_results) -{ - return d->addrinfo(addr_results); -} - -uint Icd::addrinfo_non_blocking(QList& addr_results) -{ - return d->addrinfo_non_blocking(addr_results); -} - -void Icd::icdSignalReceived(const QString& interface, - const QString& signal, - const QList& args) -{ - d->signalReceived(interface, signal, args); -} - - -void Icd::icdCallReply(const QString& method, - const QList& args, - const QString& error) -{ - d->callReply(method, args, error); -} - - -QString Icd::error() -{ - return d->error(); -} - -} // Maemo namespace - - diff --git a/src/3rdparty/libconninet/src/maemo_icd.h b/src/3rdparty/libconninet/src/maemo_icd.h deleted file mode 100644 index d7a8d5b..0000000 --- a/src/3rdparty/libconninet/src/maemo_icd.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#ifndef MAEMO_ICD_H -#define MAEMO_ICD_H - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "dbusdispatcher.h" -#include - -#define ICD_LONG_SCAN_TIMEOUT (30*1000) /* 30sec */ -#define ICD_SHORT_SCAN_TIMEOUT (10*1000) /* 10sec */ -#define ICD_SHORT_CONNECT_TIMEOUT (10*1000) /* 10sec */ -#define ICD_LONG_CONNECT_TIMEOUT (150*1000) /* 2.5min */ - -namespace Maemo { - -struct CommonParams { - QString service_type; - uint service_attrs; - QString service_id; - QString network_type; - uint network_attrs; - QByteArray network_id; -}; - -struct ConnectParams { - struct CommonParams connect; -}; - -struct IcdScanResult { - uint status; // see #icd_scan_status - uint timestamp; // when last seen - QString service_name; - uint service_priority; // within a service type - QString network_name; - uint network_priority; - struct CommonParams scan; - uint signal_strength; // quality, 0 (none) - 10 (good) - QString station_id; // e.g. MAC address or similar id - uint signal_dB; // use signal strength above unless you know what you are doing - - IcdScanResult() { - status = timestamp = scan.service_attrs = service_priority = - scan.network_attrs = network_priority = signal_strength = - signal_dB = 0; - } -}; - -struct IcdConnectResult { - struct CommonParams connect; - uint status; -}; - -struct IcdStateResult { - struct CommonParams params; - QString error; - uint state; -}; - -struct IcdStatisticsResult { - struct CommonParams params; - uint time_active; // in seconds - enum icd_nw_levels signal_strength; // see network_api_defines.h in icd2-dev package - uint bytes_sent; - uint bytes_received; -}; - -struct IcdIPInformation { - QString address; - QString netmask; - QString default_gateway; - QString dns1; - QString dns2; - QString dns3; -}; - -struct IcdAddressInfoResult { - struct CommonParams params; - QList ip_info; -}; - -enum IcdDbusInterfaceVer { - IcdOldDbusInterface = 0, // use the old OSSO-IC interface - IcdNewDbusInterface // use the new Icd2 interface (default) -}; - - -class IcdPrivate; -class Icd : public QObject -{ - Q_OBJECT - -public: - Icd(QObject *parent = 0); - Icd(unsigned int timeout, QObject *parent = 0); - Icd(unsigned int timeout, IcdDbusInterfaceVer ver, QObject *parent = 0); - ~Icd(); - QString error(); // returns last error string - - /* Icd2 dbus API functions */ - QStringList scan(icd_scan_request_flags flags, - QStringList &network_types, - QList& scan_results, - QString& error); - void scanCancel(); - bool connect(icd_connection_flags flags, IcdConnectResult& result); - bool connect(icd_connection_flags flags, QList& params, - IcdConnectResult& result); - bool connect(icd_connection_flags flags, QString& iap, QString& result); - void select(uint flags); - void disconnect(uint connect_flags, QString& service_type, - uint service_attrs, QString& service_id, - QString& network_type, uint network_attrs, - QByteArray& network_id); - void disconnect(uint connect_flags); - - uint state(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStateResult &state_result); - uint statistics(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdStatisticsResult& stats_result); - uint addrinfo(QString& service_type, uint service_attrs, - QString& service_id, QString& network_type, - uint network_attrs, QByteArray& network_id, - IcdAddressInfoResult& addr_result); - - uint state(QList& state_results); - uint state_non_blocking(QList& state_results); - uint statistics(QList& stats_results); - uint addrinfo(QList& addr_results); - uint addrinfo_non_blocking(QList& addr_results); - -private Q_SLOTS: - void icdSignalReceived(const QString& interface, - const QString& signal, - const QList& args); - void icdCallReply(const QString& method, - const QList& args, - const QString& error); - -private: - IcdPrivate *d; - friend class IcdPrivate; -}; - -} // Maemo namespace - -#endif diff --git a/src/3rdparty/libconninet/src/proxyconf.cpp b/src/3rdparty/libconninet/src/proxyconf.cpp deleted file mode 100644 index 5b27565..0000000 --- a/src/3rdparty/libconninet/src/proxyconf.cpp +++ /dev/null @@ -1,315 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2010 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#include -#include -#include -#include -#include -#include -#include "proxyconf.h" - -#define CONF_PROXY "/system/proxy" -#define HTTP_PROXY "/system/http_proxy" - - -namespace Maemo { - -class NetworkProxyFactory : QNetworkProxyFactory { -public: - NetworkProxyFactory() { } - QList queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()); -}; - - -QList NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query) -{ - ProxyConf proxy_conf; - - QList result = proxy_conf.flush(query); - if (result.isEmpty()) - result << QNetworkProxy::NoProxy; - - return result; -} - - -class ProxyConfPrivate { -private: - // proxy values from gconf - QString mode; - bool use_http_host; - QString autoconfig_url; - QString http_proxy; - quint16 http_port; - QList ignore_hosts; - QString secure_host; - quint16 secure_port; - QString ftp_host; - quint16 ftp_port; - QString socks_host; - quint16 socks_port; - QString rtsp_host; - quint16 rtsp_port; - - QVariant getValue(QString& name); - QVariant getHttpValue(QString& name); - QVariant getValue(const char *name); - QVariant getHttpValue(const char *name); - bool isHostExcluded(const QString &host); - -public: - QString prefix; - QString http_prefix; - - void readProxyData(); - QList flush(const QNetworkProxyQuery &query); -}; - - -QVariant ProxyConfPrivate::getValue(QString& name) -{ - GConfItem item(prefix + name); - return item.value(); -} - -QVariant ProxyConfPrivate::getHttpValue(QString& name) -{ - GConfItem item(http_prefix + name); - return item.value(); -} - - -QVariant ProxyConfPrivate::getValue(const char *name) -{ - QString n = QString(name); - return getValue(n); -} - -QVariant ProxyConfPrivate::getHttpValue(const char *name) -{ - QString n = QString(name); - return getHttpValue(n); -} - - -#define GET(var, type) \ - do { \ - var = getValue(#var).to##type (); \ - /*qDebug()<<"var="<prefix = CONF_PROXY "/"; - d_ptr->http_prefix = HTTP_PROXY "/"; -} - -ProxyConf::~ProxyConf() -{ - delete d_ptr; -} - - -QList ProxyConf::flush(const QNetworkProxyQuery &query) -{ - d_ptr->readProxyData(); - return d_ptr->flush(query); -} - - -static int refcount = 0; -static QReadWriteLock lock; - -void ProxyConf::update() -{ - QWriteLocker locker(&lock); - NetworkProxyFactory *factory = new NetworkProxyFactory(); - QNetworkProxyFactory::setApplicationProxyFactory((QNetworkProxyFactory*)factory); - refcount++; -} - - -void ProxyConf::clear(void) -{ - QWriteLocker locker(&lock); - refcount--; - if (refcount == 0) - QNetworkProxyFactory::setApplicationProxyFactory(NULL); - - if (refcount<0) - refcount = 0; -} - - -} // namespace Maemo diff --git a/src/3rdparty/libconninet/src/proxyconf.h b/src/3rdparty/libconninet/src/proxyconf.h deleted file mode 100644 index 7711c49..0000000 --- a/src/3rdparty/libconninet/src/proxyconf.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2010 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - -#ifndef PROXYCONF_H -#define PROXYCONF_H - -#include -#include - -namespace Maemo { - -class ProxyConfPrivate; -class ProxyConf { -private: - ProxyConfPrivate *d_ptr; - -public: - ProxyConf(); - virtual ~ProxyConf(); - - QList flush(const QNetworkProxyQuery &query = QNetworkProxyQuery()); // read the proxies from db - - /* Note that for each update() call there should be corresponding - * clear() call because the ProxyConf class implements a reference - * counting mechanism. The factory is removed only when there is - * no one using the factory any more. - */ - static void update(void); // this builds QNetworkProxy factory - static void clear(void); // this removes QNetworkProxy factory -}; - -} // namespace Maemo - -#endif diff --git a/src/3rdparty/libconninet/tests/Makefile.am b/src/3rdparty/libconninet/tests/Makefile.am deleted file mode 100644 index f6f41ea..0000000 --- a/src/3rdparty/libconninet/tests/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -DEFS = -DDBUS_API_SUBJECT_TO_CHANGE -INCLUDES = @GLIB_CFLAGS@ @DBUS_CFLAGS@ @CONNSETTINGS_CFLAGS@ @OSSO_IC_CFLAGS@ @ICD_DEV_CFLAGS@ \ - @QTCORE_CFLAGS@ @QTDBUS_CFLAGS@ @QTCORE_CFLAGS@ @QTNETWORK_CFLAGS@ @QTTEST_CFLAGS@ \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src - -LIBS = @GLIB_LIBS@ @DBUS_LIBS@ @CONNSETTINGS_LIBS@ @OSSO_IC_LIBS@ @ICD_DEV_LIBS@ \ - @QTCORE_LIBS@ @QTDBUS_LIBS@ @QTCORE_LIBS@ @QTNETWORK_LIBS@ @QTTEST_LIBS@ \ - $(top_builddir)/src/libconninet.la - -AM_CFLAGS = $(CONCFLAGS) -AM_LDFLAGS = -static - -bin_PROGRAMS = test_dbusdispatcher test_iapconf test_maemo_icd test_iapmonitor test_proxyconf - -test_dbusdispatcher_SOURCES = ut_dbusdispatcher.cpp -ut_dbusdispatcher.o: ut_dbusdispatcher.moc - -test_iapconf_SOURCES = ut_iapconf.cpp -ut_iapconf.o: ut_iapconf.moc - -test_maemo_icd_SOURCES = ut_maemo_icd.cpp -ut_maemo_icd.o: ut_maemo_icd.moc - -test_iapmonitor_SOURCES = ut_iapmonitor.cpp -ut_iapmonitor.o: ut_iapmonitor.moc - -test_proxyconf_SOURCES = ut_proxyconf.cpp -ut_proxyconf.o: ut_proxyconf.moc - - -MAINTAINERCLEANFILES = Makefile.in - -# This rule lets GNU make create any *.moc from the equivalent *.cpp -%.moc: %.cpp - moc $< -o $@ - -# This line ensures that generated moc files are deleted when we make clean. -CLEANFILES = *.moc diff --git a/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp b/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp deleted file mode 100644 index 70deb3f..0000000 --- a/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp +++ /dev/null @@ -1,191 +0,0 @@ -/* * This file is part of conn-dui-settings-inet * - * - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * - * Contact: Aapo Makela - * - * This software, including documentation, is protected by copyright - * controlled by Nokia Corporation. All rights are reserved. Copying, - * including reproducing, storing, adapting or translating, any or all of - * this material requires the prior written consent of Nokia Corporation. - * This material also contains confidential information which may not be - * disclosed to others without the prior written consent of Nokia. - */ - -#include -#include -#include -#include -#include - -#include - -class Ut_DBusDispatcher : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - void init(); - void cleanup(); - void initTestCase(); - void cleanupTestCase(); - - void simpleSignalReceived(const QString& interface, - const QString& signal, - const QList& args); - void simpleCallReply(const QString& method, - const QList& args, - const QString& error); - void simpleCall(); - - void complexCallReply(const QString& method, - const QList& args, - const QString& error); - void complexCall(); - -private: - Maemo::DBusDispatcher *mSubject; - QProcess *icd_stub; - - QString mMethod; - QString mInterface; - QString mSignal; - QList mArgs; -}; - -void Ut_DBusDispatcher::init() -{ - mSubject = new Maemo::DBusDispatcher("com.nokia.icd2", "/com/nokia/icd2", - "com.nokia.icd2"); - - // Start icd2 stub - icd_stub = new QProcess(this); - icd_stub->start("/usr/bin/icd2_stub.py"); - QTest::qWait(1000); -} - -void Ut_DBusDispatcher::cleanup() -{ - // Terminate icd2 stub - icd_stub->terminate(); - icd_stub->waitForFinished(); - - delete mSubject; - mSubject = 0; -} - -void Ut_DBusDispatcher::initTestCase() -{ -} - -void Ut_DBusDispatcher::cleanupTestCase() -{ -} - -void Ut_DBusDispatcher::simpleSignalReceived(const QString& interface, - const QString& signal, - const QList& args) -{ - // Signal handler, which simply records what has been signalled - mInterface = interface; - mSignal = signal; - mArgs = args; -} - -void Ut_DBusDispatcher::simpleCallReply(const QString& method, - const QList& args, - const QString& error) -{ - mMethod = method; - - // Check that method matches and at least WLAN_INFRA is returned - QVERIFY(error.isEmpty()); - QVERIFY(args[0].toStringList().contains("WLAN_INFRA")); -} - -void Ut_DBusDispatcher::simpleCall() -{ - uint flags = 0; - QList reply; - int idx = 0; - QTimer timer; - - // Connect signals - connect(mSubject, SIGNAL(signalReceived(const QString&, - const QString&, - const QList&)), - this, SLOT(simpleSignalReceived(const QString&, - const QString&, - const QList&))); - connect(mSubject, SIGNAL(callReply(const QString&, - const QList&, - const QString&)), - this, SLOT(simpleCallReply(const QString&, - const QList&, - const QString&))); - - // Request scan and verify the call starts succesfully - QVERIFY(mSubject->callAsynchronous("scan_req", flags)); - - // Wait 1st scan signal for 10 secs - timer.setSingleShot(true); - timer.start(10000); - while (timer.isActive() && mInterface.isEmpty()) { - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - idx++; - } - timer.stop(); - - // Sanity checks for the scan result - QVERIFY(mInterface == "com.nokia.icd2"); // interface is icd2 - QVERIFY(mMethod == "scan_req"); // method is scan_req - QVERIFY(mSignal == "scan_result_sig"); // signal is scan result - QVERIFY(mArgs[0] == QVariant(0) || - mArgs[0] == QVariant(4)); // First argument is status - // (0 == NEW, 4 == COMPLETED) - //QVERIFY(mArgs.contains(QVariant("WLAN_INFRA"))); // WLAN scan result -} - -void Ut_DBusDispatcher::complexCallReply(const QString& method, - const QList& args, - const QString& error) -{ - mMethod = method; - - // Check that method has not return arguments and error is not set - QVERIFY(error.isEmpty()); - QVERIFY(args.isEmpty()); -} - -void Ut_DBusDispatcher::complexCall() -{ - uint flags = ICD_CONNECTION_FLAG_UI_EVENT; - QList reply; - QVariantList networks; - QVariantList network1; - - network1 << "" << (uint)0 << "" << "WLAN_INFRA" << (uint)0x05000011 << QByteArray("osso@46@net"); - networks << QVariant(network1); - - // Connect signal - connect(mSubject, SIGNAL(callReply(const QString&, - const QList&, - const QString&)), - this, SLOT(complexCallReply(const QString&, - const QList&, - const QString&))); - - // Request connect and verify the call starts succesfully - QVERIFY(mSubject->callAsynchronous("connect_req", flags, networks)); - - QTest::qWait(1000); - - // Sanity checks for the scan result - QVERIFY(mInterface == "com.nokia.icd2"); // interface is icd2 - QVERIFY(mMethod == "connect_req"); // method connect_req -} - -QTEST_MAIN(Ut_DBusDispatcher) - -#include "ut_dbusdispatcher.moc" diff --git a/src/3rdparty/libconninet/tests/ut_iapconf.cpp b/src/3rdparty/libconninet/tests/ut_iapconf.cpp deleted file mode 100644 index 6a91d61..0000000 --- a/src/3rdparty/libconninet/tests/ut_iapconf.cpp +++ /dev/null @@ -1,186 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009 Nokia Corporation. All rights reserved. - - Contact: Aapo Makela - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - - -#include -#include - -#include - -class Ut_IAPConf : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - void init(); - void cleanup(); - void initTestCase(); - void cleanupTestCase(); - - void setupIAP(); - void setupIAPContainingDot(); - void unsetIAPValueIsNotValid(); - void verifyAllIAPs(); - void allForEmptyConfReturnsEmptyList(); - void settingInvalidValueUnsetsKey(); - -private: - Maemo::IAPConf *mSubject; -}; - -void Ut_IAPConf::init() -{ - mSubject = new Maemo::IAPConf("test_iap"); -} - -void Ut_IAPConf::cleanup() -{ - // Clear made settings - mSubject->clear(); - - delete mSubject; - mSubject = 0; -} - -void Ut_IAPConf::initTestCase() -{ -} - -void Ut_IAPConf::cleanupTestCase() -{ -} - -void Ut_IAPConf::setupIAP() -{ - // Set bunch of values - mSubject->set("ipv4_type", "AUTO", - "wlan_wepkey1", "connt", - "wlan_wepdefkey", 1, - "wlan_ssid", QByteArray("CONNTEST-1")); - - // Set one value - mSubject->setValue("type", "WLAN_INFRA"); - - // Check all values that they were set correctly - QVERIFY(mSubject->value("ipv4_type").toString() == "AUTO"); - QVERIFY(mSubject->value("wlan_wepkey1").toString() == "connt"); - QVERIFY(mSubject->value("wlan_wepdefkey").toInt() == 1); - QVERIFY(mSubject->value("wlan_ssid").toByteArray() == QByteArray("CONNTEST-1")); - QVERIFY(mSubject->value("type").toString() == "WLAN_INFRA"); -} - -void Ut_IAPConf::setupIAPContainingDot() -{ - delete mSubject; - mSubject = new Maemo::IAPConf("test.iap"); - - // Set and check one value - mSubject->setValue("type", "DUMMY"); - QVERIFY(mSubject->value("type").toString() == "DUMMY"); -} - -void Ut_IAPConf::unsetIAPValueIsNotValid() -{ - QVariant invalidValue = mSubject->value("this_value_does_not_exist"); - QVERIFY(invalidValue.isValid() == false); -} - -void Ut_IAPConf::verifyAllIAPs() -{ - int count = 0, extras = 0; - QRegExp regexp("iap[1-3]"); - Maemo::IAPConf iap1("iap1"); - Maemo::IAPConf iap2("iap2"); - Maemo::IAPConf iap3("iap3"); - - iap1.clear(); - iap2.clear(); - iap3.clear(); - - iap1.setValue("name", "iap1"); - iap2.setValue("name", "iap2"); - iap3.setValue("name", "iap3"); - - count = extras = 0; - QList iaps; - Maemo::IAPConf::getAll(iaps, true); - foreach (QString iap_path, iaps) { - QString iap_id = iap_path.section('/', 5); /* This is the IAP id */ - if (!iap_id.contains(regexp)) { - extras++; - continue; - } - Maemo::IAPConf iap(iap_id); - QString name = iap.value("name").toString(); - QVERIFY(name == iap_id); - count++; - } - QCOMPARE(count, iaps.size()-extras); - - iap1.clear(); - iap2.clear(); - iap3.clear(); - - iap1.setValue("name", "iap1"); - iap2.setValue("name", "iap2"); - iap3.setValue("name", "iap3"); - - count = extras = 0; - Maemo::IAPConf::getAll(iaps); - foreach (QString iap_id, iaps) { - if (!iap_id.contains(regexp)) { - extras++; - continue; - } - Maemo::IAPConf iap(iap_id); - QString name = iap.value("name").toString(); - QVERIFY(name == iap_id); - count++; - } - QCOMPARE(count, iaps.size()-extras); -} - -void Ut_IAPConf::allForEmptyConfReturnsEmptyList() -{ - // Clear everything in configuration - mSubject->clearAll(); - - // Get all for a list and check that it is empty - QStringList iaps; - mSubject->getAll(iaps); - QVERIFY(iaps.isEmpty()); -} - -void Ut_IAPConf::settingInvalidValueUnsetsKey() -{ - // Setup some IAP - setupIAP(); - - // Set invalid value to unset "wlan_wepdefkey" key and verify that the - // value is unset - mSubject->setValue("wlan_wepdefkey", QVariant()); - QVERIFY(!mSubject->value("wlan_wepdefkey").isValid()); -} - -QTEST_MAIN(Ut_IAPConf) - -#include "ut_iapconf.moc" diff --git a/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp b/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp deleted file mode 100644 index f14f623..0000000 --- a/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - - -#include -#include - -#include -#include - -static const char *iap_id = "test_monitor_1"; - -class TestIAPMonitor : public Maemo::IAPMonitor -{ -public: - QString addedIap; - QString removedIap; - -protected: - virtual void iapAdded(const QString &id) - { - addedIap = id; - } - - virtual void iapRemoved(const QString &id) - { - removedIap = id; - } -}; - -class Ut_IAPMonitor : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - void init(); - void cleanup(); - void initTestCase(); - void cleanupTestCase(); - - void check(); - -private: - TestIAPMonitor *mon; - Maemo::IAPConf *iap; -}; - -void Ut_IAPMonitor::init() -{ - mon = new TestIAPMonitor; -} - -void Ut_IAPMonitor::cleanup() -{ - delete mon; - mon = 0; -} - -void Ut_IAPMonitor::initTestCase() -{ -} - -void Ut_IAPMonitor::cleanupTestCase() -{ -} - -void Ut_IAPMonitor::check() -{ - QVERIFY(mon->addedIap.isEmpty()); - - iap = new Maemo::IAPConf(iap_id); - iap->set("ipv4_type", "AUTO", - "wlan_wepkey1", "connt", - "wlan_wepdefkey", 1, - "wlan_ssid", QByteArray(iap_id)); - - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - QVERIFY(mon->addedIap == iap_id); - mon->addedIap.clear(); - - QVERIFY(mon->removedIap.isEmpty()); - - // Unset only one value and verify that IAP is not removed - iap->set("ipv4_type", QVariant()); - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - QVERIFY(mon->removedIap.isEmpty()); - - // Clear the whole IAP and check that it is removed - iap->clear(); - delete iap; - - QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); - - QVERIFY(mon->removedIap == iap_id); -} - -QTEST_MAIN(Ut_IAPMonitor) - -#include "ut_iapmonitor.moc" diff --git a/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp b/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp deleted file mode 100644 index 494829d..0000000 --- a/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * - * Contact: Jukka Rissanen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * version 2.1 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - - -// !!!! -// !!!! NOTE: THESE TEST DO NOT REALLY WORK YET BECAUSE OF MISSING -// !!!! FUNCTIONALITY IN ICD2 STUB. YOU HAVE BEEN WARNED. -// !!!! - - -#include -#include -#include -#include -#include - -#include "maemo_icd.h" - -class Ut_MaemoIcd : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - void init(); - void cleanup(); - void initTestCase(); - void cleanupTestCase(); - - void scan_req(); - void scan_cancel_req(); - void connect_req_default(); - void state_req_all(); - void state_req(); - void statistics_req_all(); - void statistics_req(); - void addrinfo_req_all(); - void addrinfo_req(); - -private: - void disconnect_req_default(); // this is currently not run - void connect_req_specific(); // this is currently not run - QProcess *icd_stub; - bool connect_iap(Maemo::IcdConnectResult &connect_result, - QString &result, - QString &error, - QString iap=QString()); -}; - - -QString create_error_str(Maemo::Icd &icd) -{ - return icd.error(); -} - - -void Ut_MaemoIcd::init() -{ - icd_stub = new QProcess(this); - icd_stub->setStandardOutputFile("/tmp/ut_maemo_icd.log"); - icd_stub->start("/usr/bin/icd2_stub.py"); - QTest::qWait(1000); - - // Set the statistics - QProcess dbus_send; - dbus_send.start("dbus-send --type=method_call --system " - "--dest=com.nokia.icd2 /com/nokia/icd2 " - "com.nokia.icd2.testing.set_statistics " - "uint32:1024 uint32:256"); - dbus_send.waitForFinished(); - -} - -void Ut_MaemoIcd::cleanup() -{ - icd_stub->terminate(); - icd_stub->waitForFinished(); -} - -void Ut_MaemoIcd::initTestCase() -{ -} - -void Ut_MaemoIcd::cleanupTestCase() -{ -} - -void Ut_MaemoIcd::scan_req() -{ - QList scanned; - QStringList scannedNetworkTypes; - QStringList networkTypesToScan; - QString error; - Maemo::Icd icd(ICD_SHORT_SCAN_TIMEOUT); - - scannedNetworkTypes = icd.scan(ICD_SCAN_REQUEST_ACTIVE, - networkTypesToScan, - scanned, - error); - QVERIFY(error.isEmpty()); - QCOMPARE(scanned.size(), 3); - QVERIFY(scannedNetworkTypes[0] == "WLAN_INFRA"); - QVERIFY(scannedNetworkTypes[1] == "DUN_GSM_PS"); -} - -void Ut_MaemoIcd::scan_cancel_req() -{ - Maemo::Icd icd; - icd.scanCancel(); - // Not much to verify here -} - -bool Ut_MaemoIcd::connect_iap(Maemo::IcdConnectResult &connect_result, - QString &result, - QString &error, - QString iap) -{ - icd_connection_flags flags = ICD_CONNECTION_FLAG_USER_EVENT; - bool st; - Maemo::Icd icd(ICD_SHORT_CONNECT_TIMEOUT); - - if (iap.isEmpty()) { - qDebug() << "connecting to default IAP"; - st = icd.connect(flags, connect_result); - } else { - qDebug() << "connecting to" << iap; - st = icd.connect(flags, iap, result); - } - - error = create_error_str(icd); - return st; -} - -void Ut_MaemoIcd::connect_req_default() -{ - Maemo::IcdConnectResult connect_result; - QString result, error; - bool st; - st = connect_iap(connect_result, result, error); - QVERIFY2(st, error.toAscii().data()); - result = connect_result.connect.network_id.data(); - qDebug() << result; -} - - -void Ut_MaemoIcd::disconnect_req_default() -{ - icd_connection_flags flags = ICD_CONNECTION_FLAG_USER_EVENT; - bool st; - Maemo::Icd icd(ICD_SHORT_CONNECT_TIMEOUT); - icd.disconnect(flags); -} - - -void Ut_MaemoIcd::connect_req_specific() -{ - Maemo::IcdConnectResult connect_result; - QString result; - QString error; - bool st; - st = connect_iap(connect_result, result, error, "wpa2gx2.osso.net"); - QVERIFY2(st, error.toAscii().data()); - qDebug() << result; -} - - -void Ut_MaemoIcd::state_req_all() -{ - QList state_results; - Maemo::Icd icd; - int sig; - sig = icd.state(state_results); - QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); -} - - -void Ut_MaemoIcd::state_req() -{ - Maemo::IcdStateResult state_result; - Maemo::Icd icd; - int sig; - QString service_type, service_id; - QString network_type("WLAN_INFRA"); - QByteArray network_id("wpa2gx2.osso.net"); - sig = icd.state(service_type, 0, service_id, - network_type, (uint)0x17a1, network_id, - state_result); - QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); -} - - -void Ut_MaemoIcd::statistics_req_all() -{ - QList stats_results; - Maemo::Icd icd; - int sig; - QString err; - sig = icd.statistics(stats_results); - err = create_error_str(icd); - if (!err.isEmpty()) - QVERIFY2(sig==1, err.toAscii().data()); - else - QCOMPARE(sig, 1); - - for(int i=0; i addr_results; - Maemo::Icd icd; - int sig; - sig = icd.addrinfo(addr_results); - QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); -} - - -void Ut_MaemoIcd::addrinfo_req() -{ - Maemo::IcdAddressInfoResult addr_result; - Maemo::Icd icd; - int sig; - QString service_type, service_id; - QString network_type("WLAN_INFRA"); - QByteArray network_id("wpa2gx2.osso.net"); - sig = icd.addrinfo(service_type, 0, service_id, - network_type, (uint)0x17a1, network_id, - addr_result); - QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); -} - - -QTEST_MAIN(Ut_MaemoIcd) - -#include "ut_maemo_icd.moc" diff --git a/src/3rdparty/libconninet/tests/ut_proxyconf.cpp b/src/3rdparty/libconninet/tests/ut_proxyconf.cpp deleted file mode 100644 index 1f407f0..0000000 --- a/src/3rdparty/libconninet/tests/ut_proxyconf.cpp +++ /dev/null @@ -1,400 +0,0 @@ -/* - libconninet - Internet Connectivity support library - - Copyright (C) 2010 Nokia Corporation. All rights reserved. - - Contact: Jukka Rissanen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License - version 2.1 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - - -#include -#include -#include -#include - -#include "../src/proxyconf.h" - -class Ut_ProxyConf : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - void init(); - void cleanup(); - void initTestCase(); - void cleanupTestCase(); - - // tests without the factory - void proxy_ftp_no_factory_ok_auto(); - void proxy_ftp_no_factory_ok_manual(); - void proxy_http_no_factory_ok_manual(); - void proxy_https_no_factory_ok_manual(); - void proxy_socks_no_factory_ok_manual(); - void proxy_default_no_factory_ok_manual(); - - // tests using the factory - void proxy_ftp_factory_ok_auto(); - void proxy_ftp_factory_ok_manual(); - void proxy_http_factory_ok_manual(); - void proxy_https_factory_ok_manual(); - void proxy_socks_factory_ok_manual(); - void proxy_http_factory_ok_manual_clear(); - void proxy_default_factory_ok_manual(); - void proxy_http_factory_ok_manual_ignore_list(); - void proxy_default_factory_ok_manual_system(); - -private: - Maemo::ProxyConf *pc; -}; - - -void put(QString var, QString type, QString value) -{ - QProcess gconf; - if (value.isEmpty()) - gconf.start(QString("gconftool-2 -u /system/proxy/"+var)); - else - gconf.start(QString("gconftool-2 -s /system/proxy/"+var+" -t "+type+" "+value)); - gconf.waitForFinished(); -} - -void put_http(QString var, QString type, QString value) -{ - QProcess gconf; - if (value.isEmpty()) - gconf.start(QString("gconftool-2 -u /system/http_proxy/"+var)); - else - gconf.start(QString("gconftool-2 -s /system/http_proxy/"+var+" -t "+type+" "+value)); - gconf.waitForFinished(); -} - -void put_list(QString var, QString type, QList value) -{ - QProcess gconf; - QString values = "["; - foreach (QString str, value) - values = values + str + ","; - values.chop(1); - values = values + "]"; - - gconf.start(QString("gconftool-2 -s /system/http_proxy/"+var+" -t list --list-type="+type+" "+values)); - gconf.waitForFinished(); -} - - -void Ut_ProxyConf::init() -{ - put_http("host", "string", "my.proxy.com"); - put_http("port", "int", "8080"); - - QList list; - list.append("foo.bar.com"); - list.append("192.168.19.69"); - list.append("192.168.20.0/24"); - list.append("bar.foo.com"); - put_list("ignore_hosts", "string", list); - put_http("use_http_host", "boolean", "true"); - - put("mode", "string", "auto"); - put("autoconfig_url", "string", "http://foo.bar.com/autoconf"); - put("secure_host", "string", "secure_host.com"); - put("secure_port", "int", "112"); - - put("ftp_host", "string", "ftp.nuukia.com"); - put("ftp_port", "int", "2000"); - put("socks_host", "string", "socks.host.com"); - put("socks_port", "int", "10080"); - put("rtsp_host", "string", "rtsp.voice.com"); - put("rtsp_port", "int", "1554"); - - pc = new Maemo::ProxyConf(); -} - -void Ut_ProxyConf::cleanup() -{ - delete pc; - pc = 0; -} - -void Ut_ProxyConf::initTestCase() -{ -} - -void Ut_ProxyConf::cleanupTestCase() -{ -} - - -void Ut_ProxyConf::proxy_ftp_no_factory_ok_auto() -{ - QList nplist; - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); - - nplist = pc->flush(query); - QVERIFY(nplist.length()==0); -} - - -void Ut_ProxyConf::proxy_ftp_no_factory_ok_manual() -{ - QList nplist; - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); - - put("mode", "string", "manual"); - - nplist = pc->flush(query); - foreach (QNetworkProxy proxy, nplist) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(nplist.length()==3); - QVERIFY(nplist.first().type() == QNetworkProxy::FtpCachingProxy); -} - - -void Ut_ProxyConf::proxy_http_no_factory_ok_manual() -{ - QList nplist; - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); - - put("mode", "string", "manual"); - - nplist = pc->flush(query); - foreach (QNetworkProxy proxy, nplist) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(nplist.length()==3); - QVERIFY(nplist.first().type() == QNetworkProxy::HttpProxy); -} - - -void Ut_ProxyConf::proxy_https_no_factory_ok_manual() -{ - QList nplist; - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("https://maps.google.com/")); - - put("mode", "string", "manual"); - - nplist = pc->flush(query); - foreach (QNetworkProxy proxy, nplist) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(nplist.length()==2); - QVERIFY(nplist.first().type() == QNetworkProxy::HttpProxy); -} - - -void Ut_ProxyConf::proxy_socks_no_factory_ok_manual() -{ - QList nplist; - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); - - put("mode", "string", "manual"); - put_http("host", "string", ""); - - nplist = pc->flush(query); - foreach (QNetworkProxy proxy, nplist) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(nplist.length()==2); - QVERIFY(nplist.first().type() == QNetworkProxy::Socks5Proxy); -} - - -void Ut_ProxyConf::proxy_default_no_factory_ok_manual() -{ - QList nplist; - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("foobar://maps.google.com/")); - - put("mode", "string", "manual"); - put("socks_host", "string", ""); - put("secure_host", "string", ""); - - nplist = pc->flush(query); - foreach (QNetworkProxy proxy, nplist) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(nplist.length()==0); -} - - -void Ut_ProxyConf::proxy_ftp_factory_ok_auto() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); - Maemo::ProxyConf::update(); - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - QVERIFY(listOfProxies.length()==1); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_ftp_factory_ok_manual() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - foreach (QNetworkProxy proxy, listOfProxies) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(listOfProxies.length()==3); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::FtpCachingProxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_http_factory_ok_manual() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - foreach (QNetworkProxy proxy, listOfProxies) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(listOfProxies.length()==3); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_https_factory_ok_manual() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("https://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - foreach (QNetworkProxy proxy, listOfProxies) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(listOfProxies.length()==2); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_socks_factory_ok_manual() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - put_http("host", "string", ""); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - foreach (QNetworkProxy proxy, listOfProxies) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(listOfProxies.length()==2); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::Socks5Proxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_http_factory_ok_manual_clear() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - put_http("host", "string", "192.168.1.1"); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - foreach (QNetworkProxy proxy, listOfProxies) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(listOfProxies.length()==3); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); - - Maemo::ProxyConf::clear(); - listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - QVERIFY(listOfProxies.length()==1); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); -} - - -void Ut_ProxyConf::proxy_default_factory_ok_manual() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("foobar://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - put("socks_host", "string", ""); - put("secure_host", "string", ""); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - QVERIFY(listOfProxies.length()==1); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_http_factory_ok_manual_ignore_list() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://192.168.19.70/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - - QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - - foreach (QNetworkProxy proxy, listOfProxies) { - qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); - } - QVERIFY(listOfProxies.length()==3); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); - - query = QNetworkProxyQuery(QUrl("http://192.168.20.10/")); - listOfProxies = QNetworkProxyFactory::proxyForQuery(query); - QVERIFY(listOfProxies.length()==1); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); - Maemo::ProxyConf::clear(); -} - - -void Ut_ProxyConf::proxy_default_factory_ok_manual_system() -{ - QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); - Maemo::ProxyConf::update(); - - put("mode", "string", "manual"); - - QList listOfProxies = QNetworkProxyFactory::systemProxyForQuery(query); - - QVERIFY(listOfProxies.length()==1); - QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); - Maemo::ProxyConf::clear(); -} - - - - -QTEST_MAIN(Ut_ProxyConf) - -#include "ut_proxyconf.moc" -- cgit v0.12 From ab11576ca4987c7da9fcffb9cab286c1b227b74d Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Thu, 12 Aug 2010 14:49:35 +1000 Subject: Add version 0.42 of libconninet. Minor update. Fixes infinite loops. --- src/3rdparty/libconninet/AUTHORS | 0 src/3rdparty/libconninet/COPYING | 510 ++++++ src/3rdparty/libconninet/ChangeLog | 0 src/3rdparty/libconninet/INSTALL | 229 +++ src/3rdparty/libconninet/NEWS | 0 src/3rdparty/libconninet/README | 0 src/3rdparty/libconninet/autogen.sh | 3 + src/3rdparty/libconninet/config.guess | 1533 ++++++++++++++++++ src/3rdparty/libconninet/config.sub | 1693 ++++++++++++++++++++ src/3rdparty/libconninet/configure.ac | 90 ++ src/3rdparty/libconninet/conninet.pc.in | 11 + src/3rdparty/libconninet/debian/changelog | 293 ++++ src/3rdparty/libconninet/debian/compat | 1 + src/3rdparty/libconninet/debian/control | 39 + src/3rdparty/libconninet/debian/copyright | 19 + .../libconninet/debian/libconninet0-dev.dirs | 2 + .../libconninet/debian/libconninet0-dev.files | 4 + src/3rdparty/libconninet/debian/libconninet0.dirs | 1 + src/3rdparty/libconninet/debian/libconninet0.files | 1 + src/3rdparty/libconninet/debian/rules | 123 ++ src/3rdparty/libconninet/doxygen.cfg.in | 1147 +++++++++++++ src/3rdparty/libconninet/src/dbusdispatcher.cpp | 611 +++++++ src/3rdparty/libconninet/src/dbusdispatcher.h | 91 ++ src/3rdparty/libconninet/src/iapconf.cpp | 299 ++++ src/3rdparty/libconninet/src/iapconf.h | 84 + src/3rdparty/libconninet/src/iapmonitor.cpp | 110 ++ src/3rdparty/libconninet/src/iapmonitor.h | 48 + src/3rdparty/libconninet/src/maemo_icd.cpp | 1316 +++++++++++++++ src/3rdparty/libconninet/src/maemo_icd.h | 182 +++ src/3rdparty/libconninet/src/proxyconf.cpp | 315 ++++ src/3rdparty/libconninet/src/proxyconf.h | 53 + .../libconninet/tests/ut_dbusdispatcher.cpp | 191 +++ src/3rdparty/libconninet/tests/ut_iapconf.cpp | 186 +++ src/3rdparty/libconninet/tests/ut_iapmonitor.cpp | 118 ++ src/3rdparty/libconninet/tests/ut_maemo_icd.cpp | 274 ++++ src/3rdparty/libconninet/tests/ut_proxyconf.cpp | 400 +++++ 36 files changed, 9977 insertions(+) create mode 100644 src/3rdparty/libconninet/AUTHORS create mode 100644 src/3rdparty/libconninet/COPYING create mode 100644 src/3rdparty/libconninet/ChangeLog create mode 100644 src/3rdparty/libconninet/INSTALL create mode 100644 src/3rdparty/libconninet/NEWS create mode 100644 src/3rdparty/libconninet/README create mode 100755 src/3rdparty/libconninet/autogen.sh create mode 100755 src/3rdparty/libconninet/config.guess create mode 100755 src/3rdparty/libconninet/config.sub create mode 100644 src/3rdparty/libconninet/configure.ac create mode 100644 src/3rdparty/libconninet/conninet.pc.in create mode 100644 src/3rdparty/libconninet/debian/changelog create mode 100644 src/3rdparty/libconninet/debian/compat create mode 100644 src/3rdparty/libconninet/debian/control create mode 100644 src/3rdparty/libconninet/debian/copyright create mode 100644 src/3rdparty/libconninet/debian/libconninet0-dev.dirs create mode 100644 src/3rdparty/libconninet/debian/libconninet0-dev.files create mode 100644 src/3rdparty/libconninet/debian/libconninet0.dirs create mode 100644 src/3rdparty/libconninet/debian/libconninet0.files create mode 100755 src/3rdparty/libconninet/debian/rules create mode 100644 src/3rdparty/libconninet/doxygen.cfg.in create mode 100644 src/3rdparty/libconninet/src/dbusdispatcher.cpp create mode 100644 src/3rdparty/libconninet/src/dbusdispatcher.h create mode 100644 src/3rdparty/libconninet/src/iapconf.cpp create mode 100644 src/3rdparty/libconninet/src/iapconf.h create mode 100644 src/3rdparty/libconninet/src/iapmonitor.cpp create mode 100644 src/3rdparty/libconninet/src/iapmonitor.h create mode 100644 src/3rdparty/libconninet/src/maemo_icd.cpp create mode 100644 src/3rdparty/libconninet/src/maemo_icd.h create mode 100644 src/3rdparty/libconninet/src/proxyconf.cpp create mode 100644 src/3rdparty/libconninet/src/proxyconf.h create mode 100644 src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp create mode 100644 src/3rdparty/libconninet/tests/ut_iapconf.cpp create mode 100644 src/3rdparty/libconninet/tests/ut_iapmonitor.cpp create mode 100644 src/3rdparty/libconninet/tests/ut_maemo_icd.cpp create mode 100644 src/3rdparty/libconninet/tests/ut_proxyconf.cpp diff --git a/src/3rdparty/libconninet/AUTHORS b/src/3rdparty/libconninet/AUTHORS new file mode 100644 index 0000000..e69de29 diff --git a/src/3rdparty/libconninet/COPYING b/src/3rdparty/libconninet/COPYING new file mode 100644 index 0000000..b124cf5 --- /dev/null +++ b/src/3rdparty/libconninet/COPYING @@ -0,0 +1,510 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs must +be allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or +your school, if any, to sign a "copyright disclaimer" for the library, +if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/src/3rdparty/libconninet/ChangeLog b/src/3rdparty/libconninet/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/src/3rdparty/libconninet/INSTALL b/src/3rdparty/libconninet/INSTALL new file mode 100644 index 0000000..54caf7c --- /dev/null +++ b/src/3rdparty/libconninet/INSTALL @@ -0,0 +1,229 @@ +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software +Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not support the `VPATH' +variable, you have to compile the package for one architecture at a +time in the source code directory. After you have installed the +package for one architecture, use `make distclean' before reconfiguring +for another architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the `--target=TYPE' option to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +will cause the specified gcc to be used as the C compiler (unless it is +overridden in the site shell script). + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of the options to `configure', and exit. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/src/3rdparty/libconninet/NEWS b/src/3rdparty/libconninet/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/src/3rdparty/libconninet/README b/src/3rdparty/libconninet/README new file mode 100644 index 0000000..e69de29 diff --git a/src/3rdparty/libconninet/autogen.sh b/src/3rdparty/libconninet/autogen.sh new file mode 100755 index 0000000..a8fd885 --- /dev/null +++ b/src/3rdparty/libconninet/autogen.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +autoreconf --verbose --install --force diff --git a/src/3rdparty/libconninet/config.guess b/src/3rdparty/libconninet/config.guess new file mode 100755 index 0000000..e3a2116 --- /dev/null +++ b/src/3rdparty/libconninet/config.guess @@ -0,0 +1,1533 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-06-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd | genuineintel) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/3rdparty/libconninet/config.sub b/src/3rdparty/libconninet/config.sub new file mode 100755 index 0000000..eb0389a --- /dev/null +++ b/src/3rdparty/libconninet/config.sub @@ -0,0 +1,1693 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-06-11' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/3rdparty/libconninet/configure.ac b/src/3rdparty/libconninet/configure.ac new file mode 100644 index 0000000..2a383ee --- /dev/null +++ b/src/3rdparty/libconninet/configure.ac @@ -0,0 +1,90 @@ +AC_INIT([libconninet], patsubst(esyscmd([dpkg-parsechangelog | sed -n '/^Version: \(.*\)$/ {s//\1/;p}']), [ +]), [jukka.rissanen@nokia.com]) +AM_INIT_AUTOMAKE([foreign]) + +AC_PROG_CXX +AC_PROG_LIBTOOL + +AC_ARG_ENABLE(docs, [ --enable-docs Build DOXYGEN documentation (requires Doxygen)],enable_docs=$enableval,enable_docs=auto) + +AC_PATH_PROG(DOXYGEN, doxygen, no) +AC_MSG_CHECKING([whether to build Doxygen documentation]) + +if test x$DOXYGEN = xno ; then + have_doxygen=no +else + have_doxygen=yes +fi +if test x$enable_docs = xauto ; then + if test x$have_doxygen = xno ; then + enable_docs=no + else + enable_docs=yes + fi +fi +if test x$enable_docs = xyes; then + if test x$have_doxygen = xno; then + AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found]) + else + AC_MSG_RESULT(yes) + fi +else + AC_MSG_RESULT(no) +fi + +AM_CONDITIONAL(DOXYGEN_DOCS_ENABLED, test x$enable_docs = xyes) +AC_SUBST(DOXYGEN) + +PKG_CHECK_MODULES(GLIB, glib-2.0) +AC_SUBST(GLIB_CFLAGS) +AC_SUBST(GLIB_LIBS) + +PKG_CHECK_MODULES(QTCORE, QtCore) +AC_SUBST(QTCORE_CFLAGS) +AC_SUBST(QTCORE_LIBS) + +PKG_CHECK_MODULES(QTNETWORK, QtNetwork) +AC_SUBST(QTNETWORK_CFLAGS) +AC_SUBST(QTNETWORK_LIBS) + +PKG_CHECK_MODULES(QTDBUS, QtDBus) +AC_SUBST(QTDBUS_CFLAGS) +AC_SUBST(QTDBUS_LIBS) + +PKG_CHECK_MODULES(QTTEST, QtTest) +AC_SUBST(QTTEST_CFLAGS) +AC_SUBST(QTTEST_LIBS) + +PKG_CHECK_MODULES(DBUS, dbus-glib-1) +AC_SUBST(DBUS_CFLAGS) +AC_SUBST(DBUS_LIBS) + +PKG_CHECK_MODULES(CONNSETTINGS, connsettings) +AC_SUBST(CONNSETTINGS_CFLAGS) +AC_SUBST(CONNSETTINGS_LIBS) + +PKG_CHECK_MODULES(OSSO_IC, osso-ic) +AC_SUBST(OSSO_IC_CFLAGS) +AC_SUBST(OSSO_IC_LIBS) + +PKG_CHECK_MODULES(ICD_DEV, icd2) +AC_SUBST(ICD_DEV_CFLAGS) +AC_SUBST(ICD_DEV_LIBS) + +PKG_CHECK_MODULES(GCONF, gconf-2.0) +AC_SUBST(GCONF_CFLAGS) +AC_SUBST(GCONF_LIBS) + +PKG_CHECK_MODULES(QGCONF, gq-gconf) +AC_SUBST(QGCONF_CFLAGS) +AC_SUBST(QGCONF_LIBS) + +CONCFLAGS="-Wall -Werror -Wmissing-prototypes" +AC_SUBST(CONCFLAGS) + +AC_CONFIG_FILES([Makefile \ + src/Makefile \ + tests/Makefile \ + conninet.pc \ + doxygen.cfg]) +AC_OUTPUT diff --git a/src/3rdparty/libconninet/conninet.pc.in b/src/3rdparty/libconninet/conninet.pc.in new file mode 100644 index 0000000..68cdee0 --- /dev/null +++ b/src/3rdparty/libconninet/conninet.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libconninet +Description: Internet Connectivity support library +Version: @VERSION@ +Requires: dbus-1 >= 0.60 glib-2.0 QtCore QtDBus QtGui +Libs: -lconninet +Cflags: -I${includedir}/conninet diff --git a/src/3rdparty/libconninet/debian/changelog b/src/3rdparty/libconninet/debian/changelog new file mode 100644 index 0000000..4063317 --- /dev/null +++ b/src/3rdparty/libconninet/debian/changelog @@ -0,0 +1,293 @@ +libconninet (0.42+0m6) unstable; urgency=low + + * This entry has been added by BIFH queue processor + version has been changed to 0.42+0m6 + + -- Qing Jin Thu, 22 Jul 2010 14:04:58 +0300 + +libconninet (0.42) unstable; urgency=low + + * Fixes: NB#180536 - Uploads to online services are not working. + This is a regression caused by fix to bug 175098, the timeout was never + expiring when waiting reply from icd. + + -- Jukka Rissanen Mon, 19 Jul 2010 12:23:30 +0300 + +libconninet (0.41) unstable; urgency=low + + * Fixes: NB#175098 - Qt4.7 Webkit crashes when bearer API QNetworkSession + constructor calls QNetworkSession::syncStateWithInterface() which in turn + calls Maemo::state() and Maemo::addrinfo() and webkit expects that event + loop is not run but those function process main loop events. + Now Maemo::state() and Maemo::addrinfo() are changed to be synchronous + and fully blocking functions. The old non-blocking versions are called + Maemo::state_non_blocking() and Maemo::addrinfo_non_blocking(). + + -- Jukka Rissanen Wed, 14 Jul 2010 10:12:47 +0300 + +libconninet (0.40) unstable; urgency=low + + * Fixes: NB#167465 - Unable to open network connection using libbearer + + -- Jukka Rissanen Tue, 11 May 2010 10:47:10 +0300 + +libconninet (0.39) unstable; urgency=low + + * Fixes: NB#167982 - initialize DBus vtable in DBusDispatcher. + + -- Aapo Makela Mon, 10 May 2010 14:42:39 +0300 + +libconninet (0.38) unstable; urgency=low + + * Changing icd2 connect_req to be synchronous as the check for + returned connect signal did not work correctly, this caused a + long timeout when connect() was called. + * Scan sometimes missed results and did not return them to caller. + * HTTP proxy settings were not set correctly. + + -- Jukka Rissanen Thu, 15 Apr 2010 11:25:06 +0300 + +libconninet (0.37) unstable; urgency=low + + * Make proxy config reference counting atomic. + + -- Jukka Rissanen Wed, 3 Mar 2010 13:23:08 +0200 + +libconninet (0.36) unstable; urgency=low + + * Fixes: NB#157586 - Cleanup dbus listener when WLAN scanning object is + deleted. + + -- Jukka Rissanen Fri, 26 Feb 2010 13:30:41 +0200 + +libconninet (0.35) unstable; urgency=low + + * Fixes: NB#156883 - libconninet fails to build under the Platform SDK (SB2) + + -- Jukka Rissanen Thu, 18 Feb 2010 12:14:40 +0200 + +libconninet (0.34) unstable; urgency=low + + * Coverity fix + + -- Jukka Rissanen Tue, 16 Feb 2010 16:38:00 +0200 + +libconninet (0.33) unstable; urgency=low + + * Added API to update Qt proxy config. + + -- Jukka Rissanen Tue, 26 Jan 2010 15:48:36 +0200 + +libconninet (0.32) unstable; urgency=low + + * Fixed IAPConf to unset value when set value is invalid. + * Updated IAPMonitor to use libconnsettings. + + -- Aapo Makela Wed, 03 Feb 2010 07:32:45 +0200 + +libconninet (0.31) unstable; urgency=low + + * Fixes: NB#154892 - Check nulls in IAPConf. + + -- Aapo Makela Mon, 01 Feb 2010 09:32:06 +0200 + +libconninet (0.30) unstable; urgency=low + + * Updated IAPConf to use libconnsettings. + + -- Aapo Makela Fri, 29 Jan 2010 12:58:03 +0200 + +libconninet (0.29) unstable; urgency=low + + * Fixed dependencies + + -- Jukka Rissanen Fri, 15 Jan 2010 10:16:07 +0200 + +libconninet (0.28) unstable; urgency=low + + * Get rid of libdui dependency + + -- Jukka Rissanen Wed, 13 Jan 2010 09:56:26 +0200 + +libconninet (0.27) unstable; urgency=low + + * Insert new pending calls to the list in DBusDispatcher. + + -- Aapo Makela Tue, 22 Dec 2009 14:27:32 +0200 + +libconninet (0.26) unstable; urgency=low + + * Added possibility to specify different signal path for DBusDispatcher. + + -- Aapo Makela Wed, 25 Nov 2009 14:27:34 +0200 + +libconninet (0.25) unstable; urgency=low + + * Fixes: NB#146450 - All scan results were not returned to the caller. + + -- Jukka Rissanen Mon, 16 Nov 2009 17:23:15 +0200 + +libconninet (0.24) unstable; urgency=low + + * Wait all scan results for all network types in Maemo::Icd::scan() + + -- Jukka Rissanen Fri, 6 Nov 2009 14:45:23 +0200 + +libconninet (0.23) unstable; urgency=low + + * Fixes: NB#143361 - Assert failure in session class for GPRS IAP. + + -- Jukka Rissanen Mon, 19 Oct 2009 16:00:14 +0300 + +libconninet (0.22) unstable; urgency=low + + * Fixed the error checking if scan returns 0 results. + + -- Jukka Rissanen Wed, 7 Oct 2009 13:50:27 +0300 + +libconninet (0.21) unstable; urgency=low + + * Support multiple DBusDispatcher classes at the same time. This is + required by Maemo::Icd class so that multiple instances of it can + be used the same time. + + -- Jukka Rissanen Mon, 5 Oct 2009 16:33:43 +0300 + +libconninet (0.20) unstable; urgency=low + + * Fixed memory leak in IAPConf::setValue() + + -- Jukka Rissanen Fri, 2 Oct 2009 13:02:21 +0300 + +libconninet (0.19) unstable; urgency=low + + * Fixed connect_req to one specific IAP in Icd class. + + -- Jukka Rissanen Tue, 29 Sep 2009 17:02:46 +0300 + +libconninet (0.18) unstable; urgency=low + + * Make sure the library will not abort in Icd class if scan does + not return any results. + + -- Jukka Rissanen Tue, 22 Sep 2009 17:00:12 +0300 + +libconninet (0.17) unstable; urgency=low + + * Added IAP monitoring support. + + -- Jukka Rissanen Mon, 21 Sep 2009 16:29:31 +0300 + +libconninet (0.16) unstable; urgency=low + + * Disabled the old osso-ic dbus interface as it is currently not used. + * Fixed the addrinfo request, now addresses are returned correctly to + the caller. + + -- Jukka Rissanen Thu, 17 Sep 2009 15:56:13 +0300 + +libconninet (0.15) unstable; urgency=low + + * Enabling state_req, statistics_req and addrinfo_req support + functions in Maemo::Icd as the corresponding DBUS API functions are + fixed in icd2 v0.89 + + -- Jukka Rissanen Fri, 24 Jul 2009 15:23:02 +0300 + +libconninet (0.14) unstable; urgency=low + + * Icd statistics support added. + * Icd address information support added. + * Icd scan method does not return the final (and empty) result any more. + * Added initial unit test implementation for Icd class. + * Some of the status functions in Icd class disabled because of issues + in icd2 and the dbus api. + + -- Jukka Rissanen Thu, 23 Jul 2009 11:03:05 +0300 + +libconninet (0.13) unstable; urgency=low + + * Added API to get all the configured IAPs. + + -- Jukka Rissanen Tue, 21 Jul 2009 09:47:18 +0300 + +libconninet (0.12) unstable; urgency=low + + * Replaced duivaluespace by Dui in pkg-config file because the + duivaluespace is deprecated. + + -- Jukka Rissanen Mon, 20 Jul 2009 16:00:10 +0300 + +libconninet (0.11) unstable; urgency=low + + * Using libdui instead of libduivaluespace because it is deprecated. + * The IAPConf::clear() uses native gconf API instead of launching gconftool + * Check that state_req call returned list and the list contains entries + before trying to access it. + + -- Jukka Rissanen Mon, 20 Jul 2009 14:55:15 +0300 + +libconninet (0.10) unstable; urgency=low + + * connect() did not return ok when connection succeeded. + + -- Jukka Rissanen Thu, 25 Jun 2009 09:31:21 +0300 + +libconninet (0.9) unstable; urgency=low + + * Connection timeout set to 2.5min, same as in fremantle. + + -- Jukka Rissanen Wed, 17 Jun 2009 13:36:40 +0300 + +libconninet (0.8) unstable; urgency=low + + * Fix state_req signal received from Icd + + -- Jukka Rissanen Thu, 11 Jun 2009 17:19:33 +0300 + +libconninet (0.7) unstable; urgency=low + + * Icd disconnect and select reqs are made synchronous as we do not + wait the return status. The previous async version was causing core + dumps if Icd class was destroyed too early. + + -- Jukka Rissanen Thu, 11 Jun 2009 11:52:36 +0300 + +libconninet (0.6) unstable; urgency=low + + * Fixed the libconninet0-dev dependencies. + + -- Jukka Rissanen Mon, 8 Jun 2009 10:47:56 +0300 + +libconninet (0.5) unstable; urgency=low + + * Fixed missing QObject connect functions. + * Fixed IAPConf to return invalid QVariant if the value does not exist. + + -- Jukka Rissanen Mon, 01 Jun 2009 13:58:53 +0300 + +libconninet (0.4) unstable; urgency=low + + * Fixed QObject signal setting for Maemo::Icd + + -- Jukka Rissanen Wed, 20 May 2009 13:51:11 +0300 + +libconninet (0.3) unstable; urgency=low + + * Refactoring classes + * Added IAPConf class. + + -- Jukka Rissanen Thu, 14 May 2009 13:24:11 +0300 + +libconninet (0.2) unstable; urgency=low + + * Fixed pkgconfig file which had wrong dependency + * Added DBus array and struct support to DBusDispatcher. + + -- Jukka Rissanen Wed, 13 May 2009 12:11:00 +0300 + +libconninet (0.1) unstable; urgency=low + + * Initial Release. + + -- Jukka Rissanen Tue, 12 May 2009 16:10:27 +0200 diff --git a/src/3rdparty/libconninet/debian/compat b/src/3rdparty/libconninet/debian/compat new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/src/3rdparty/libconninet/debian/compat @@ -0,0 +1 @@ +4 diff --git a/src/3rdparty/libconninet/debian/control b/src/3rdparty/libconninet/debian/control new file mode 100644 index 0000000..2db660f --- /dev/null +++ b/src/3rdparty/libconninet/debian/control @@ -0,0 +1,39 @@ +Source: libconninet +Priority: optional +Maintainer: Jukka Rissanen +Build-Depends: debhelper (>= 4.0.0), autotools-dev, libglib2.0-dev (>= 2.8), + libdbus-1-dev (>= 0.60), libconnsettings0-dev (>= 0.4), icd2-osso-ic-dev, + icd2-dev, libqt4-dev, libgconf2-dev (>> 2.6.4), libgq-gconf-dev +Standards-Version: 3.6.2 +Section: libs + +Package: libconninet0-dev +Section: libdevel +Architecture: any +Depends: libconninet0 (= ${Source-Version}), libdbus-1-dev (>= 0.60), + libglib2.0-dev (>= 2.8), libconnsettings0-dev (>= 0.4), libqt4-dev, + icd2-osso-ic-dev, icd2-dev, libgconf2-dev (>> 2.6.4), libgq-gconf-dev +Description: Internet Connectivity support library development files + Internet Connectivity support library (libconninet) provides common + support functions for connecting to icd2 and accessing configuration + data. + . + This package contains the header files. + +Package: libconninet0 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Internet Connectivity support library + Internet Connectivity support library (libconninet) provides common + support functions for connecting to icd2 and accessing configuration + data. + . + This package contains the shared libraries. + +Package: libconninet0-dbg +Section: libs +Architecture: any +Depends: libconninet0 (= ${Source-Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Debug symbols for the Internet Connectivity support library + Internet Connectivity support library (libconninet) debug symbols. diff --git a/src/3rdparty/libconninet/debian/copyright b/src/3rdparty/libconninet/debian/copyright new file mode 100644 index 0000000..97e8e68 --- /dev/null +++ b/src/3rdparty/libconninet/debian/copyright @@ -0,0 +1,19 @@ +libconninet - Internet Connectivity support library + +Copyright (C) 2009 Nokia Corporation. All rights reserved. + +Contact: Jukka Rissanen + +This library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License version 2.1 +as published by the Free Software Foundation. + +This library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +02110-1301 USA diff --git a/src/3rdparty/libconninet/debian/libconninet0-dev.dirs b/src/3rdparty/libconninet/debian/libconninet0-dev.dirs new file mode 100644 index 0000000..4418816 --- /dev/null +++ b/src/3rdparty/libconninet/debian/libconninet0-dev.dirs @@ -0,0 +1,2 @@ +usr/lib +usr/include diff --git a/src/3rdparty/libconninet/debian/libconninet0-dev.files b/src/3rdparty/libconninet/debian/libconninet0-dev.files new file mode 100644 index 0000000..78bbac8 --- /dev/null +++ b/src/3rdparty/libconninet/debian/libconninet0-dev.files @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/lib*.so +usr/lib/pkgconfig/* +usr/share/pkgconfig/* diff --git a/src/3rdparty/libconninet/debian/libconninet0.dirs b/src/3rdparty/libconninet/debian/libconninet0.dirs new file mode 100644 index 0000000..6845771 --- /dev/null +++ b/src/3rdparty/libconninet/debian/libconninet0.dirs @@ -0,0 +1 @@ +usr/lib diff --git a/src/3rdparty/libconninet/debian/libconninet0.files b/src/3rdparty/libconninet/debian/libconninet0.files new file mode 100644 index 0000000..d0dbfd1 --- /dev/null +++ b/src/3rdparty/libconninet/debian/libconninet0.files @@ -0,0 +1 @@ +usr/lib/lib*.so.* diff --git a/src/3rdparty/libconninet/debian/rules b/src/3rdparty/libconninet/debian/rules new file mode 100755 index 0000000..2a3d395 --- /dev/null +++ b/src/3rdparty/libconninet/debian/rules @@ -0,0 +1,123 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +# shared library versions, option 1 +#version=2.0.5 +#major=2 +# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so +version=`ls src/.libs/lib*.so.* | \ + awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'` +major=`ls src/.libs/lib*.so.* | \ + awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'` + +configure: configure.ac debian/changelog + -./autogen.sh + +config.status: configure + dh_testdir + # Add here commands to configure the package. + CFLAGS="$(CFLAGS)" ./configure \ + --host=$(DEB_HOST_GNU_TYPE) \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info + + +build: build-stamp +build-stamp: config.status + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + + # Add here commands to clean up after the build process. + -$(MAKE) distclean +ifneq "$(wildcard /usr/share/misc/config.sub)" "" + cp -f /usr/share/misc/config.sub config.sub +endif +ifneq "$(wildcard /usr/share/misc/config.guess)" "" + cp -f /usr/share/misc/config.guess config.guess +endif + + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_movefiles + dh_installchangelogs ChangeLog + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip --dbg-package=libconninet0 + dh_compress + dh_fixperms +# dh_perl +# dh_python + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/src/3rdparty/libconninet/doxygen.cfg.in b/src/3rdparty/libconninet/doxygen.cfg.in new file mode 100644 index 0000000..80a4c8d --- /dev/null +++ b/src/3rdparty/libconninet/doxygen.cfg.in @@ -0,0 +1,1147 @@ +# Doxyfile 1.3.7 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "Internet Connectivity Support Library" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 2 levels of 10 sub-directories under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of source +# files, where putting all generated files in the same directory would otherwise +# cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, +# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en +# (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, +# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is used +# as the annotated text. Otherwise, the brief description is used as-is. If left +# blank, the following values are used ("$name" is automatically replaced with the +# name of the entity): "The $name class" "The $name widget" "The $name file" +# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = conic/conic.h \ + conic/conicconnection.h \ + conic/conicconnectionevent.h \ + conic/conicevent.h \ + conic/coniciap.h \ + conic/conicstatisticsevent.h + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superseded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/src/3rdparty/libconninet/src/dbusdispatcher.cpp b/src/3rdparty/libconninet/src/dbusdispatcher.cpp new file mode 100644 index 0000000..7581982 --- /dev/null +++ b/src/3rdparty/libconninet/src/dbusdispatcher.cpp @@ -0,0 +1,611 @@ +/* * This file is part of conninet * + * + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * + * Contact: Aapo Makela + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include "dbusdispatcher.h" + +namespace Maemo { + +/*! + \class DBusDispatcher + + \brief DBusDispatcher is a class, which is able to send DBUS method call + messages and receive unicast signals from DBUS object. +*/ + +class DBusDispatcherPrivate +{ +public: + DBusDispatcherPrivate(const QString& service, + const QString& path, + const QString& interface, + const QString& signalPath) + : service(service), path(path), interface(interface), + signalPath(signalPath), connection(0) + { + memset(&signal_vtable, 0, sizeof(signal_vtable)); + } + + ~DBusDispatcherPrivate() + { + foreach(DBusPendingCall *call, pending_calls) { + dbus_pending_call_cancel(call); + dbus_pending_call_unref(call); + } + } + + QString service; + QString path; + QString interface; + QString signalPath; + struct DBusConnection *connection; + QList pending_calls; + struct DBusObjectPathVTable signal_vtable; +}; + +static bool constantVariantList(const QVariantList& variantList) { + // Special case, empty list == empty struct + if (variantList.isEmpty()) { + return false; + } else { + QVariant::Type type = variantList[0].type(); + // Iterate items in the list and check if they are same type + foreach(QVariant variant, variantList) { + if (variant.type() != type) { + return false; + } + } + } + return true; +} + +static QString variantToSignature(const QVariant& argument, + bool constantList = true) { + switch (argument.type()) { + case QVariant::Bool: + return "b"; + case QVariant::ByteArray: + return "ay"; + case QVariant::Char: + return "y"; + case QVariant::Int: + return "i"; + case QVariant::UInt: + return "u"; + case QVariant::StringList: + return "as"; + case QVariant::String: + return "s"; + case QVariant::LongLong: + return "x"; + case QVariant::ULongLong: + return "t"; + case QVariant::List: + { + QString signature; + QVariantList variantList = argument.toList(); + if (!constantList) { + signature += DBUS_STRUCT_BEGIN_CHAR_AS_STRING; + foreach(QVariant listItem, variantList) { + signature += variantToSignature(listItem); + } + signature += DBUS_STRUCT_END_CHAR_AS_STRING; + } else { + if (variantList.isEmpty()) + return ""; + signature = "a" + variantToSignature(variantList[0]); + } + + return signature; + } + default: + qDebug() << "Unsupported variant type: " << argument.type(); + break; + } + + return ""; +} + +static bool appendVariantToDBusMessage(const QVariant& argument, + DBusMessageIter *dbus_iter) { + int idx = 0; + DBusMessageIter array_iter; + QStringList str_list; + dbus_bool_t bool_data; + dbus_int32_t int32_data; + dbus_uint32_t uint32_data; + dbus_int64_t int64_data; + dbus_uint64_t uint64_data; + char *str_data; + char char_data; + + switch (argument.type()) { + + case QVariant::Bool: + bool_data = argument.toBool(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_BOOLEAN, + &bool_data); + break; + + case QVariant::ByteArray: + str_data = argument.toByteArray().data(); + dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY, + DBUS_TYPE_BYTE_AS_STRING, &array_iter); + dbus_message_iter_append_fixed_array(&array_iter, + DBUS_TYPE_BYTE, + &str_data, + argument.toByteArray().size()); + dbus_message_iter_close_container(dbus_iter, &array_iter); + break; + + case QVariant::Char: + char_data = argument.toChar().toAscii(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_BYTE, + &char_data); + break; + + case QVariant::Int: + int32_data = argument.toInt(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_INT32, + &int32_data); + break; + + case QVariant::String: + str_data = argument.toString().toLatin1().data(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_STRING, + &str_data); + break; + + case QVariant::StringList: + str_list = argument.toStringList(); + dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY, + "s", &array_iter); + for (idx = 0; idx < str_list.size(); idx++) { + str_data = str_list.at(idx).toLatin1().data(); + dbus_message_iter_append_basic(&array_iter, + DBUS_TYPE_STRING, + &str_data); + } + dbus_message_iter_close_container(dbus_iter, &array_iter); + break; + + case QVariant::UInt: + uint32_data = argument.toUInt(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_UINT32, + &uint32_data); + break; + + case QVariant::ULongLong: + uint64_data = argument.toULongLong(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_UINT64, + &uint64_data); + break; + + case QVariant::LongLong: + int64_data = argument.toLongLong(); + dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_INT64, + &int64_data); + break; + + case QVariant::List: + { + QVariantList variantList = argument.toList(); + bool constantList = constantVariantList(variantList); + DBusMessageIter array_iter; + + // List is mapped either as an DBUS array (all items same type) + // DBUS struct (variable types) depending on constantList + if (constantList) { + // Resolve the signature for the first item + QString signature = ""; + if (!variantList.isEmpty()) { + signature = variantToSignature( + variantList[0], + constantVariantList(variantList[0].toList())); + } + + // Mapped as DBUS array + dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY, + signature.toAscii(), + &array_iter); + + foreach(QVariant listItem, variantList) { + appendVariantToDBusMessage(listItem, &array_iter); + } + + dbus_message_iter_close_container(dbus_iter, &array_iter); + } else { + // Mapped as DBUS struct + dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_STRUCT, + NULL, + &array_iter); + + foreach(QVariant listItem, variantList) { + appendVariantToDBusMessage(listItem, &array_iter); + } + + dbus_message_iter_close_container(dbus_iter, &array_iter); + } + + break; + } + default: + qDebug() << "Unsupported variant type: " << argument.type(); + break; + } + + return true; +} + +static QVariant getVariantFromDBusMessage(DBusMessageIter *iter) { + dbus_bool_t bool_data; + dbus_int32_t int32_data; + dbus_uint32_t uint32_data; + dbus_int64_t int64_data; + dbus_uint64_t uint64_data; + char *str_data; + char char_data; + int argtype = dbus_message_iter_get_arg_type(iter); + + switch (argtype) { + + case DBUS_TYPE_BOOLEAN: + { + dbus_message_iter_get_basic(iter, &bool_data); + QVariant variant((bool)bool_data); + return variant; + } + + case DBUS_TYPE_ARRAY: + { + // Handle all arrays here + int elem_type = dbus_message_iter_get_element_type(iter); + DBusMessageIter array_iter; + + dbus_message_iter_recurse(iter, &array_iter); + + if (elem_type == DBUS_TYPE_BYTE) { + QByteArray byte_array; + do { + dbus_message_iter_get_basic(&array_iter, &char_data); + byte_array.append(char_data); + } while (dbus_message_iter_next(&array_iter)); + QVariant variant(byte_array); + return variant; + } else if (elem_type == DBUS_TYPE_STRING) { + QStringList str_list; + do { + dbus_message_iter_get_basic(&array_iter, &str_data); + str_list.append(str_data); + } while (dbus_message_iter_next(&array_iter)); + QVariant variant(str_list); + return variant; + } else { + QVariantList variantList; + do { + variantList << getVariantFromDBusMessage(&array_iter); + } while (dbus_message_iter_next(&array_iter)); + QVariant variant(variantList); + return variant; + } + break; + } + + case DBUS_TYPE_BYTE: + { + dbus_message_iter_get_basic(iter, &char_data); + QChar ch(char_data); + QVariant variant(ch); + return variant; + } + + case DBUS_TYPE_INT32: + { + dbus_message_iter_get_basic(iter, &int32_data); + QVariant variant((int)int32_data); + return variant; + } + + case DBUS_TYPE_UINT32: + { + dbus_message_iter_get_basic(iter, &uint32_data); + QVariant variant((uint)uint32_data); + return variant; + } + + case DBUS_TYPE_STRING: + { + dbus_message_iter_get_basic(iter, &str_data); + QString str(str_data); + QVariant variant(str); + return variant; + } + + case DBUS_TYPE_INT64: + { + dbus_message_iter_get_basic(iter, &int64_data); + QVariant variant((qlonglong)int64_data); + return variant; + } + + case DBUS_TYPE_UINT64: + { + dbus_message_iter_get_basic(iter, &uint64_data); + QVariant variant((qulonglong)uint64_data); + return variant; + } + + case DBUS_TYPE_STRUCT: + { + // Handle all structs here + DBusMessageIter struct_iter; + dbus_message_iter_recurse(iter, &struct_iter); + + QVariantList variantList; + do { + variantList << getVariantFromDBusMessage(&struct_iter); + } while (dbus_message_iter_next(&struct_iter)); + QVariant variant(variantList); + return variant; + } + + default: + qDebug() << "Unsupported DBUS type: " << argtype; + } + + return QVariant(); +} + +static DBusHandlerResult signalHandler (DBusConnection *connection, + DBusMessage *message, + void *object_ref) { + (void)connection; + QString interface; + QString signal; + DBusDispatcher *dispatcher = (DBusDispatcher *)object_ref; + + if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_SIGNAL) { + interface = dbus_message_get_interface(message); + signal = dbus_message_get_member(message); + + QList arglist; + DBusMessageIter dbus_iter; + + if (dbus_message_iter_init(message, &dbus_iter)) { + // Read return arguments + while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) { + arglist << getVariantFromDBusMessage(&dbus_iter); + dbus_message_iter_next(&dbus_iter); + } + } + + dispatcher->emitSignalReceived(interface, signal, arglist); + return DBUS_HANDLER_RESULT_HANDLED; + } + (void)message; + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +DBusDispatcher::DBusDispatcher(const QString& service, + const QString& path, + const QString& interface, + QObject *parent) + : QObject(parent), + d_ptr(new DBusDispatcherPrivate(service, path, interface, path)) { + setupDBus(); +} + +DBusDispatcher::DBusDispatcher(const QString& service, + const QString& path, + const QString& interface, + const QString& signalPath, + QObject *parent) + : QObject(parent), + d_ptr(new DBusDispatcherPrivate(service, path, interface, signalPath)) { + setupDBus(); +} + +DBusDispatcher::~DBusDispatcher() +{ + if (d_ptr->connection) { + dbus_connection_close(d_ptr->connection); + dbus_connection_unref(d_ptr->connection); + } + delete d_ptr; +} + +void DBusDispatcher::setupDBus() +{ + d_ptr->connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, NULL); + + if (d_ptr->connection == NULL) + qDebug() << "Unable to get DBUS connection!"; + else { + d_ptr->signal_vtable.message_function = signalHandler; + + dbus_connection_set_exit_on_disconnect(d_ptr->connection, FALSE); + dbus_connection_setup_with_g_main(d_ptr->connection, NULL); + dbus_connection_register_object_path(d_ptr->connection, + d_ptr->signalPath.toLatin1(), + &d_ptr->signal_vtable, + this); + } +} + +static DBusMessage *prepareDBusCall(const QString& service, + const QString& path, + const QString& interface, + const QString& method, + const QVariant& arg1 = QVariant(), + const QVariant& arg2 = QVariant(), + const QVariant& arg3 = QVariant(), + const QVariant& arg4 = QVariant(), + const QVariant& arg5 = QVariant(), + const QVariant& arg6 = QVariant(), + const QVariant& arg7 = QVariant(), + const QVariant& arg8 = QVariant()) +{ + DBusMessage *message = dbus_message_new_method_call(service.toLatin1(), + path.toLatin1(), + interface.toLatin1(), + method.toLatin1()); + DBusMessageIter dbus_iter; + + // Append variants to DBUS message + QList arglist; + if (arg1.isValid()) arglist << arg1; + if (arg2.isValid()) arglist << arg2; + if (arg3.isValid()) arglist << arg3; + if (arg4.isValid()) arglist << arg4; + if (arg5.isValid()) arglist << arg5; + if (arg6.isValid()) arglist << arg6; + if (arg7.isValid()) arglist << arg7; + if (arg8.isValid()) arglist << arg8; + + dbus_message_iter_init_append (message, &dbus_iter); + + while (!arglist.isEmpty()) { + QVariant argument = arglist.takeFirst(); + appendVariantToDBusMessage(argument, &dbus_iter); + } + + return message; +} + +QList DBusDispatcher::call(const QString& method, + const QVariant& arg1, + const QVariant& arg2, + const QVariant& arg3, + const QVariant& arg4, + const QVariant& arg5, + const QVariant& arg6, + const QVariant& arg7, + const QVariant& arg8) { + DBusMessageIter dbus_iter; + DBusMessage *message = prepareDBusCall(d_ptr->service, d_ptr->path, + d_ptr->interface, method, + arg1, arg2, arg3, arg4, arg5, + arg6, arg7, arg8); + DBusMessage *reply = dbus_connection_send_with_reply_and_block( + d_ptr->connection, + message, -1, NULL); + dbus_message_unref(message); + + QList replylist; + if (reply != NULL && dbus_message_iter_init(reply, &dbus_iter)) { + // Read return arguments + while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) { + replylist << getVariantFromDBusMessage(&dbus_iter); + dbus_message_iter_next(&dbus_iter); + } + } + if (reply != NULL) dbus_message_unref(reply); + return replylist; +} + +class PendingCallInfo { +public: + QString method; + DBusDispatcher *dispatcher; + DBusDispatcherPrivate *priv; +}; + +static void freePendingCallInfo(void *memory) { + PendingCallInfo *info = (PendingCallInfo *)memory; + delete info; +} + +static void pendingCallFunction (DBusPendingCall *pending, + void *memory) { + PendingCallInfo *info = (PendingCallInfo *)memory; + QString errorStr; + QList replyList; + DBusMessage *reply = dbus_pending_call_steal_reply (pending); + + Q_ASSERT(reply != NULL); + + if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { + errorStr = dbus_message_get_error_name (reply); + } else { + DBusMessageIter dbus_iter; + dbus_message_iter_init(reply, &dbus_iter); + // Read return arguments + while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) { + replyList << getVariantFromDBusMessage(&dbus_iter); + dbus_message_iter_next(&dbus_iter); + } + } + + info->priv->pending_calls.removeOne(pending); + info->dispatcher->emitCallReply(info->method, replyList, errorStr); + dbus_message_unref(reply); + dbus_pending_call_unref(pending); +} + +bool DBusDispatcher::callAsynchronous(const QString& method, + const QVariant& arg1, + const QVariant& arg2, + const QVariant& arg3, + const QVariant& arg4, + const QVariant& arg5, + const QVariant& arg6, + const QVariant& arg7, + const QVariant& arg8) { + DBusMessage *message = prepareDBusCall(d_ptr->service, d_ptr->path, + d_ptr->interface, method, + arg1, arg2, arg3, arg4, arg5, + arg6, arg7, arg8); + DBusPendingCall *call = NULL; + dbus_bool_t ret = dbus_connection_send_with_reply(d_ptr->connection, + message, &call, -1); + PendingCallInfo *info = new PendingCallInfo; + info->method = method; + info->dispatcher = this; + info->priv = d_ptr; + + dbus_pending_call_set_notify(call, pendingCallFunction, info, freePendingCallInfo); + d_ptr->pending_calls.append(call); + return (bool)ret; +} + +void DBusDispatcher::emitSignalReceived(const QString& interface, + const QString& signal, + const QList& args) { + emit signalReceived(interface, signal, args); } + +void DBusDispatcher::emitCallReply(const QString& method, + const QList& args, + const QString& error) { + emit callReply(method, args, error); } + +void DBusDispatcher::synchronousDispatch(int timeout_ms) +{ + dbus_connection_read_write_dispatch(d_ptr->connection, timeout_ms); +} + +} // Maemo namespace + diff --git a/src/3rdparty/libconninet/src/dbusdispatcher.h b/src/3rdparty/libconninet/src/dbusdispatcher.h new file mode 100644 index 0000000..2f71b6f --- /dev/null +++ b/src/3rdparty/libconninet/src/dbusdispatcher.h @@ -0,0 +1,91 @@ +/* * This file is part of conn-dui-settings-inet * + * + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * + * Contact: Aapo Makela + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef DBUSDISPATCHER_H +#define DBUSDISPATCHER_H + +#include +#include + +namespace Maemo { + +class DBusDispatcherPrivate; +class DBusDispatcher : public QObject +{ + Q_OBJECT + +public: + DBusDispatcher(const QString& service, + const QString& path, + const QString& interface, + QObject *parent = 0); + DBusDispatcher(const QString& service, + const QString& path, + const QString& interface, + const QString& signalPath, + QObject *parent = 0); + ~DBusDispatcher(); + + QList call(const QString& method, + const QVariant& arg1 = QVariant(), + const QVariant& arg2 = QVariant(), + const QVariant& arg3 = QVariant(), + const QVariant& arg4 = QVariant(), + const QVariant& arg5 = QVariant(), + const QVariant& arg6 = QVariant(), + const QVariant& arg7 = QVariant(), + const QVariant& arg8 = QVariant()); + bool callAsynchronous(const QString& method, + const QVariant& arg1 = QVariant(), + const QVariant& arg2 = QVariant(), + const QVariant& arg3 = QVariant(), + const QVariant& arg4 = QVariant(), + const QVariant& arg5 = QVariant(), + const QVariant& arg6 = QVariant(), + const QVariant& arg7 = QVariant(), + const QVariant& arg8 = QVariant()); + void emitSignalReceived(const QString& interface, + const QString& signal, + const QList& args); + void emitCallReply(const QString& method, + const QList& args, + const QString& error = ""); + void synchronousDispatch(int timeout_ms); + +Q_SIGNALS: + void signalReceived(const QString& interface, + const QString& signal, + const QList& args); + void callReply(const QString& method, + const QList& args, + const QString& error); + +protected: + void setupDBus(); + +private: + DBusDispatcherPrivate *d_ptr; +}; + +} // Maemo namespace + +#endif diff --git a/src/3rdparty/libconninet/src/iapconf.cpp b/src/3rdparty/libconninet/src/iapconf.cpp new file mode 100644 index 0000000..2e77fa5 --- /dev/null +++ b/src/3rdparty/libconninet/src/iapconf.cpp @@ -0,0 +1,299 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. + + Contact: Aapo Makela + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#include +#include +#include + +#include "iapconf.h" + +#define QSTRING_TO_CONST_CSTR(str) \ + str.toUtf8().constData() + +namespace Maemo { + +class IAPConfPrivate { +public: + ConnSettings *settings; + + ConnSettingsValue *variantToValue(const QVariant &variant); + QVariant valueToVariant(ConnSettingsValue *value); +}; + +ConnSettingsValue *IAPConfPrivate::variantToValue(const QVariant &variant) +{ + // Convert variant to ConnSettingsValue + ConnSettingsValue *value = conn_settings_value_new(); + if (value == 0) { + qWarning("IAPConf: Unable to create new ConnSettingsValue"); + return 0; + } + + switch(variant.type()) { + + case QVariant::Invalid: + value->type = CONN_SETTINGS_VALUE_INVALID; + break; + + case QVariant::String: { + char *valueStr = strdup(QSTRING_TO_CONST_CSTR(variant.toString())); + value->type = CONN_SETTINGS_VALUE_STRING; + value->value.string_val = valueStr; + break; + } + + case QVariant::Int: + value->type = CONN_SETTINGS_VALUE_INT; + value->value.int_val = variant.toInt(); + break; + + case QMetaType::Float: + case QVariant::Double: + value->type = CONN_SETTINGS_VALUE_DOUBLE; + value->value.double_val = variant.toDouble(); + break; + + case QVariant::Bool: + value->type = CONN_SETTINGS_VALUE_BOOL; + value->value.bool_val = variant.toBool() ? 1 : 0; + break; + + case QVariant::ByteArray: { + QByteArray array = variant.toByteArray(); + value->type = CONN_SETTINGS_VALUE_BYTE_ARRAY; + value->value.byte_array.len = array.size(); + value->value.byte_array.val = (unsigned char *)malloc(array.size()); + memcpy(value->value.byte_array.val, array.constData(), array.size()); + break; + } + + case QVariant::List: { + QVariantList list = variant.toList(); + ConnSettingsValue **list_val = (ConnSettingsValue **)malloc( + (list.size() + 1) * sizeof(ConnSettingsValue *)); + + for (int idx = 0; idx < list.size(); idx++) { + list_val[idx] = variantToValue(list.at(idx)); + } + list_val[list.size()] = 0; + + value->type = CONN_SETTINGS_VALUE_LIST; + value->value.list_val = list_val; + break; + } + + default: + qWarning("IAPConf: Can not handle QVariant of type %d", + variant.type()); + conn_settings_value_destroy(value); + return 0; + } + + return value; +} + +QVariant IAPConfPrivate::valueToVariant(ConnSettingsValue *value) +{ + if (value == 0 || value->type == CONN_SETTINGS_VALUE_INVALID) { + return QVariant(); + } + + switch(value->type) { + + case CONN_SETTINGS_VALUE_BOOL: + return QVariant(value->value.bool_val ? true : false); + + case CONN_SETTINGS_VALUE_STRING: + return QVariant(QString(value->value.string_val)); + + case CONN_SETTINGS_VALUE_DOUBLE: + return QVariant(value->value.double_val); + + case CONN_SETTINGS_VALUE_INT: + return QVariant(value->value.int_val); + + case CONN_SETTINGS_VALUE_LIST: { + // At least with GConf backend connsettings returns byte array as list + // of ints, first check for that case + if (value->value.list_val && value->value.list_val[0]) { + bool canBeConvertedToByteArray = true; + for (int idx = 0; value->value.list_val[idx]; idx++) { + ConnSettingsValue *val = value->value.list_val[idx]; + if (val->type != CONN_SETTINGS_VALUE_INT + || val->value.int_val > 255 + || val->value.int_val < 0) { + canBeConvertedToByteArray = false; + break; + } + } + + if (canBeConvertedToByteArray) { + QByteArray array; + for (int idx = 0; value->value.list_val[idx]; idx++) { + array.append(value->value.list_val[idx]->value.int_val); + } + return array; + } + + // Create normal list + QVariantList list; + for (int idx = 0; value->value.list_val[idx]; idx++) { + list.append(valueToVariant(value->value.list_val[idx])); + } + return list; + } + } + + case CONN_SETTINGS_VALUE_BYTE_ARRAY: + return QByteArray::fromRawData((char *)value->value.byte_array.val, + value->value.byte_array.len); + + default: + return QVariant(); + } +} + +// Public class implementation + +IAPConf::IAPConf(const QString &iap_id) + : d_ptr(new IAPConfPrivate) +{ + d_ptr->settings = conn_settings_open(CONN_SETTINGS_CONNECTION, + QSTRING_TO_CONST_CSTR(iap_id)); + if (d_ptr->settings == 0) { + qWarning("IAPConf: Unable to open ConnSettings for %s", + QSTRING_TO_CONST_CSTR(iap_id)); + } +} + +IAPConf::~IAPConf() +{ + conn_settings_close(d_ptr->settings); + delete d_ptr; +} + +void IAPConf::setValue(const QString& key, const QVariant& value) +{ + // Invalid value means unsetting the given key + if (!value.isValid()) { + int err = conn_settings_unset(d_ptr->settings, + QSTRING_TO_CONST_CSTR(key)); + if (err != CONN_SETTINGS_E_NO_ERROR) { + qWarning("IAPConf: unable to unset key %s: %s", + QSTRING_TO_CONST_CSTR(key), + conn_settings_error_text((ConnSettingsError)err)); + } + return; + } + + // Convert value to ConnSettingsValue + ConnSettingsValue *val = d_ptr->variantToValue(value); + if (val == 0) return; + + // Set value and handle errors + int error = conn_settings_set(d_ptr->settings, + QSTRING_TO_CONST_CSTR(key), + val); + if (error != CONN_SETTINGS_E_NO_ERROR) { + qWarning("IAPConf: error in setting key %s: %s", + QSTRING_TO_CONST_CSTR(key), + conn_settings_error_text((ConnSettingsError)error)); + } + + // Destroy value + conn_settings_value_destroy(val); + return; +} + +void IAPConf::set(const QString& key1, const QVariant& value1, + const QString& key2, const QVariant& value2, + const QString& key3, const QVariant& value3, + const QString& key4, const QVariant& value4, + const QString& key5, const QVariant& value5, + const QString& key6, const QVariant& value6, + const QString& key7, const QVariant& value7, + const QString& key8, const QVariant& value8, + const QString& key9, const QVariant& value9, + const QString& key10, const QVariant& value10) +{ + if (!key1.isEmpty()) setValue(key1, value1); + if (!key2.isEmpty()) setValue(key2, value2); + if (!key3.isEmpty()) setValue(key3, value3); + if (!key4.isEmpty()) setValue(key4, value4); + if (!key5.isEmpty()) setValue(key5, value5); + if (!key6.isEmpty()) setValue(key6, value6); + if (!key7.isEmpty()) setValue(key7, value7); + if (!key8.isEmpty()) setValue(key8, value8); + if (!key9.isEmpty()) setValue(key9, value9); + if (!key10.isEmpty()) setValue(key10, value10); +} + +QVariant IAPConf::value(const QString& key) const +{ + ConnSettingsValue *val = conn_settings_get(d_ptr->settings, + QSTRING_TO_CONST_CSTR(key)); + + QVariant variant = d_ptr->valueToVariant(val); + conn_settings_value_destroy(val); + return variant; +} + +void IAPConf::clear(const char *default_path) +{ + Q_UNUSED(default_path); // default path is unused + + int error = conn_settings_remove(d_ptr->settings); + if (error != CONN_SETTINGS_E_NO_ERROR) { + qWarning("IAPConf: Error when removing IAP: %s", + conn_settings_error_text((ConnSettingsError)error)); + } +} + +void IAPConf::clearAll() +{ + ConnSettings *settings = conn_settings_open(CONN_SETTINGS_CONNECTION, + NULL); + conn_settings_remove(settings); + conn_settings_close(settings); +} + + +void IAPConf::getAll(QList &all_iaps, bool return_path) +{ + Q_UNUSED(return_path); // We don't use return path currently + + // Go through all available connections and add them to the list + char **ids = conn_settings_list_ids(CONN_SETTINGS_CONNECTION); + if (ids == 0) { + // No ids found - nothing to do + return; + } + + for (int idx = 0; ids[idx]; idx++) { + all_iaps.append(QString(ids[idx])); + free(ids[idx]); + } + free(ids); +} + + +} // namespace Maemo diff --git a/src/3rdparty/libconninet/src/iapconf.h b/src/3rdparty/libconninet/src/iapconf.h new file mode 100644 index 0000000..57c0856 --- /dev/null +++ b/src/3rdparty/libconninet/src/iapconf.h @@ -0,0 +1,84 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009 Nokia Corporation. All rights reserved. + + Contact: Aapo Makela + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#ifndef IAPCONF_H +#define IAPCONF_H + +#include +#include + +namespace Maemo { + +class IAPConfPrivate; +class IAPConf { +public: + IAPConf(const QString &iap_id); + virtual ~IAPConf(); + + /** + Convenience method for setting multiple IAP values with one call. + */ + void set(const QString& key1, const QVariant& value1, + const QString& key2 = "", const QVariant& value2 = QVariant(), + const QString& key3 = "", const QVariant& value3 = QVariant(), + const QString& key4 = "", const QVariant& value4 = QVariant(), + const QString& key5 = "", const QVariant& value5 = QVariant(), + const QString& key6 = "", const QVariant& value6 = QVariant(), + const QString& key7 = "", const QVariant& value7 = QVariant(), + const QString& key8 = "", const QVariant& value8 = QVariant(), + const QString& key9 = "", const QVariant& value9 = QVariant(), + const QString& key10 = "", const QVariant& value10 = QVariant()); + + /** + Set one IAP value. + */ + void setValue(const QString& key, const QVariant& value); + + /** + Get one IAP value. + */ + QVariant value(const QString& key) const; + + /** + Clear this IAP from GConf + */ + void clear(const char *default_path=0); + + /** + Clear all IAP specific information from GConf (including all IAPs). + DO NOT USE THIS FUNCTION IN ANYWHERE ELSE EXCEPT IN TEST CODE! + */ + void clearAll(); + + /** + Return all the IAPs found in the system. If return_path is true, + then do not strip the IAP path away. + */ + static void getAll(QList &all_iaps, bool return_path=false); + +private: + IAPConfPrivate *d_ptr; +}; + +} // namespace Maemo + +#endif diff --git a/src/3rdparty/libconninet/src/iapmonitor.cpp b/src/3rdparty/libconninet/src/iapmonitor.cpp new file mode 100644 index 0000000..c44cbc8 --- /dev/null +++ b/src/3rdparty/libconninet/src/iapmonitor.cpp @@ -0,0 +1,110 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#include + +#include +#include "iapmonitor.h" + +namespace Maemo { + + +void conn_settings_notify_func (ConnSettingsType type, + const char *id, + const char *key, + ConnSettingsValue *value, + void *user_data); + +class IAPMonitorPrivate { +private: + IAPMonitor *monitor; + ConnSettings *settings; + +public: + + IAPMonitorPrivate(IAPMonitor *monitor) + : monitor(monitor) + { + settings = conn_settings_open(CONN_SETTINGS_CONNECTION, NULL); + conn_settings_add_notify( + settings, + (ConnSettingsNotifyFunc *)conn_settings_notify_func, + this); + } + + ~IAPMonitorPrivate() + { + conn_settings_del_notify(settings); + conn_settings_close(settings); + } + + void iapAdded(const QString &iap) + { + monitor->iapAdded(iap); + } + + void iapRemoved(const QString &iap) + { + monitor->iapRemoved(iap); + } +}; + +void conn_settings_notify_func (ConnSettingsType type, + const char *id, + const char *key, + ConnSettingsValue *value, + void *user_data) +{ + if (type != CONN_SETTINGS_CONNECTION) return; + IAPMonitorPrivate *priv = (IAPMonitorPrivate *)user_data; + + QString iapId(key); + iapId = iapId.split("/")[0]; + if (value != 0) { + priv->iapAdded(iapId); + } else if (iapId == QString(key)) { + // IAP is removed only when the directory gets removed + priv->iapRemoved(iapId); + } +} + +IAPMonitor::IAPMonitor() + : d_ptr(new IAPMonitorPrivate(this)) +{ +} + +IAPMonitor::~IAPMonitor() +{ + delete d_ptr; +} + +void IAPMonitor::iapAdded(const QString &id) +{ + // By default do nothing +} + +void IAPMonitor::iapRemoved(const QString &id) +{ + // By default do nothing +} + +} // namespace Maemo diff --git a/src/3rdparty/libconninet/src/iapmonitor.h b/src/3rdparty/libconninet/src/iapmonitor.h new file mode 100644 index 0000000..558f23e --- /dev/null +++ b/src/3rdparty/libconninet/src/iapmonitor.h @@ -0,0 +1,48 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#ifndef IAPMONITOR_H +#define IAPMONITOR_H + +#include + +namespace Maemo { + +class IAPMonitorPrivate; +class IAPMonitor { +public: + IAPMonitor(); + ~IAPMonitor(); + +protected: + virtual void iapAdded(const QString &id); + virtual void iapRemoved(const QString &id); + +private: + IAPMonitorPrivate *d_ptr; + Q_DECLARE_PRIVATE(IAPMonitor); +}; + +} // namespace Maemo + +#endif // IAPMONITOR_H + diff --git a/src/3rdparty/libconninet/src/maemo_icd.cpp b/src/3rdparty/libconninet/src/maemo_icd.cpp new file mode 100644 index 0000000..026241c --- /dev/null +++ b/src/3rdparty/libconninet/src/maemo_icd.cpp @@ -0,0 +1,1316 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#include +#include "maemo_icd.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +namespace Maemo { + +#undef PRINT_DEBUGINFO +#ifdef PRINT_DEBUGINFO + static FILE *fdebug = NULL; +#define PDEBUG(fmt, args...) \ + do { \ + struct timeval tv; \ + gettimeofday(&tv, 0); \ + fprintf(fdebug, "DEBUG[%d]:%ld.%ld:%s:%s():%d: " fmt, \ + getpid(), \ + tv.tv_sec, tv.tv_usec, \ + __FILE__, __FUNCTION__, __LINE__, args); \ + fflush(fdebug); \ + } while(0) +#else +#define PDEBUG(fmt...) +#endif + + +/* Reference counting singleton class that creates a single connection + * to icd so that icd reference counting works as expected. This is + * needed because DBusDispatcher uses private dbus connections + * which come and go and icd cannot use that information to + * determine whether application quit or not. So we create one + * persistent connection that is only teared down when application + * quits or calls disconnect() + */ +class IcdRefCounting +{ +public: + IcdRefCounting() : first_call(true) { } + void setup(enum icd_connection_flags flag); + void cleanup(); + +private: + bool first_call; + struct DBusConnection *connection; +}; + +Q_GLOBAL_STATIC(IcdRefCounting, icdRefCounting); + + +void IcdRefCounting::setup(enum icd_connection_flags flag) +{ + if (first_call) { + DBusMessage *msg = NULL; + + connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, NULL); + dbus_connection_set_exit_on_disconnect(connection, FALSE); + dbus_connection_setup_with_g_main(connection, NULL); + + msg = dbus_message_new_method_call(ICD_DBUS_API_INTERFACE, + ICD_DBUS_API_PATH, + ICD_DBUS_API_INTERFACE, + ICD_DBUS_API_CONNECT_REQ); + if (msg == NULL) + goto out; + + if (!dbus_message_append_args(msg, + DBUS_TYPE_UINT32, &flag, + DBUS_TYPE_INVALID)) + goto out; + + if (!dbus_connection_send_with_reply(connection, msg, + NULL, 60*1000)) + goto out; + + first_call = false; + return; + + out: + dbus_connection_close(connection); + dbus_connection_unref(connection); + } +} + +void IcdRefCounting::cleanup() +{ + if (!first_call) { + dbus_connection_close(connection); + dbus_connection_unref(connection); + first_call = true; + } +} + + +class IcdPrivate +{ +public: + IcdPrivate(Icd *myfriend) + { + init(10000, IcdNewDbusInterface, myfriend); + } + + IcdPrivate(unsigned int timeout, Icd *myfriend) + { + init(timeout, IcdNewDbusInterface, myfriend); + } + + IcdPrivate(unsigned int timeout, IcdDbusInterfaceVer ver, Icd *myfriend) + { + /* Note that the old Icd interface is currently disabled and + * the new one is always used. + */ + init(timeout, IcdNewDbusInterface, myfriend); + } + + ~IcdPrivate() + { + QObject::disconnect(mDBus, + SIGNAL(signalReceived(const QString&, + const QString&, + const QList&)), + icd, + SLOT(icdSignalReceived(const QString&, + const QString&, + const QList&))); + + QObject::disconnect(mDBus, + SIGNAL(callReply(const QString&, + const QList&, + const QString&)), + icd, + SLOT(icdCallReply(const QString&, + const QList&, + const QString&))); + + delete mDBus; + mDBus = 0; + } + + /* Icd2 dbus API functions */ + QStringList scan(icd_scan_request_flags flags, + QStringList &network_types, + QList& scan_results, + QString& error); + void scanCancel(); + bool connect(icd_connection_flags flags, IcdConnectResult& result); + bool connect(icd_connection_flags flags, QList& params, + IcdConnectResult& result); + bool connect(icd_connection_flags flags, QString& iap, QString& result); + void select(uint flags); + void disconnect(uint connect_flags, QString& service_type, + uint service_attrs, QString& service_id, + QString& network_type, uint network_attrs, + QByteArray& network_id); + void disconnect(uint connect_flags); + + uint state(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStateResult &state_result); + uint statistics(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStatisticsResult& stats_result); + uint addrinfo(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdAddressInfoResult& addr_result); + + uint state(QList& state_results); + uint state_non_blocking(QList& state_results); + uint statistics(QList& stats_results); + uint addrinfo(QList& addr_results); + uint addrinfo_non_blocking(QList& addr_results); + + void signalReceived(const QString& interface, + const QString& signal, + const QList& args); + void callReply(const QString& method, + const QList& args, + const QString& error); + + QString error() { return mError; } + +public: + DBusDispatcher *mDBus; + QString mMethod; + QString mInterface; + QString mSignal; + QString mError; + QList mArgs; + QList receivedSignals; + unsigned int timeout; + IcdDbusInterfaceVer icd_dbus_version; + Icd *icd; + + void init(unsigned int dbus_timeout, IcdDbusInterfaceVer ver, + Icd *myfriend) + { + if (ver == IcdNewDbusInterface) { + mDBus = new DBusDispatcher(ICD_DBUS_API_INTERFACE, + ICD_DBUS_API_PATH, + ICD_DBUS_API_INTERFACE); + } else { + mDBus = new DBusDispatcher(ICD_DBUS_SERVICE, + ICD_DBUS_PATH, + ICD_DBUS_INTERFACE); + } + icd_dbus_version = ver; + + /* This connect has a side effect as it means that only one + * Icd object can exists in one time. This should be fixed! + */ + QObject::connect(mDBus, + SIGNAL(signalReceived(const QString&, + const QString&, + const QList&)), + myfriend, + SLOT(icdSignalReceived(const QString&, + const QString&, + const QList&))); + + QObject::connect(mDBus, + SIGNAL(callReply(const QString&, + const QList&, + const QString&)), + myfriend, + SLOT(icdCallReply(const QString&, + const QList&, + const QString&))); + + icd = myfriend; + timeout = dbus_timeout; + +#ifdef PRINT_DEBUGINFO + if (!fdebug) { + fdebug = fopen("/tmp/maemoicd.log", "a+"); + } + PDEBUG("created %s\n", "IcdPrivate"); +#endif + } + + void clearState() + { + mMethod.clear(); + mInterface.clear(); + mSignal.clear(); + mError.clear(); + mArgs.clear(); + receivedSignals.clear(); + } + + bool doConnect(IcdConnectResult& result); + bool doConnect(QString& result); + bool doState(); +}; + + +void IcdPrivate::signalReceived(const QString& interface, + const QString& signal, + const QList& args) +{ + // Signal handler, which simply records what has been signalled + mInterface = interface; + mSignal = signal; + mArgs = args; + + //qDebug() << "signal" << signal << "received:" << args; + receivedSignals << QVariant(interface) << QVariant(signal) << QVariant(args); +} + + +void IcdPrivate::callReply(const QString& method, + const QList& /*args*/, + const QString& error) +{ + mMethod = method; + mError = error; +} + + +static void get_scan_result(QList& args, + IcdScanResult& ret) +{ + int i=0; + + if (args.isEmpty()) + return; + + ret.status = args[i++].toUInt(); + ret.timestamp = args[i++].toUInt(); + ret.scan.service_type = args[i++].toString(); + ret.service_name = args[i++].toString(); + ret.scan.service_attrs = args[i++].toUInt(); + ret.scan.service_id = args[i++].toString(); + ret.service_priority = args[i++].toInt(); + ret.scan.network_type = args[i++].toString(); + ret.network_name = args[i++].toString(); + ret.scan.network_attrs = args[i++].toUInt(); + ret.scan.network_id = args[i++].toByteArray(); + ret.network_priority = args[i++].toInt(); + ret.signal_strength = args[i++].toInt(); + ret.station_id = args[i++].toString(); + ret.signal_dB = args[i++].toInt(); +} + + +static void get_connect_result(QList& args, + IcdConnectResult& ret) +{ + int i=0; + + if (args.isEmpty()) + return; + + ret.connect.service_type = args[i++].toString(); + ret.connect.service_attrs = args[i++].toInt(); + ret.connect.service_id = args[i++].toString(); + ret.connect.network_type = args[i++].toString(); + ret.connect.network_attrs = args[i++].toInt(); + ret.connect.network_id = args[i++].toByteArray(); + ret.status = args[i++].toInt(); +} + + +QStringList IcdPrivate::scan(icd_scan_request_flags flags, + QStringList &network_types, + QList& scan_results, + QString& error) +{ + QStringList scanned_types; + QTimer timer; + QVariant reply; + QVariantList vl; + bool last_result = false; + IcdScanResult result; + int all_waited; + + clearState(); + reply = mDBus->call(ICD_DBUS_API_SCAN_REQ, (uint)flags); + if (reply.type() != QVariant::List) + return scanned_types; + vl = reply.toList(); + if (vl.isEmpty()) { + error = "Scan did not return anything."; + return scanned_types; + } + reply = vl.first(); + scanned_types = reply.toStringList(); + //qDebug() << "Scanning:" << scanned_types; + all_waited = scanned_types.size(); + + timer.setSingleShot(true); + timer.start(timeout); + + scan_results.clear(); + while (!last_result) { + while (timer.isActive() && mInterface.isEmpty() && mError.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + } + + if (!timer.isActive()) { + //qDebug() << "Timeout happened"; + break; + } + + if (mSignal != ICD_DBUS_API_SCAN_SIG) { + //qDebug() << "Received" << mSignal << "while waiting" << ICD_DBUS_API_SCAN_SIG << ", ignoring"; + mInterface.clear(); + continue; + } + + if (mError.isEmpty()) { + QString msgInterface = receivedSignals.takeFirst().toString(); + QString msgSignal = receivedSignals.takeFirst().toString(); + QList msgArgs = receivedSignals.takeFirst().toList(); + //qDebug() << "Signal" << msgSignal << "received."; + //qDebug() << "Params:" << msgArgs; + + while (!msgSignal.isEmpty()) { + get_scan_result(msgArgs, result); + +#if 0 + qDebug() << "Received: " << + "status =" << result.status << + ", timestamp =" << result.timestamp << + ", service_type =" << result.scan.service_type << + ", service_name =" << result.service_name << + ", service_attrs =" << result.scan.service_attrs << + ", service_id =" << result.scan.service_id << + ", service_priority =" << result.service_priority << + ", network_type =" << result.scan.network_type << + ", network_name =" << result.network_name << + ", network_attrs =" << result.scan.network_attrs << + ", network_id =" << "-" << + ", network_priority =" << result.network_priority << + ", signal_strength =" << result.signal_strength << + ", station_id =" << result.station_id << + ", signal_dB =" << result.signal_dB; +#endif + + if (result.status == ICD_SCAN_COMPLETE) { + //qDebug() << "waited =" << all_waited; + if (--all_waited == 0) { + last_result = true; + break; + } + } else + scan_results << result; + + if (receivedSignals.isEmpty()) + break; + + msgInterface = receivedSignals.takeFirst().toString(); + msgSignal = receivedSignals.takeFirst().toString(); + msgArgs = receivedSignals.takeFirst().toList(); + } + mInterface.clear(); + + } else { + qWarning() << "Error while scanning:" << mError; + break; + } + } + timer.stop(); + + error = mError; + return scanned_types; +} + + +void IcdPrivate::scanCancel() +{ + mDBus->call(ICD_DBUS_API_SCAN_CANCEL); +} + + +bool IcdPrivate::doConnect(IcdConnectResult& result) +{ + QTimer timer; + bool status = false; + + timer.setSingleShot(true); + timer.start(timeout); + + //qDebug() << "Waiting" << ICD_DBUS_API_CONNECT_SIG << "signal"; + + while (timer.isActive() && mInterface.isEmpty() && + mSignal != ICD_DBUS_API_CONNECT_SIG && + mError.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + } + + timer.stop(); + + if (mError.isEmpty()) { + if (!mArgs.isEmpty()) { + get_connect_result(mArgs, result); + status = true; + } else + status = false; + } else + status = false; + + return status; +} + + +bool IcdPrivate::connect(icd_connection_flags flags, IcdConnectResult& result) +{ + clearState(); + //mDBus->callAsynchronous(ICD_DBUS_API_CONNECT_REQ, (uint)flags); + mDBus->call(ICD_DBUS_API_CONNECT_REQ, (uint)flags); + icdRefCounting()->setup(flags); + return doConnect(result); +} + + +bool IcdPrivate::connect(icd_connection_flags flags, QList& params, + IcdConnectResult& result) +{ + QVariantList varlist; + QVariantList varlist2; + + foreach (ConnectParams param, params) { + QVariantList items; + + items.append(QVariant(param.connect.service_type)); + items.append(QVariant(param.connect.service_attrs)); + items.append(QVariant(param.connect.service_id)); + items.append(QVariant(param.connect.network_type)); + items.append(QVariant(param.connect.network_attrs)); + items.append(QVariant(param.connect.network_id)); + + varlist.append(items); + } + + varlist2.append(QVariant(varlist)); + + clearState(); + //mDBus->callAsynchronous(ICD_DBUS_API_CONNECT_REQ, (uint)flags, varlist2); + mDBus->call(ICD_DBUS_API_CONNECT_REQ, (uint)flags, varlist2); + icdRefCounting()->setup(flags); + return doConnect(result); +} + + +bool IcdPrivate::doConnect(QString& ret) +{ + QTimer timer; + bool status = false; + + timer.setSingleShot(true); + timer.start(timeout); + + while (timer.isActive() && mInterface.isEmpty() && + mError.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + } + + timer.stop(); + + if (mError.isEmpty()) { + if (!mArgs.isEmpty()) { + status = true; + //ret = mArgs[0]; // TODO correctly + } else + status = false; + } else + status = false; + + return status; +} + + +bool IcdPrivate::connect(icd_connection_flags flags, QString& iap, QString& result) +{ + clearState(); + //mDBus->callAsynchronous(ICD_CONNECT_REQ, iap, (uint)flags); + mDBus->call(ICD_CONNECT_REQ, iap, (uint)flags); + icdRefCounting()->setup(flags); + return doConnect(result); +} + + +void IcdPrivate::select(uint flags) +{ + mDBus->call(ICD_DBUS_API_SELECT_REQ, flags); +} + + +void IcdPrivate::disconnect(uint flags, QString& service_type, + uint service_attrs, QString& service_id, + QString& network_type, uint network_attrs, + QByteArray& network_id) +{ + clearState(); + mDBus->call(ICD_DBUS_API_DISCONNECT_REQ, flags, + service_type, service_attrs, service_id, + network_type, network_attrs, network_id); + icdRefCounting()->cleanup(); +} + + +void IcdPrivate::disconnect(uint flags) +{ + clearState(); + mDBus->call(ICD_DBUS_API_DISCONNECT_REQ, flags); + icdRefCounting()->cleanup(); +} + + +static void get_state_all_result(QList& args, + IcdStateResult& ret) +{ + int i=0; + + ret.params.service_type = args[i++].toString(); + ret.params.service_attrs = args[i++].toUInt(); + ret.params.service_id = args[i++].toString(); + ret.params.network_type = args[i++].toString(); + ret.params.network_attrs = args[i++].toUInt(); + ret.params.network_id = args[i++].toByteArray(); + ret.error = args[i++].toString(); + ret.state = args[i++].toInt(); +} + + +static void get_state_all_result2(QList& args, + IcdStateResult& ret) +{ + int i=0; + + ret.params.network_type = args[i++].toString(); + ret.state = args[i++].toInt(); + + // Initialize the other values so that the caller can + // notice we only returned partial status + ret.params.service_type = QString(); + ret.params.service_attrs = 0; + ret.params.service_id = QString(); + ret.params.network_attrs = 0; + ret.params.network_id = QByteArray(); + ret.error = QString(); +} + + +uint IcdPrivate::state(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStateResult& state_result) +{ + QTimer timer; + QVariant reply; + uint total_signals; + QVariantList vl; + + clearState(); + + reply = mDBus->call(ICD_DBUS_API_STATE_REQ, + service_type, service_attrs, service_id, + network_type, network_attrs, network_id); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + total_signals = reply.toUInt(); + if (!total_signals) + return 0; + + timer.setSingleShot(true); + timer.start(timeout); + + mInterface.clear(); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + + if (mSignal != ICD_DBUS_API_STATE_SIG) { + mInterface.clear(); + continue; + } + } + + timer.stop(); + + if (mError.isEmpty()) { + if (!mArgs.isEmpty()) { + if (mArgs.size()>2) + get_state_all_result(mArgs, state_result); + else { + // We are not connected as we did not get the status we asked + return 0; + } + } + } else { + qWarning() << "Error:" << mError; + } + + // The returned value should be one because we asked for one state + return total_signals; +} + + +uint IcdPrivate::state_non_blocking(QList& state_results) +{ + QTimer timer; + QVariant reply; + QVariantList vl; + uint signals_left, total_signals; + IcdStateResult result; + + PDEBUG("%s\n", "non blocking state"); + + clearState(); + reply = mDBus->call(ICD_DBUS_API_STATE_REQ); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + signals_left = total_signals = reply.toUInt(); + if (!signals_left) + return 0; + + timer.setSingleShot(true); + timer.start(timeout); + state_results.clear(); + mError.clear(); + while (signals_left) { + mInterface.clear(); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + } + + if (!timer.isActive()) { + total_signals = 0; + break; + } + + if (mSignal != ICD_DBUS_API_STATE_SIG) { + continue; + } + + if (mError.isEmpty()) { + if (!mArgs.isEmpty()) { + if (mArgs.size()==2) + get_state_all_result2(mArgs, result); + else + get_state_all_result(mArgs, result); + state_results << result; + } + signals_left--; + } else { + qWarning() << "Error:" << mError; + break; + } + } + timer.stop(); + + PDEBUG("total_signals=%d\n", total_signals); + return total_signals; +} + + +/* Special version of the state() call which does not call event loop. + * Needed in order to fix NB#175098 where Qt4.7 webkit crashes because event + * loop is run when webkit does not expect it. This function is called from + * bearer management API syncStateWithInterface() in QNetworkSession + * constructor. + */ +uint IcdPrivate::state(QList& state_results) +{ + QVariant reply; + QVariantList vl; + uint signals_left, total_signals; + IcdStateResult result; + time_t started; + int timeout_secs = timeout / 1000; + + PDEBUG("%s\n", "state_results"); + + clearState(); + reply = mDBus->call(ICD_DBUS_API_STATE_REQ); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + signals_left = total_signals = reply.toUInt(); + if (!signals_left) + return 0; + + started = time(0); + state_results.clear(); + mError.clear(); + while (signals_left) { + mInterface.clear(); + while ((time(0)<=(started+timeout_secs)) && mInterface.isEmpty()) { + mDBus->synchronousDispatch(1000); + } + + if (time(0)>(started+timeout_secs)) { + total_signals = 0; + break; + } + + if (mSignal != ICD_DBUS_API_STATE_SIG) { + continue; + } + + if (mError.isEmpty()) { + if (!mArgs.isEmpty()) { + if (mArgs.size()==2) + get_state_all_result2(mArgs, result); + else + get_state_all_result(mArgs, result); + state_results << result; + } + signals_left--; + } else { + qWarning() << "Error:" << mError; + break; + } + } + + PDEBUG("total_signals=%d\n", total_signals); + return total_signals; +} + + +static void get_statistics_all_result(QList& args, + IcdStatisticsResult& ret) +{ + int i=0; + + if (args.isEmpty()) + return; + + ret.params.service_type = args[i++].toString(); + ret.params.service_attrs = args[i++].toUInt(); + ret.params.service_id = args[i++].toString(); + ret.params.network_type = args[i++].toString(); + ret.params.network_attrs = args[i++].toUInt(); + ret.params.network_id = args[i++].toByteArray(); + ret.time_active = args[i++].toUInt(); + ret.signal_strength = (enum icd_nw_levels)args[i++].toUInt(); + ret.bytes_sent = args[i++].toUInt(); + ret.bytes_received = args[i++].toUInt(); +} + + +uint IcdPrivate::statistics(QList& stats_results) +{ + QTimer timer; + QVariant reply; + QVariantList vl; + uint signals_left, total_signals; + IcdStatisticsResult result; + + clearState(); + reply = mDBus->call(ICD_DBUS_API_STATISTICS_REQ); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + if (reply.type() != QVariant::UInt) + return 0; + signals_left = total_signals = reply.toUInt(); + + if (!signals_left) + return 0; + + timer.setSingleShot(true); + timer.start(timeout); + stats_results.clear(); + while (signals_left) { + mInterface.clear(); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + } + + if (!timer.isActive()) { + total_signals = 0; + break; + } + + if (mSignal != ICD_DBUS_API_STATISTICS_SIG) { + continue; + } + + if (mError.isEmpty()) { + get_statistics_all_result(mArgs, result); + stats_results << result; + signals_left--; + } else { + qWarning() << "Error:" << mError; + break; + } + } + timer.stop(); + + return total_signals; +} + + +uint IcdPrivate::statistics(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStatisticsResult& stats_result) +{ + QTimer timer; + QVariant reply; + uint total_signals; + QVariantList vl; + + clearState(); + + reply = mDBus->call(ICD_DBUS_API_STATISTICS_REQ, + service_type, service_attrs, service_id, + network_type, network_attrs, network_id); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + total_signals = reply.toUInt(); + if (!total_signals) + return 0; + + timer.setSingleShot(true); + timer.start(timeout); + + mInterface.clear(); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + + if (mSignal != ICD_DBUS_API_STATISTICS_SIG) { + mInterface.clear(); + continue; + } + } + + timer.stop(); + + if (mError.isEmpty()) { + get_statistics_all_result(mArgs, stats_result); + } else { + qWarning() << "Error:" << mError; + } + + // The returned value should be one because we asked for one statistics + return total_signals; +} + + +static void get_addrinfo_all_result(QList& args, + IcdAddressInfoResult& ret) +{ + int i=0; + + if (args.isEmpty()) + return; + + ret.params.service_type = args[i++].toString(); + ret.params.service_attrs = args[i++].toUInt(); + ret.params.service_id = args[i++].toString(); + ret.params.network_type = args[i++].toString(); + ret.params.network_attrs = args[i++].toUInt(); + ret.params.network_id = args[i++].toByteArray(); + + QVariantList vl = args[i].toList(); + QVariant reply = vl.first(); + QList lst = reply.toList(); + for (int k=0; k& addr_results) +{ + QVariant reply; + QVariantList vl; + uint signals_left, total_signals; + IcdAddressInfoResult result; + time_t started; + int timeout_secs = timeout / 1000; + + PDEBUG("%s\n", "addr_results"); + + clearState(); + reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + if (reply.type() != QVariant::UInt) + return 0; + signals_left = total_signals = reply.toUInt(); + if (!signals_left) + return 0; + + started = time(0); + addr_results.clear(); + while (signals_left) { + mInterface.clear(); + while ((time(0)<=(started+timeout_secs)) && mInterface.isEmpty()) { + mDBus->synchronousDispatch(1000); + } + + if (time(0)>(started+timeout_secs)) { + total_signals = 0; + break; + } + + if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) { + continue; + } + + if (mError.isEmpty()) { + get_addrinfo_all_result(mArgs, result); + addr_results << result; + signals_left--; + } else { + qWarning() << "Error:" << mError; + break; + } + } + + PDEBUG("total_signals=%d\n", total_signals); + return total_signals; +} + +uint IcdPrivate::addrinfo_non_blocking(QList& addr_results) +{ + QTimer timer; + QVariant reply; + QVariantList vl; + uint signals_left, total_signals; + IcdAddressInfoResult result; + + PDEBUG("%s\n", "non blocking addrinfo"); + + clearState(); + reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + if (reply.type() != QVariant::UInt) + return 0; + signals_left = total_signals = reply.toUInt(); + if (!signals_left) + return 0; + + timer.setSingleShot(true); + timer.start(timeout); + addr_results.clear(); + while (signals_left) { + mInterface.clear(); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + } + + if (!timer.isActive()) { + total_signals = 0; + break; + } + + if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) { + continue; + } + + if (mError.isEmpty()) { + get_addrinfo_all_result(mArgs, result); + addr_results << result; + signals_left--; + } else { + qWarning() << "Error:" << mError; + break; + } + } + timer.stop(); + PDEBUG("total_signals=%d\n", total_signals); + return total_signals; +} + + +uint IcdPrivate::addrinfo(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdAddressInfoResult& addr_result) +{ + QTimer timer; + QVariant reply; + uint total_signals; + QVariantList vl; + + clearState(); + + reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ, + service_type, service_attrs, service_id, + network_type, network_attrs, network_id); + if (reply.type() != QVariant::List) + return 0; + vl = reply.toList(); + if (vl.isEmpty()) + return 0; + reply = vl.first(); + total_signals = reply.toUInt(); + + if (!total_signals) + return 0; + + timer.setSingleShot(true); + timer.start(timeout); + + mInterface.clear(); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + + if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) { + mInterface.clear(); + continue; + } + } + + timer.stop(); + + if (mError.isEmpty()) { + get_addrinfo_all_result(mArgs, addr_result); + } else { + qWarning() << "Error:" << mError; + } + + // The returned value should be one because we asked for one addrinfo + return total_signals; +} + + +Icd::Icd(QObject *parent) + : QObject(parent), d(new IcdPrivate(this)) +{ +} + +Icd::Icd(unsigned int timeout, QObject *parent) + : QObject(parent), d(new IcdPrivate(timeout, this)) +{ +} + +Icd::Icd(unsigned int timeout, IcdDbusInterfaceVer ver, QObject *parent) + : QObject(parent), d(new IcdPrivate(timeout, ver, this)) +{ +} + +Icd::~Icd() +{ + delete d; +} + + +QStringList Icd::scan(icd_scan_request_flags flags, + QStringList &network_types, + QList& scan_results, + QString& error) +{ + return d->scan(flags, network_types, scan_results, error); +} + + +void Icd::scanCancel() +{ + d->scanCancel(); +} + + +bool Icd::connect(icd_connection_flags flags, IcdConnectResult& result) +{ + return d->connect(flags, result); +} + + +bool Icd::connect(icd_connection_flags flags, QList& params, + IcdConnectResult& result) +{ + return d->connect(flags, params, result); +} + + +bool Icd::connect(icd_connection_flags flags, QString& iap, QString& result) +{ + return d->connect(flags, iap, result); +} + + +void Icd::select(uint flags) +{ + d->select(flags); +} + + +void Icd::disconnect(uint connect_flags, QString& service_type, + uint service_attrs, QString& service_id, + QString& network_type, uint network_attrs, + QByteArray& network_id) +{ + d->disconnect(connect_flags, service_type, + service_attrs, service_id, + network_type, network_attrs, + network_id); +} + + +void Icd::disconnect(uint connect_flags) +{ + d->disconnect(connect_flags); +} + + +uint Icd::state(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStateResult &state_result) +{ + return d->state(service_type, service_attrs, service_id, + network_type, network_attrs, network_id, + state_result); +} + + +uint Icd::statistics(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStatisticsResult& stats_result) +{ + return d->statistics(service_type, service_attrs, service_id, + network_type, network_attrs, network_id, + stats_result); +} + + +uint Icd::addrinfo(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdAddressInfoResult& addr_result) +{ + return d->addrinfo(service_type, service_attrs, service_id, + network_type, network_attrs, network_id, + addr_result); +} + + +uint Icd::state(QList& state_results) +{ + return d->state(state_results); +} + +uint Icd::state_non_blocking(QList& state_results) +{ + return d->state_non_blocking(state_results); +} + +uint Icd::statistics(QList& stats_results) +{ + return d->statistics(stats_results); +} + + +uint Icd::addrinfo(QList& addr_results) +{ + return d->addrinfo(addr_results); +} + +uint Icd::addrinfo_non_blocking(QList& addr_results) +{ + return d->addrinfo_non_blocking(addr_results); +} + +void Icd::icdSignalReceived(const QString& interface, + const QString& signal, + const QList& args) +{ + d->signalReceived(interface, signal, args); +} + + +void Icd::icdCallReply(const QString& method, + const QList& args, + const QString& error) +{ + d->callReply(method, args, error); +} + + +QString Icd::error() +{ + return d->error(); +} + +} // Maemo namespace + + diff --git a/src/3rdparty/libconninet/src/maemo_icd.h b/src/3rdparty/libconninet/src/maemo_icd.h new file mode 100644 index 0000000..d7a8d5b --- /dev/null +++ b/src/3rdparty/libconninet/src/maemo_icd.h @@ -0,0 +1,182 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#ifndef MAEMO_ICD_H +#define MAEMO_ICD_H + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "dbusdispatcher.h" +#include + +#define ICD_LONG_SCAN_TIMEOUT (30*1000) /* 30sec */ +#define ICD_SHORT_SCAN_TIMEOUT (10*1000) /* 10sec */ +#define ICD_SHORT_CONNECT_TIMEOUT (10*1000) /* 10sec */ +#define ICD_LONG_CONNECT_TIMEOUT (150*1000) /* 2.5min */ + +namespace Maemo { + +struct CommonParams { + QString service_type; + uint service_attrs; + QString service_id; + QString network_type; + uint network_attrs; + QByteArray network_id; +}; + +struct ConnectParams { + struct CommonParams connect; +}; + +struct IcdScanResult { + uint status; // see #icd_scan_status + uint timestamp; // when last seen + QString service_name; + uint service_priority; // within a service type + QString network_name; + uint network_priority; + struct CommonParams scan; + uint signal_strength; // quality, 0 (none) - 10 (good) + QString station_id; // e.g. MAC address or similar id + uint signal_dB; // use signal strength above unless you know what you are doing + + IcdScanResult() { + status = timestamp = scan.service_attrs = service_priority = + scan.network_attrs = network_priority = signal_strength = + signal_dB = 0; + } +}; + +struct IcdConnectResult { + struct CommonParams connect; + uint status; +}; + +struct IcdStateResult { + struct CommonParams params; + QString error; + uint state; +}; + +struct IcdStatisticsResult { + struct CommonParams params; + uint time_active; // in seconds + enum icd_nw_levels signal_strength; // see network_api_defines.h in icd2-dev package + uint bytes_sent; + uint bytes_received; +}; + +struct IcdIPInformation { + QString address; + QString netmask; + QString default_gateway; + QString dns1; + QString dns2; + QString dns3; +}; + +struct IcdAddressInfoResult { + struct CommonParams params; + QList ip_info; +}; + +enum IcdDbusInterfaceVer { + IcdOldDbusInterface = 0, // use the old OSSO-IC interface + IcdNewDbusInterface // use the new Icd2 interface (default) +}; + + +class IcdPrivate; +class Icd : public QObject +{ + Q_OBJECT + +public: + Icd(QObject *parent = 0); + Icd(unsigned int timeout, QObject *parent = 0); + Icd(unsigned int timeout, IcdDbusInterfaceVer ver, QObject *parent = 0); + ~Icd(); + QString error(); // returns last error string + + /* Icd2 dbus API functions */ + QStringList scan(icd_scan_request_flags flags, + QStringList &network_types, + QList& scan_results, + QString& error); + void scanCancel(); + bool connect(icd_connection_flags flags, IcdConnectResult& result); + bool connect(icd_connection_flags flags, QList& params, + IcdConnectResult& result); + bool connect(icd_connection_flags flags, QString& iap, QString& result); + void select(uint flags); + void disconnect(uint connect_flags, QString& service_type, + uint service_attrs, QString& service_id, + QString& network_type, uint network_attrs, + QByteArray& network_id); + void disconnect(uint connect_flags); + + uint state(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStateResult &state_result); + uint statistics(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdStatisticsResult& stats_result); + uint addrinfo(QString& service_type, uint service_attrs, + QString& service_id, QString& network_type, + uint network_attrs, QByteArray& network_id, + IcdAddressInfoResult& addr_result); + + uint state(QList& state_results); + uint state_non_blocking(QList& state_results); + uint statistics(QList& stats_results); + uint addrinfo(QList& addr_results); + uint addrinfo_non_blocking(QList& addr_results); + +private Q_SLOTS: + void icdSignalReceived(const QString& interface, + const QString& signal, + const QList& args); + void icdCallReply(const QString& method, + const QList& args, + const QString& error); + +private: + IcdPrivate *d; + friend class IcdPrivate; +}; + +} // Maemo namespace + +#endif diff --git a/src/3rdparty/libconninet/src/proxyconf.cpp b/src/3rdparty/libconninet/src/proxyconf.cpp new file mode 100644 index 0000000..5b27565 --- /dev/null +++ b/src/3rdparty/libconninet/src/proxyconf.cpp @@ -0,0 +1,315 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2010 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#include +#include +#include +#include +#include +#include +#include "proxyconf.h" + +#define CONF_PROXY "/system/proxy" +#define HTTP_PROXY "/system/http_proxy" + + +namespace Maemo { + +class NetworkProxyFactory : QNetworkProxyFactory { +public: + NetworkProxyFactory() { } + QList queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()); +}; + + +QList NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query) +{ + ProxyConf proxy_conf; + + QList result = proxy_conf.flush(query); + if (result.isEmpty()) + result << QNetworkProxy::NoProxy; + + return result; +} + + +class ProxyConfPrivate { +private: + // proxy values from gconf + QString mode; + bool use_http_host; + QString autoconfig_url; + QString http_proxy; + quint16 http_port; + QList ignore_hosts; + QString secure_host; + quint16 secure_port; + QString ftp_host; + quint16 ftp_port; + QString socks_host; + quint16 socks_port; + QString rtsp_host; + quint16 rtsp_port; + + QVariant getValue(QString& name); + QVariant getHttpValue(QString& name); + QVariant getValue(const char *name); + QVariant getHttpValue(const char *name); + bool isHostExcluded(const QString &host); + +public: + QString prefix; + QString http_prefix; + + void readProxyData(); + QList flush(const QNetworkProxyQuery &query); +}; + + +QVariant ProxyConfPrivate::getValue(QString& name) +{ + GConfItem item(prefix + name); + return item.value(); +} + +QVariant ProxyConfPrivate::getHttpValue(QString& name) +{ + GConfItem item(http_prefix + name); + return item.value(); +} + + +QVariant ProxyConfPrivate::getValue(const char *name) +{ + QString n = QString(name); + return getValue(n); +} + +QVariant ProxyConfPrivate::getHttpValue(const char *name) +{ + QString n = QString(name); + return getHttpValue(n); +} + + +#define GET(var, type) \ + do { \ + var = getValue(#var).to##type (); \ + /*qDebug()<<"var="<prefix = CONF_PROXY "/"; + d_ptr->http_prefix = HTTP_PROXY "/"; +} + +ProxyConf::~ProxyConf() +{ + delete d_ptr; +} + + +QList ProxyConf::flush(const QNetworkProxyQuery &query) +{ + d_ptr->readProxyData(); + return d_ptr->flush(query); +} + + +static int refcount = 0; +static QReadWriteLock lock; + +void ProxyConf::update() +{ + QWriteLocker locker(&lock); + NetworkProxyFactory *factory = new NetworkProxyFactory(); + QNetworkProxyFactory::setApplicationProxyFactory((QNetworkProxyFactory*)factory); + refcount++; +} + + +void ProxyConf::clear(void) +{ + QWriteLocker locker(&lock); + refcount--; + if (refcount == 0) + QNetworkProxyFactory::setApplicationProxyFactory(NULL); + + if (refcount<0) + refcount = 0; +} + + +} // namespace Maemo diff --git a/src/3rdparty/libconninet/src/proxyconf.h b/src/3rdparty/libconninet/src/proxyconf.h new file mode 100644 index 0000000..7711c49 --- /dev/null +++ b/src/3rdparty/libconninet/src/proxyconf.h @@ -0,0 +1,53 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2010 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + +#ifndef PROXYCONF_H +#define PROXYCONF_H + +#include +#include + +namespace Maemo { + +class ProxyConfPrivate; +class ProxyConf { +private: + ProxyConfPrivate *d_ptr; + +public: + ProxyConf(); + virtual ~ProxyConf(); + + QList flush(const QNetworkProxyQuery &query = QNetworkProxyQuery()); // read the proxies from db + + /* Note that for each update() call there should be corresponding + * clear() call because the ProxyConf class implements a reference + * counting mechanism. The factory is removed only when there is + * no one using the factory any more. + */ + static void update(void); // this builds QNetworkProxy factory + static void clear(void); // this removes QNetworkProxy factory +}; + +} // namespace Maemo + +#endif diff --git a/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp b/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp new file mode 100644 index 0000000..70deb3f --- /dev/null +++ b/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp @@ -0,0 +1,191 @@ +/* * This file is part of conn-dui-settings-inet * + * + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * + * Contact: Aapo Makela + * + * This software, including documentation, is protected by copyright + * controlled by Nokia Corporation. All rights are reserved. Copying, + * including reproducing, storing, adapting or translating, any or all of + * this material requires the prior written consent of Nokia Corporation. + * This material also contains confidential information which may not be + * disclosed to others without the prior written consent of Nokia. + */ + +#include +#include +#include +#include +#include + +#include + +class Ut_DBusDispatcher : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void init(); + void cleanup(); + void initTestCase(); + void cleanupTestCase(); + + void simpleSignalReceived(const QString& interface, + const QString& signal, + const QList& args); + void simpleCallReply(const QString& method, + const QList& args, + const QString& error); + void simpleCall(); + + void complexCallReply(const QString& method, + const QList& args, + const QString& error); + void complexCall(); + +private: + Maemo::DBusDispatcher *mSubject; + QProcess *icd_stub; + + QString mMethod; + QString mInterface; + QString mSignal; + QList mArgs; +}; + +void Ut_DBusDispatcher::init() +{ + mSubject = new Maemo::DBusDispatcher("com.nokia.icd2", "/com/nokia/icd2", + "com.nokia.icd2"); + + // Start icd2 stub + icd_stub = new QProcess(this); + icd_stub->start("/usr/bin/icd2_stub.py"); + QTest::qWait(1000); +} + +void Ut_DBusDispatcher::cleanup() +{ + // Terminate icd2 stub + icd_stub->terminate(); + icd_stub->waitForFinished(); + + delete mSubject; + mSubject = 0; +} + +void Ut_DBusDispatcher::initTestCase() +{ +} + +void Ut_DBusDispatcher::cleanupTestCase() +{ +} + +void Ut_DBusDispatcher::simpleSignalReceived(const QString& interface, + const QString& signal, + const QList& args) +{ + // Signal handler, which simply records what has been signalled + mInterface = interface; + mSignal = signal; + mArgs = args; +} + +void Ut_DBusDispatcher::simpleCallReply(const QString& method, + const QList& args, + const QString& error) +{ + mMethod = method; + + // Check that method matches and at least WLAN_INFRA is returned + QVERIFY(error.isEmpty()); + QVERIFY(args[0].toStringList().contains("WLAN_INFRA")); +} + +void Ut_DBusDispatcher::simpleCall() +{ + uint flags = 0; + QList reply; + int idx = 0; + QTimer timer; + + // Connect signals + connect(mSubject, SIGNAL(signalReceived(const QString&, + const QString&, + const QList&)), + this, SLOT(simpleSignalReceived(const QString&, + const QString&, + const QList&))); + connect(mSubject, SIGNAL(callReply(const QString&, + const QList&, + const QString&)), + this, SLOT(simpleCallReply(const QString&, + const QList&, + const QString&))); + + // Request scan and verify the call starts succesfully + QVERIFY(mSubject->callAsynchronous("scan_req", flags)); + + // Wait 1st scan signal for 10 secs + timer.setSingleShot(true); + timer.start(10000); + while (timer.isActive() && mInterface.isEmpty()) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + idx++; + } + timer.stop(); + + // Sanity checks for the scan result + QVERIFY(mInterface == "com.nokia.icd2"); // interface is icd2 + QVERIFY(mMethod == "scan_req"); // method is scan_req + QVERIFY(mSignal == "scan_result_sig"); // signal is scan result + QVERIFY(mArgs[0] == QVariant(0) || + mArgs[0] == QVariant(4)); // First argument is status + // (0 == NEW, 4 == COMPLETED) + //QVERIFY(mArgs.contains(QVariant("WLAN_INFRA"))); // WLAN scan result +} + +void Ut_DBusDispatcher::complexCallReply(const QString& method, + const QList& args, + const QString& error) +{ + mMethod = method; + + // Check that method has not return arguments and error is not set + QVERIFY(error.isEmpty()); + QVERIFY(args.isEmpty()); +} + +void Ut_DBusDispatcher::complexCall() +{ + uint flags = ICD_CONNECTION_FLAG_UI_EVENT; + QList reply; + QVariantList networks; + QVariantList network1; + + network1 << "" << (uint)0 << "" << "WLAN_INFRA" << (uint)0x05000011 << QByteArray("osso@46@net"); + networks << QVariant(network1); + + // Connect signal + connect(mSubject, SIGNAL(callReply(const QString&, + const QList&, + const QString&)), + this, SLOT(complexCallReply(const QString&, + const QList&, + const QString&))); + + // Request connect and verify the call starts succesfully + QVERIFY(mSubject->callAsynchronous("connect_req", flags, networks)); + + QTest::qWait(1000); + + // Sanity checks for the scan result + QVERIFY(mInterface == "com.nokia.icd2"); // interface is icd2 + QVERIFY(mMethod == "connect_req"); // method connect_req +} + +QTEST_MAIN(Ut_DBusDispatcher) + +#include "ut_dbusdispatcher.moc" diff --git a/src/3rdparty/libconninet/tests/ut_iapconf.cpp b/src/3rdparty/libconninet/tests/ut_iapconf.cpp new file mode 100644 index 0000000..6a91d61 --- /dev/null +++ b/src/3rdparty/libconninet/tests/ut_iapconf.cpp @@ -0,0 +1,186 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009 Nokia Corporation. All rights reserved. + + Contact: Aapo Makela + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + + +#include +#include + +#include + +class Ut_IAPConf : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void init(); + void cleanup(); + void initTestCase(); + void cleanupTestCase(); + + void setupIAP(); + void setupIAPContainingDot(); + void unsetIAPValueIsNotValid(); + void verifyAllIAPs(); + void allForEmptyConfReturnsEmptyList(); + void settingInvalidValueUnsetsKey(); + +private: + Maemo::IAPConf *mSubject; +}; + +void Ut_IAPConf::init() +{ + mSubject = new Maemo::IAPConf("test_iap"); +} + +void Ut_IAPConf::cleanup() +{ + // Clear made settings + mSubject->clear(); + + delete mSubject; + mSubject = 0; +} + +void Ut_IAPConf::initTestCase() +{ +} + +void Ut_IAPConf::cleanupTestCase() +{ +} + +void Ut_IAPConf::setupIAP() +{ + // Set bunch of values + mSubject->set("ipv4_type", "AUTO", + "wlan_wepkey1", "connt", + "wlan_wepdefkey", 1, + "wlan_ssid", QByteArray("CONNTEST-1")); + + // Set one value + mSubject->setValue("type", "WLAN_INFRA"); + + // Check all values that they were set correctly + QVERIFY(mSubject->value("ipv4_type").toString() == "AUTO"); + QVERIFY(mSubject->value("wlan_wepkey1").toString() == "connt"); + QVERIFY(mSubject->value("wlan_wepdefkey").toInt() == 1); + QVERIFY(mSubject->value("wlan_ssid").toByteArray() == QByteArray("CONNTEST-1")); + QVERIFY(mSubject->value("type").toString() == "WLAN_INFRA"); +} + +void Ut_IAPConf::setupIAPContainingDot() +{ + delete mSubject; + mSubject = new Maemo::IAPConf("test.iap"); + + // Set and check one value + mSubject->setValue("type", "DUMMY"); + QVERIFY(mSubject->value("type").toString() == "DUMMY"); +} + +void Ut_IAPConf::unsetIAPValueIsNotValid() +{ + QVariant invalidValue = mSubject->value("this_value_does_not_exist"); + QVERIFY(invalidValue.isValid() == false); +} + +void Ut_IAPConf::verifyAllIAPs() +{ + int count = 0, extras = 0; + QRegExp regexp("iap[1-3]"); + Maemo::IAPConf iap1("iap1"); + Maemo::IAPConf iap2("iap2"); + Maemo::IAPConf iap3("iap3"); + + iap1.clear(); + iap2.clear(); + iap3.clear(); + + iap1.setValue("name", "iap1"); + iap2.setValue("name", "iap2"); + iap3.setValue("name", "iap3"); + + count = extras = 0; + QList iaps; + Maemo::IAPConf::getAll(iaps, true); + foreach (QString iap_path, iaps) { + QString iap_id = iap_path.section('/', 5); /* This is the IAP id */ + if (!iap_id.contains(regexp)) { + extras++; + continue; + } + Maemo::IAPConf iap(iap_id); + QString name = iap.value("name").toString(); + QVERIFY(name == iap_id); + count++; + } + QCOMPARE(count, iaps.size()-extras); + + iap1.clear(); + iap2.clear(); + iap3.clear(); + + iap1.setValue("name", "iap1"); + iap2.setValue("name", "iap2"); + iap3.setValue("name", "iap3"); + + count = extras = 0; + Maemo::IAPConf::getAll(iaps); + foreach (QString iap_id, iaps) { + if (!iap_id.contains(regexp)) { + extras++; + continue; + } + Maemo::IAPConf iap(iap_id); + QString name = iap.value("name").toString(); + QVERIFY(name == iap_id); + count++; + } + QCOMPARE(count, iaps.size()-extras); +} + +void Ut_IAPConf::allForEmptyConfReturnsEmptyList() +{ + // Clear everything in configuration + mSubject->clearAll(); + + // Get all for a list and check that it is empty + QStringList iaps; + mSubject->getAll(iaps); + QVERIFY(iaps.isEmpty()); +} + +void Ut_IAPConf::settingInvalidValueUnsetsKey() +{ + // Setup some IAP + setupIAP(); + + // Set invalid value to unset "wlan_wepdefkey" key and verify that the + // value is unset + mSubject->setValue("wlan_wepdefkey", QVariant()); + QVERIFY(!mSubject->value("wlan_wepdefkey").isValid()); +} + +QTEST_MAIN(Ut_IAPConf) + +#include "ut_iapconf.moc" diff --git a/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp b/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp new file mode 100644 index 0000000..f14f623 --- /dev/null +++ b/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp @@ -0,0 +1,118 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2009-2010 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + + +#include +#include + +#include +#include + +static const char *iap_id = "test_monitor_1"; + +class TestIAPMonitor : public Maemo::IAPMonitor +{ +public: + QString addedIap; + QString removedIap; + +protected: + virtual void iapAdded(const QString &id) + { + addedIap = id; + } + + virtual void iapRemoved(const QString &id) + { + removedIap = id; + } +}; + +class Ut_IAPMonitor : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void init(); + void cleanup(); + void initTestCase(); + void cleanupTestCase(); + + void check(); + +private: + TestIAPMonitor *mon; + Maemo::IAPConf *iap; +}; + +void Ut_IAPMonitor::init() +{ + mon = new TestIAPMonitor; +} + +void Ut_IAPMonitor::cleanup() +{ + delete mon; + mon = 0; +} + +void Ut_IAPMonitor::initTestCase() +{ +} + +void Ut_IAPMonitor::cleanupTestCase() +{ +} + +void Ut_IAPMonitor::check() +{ + QVERIFY(mon->addedIap.isEmpty()); + + iap = new Maemo::IAPConf(iap_id); + iap->set("ipv4_type", "AUTO", + "wlan_wepkey1", "connt", + "wlan_wepdefkey", 1, + "wlan_ssid", QByteArray(iap_id)); + + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + QVERIFY(mon->addedIap == iap_id); + mon->addedIap.clear(); + + QVERIFY(mon->removedIap.isEmpty()); + + // Unset only one value and verify that IAP is not removed + iap->set("ipv4_type", QVariant()); + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + QVERIFY(mon->removedIap.isEmpty()); + + // Clear the whole IAP and check that it is removed + iap->clear(); + delete iap; + + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + + QVERIFY(mon->removedIap == iap_id); +} + +QTEST_MAIN(Ut_IAPMonitor) + +#include "ut_iapmonitor.moc" diff --git a/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp b/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp new file mode 100644 index 0000000..494829d --- /dev/null +++ b/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp @@ -0,0 +1,274 @@ +/* + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * + * Contact: Jukka Rissanen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + + +// !!!! +// !!!! NOTE: THESE TEST DO NOT REALLY WORK YET BECAUSE OF MISSING +// !!!! FUNCTIONALITY IN ICD2 STUB. YOU HAVE BEEN WARNED. +// !!!! + + +#include +#include +#include +#include +#include + +#include "maemo_icd.h" + +class Ut_MaemoIcd : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void init(); + void cleanup(); + void initTestCase(); + void cleanupTestCase(); + + void scan_req(); + void scan_cancel_req(); + void connect_req_default(); + void state_req_all(); + void state_req(); + void statistics_req_all(); + void statistics_req(); + void addrinfo_req_all(); + void addrinfo_req(); + +private: + void disconnect_req_default(); // this is currently not run + void connect_req_specific(); // this is currently not run + QProcess *icd_stub; + bool connect_iap(Maemo::IcdConnectResult &connect_result, + QString &result, + QString &error, + QString iap=QString()); +}; + + +QString create_error_str(Maemo::Icd &icd) +{ + return icd.error(); +} + + +void Ut_MaemoIcd::init() +{ + icd_stub = new QProcess(this); + icd_stub->setStandardOutputFile("/tmp/ut_maemo_icd.log"); + icd_stub->start("/usr/bin/icd2_stub.py"); + QTest::qWait(1000); + + // Set the statistics + QProcess dbus_send; + dbus_send.start("dbus-send --type=method_call --system " + "--dest=com.nokia.icd2 /com/nokia/icd2 " + "com.nokia.icd2.testing.set_statistics " + "uint32:1024 uint32:256"); + dbus_send.waitForFinished(); + +} + +void Ut_MaemoIcd::cleanup() +{ + icd_stub->terminate(); + icd_stub->waitForFinished(); +} + +void Ut_MaemoIcd::initTestCase() +{ +} + +void Ut_MaemoIcd::cleanupTestCase() +{ +} + +void Ut_MaemoIcd::scan_req() +{ + QList scanned; + QStringList scannedNetworkTypes; + QStringList networkTypesToScan; + QString error; + Maemo::Icd icd(ICD_SHORT_SCAN_TIMEOUT); + + scannedNetworkTypes = icd.scan(ICD_SCAN_REQUEST_ACTIVE, + networkTypesToScan, + scanned, + error); + QVERIFY(error.isEmpty()); + QCOMPARE(scanned.size(), 3); + QVERIFY(scannedNetworkTypes[0] == "WLAN_INFRA"); + QVERIFY(scannedNetworkTypes[1] == "DUN_GSM_PS"); +} + +void Ut_MaemoIcd::scan_cancel_req() +{ + Maemo::Icd icd; + icd.scanCancel(); + // Not much to verify here +} + +bool Ut_MaemoIcd::connect_iap(Maemo::IcdConnectResult &connect_result, + QString &result, + QString &error, + QString iap) +{ + icd_connection_flags flags = ICD_CONNECTION_FLAG_USER_EVENT; + bool st; + Maemo::Icd icd(ICD_SHORT_CONNECT_TIMEOUT); + + if (iap.isEmpty()) { + qDebug() << "connecting to default IAP"; + st = icd.connect(flags, connect_result); + } else { + qDebug() << "connecting to" << iap; + st = icd.connect(flags, iap, result); + } + + error = create_error_str(icd); + return st; +} + +void Ut_MaemoIcd::connect_req_default() +{ + Maemo::IcdConnectResult connect_result; + QString result, error; + bool st; + st = connect_iap(connect_result, result, error); + QVERIFY2(st, error.toAscii().data()); + result = connect_result.connect.network_id.data(); + qDebug() << result; +} + + +void Ut_MaemoIcd::disconnect_req_default() +{ + icd_connection_flags flags = ICD_CONNECTION_FLAG_USER_EVENT; + bool st; + Maemo::Icd icd(ICD_SHORT_CONNECT_TIMEOUT); + icd.disconnect(flags); +} + + +void Ut_MaemoIcd::connect_req_specific() +{ + Maemo::IcdConnectResult connect_result; + QString result; + QString error; + bool st; + st = connect_iap(connect_result, result, error, "wpa2gx2.osso.net"); + QVERIFY2(st, error.toAscii().data()); + qDebug() << result; +} + + +void Ut_MaemoIcd::state_req_all() +{ + QList state_results; + Maemo::Icd icd; + int sig; + sig = icd.state(state_results); + QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); +} + + +void Ut_MaemoIcd::state_req() +{ + Maemo::IcdStateResult state_result; + Maemo::Icd icd; + int sig; + QString service_type, service_id; + QString network_type("WLAN_INFRA"); + QByteArray network_id("wpa2gx2.osso.net"); + sig = icd.state(service_type, 0, service_id, + network_type, (uint)0x17a1, network_id, + state_result); + QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); +} + + +void Ut_MaemoIcd::statistics_req_all() +{ + QList stats_results; + Maemo::Icd icd; + int sig; + QString err; + sig = icd.statistics(stats_results); + err = create_error_str(icd); + if (!err.isEmpty()) + QVERIFY2(sig==1, err.toAscii().data()); + else + QCOMPARE(sig, 1); + + for(int i=0; i addr_results; + Maemo::Icd icd; + int sig; + sig = icd.addrinfo(addr_results); + QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); +} + + +void Ut_MaemoIcd::addrinfo_req() +{ + Maemo::IcdAddressInfoResult addr_result; + Maemo::Icd icd; + int sig; + QString service_type, service_id; + QString network_type("WLAN_INFRA"); + QByteArray network_id("wpa2gx2.osso.net"); + sig = icd.addrinfo(service_type, 0, service_id, + network_type, (uint)0x17a1, network_id, + addr_result); + QVERIFY2(sig==1, create_error_str(icd).toAscii().data()); +} + + +QTEST_MAIN(Ut_MaemoIcd) + +#include "ut_maemo_icd.moc" diff --git a/src/3rdparty/libconninet/tests/ut_proxyconf.cpp b/src/3rdparty/libconninet/tests/ut_proxyconf.cpp new file mode 100644 index 0000000..1f407f0 --- /dev/null +++ b/src/3rdparty/libconninet/tests/ut_proxyconf.cpp @@ -0,0 +1,400 @@ +/* + libconninet - Internet Connectivity support library + + Copyright (C) 2010 Nokia Corporation. All rights reserved. + + Contact: Jukka Rissanen + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + version 2.1 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA +*/ + + +#include +#include +#include +#include + +#include "../src/proxyconf.h" + +class Ut_ProxyConf : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void init(); + void cleanup(); + void initTestCase(); + void cleanupTestCase(); + + // tests without the factory + void proxy_ftp_no_factory_ok_auto(); + void proxy_ftp_no_factory_ok_manual(); + void proxy_http_no_factory_ok_manual(); + void proxy_https_no_factory_ok_manual(); + void proxy_socks_no_factory_ok_manual(); + void proxy_default_no_factory_ok_manual(); + + // tests using the factory + void proxy_ftp_factory_ok_auto(); + void proxy_ftp_factory_ok_manual(); + void proxy_http_factory_ok_manual(); + void proxy_https_factory_ok_manual(); + void proxy_socks_factory_ok_manual(); + void proxy_http_factory_ok_manual_clear(); + void proxy_default_factory_ok_manual(); + void proxy_http_factory_ok_manual_ignore_list(); + void proxy_default_factory_ok_manual_system(); + +private: + Maemo::ProxyConf *pc; +}; + + +void put(QString var, QString type, QString value) +{ + QProcess gconf; + if (value.isEmpty()) + gconf.start(QString("gconftool-2 -u /system/proxy/"+var)); + else + gconf.start(QString("gconftool-2 -s /system/proxy/"+var+" -t "+type+" "+value)); + gconf.waitForFinished(); +} + +void put_http(QString var, QString type, QString value) +{ + QProcess gconf; + if (value.isEmpty()) + gconf.start(QString("gconftool-2 -u /system/http_proxy/"+var)); + else + gconf.start(QString("gconftool-2 -s /system/http_proxy/"+var+" -t "+type+" "+value)); + gconf.waitForFinished(); +} + +void put_list(QString var, QString type, QList value) +{ + QProcess gconf; + QString values = "["; + foreach (QString str, value) + values = values + str + ","; + values.chop(1); + values = values + "]"; + + gconf.start(QString("gconftool-2 -s /system/http_proxy/"+var+" -t list --list-type="+type+" "+values)); + gconf.waitForFinished(); +} + + +void Ut_ProxyConf::init() +{ + put_http("host", "string", "my.proxy.com"); + put_http("port", "int", "8080"); + + QList list; + list.append("foo.bar.com"); + list.append("192.168.19.69"); + list.append("192.168.20.0/24"); + list.append("bar.foo.com"); + put_list("ignore_hosts", "string", list); + put_http("use_http_host", "boolean", "true"); + + put("mode", "string", "auto"); + put("autoconfig_url", "string", "http://foo.bar.com/autoconf"); + put("secure_host", "string", "secure_host.com"); + put("secure_port", "int", "112"); + + put("ftp_host", "string", "ftp.nuukia.com"); + put("ftp_port", "int", "2000"); + put("socks_host", "string", "socks.host.com"); + put("socks_port", "int", "10080"); + put("rtsp_host", "string", "rtsp.voice.com"); + put("rtsp_port", "int", "1554"); + + pc = new Maemo::ProxyConf(); +} + +void Ut_ProxyConf::cleanup() +{ + delete pc; + pc = 0; +} + +void Ut_ProxyConf::initTestCase() +{ +} + +void Ut_ProxyConf::cleanupTestCase() +{ +} + + +void Ut_ProxyConf::proxy_ftp_no_factory_ok_auto() +{ + QList nplist; + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); + + nplist = pc->flush(query); + QVERIFY(nplist.length()==0); +} + + +void Ut_ProxyConf::proxy_ftp_no_factory_ok_manual() +{ + QList nplist; + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); + + put("mode", "string", "manual"); + + nplist = pc->flush(query); + foreach (QNetworkProxy proxy, nplist) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(nplist.length()==3); + QVERIFY(nplist.first().type() == QNetworkProxy::FtpCachingProxy); +} + + +void Ut_ProxyConf::proxy_http_no_factory_ok_manual() +{ + QList nplist; + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); + + put("mode", "string", "manual"); + + nplist = pc->flush(query); + foreach (QNetworkProxy proxy, nplist) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(nplist.length()==3); + QVERIFY(nplist.first().type() == QNetworkProxy::HttpProxy); +} + + +void Ut_ProxyConf::proxy_https_no_factory_ok_manual() +{ + QList nplist; + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("https://maps.google.com/")); + + put("mode", "string", "manual"); + + nplist = pc->flush(query); + foreach (QNetworkProxy proxy, nplist) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(nplist.length()==2); + QVERIFY(nplist.first().type() == QNetworkProxy::HttpProxy); +} + + +void Ut_ProxyConf::proxy_socks_no_factory_ok_manual() +{ + QList nplist; + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); + + put("mode", "string", "manual"); + put_http("host", "string", ""); + + nplist = pc->flush(query); + foreach (QNetworkProxy proxy, nplist) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(nplist.length()==2); + QVERIFY(nplist.first().type() == QNetworkProxy::Socks5Proxy); +} + + +void Ut_ProxyConf::proxy_default_no_factory_ok_manual() +{ + QList nplist; + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("foobar://maps.google.com/")); + + put("mode", "string", "manual"); + put("socks_host", "string", ""); + put("secure_host", "string", ""); + + nplist = pc->flush(query); + foreach (QNetworkProxy proxy, nplist) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(nplist.length()==0); +} + + +void Ut_ProxyConf::proxy_ftp_factory_ok_auto() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); + Maemo::ProxyConf::update(); + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + QVERIFY(listOfProxies.length()==1); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_ftp_factory_ok_manual() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + foreach (QNetworkProxy proxy, listOfProxies) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(listOfProxies.length()==3); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::FtpCachingProxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_http_factory_ok_manual() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + foreach (QNetworkProxy proxy, listOfProxies) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(listOfProxies.length()==3); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_https_factory_ok_manual() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("https://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + foreach (QNetworkProxy proxy, listOfProxies) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(listOfProxies.length()==2); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_socks_factory_ok_manual() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + put_http("host", "string", ""); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + foreach (QNetworkProxy proxy, listOfProxies) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(listOfProxies.length()==2); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::Socks5Proxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_http_factory_ok_manual_clear() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + put_http("host", "string", "192.168.1.1"); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + foreach (QNetworkProxy proxy, listOfProxies) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(listOfProxies.length()==3); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); + + Maemo::ProxyConf::clear(); + listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + QVERIFY(listOfProxies.length()==1); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); +} + + +void Ut_ProxyConf::proxy_default_factory_ok_manual() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("foobar://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + put("socks_host", "string", ""); + put("secure_host", "string", ""); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + QVERIFY(listOfProxies.length()==1); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_http_factory_ok_manual_ignore_list() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://192.168.19.70/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + + QList listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + + foreach (QNetworkProxy proxy, listOfProxies) { + qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port(); + } + QVERIFY(listOfProxies.length()==3); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy); + + query = QNetworkProxyQuery(QUrl("http://192.168.20.10/")); + listOfProxies = QNetworkProxyFactory::proxyForQuery(query); + QVERIFY(listOfProxies.length()==1); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); + Maemo::ProxyConf::clear(); +} + + +void Ut_ProxyConf::proxy_default_factory_ok_manual_system() +{ + QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/")); + Maemo::ProxyConf::update(); + + put("mode", "string", "manual"); + + QList listOfProxies = QNetworkProxyFactory::systemProxyForQuery(query); + + QVERIFY(listOfProxies.length()==1); + QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy); + Maemo::ProxyConf::clear(); +} + + + + +QTEST_MAIN(Ut_ProxyConf) + +#include "ut_proxyconf.moc" -- cgit v0.12 From 7fcc1daf1762d345ca39f9599a8de2567bb8e788 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 16 Aug 2010 15:17:27 +1000 Subject: More positioners with QGraphicsWidgets fixes. Task-number: QTBUG-12416 Reviewed-by: Michael Brasser --- .../graphicsitems/qdeclarativepositioners.cpp | 8 +++- .../tst_qdeclarativepositioners.cpp | 44 ++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp index f32c532..1a5c42d 100644 --- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp +++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp @@ -70,6 +70,8 @@ void QDeclarativeBasePositionerPrivate::watchChanges(QGraphicsObject *other) Q_Q(QDeclarativeBasePositioner); QObject::connect(other, SIGNAL(widthChanged()), q, SLOT(graphicsWidgetGeometryChanged())); QObject::connect(other, SIGNAL(heightChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + QObject::connect(other, SIGNAL(opacityChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + QObject::connect(other, SIGNAL(visibleChanged()), q, SLOT(graphicsWidgetGeometryChanged())); } } @@ -82,6 +84,8 @@ void QDeclarativeBasePositionerPrivate::unwatchChanges(QGraphicsObject* other) Q_Q(QDeclarativeBasePositioner); QObject::disconnect(other, SIGNAL(widthChanged()), q, SLOT(graphicsWidgetGeometryChanged())); QObject::disconnect(other, SIGNAL(heightChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + QObject::disconnect(other, SIGNAL(opacityChanged()), q, SLOT(graphicsWidgetGeometryChanged())); + QObject::disconnect(other, SIGNAL(visibleChanged()), q, SLOT(graphicsWidgetGeometryChanged())); } } @@ -235,7 +239,7 @@ void QDeclarativeBasePositioner::prePositioning() QGraphicsObject *child = children.at(ii)->toGraphicsObject(); if (!child) continue; - QDeclarativeItemPrivate *childPrivate = static_cast(QGraphicsItemPrivate::get(child)); + QGraphicsItemPrivate *childPrivate = static_cast(QGraphicsItemPrivate::get(child)); PositionedItem *item = 0; PositionedItem posItem(child); int wIdx = oldItems.find(posItem); @@ -320,7 +324,7 @@ void QDeclarativeBasePositioner::finishApplyTransitions() static inline bool isInvisible(QGraphicsObject *child) { - QDeclarativeItemPrivate *childPrivate = static_cast(QGraphicsItemPrivate::get(child)); + QGraphicsItemPrivate *childPrivate = static_cast(QGraphicsItemPrivate::get(child)); return child->opacity() == 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height(); } diff --git a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp index 0663991..887be50 100644 --- a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp +++ b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include "../../../shared/util.h" #ifdef Q_OS_SYMBIAN @@ -77,6 +78,7 @@ private slots: void test_flow_resize(); void test_flow_implicit_resize(); void test_conflictinganchors(); + void test_vertical_qgraphicswidget(); private: QDeclarativeView *createView(const QString &filename); }; @@ -771,6 +773,48 @@ void tst_QDeclarativePositioners::test_conflictinganchors() QCOMPARE(warningMessage, QString("file::2:1: QML Flow: Cannot specify anchors for items inside Flow")); } +void tst_QDeclarativePositioners::test_vertical_qgraphicswidget() +{ + QDeclarativeView *canvas = createView(SRCDIR "/data/verticalqgraphicswidget.qml"); + + QGraphicsWidget *one = canvas->rootObject()->findChild("one"); + QVERIFY(one != 0); + + QGraphicsWidget *two = canvas->rootObject()->findChild("two"); + QVERIFY(two != 0); + + QGraphicsWidget *three = canvas->rootObject()->findChild("three"); + QVERIFY(three != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(two->y(), 50.0); + QCOMPARE(three->x(), 0.0); + QCOMPARE(three->y(), 60.0); + + QDeclarativeItem *column = canvas->rootObject()->findChild("column"); + QVERIFY(column); + QCOMPARE(column->height(), 80.0); + QCOMPARE(column->width(), 50.0); + + two->resize(QSizeF(two->size().width(), 20.0)); + QCOMPARE(three->x(), 0.0); + QCOMPARE(three->y(), 70.0); + + two->setOpacity(0.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(three->x(), 0.0); + QCOMPARE(three->y(), 50.0); + + one->setVisible(false); + QCOMPARE(three->x(), 0.0); + QCOMPARE(three->y(), 0.0); + + delete canvas; +} + QDeclarativeView *tst_QDeclarativePositioners::createView(const QString &filename) { QDeclarativeView *canvas = new QDeclarativeView(0); -- cgit v0.12 From b83c295650b3f28bc9da542acf4652f4ce2d168b Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 16 Aug 2010 15:38:15 +1000 Subject: Handle QGraphicsWidgets in Flickable Task-number: QTBUG-12830 Reviewed-by: Michael Brasser --- .../graphicsitems/qdeclarativeflickable.cpp | 2 +- .../tst_qdeclarativeflickable.cpp | 37 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 19cabdd..9bcadd2 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -1027,7 +1027,7 @@ void QDeclarativeFlickable::cancelFlick() void QDeclarativeFlickablePrivate::data_append(QDeclarativeListProperty *prop, QObject *o) { - QDeclarativeItem *i = qobject_cast(o); + QGraphicsObject *i = qobject_cast(o); if (i) i->setParentItem(static_cast(prop->data)->contentItem); else diff --git a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp index 678996b..e7ded8a 100644 --- a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp +++ b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #ifdef Q_OS_SYMBIAN @@ -67,9 +68,13 @@ private slots: void flickDeceleration(); void pressDelay(); void flickableDirection(); + void qgraphicswidget(); private: QDeclarativeEngine engine; + + template + T *findItem(QGraphicsObject *parent, const QString &objectName); }; tst_qdeclarativeflickable::tst_qdeclarativeflickable() @@ -261,6 +266,38 @@ void tst_qdeclarativeflickable::flickableDirection() QCOMPARE(spy.count(),3); } +void tst_qdeclarativeflickable::qgraphicswidget() +{ + QDeclarativeEngine engine; + QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/flickableqgraphicswidget.qml")); + QDeclarativeFlickable *flickable = qobject_cast(c.create()); + + QVERIFY(flickable != 0); + QGraphicsWidget *widget = findItem(flickable->contentItem(), "widget1"); + QVERIFY(widget); +} + +template +T *tst_qdeclarativeflickable::findItem(QGraphicsObject *parent, const QString &objectName) +{ + const QMetaObject &mo = T::staticMetaObject; + //qDebug() << parent->childItems().count() << "children"; + for (int i = 0; i < parent->childItems().count(); ++i) { + QGraphicsObject *item = qobject_cast(parent->childItems().at(i)); + if(!item) + continue; + //qDebug() << "try" << item; + if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) { + return static_cast(item); + } + item = findItem(item, objectName); + if (item) + return static_cast(item); + } + + return 0; +} + QTEST_MAIN(tst_qdeclarativeflickable) #include "tst_qdeclarativeflickable.moc" -- cgit v0.12 From af675cf96d4d13b066a669eae847ad56485927d0 Mon Sep 17 00:00:00 2001 From: mae Date: Mon, 16 Aug 2010 10:11:20 +0200 Subject: Fix game could not be restarted Task-number: QT-3668 --- demos/declarative/snake/content/snake.js | 5 ++++- demos/declarative/snake/snake.qml | 16 +--------------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/demos/declarative/snake/content/snake.js b/demos/declarative/snake/content/snake.js index 0f0dbf7..fab7834 100644 --- a/demos/declarative/snake/content/snake.js +++ b/demos/declarative/snake/content/snake.js @@ -35,9 +35,12 @@ function startNewGame() if (heartbeat.running) { endGame(); startNewGameTimer.running = true; + state = "starting"; return; } + state = "starting"; + numRows = numRowsAvailable; numColumns = numColumnsAvailable; board = new Array(numRows * numColumns); @@ -80,7 +83,6 @@ function startNewGame() waitForCookie = 5; score = 0; startHeartbeatTimer.running = true; - heartbeat.running = true; } function endGame() @@ -94,6 +96,7 @@ function endGame() } lastScore = score; highScores.saveScore(lastScore); + state = ""; } function move() { diff --git a/demos/declarative/snake/snake.qml b/demos/declarative/snake/snake.qml index b1344af..ed3bac9 100644 --- a/demos/declarative/snake/snake.qml +++ b/demos/declarative/snake/snake.qml @@ -94,6 +94,7 @@ Rectangle { Timer { id: startHeartbeatTimer; interval: 1000 ; + onTriggered: { state = "running"; heartbeat.running = true; } } @@ -208,21 +209,6 @@ Rectangle { Keys.onUpPressed: if (state == "starting" || direction != 2) Logic.scheduleDirection(0); Keys.onDownPressed: if (state == "starting" || direction != 0) Logic.scheduleDirection(2); - Connections { - target: startHeartbeatTimer - onRunningChanged: { - if (startHeartbeatTimer.running) - screen.state = "starting"; - else - screen.state = "running" - } - } - Connections { - target: heartbeat - onRunningChanged: if (!heartbeat.running) screen.state = ""; - } - - states: [ State { name: "starting" -- cgit v0.12 From aebac76abbc5ed617d5998009afb06f07b9e237f Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Mon, 16 Aug 2010 12:15:52 +0200 Subject: Fix compilation: QT_NO_LINEEDIT Merge-request: 774 Reviewed-by: Oswald Buddenhagen --- src/gui/util/qcompleter.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/util/qcompleter.cpp b/src/gui/util/qcompleter.cpp index 04d6de9..e718212 100644 --- a/src/gui/util/qcompleter.cpp +++ b/src/gui/util/qcompleter.cpp @@ -921,10 +921,12 @@ void QCompleterPrivate::showPopup(const QRect& rect) void QCompleterPrivate::_q_fileSystemModelDirectoryLoaded(const QString &path) { Q_Q(QCompleter); +#ifndef QT_NO_LINEEDIT QLineEdit *lineEdit = qobject_cast(widget); //the path given by QFileSystemModel does not end with / if (lineEdit && !lineEdit->text().isEmpty() && !q->completionPrefix().isEmpty() && q->completionPrefix() != path + QLatin1Char('/')) q->complete(); +#endif } /*! -- cgit v0.12 From f7a501515fcf1dafecb88a40e18721ea14fd0a13 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 16 Aug 2010 13:33:16 +0200 Subject: QtDeclarative debugging: Add an option not to stream the properties of an object. Streaming all the properties is too slow, and we do not need them in the debugger of creator. Reviewed-by: Lasse Holmstedt --- src/declarative/debugger/qdeclarativedebug.cpp | 4 ++-- src/declarative/qml/qdeclarativeenginedebug.cpp | 16 ++++++++++++---- src/declarative/qml/qdeclarativeenginedebug_p.h | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/declarative/debugger/qdeclarativedebug.cpp b/src/declarative/debugger/qdeclarativedebug.cpp index b950aef..154df51 100644 --- a/src/declarative/debugger/qdeclarativedebug.cpp +++ b/src/declarative/debugger/qdeclarativedebug.cpp @@ -507,7 +507,7 @@ QDeclarativeDebugObjectQuery *QDeclarativeEngineDebug::queryObject(const QDeclar QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("FETCH_OBJECT") << queryId << object.debugId() - << false; + << false << true; d->client->sendMessage(message); } else { query->m_state = QDeclarativeDebugQuery::Error; @@ -530,7 +530,7 @@ QDeclarativeDebugObjectQuery *QDeclarativeEngineDebug::queryObjectRecursive(cons QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("FETCH_OBJECT") << queryId << object.debugId() - << true; + << true << true; d->client->sendMessage(message); } else { query->m_state = QDeclarativeDebugQuery::Error; diff --git a/src/declarative/qml/qdeclarativeenginedebug.cpp b/src/declarative/qml/qdeclarativeenginedebug.cpp index 1837366..ed98e3c 100644 --- a/src/declarative/qml/qdeclarativeenginedebug.cpp +++ b/src/declarative/qml/qdeclarativeenginedebug.cpp @@ -182,7 +182,7 @@ QVariant QDeclarativeEngineDebugServer::valueContents(const QVariant &value) con } void QDeclarativeEngineDebugServer::buildObjectDump(QDataStream &message, - QObject *object, bool recur) + QObject *object, bool recur, bool dumpProperties) { message << objectData(object); @@ -209,6 +209,8 @@ void QDeclarativeEngineDebugServer::buildObjectDump(QDataStream &message, continue; QDeclarativeBoundSignal *signal = QDeclarativeBoundSignal::cast(child); if (signal) { + if (!dumpProperties) + continue; QDeclarativeObjectProperty prop; prop.type = QDeclarativeObjectProperty::SignalProperty; prop.hasNotifySignal = false; @@ -229,12 +231,17 @@ void QDeclarativeEngineDebugServer::buildObjectDump(QDataStream &message, fakeProperties << prop; } else { if (recur) - buildObjectDump(message, child, recur); + buildObjectDump(message, child, recur, dumpProperties); else message << objectData(child); } } + if (!dumpProperties) { + message << 0; + return; + } + message << (object->metaObject()->propertyCount() + fakeProperties.count()); for (int ii = 0; ii < object->metaObject()->propertyCount(); ++ii) @@ -372,8 +379,9 @@ void QDeclarativeEngineDebugServer::messageReceived(const QByteArray &message) int queryId; int objectId; bool recurse; + bool dumpProperties = true; - ds >> queryId >> objectId >> recurse; + ds >> queryId >> objectId >> recurse >> dumpProperties; QObject *object = QDeclarativeDebugService::objectForId(objectId); @@ -382,7 +390,7 @@ void QDeclarativeEngineDebugServer::messageReceived(const QByteArray &message) rs << QByteArray("FETCH_OBJECT_R") << queryId; if (object) - buildObjectDump(rs, object, recurse); + buildObjectDump(rs, object, recurse, dumpProperties); sendMessage(reply); } else if (type == "WATCH_OBJECT") { diff --git a/src/declarative/qml/qdeclarativeenginedebug_p.h b/src/declarative/qml/qdeclarativeenginedebug_p.h index ea35b40..aa450f3 100644 --- a/src/declarative/qml/qdeclarativeenginedebug_p.h +++ b/src/declarative/qml/qdeclarativeenginedebug_p.h @@ -103,7 +103,7 @@ private Q_SLOTS: private: void buildObjectList(QDataStream &, QDeclarativeContext *); - void buildObjectDump(QDataStream &, QObject *, bool); + void buildObjectDump(QDataStream &, QObject *, bool, bool); QDeclarativeObjectData objectData(QObject *); QDeclarativeObjectProperty propertyData(QObject *, int); QVariant valueContents(const QVariant &defaultValue) const; -- cgit v0.12 From a9c0fbd5e946ae6e90b6db6dd4aea64c824a4066 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 16 Aug 2010 04:33:03 +0200 Subject: qgrayraster: Speed up rendering of small cubic splines. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on these upstream freetype2 commits: 7fb3ef64a24489189113f693696eaf935f500c3f e419f48b40a746465a6c8e1d446b407b8677bfed Reviewed-by: Samuel Rødal --- src/gui/painting/qgrayraster.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c index 5e7c67a..539a33c 100644 --- a/src/gui/painting/qgrayraster.c +++ b/src/gui/painting/qgrayraster.c @@ -956,53 +956,49 @@ const QT_FT_Vector* control2, const QT_FT_Vector* to ) { - TPos dx, dy, da, db; int top, level; int* levels; QT_FT_Vector* arc; + int mid_x = ( DOWNSCALE( ras.x ) + to->x + + 3 * (control1->x + control2->x ) ) / 8; + int mid_y = ( DOWNSCALE( ras.y ) + to->y + + 3 * (control1->y + control2->y ) ) / 8; + TPos dx = DOWNSCALE( ras.x ) + to->x - ( mid_x << 1 ); + TPos dy = DOWNSCALE( ras.y ) + to->y - ( mid_y << 1 ); - dx = DOWNSCALE( ras.x ) + to->x - ( control1->x << 1 ); if ( dx < 0 ) dx = -dx; - dy = DOWNSCALE( ras.y ) + to->y - ( control1->y << 1 ); if ( dy < 0 ) dy = -dy; if ( dx < dy ) dx = dy; - da = dx; - - dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x ); - if ( dx < 0 ) - dx = -dx; - dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->x + control2->y ); - if ( dy < 0 ) - dy = -dy; - if ( dx < dy ) - dx = dy; - db = dx; level = 1; - da = da / ras.cubic_level; - db = db / ras.conic_level; - while ( da > 0 || db > 0 ) + dx /= ras.cubic_level; + while ( dx > 0 ) { - da >>= 2; - db >>= 3; + dx >>= 2; level++; } if ( level <= 1 ) { - TPos to_x, to_y, mid_x, mid_y; + TPos to_x, to_y; to_x = UPSCALE( to->x ); to_y = UPSCALE( to->y ); + + /* Recalculation of midpoint is needed only if */ + /* UPSCALE and DOWNSCALE have any effect. */ + +#if ( PIXEL_BITS != 6 ) mid_x = ( ras.x + to_x + 3 * UPSCALE( control1->x + control2->x ) ) / 8; mid_y = ( ras.y + to_y + 3 * UPSCALE( control1->y + control2->y ) ) / 8; +#endif gray_render_line( RAS_VAR_ mid_x, mid_y ); gray_render_line( RAS_VAR_ to_x, to_y ); -- cgit v0.12 From 7cfc9f2245162944f3d9a29ad73cd93e2bcf197f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 16 Aug 2010 16:09:34 +0300 Subject: Fix QProcessManager destruction If QProcessManager destructor is ran as part of global static cleanup, manager thread will most likely be terminated by kernel at that point, so trying to delete QProcessActives and QProcessMediators will panic as they will still be active. They can also no longer be properly canceled as the thread is already gone. In case manager thread has already died, which implies that process exit is imminent, we simply do nothing and let the deletion of the main heap at process exit take care of stray objects. Task-number: QTBUG-11218 Reviewed-by: Janne Koskinen --- src/corelib/io/qprocess_symbian.cpp | 47 ++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/src/corelib/io/qprocess_symbian.cpp b/src/corelib/io/qprocess_symbian.cpp index af657b2..003e781 100644 --- a/src/corelib/io/qprocess_symbian.cpp +++ b/src/corelib/io/qprocess_symbian.cpp @@ -375,10 +375,9 @@ QProcessActive::QProcessActive() // Nothing to do } -// Called from ProcessManagerThread +// Called from main thread QProcessActive::~QProcessActive() { - Cancel(); process = NULL; pproc = NULL; } @@ -482,10 +481,9 @@ QProcessManagerMediator::QProcessManagerMediator() // Nothing to do } -// Called from ProcessManagerThread +// Called from main thread QProcessManagerMediator::~QProcessManagerMediator() { - Cancel(); processManagerThread.Close(); currentCommand = ENoCommand; currentObserver = NULL; @@ -648,25 +646,36 @@ QProcessManager::QProcessManager() QProcessManager::~QProcessManager() { QPROCESS_DEBUG_PRINT("QProcessManager::~QProcessManager()"); - // Cancel death listening for all child processes - if (mediator) { - QMap::Iterator it = children.begin(); - while (it != children.end()) { - // Remove all monitors - QProcessActive *active = it.value(); - mediator->remove(active); - - QPROCESS_DEBUG_PRINT("QProcessManager::~QProcessManager() removed listening for a process"); - ++it; + + // Check if manager thread is still alive. If this destructor is ran as part of global + // static cleanup, manager thread will most likely be terminated by kernel at this point, + // so trying to delete QProcessActives and QProcessMediators will panic as they + // will still be active. They can also no longer be canceled as the thread is already gone. + // In case manager thread has already died, we simply do nothing and let the deletion of + // the main heap at process exit take care of stray objects. + + if (managerThread.Handle() && managerThread.ExitType() == EExitPending) { + // Cancel death listening for all child processes + if (mediator) { + QMap::Iterator it = children.begin(); + while (it != children.end()) { + // Remove all monitors + QProcessActive *active = it.value(); + mediator->remove(active); + + QPROCESS_DEBUG_PRINT("QProcessManager::~QProcessManager() removed listening for a process"); + ++it; + } + + // Terminate process manager thread. + mediator->terminate(); + delete mediator; } - // Terminate process manager thread. - mediator->terminate(); - delete mediator; + qDeleteAll(children.values()); + children.clear(); } - qDeleteAll(children.values()); - children.clear(); managerThread.Close(); managerMutex.Close(); } -- cgit v0.12 From 8f3489c8bfb18246480a489779c2d9b330474c5d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 16 Aug 2010 15:59:30 +0200 Subject: qdoc: Reorganized the QML elements table to be a dictionary... ...and a set of functional group pages. --- doc/src/declarative/elements.qdoc | 252 ++++++++++++--------- .../WebKit/qt/declarative/qdeclarativewebview.cpp | 1 + .../graphicsitems/qdeclarativeanimatedimage.cpp | 3 +- .../graphicsitems/qdeclarativeborderimage.cpp | 1 + .../graphicsitems/qdeclarativeevents.cpp | 4 + .../graphicsitems/qdeclarativeflickable.cpp | 2 + .../graphicsitems/qdeclarativeflipable.cpp | 2 + .../graphicsitems/qdeclarativefocuspanel.cpp | 2 + .../graphicsitems/qdeclarativefocusscope.cpp | 2 + .../graphicsitems/qdeclarativegridview.cpp | 2 + .../graphicsitems/qdeclarativeimage.cpp | 2 + src/declarative/graphicsitems/qdeclarativeitem.cpp | 7 + .../graphicsitems/qdeclarativelayoutitem.cpp | 1 + .../graphicsitems/qdeclarativelistview.cpp | 1 + .../graphicsitems/qdeclarativeloader.cpp | 1 + .../graphicsitems/qdeclarativemousearea.cpp | 1 + src/declarative/graphicsitems/qdeclarativepath.cpp | 7 + .../graphicsitems/qdeclarativepathview.cpp | 1 + .../graphicsitems/qdeclarativepositioners.cpp | 4 + .../graphicsitems/qdeclarativerectangle.cpp | 3 + .../graphicsitems/qdeclarativerepeater.cpp | 1 + src/declarative/graphicsitems/qdeclarativetext.cpp | 3 +- .../graphicsitems/qdeclarativetextedit.cpp | 1 + .../graphicsitems/qdeclarativetextinput.cpp | 4 + .../graphicsitems/qdeclarativevisualitemmodel.cpp | 2 + src/declarative/qml/qdeclarativecomponent.cpp | 1 + src/declarative/qml/qdeclarativeengine.cpp | 2 + src/declarative/qml/qdeclarativeworkerscript.cpp | 1 + src/declarative/util/qdeclarativeanimation.cpp | 13 ++ src/declarative/util/qdeclarativebehavior.cpp | 1 + src/declarative/util/qdeclarativebind.cpp | 1 + src/declarative/util/qdeclarativeconnections.cpp | 1 + src/declarative/util/qdeclarativefontloader.cpp | 1 + src/declarative/util/qdeclarativelistmodel.cpp | 4 +- src/declarative/util/qdeclarativepackage.cpp | 1 + .../util/qdeclarativepropertychanges.cpp | 1 + .../util/qdeclarativesmoothedanimation.cpp | 1 + .../util/qdeclarativespringanimation.cpp | 1 + src/declarative/util/qdeclarativestate.cpp | 1 + src/declarative/util/qdeclarativestategroup.cpp | 1 + .../util/qdeclarativestateoperations.cpp | 3 + src/declarative/util/qdeclarativesystempalette.cpp | 1 + src/declarative/util/qdeclarativetimer.cpp | 1 + src/declarative/util/qdeclarativetransition.cpp | 1 + src/declarative/util/qdeclarativexmllistmodel.cpp | 2 + .../qdeclarativefolderlistmodel.cpp | 1 + src/imports/gestures/qdeclarativegesturearea.cpp | 2 + src/imports/particles/qdeclarativeparticles.cpp | 4 + tools/qdoc3/ditaxmlgenerator.cpp | 10 + tools/qdoc3/htmlgenerator.cpp | 10 + tools/qdoc3/htmlgenerator.h | 1 + 51 files changed, 267 insertions(+), 110 deletions(-) diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index c008404..94abe10 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -26,113 +26,151 @@ ****************************************************************************/ /*! -\page qdeclarativeelements.html -\target elements -\title QML Elements - -The following table lists the QML elements provided by the \l {QtDeclarative}{Qt Declarative} module. - -\table -\header \o {2,1} \bold {Basic Visual Items} -\row \o \l {Item} \o Basic item element inherited by all visual items in QML -\row \o \l {Rectangle} \o Basic visual rectangle element -\row \o \l {Gradient} \o Defines a gradient between two or more colors -\row \o \l {GradientStop} \o Defines a color used in a \l {Gradient} -\row \o \l {Image} \o Allows the use of bitmaps to a scene -\row \o \l {BorderImage} (Item-specific) \o Defines an image as a border -\row \o \l {AnimatedImage} \o For playing animations stored as a series of frames -\row \o \l {Text} \o Allows the use of formatted text in a scene -\row \o \l {TextInput} \o Displays an editable line of text -\row \o \l {IntValidator} \o Validator for integer values -\row \o \l {DoubleValidator} \o Validator for non-integer values -\row \o \l {RegExpValidator} \o Validator for string regular expressions -\row \o \l {TextEdit} \o Displays multiple lines of editable formatted text - -\header \o {2,1} \bold {Basic Interaction Items} -\row \o \l {MouseArea} \o Handles mouse interactions -\row \o \l {FocusScope} \o For keyboard focus handling -\row \o \l {Flickable} \o Provides a surface that can be "flicked" -\row \o \l {Flipable} \o Provides a surface that produces flipping effects -\row \o \l {GestureArea} (experimental) \o Enables simple gesture handling - -\header \o {2,1} \bold {States} -\row \o \l {State} \o Defines sets of configurations of objects and properties -\row \o \l {PropertyChanges} \o Describes property changes within a state -\row \o \l {StateGroup} \o Contains a set of states and state transitions -\row \o \l {StateChangeScript} \o Allows script binding in a state -\row \o \l {ParentChange} (Item-specific) \o Re-parent an Item in a state change -\row \o \l {AnchorChanges} \o Change the anchors of an item in a state - -\header \o {2,1} \bold {Animation and Transitions} -\row \o \l {Behavior} \o Specifies a default animation for property changes -\row \o \l {SequentialAnimation} \o Runs animations sequentially -\row \o \l {ParallelAnimation} \o Runs animations in parallel -\row \o \l {PropertyAnimation} \o Animates property changes -\row \o \l {NumberAnimation} \o Animates properties of type qreal -\row \o \l {Vector3dAnimation} \o Animates properties of type QVector3d -\row \o \l {ColorAnimation} \o Animates color changes -\row \o \l {RotationAnimation} \o Animates rotations -\row \o \l {ParentAnimation} \o Animates parent changes -\row \o \l {AnchorAnimation} \o Animates anchor changes -\row \o \l {PauseAnimation} \o Pauses an animation -\row \o \l {SmoothedAnimation} \o Allows a property to smoothly track a value -\row \o \l {SpringAnimation} \o Allows a property to track a value in a spring-like motion -\row \o \l {PropertyAction} \o Sets immediate property changes during animation -\row \o \l {ScriptAction} \o Runs scripts during an animation -\row \o \l {Transition} \o Animates transitions during state changes - -\header \o {2,1} \bold {Working with Data} -\row \o \l {Binding} \o Binds any value to any property -\row \o \l {ListModel} \o Defines a list of data -\row \o \l {ListElement} \o Defines a data item in a \l {ListModel} -\row \o \l {VisualItemModel} \o Contains items that already defines its own visual delegate -\row \o \l {VisualDataModel} \o Encapsulates a model and a delegate -\row \o \l {Package} \o Collection that enables sharing of items within different views -\row \o \l {XmlListModel} \o Specifies a model using XPath expressions -\row \o \l {XmlRole} \o Specifies a role for an \l {XmlListModel} - -\header \o {2,1} \bold {Views} -\row \o \l {ListView} \o Provides a list visualization of a model -\row \o \l {GridView} \o Provides a grid visualization of a model -\row \o \l {PathView} \o Visualizes a model's contents along a path -\row \o \l {Path} \o Defines a path used by \l {PathView} -\row \o \l {PathLine} \o Defines a line in \l {Path} -\row \o \l {PathQuad} \o Defines a quadratic Bezier curve in a \l {Path} -\row \o \l {PathCubic} \o Defines a cubic Bezier curve in a \l {Path} -\row \o \l {PathAttribute} \o Allows the setting of attributes along a \l {Path} -\row \o \l {PathPercent} \o Modifies the item distribution along a \l {Path} -\row \o \l {WebView} \o Allows the addition of web content to a canvas - -\header \o {2,1} \bold {Positioners} -\row \o \l {Column} \o Arranges its children vertically -\row \o \l {Row} \o Arranges its children horizontally -\row \o \l {Grid} \o Positions its children in a grid -\row \o \l {Flow} \o Positions its children with wrapping support - -\header \o {2,1} \bold {Utility} -\row \o \l {Connections} \o Explicitly connects signals and signal handlers -\row \o \l {Component} \o Encapsulate QML items as a component -\row \o \l {Timer} \o Provides timed triggers -\row \o \l {QML:QtObject} {QtObject} \o Basic element containing only the objectName property -\row \o \l {QML:Qt} {Qt} \o The QML global Qt object provides useful enums and functions from Qt. -\row \o \l {WorkerScript} \o Enables the use of threads in QML -\row \o \l {Loader} \o Controls the loading of items or components -\row \o \l {Repeater} \o Uses a model to create multiples of components -\row \o \l {SystemPalette} \o Provides access to the Qt palettes -\row \o \l {FontLoader} \o Loads fonts by name or URL -\row \o \l {LayoutItem} \o Allows declarative UI elements inside Qt's Graphics View layouts - -\header \o {2,1} \bold {Transforms} -\row \o \l {Scale} \o Assigns item scaling behaviors -\row \o \l {Rotation} \o Assigns item rotation behaviors -\row \o \l {Translate} \o Assigns item translation behaviors - -\header \o {2,1} \bold {Effects} -\row \o \l {Particles} (experimental) \o Generates and animates particles -\row \o \l {ParticleMotionLinear} \o Adds linear motion behavior to \l {Particles} -\row \o \l {ParticleMotionGravity} \o Adds gravitational motion to \l {Particles} -\row \o \l {ParticleMotionWander} \o Adds varied motions to \l {Particles} -\endtable + \page qdeclarativeelements.html + \target elements + \title QML Elements + This is a dictionary of all the QML elements available in the \l + {QtDeclarative} {Qt Declarative} module. + + To see the QML elements listed by + functional area, \l{Groups Of Related QML Elements} {look here}. + + \generatelist qmlclasses + +*/ + + +/*! + \group qml-groups + \title Groups Of Related QML Elements + + \brief If you know what kind of QML element you want (Basic Visual, + Interaction, Animation, etc), look here. + + This is a list of functional groups of QML elements. + + \generatelist{related} + +*/ + +/*! + \group qml-basic-visual-elements + \title Basic QML Visual Elements + \ingroup qml-groups + + \brief Elements for constructing basic visual items. + + \generatelist{related} + +*/ + +/*! + \group qml-basic-interaction-elements + \title Basic QML Interaction Elements + \ingroup qml-groups + + \brief Elements for handling basic interactions. + + \generatelist{related} + +*/ + +/*! + \group qml-state-elements + \title QML State Elements + \ingroup qml-groups + + \brief Elements for handling state changes. + + \generatelist{related} + +*/ + +/*! + \group qml-event-elements + \title QML Event Elements + \ingroup qml-groups + + \brief Elements for handling events. + + \generatelist{related} + +*/ + +/*! + \group qml-animation-transition + \title QML Animation and Transition Elements + \ingroup qml-groups + + \brief Elements for handling animations and transitions. + + \generatelist{related} + +*/ + +/*! + \group qml-working-with-data + \title Working With Data in QML + \ingroup qml-groups + + \brief Elements for working with data. + + \generatelist{related} + +*/ + +/*! + \group qml-view-elements + \title QML View Elements + \ingroup qml-groups + + \brief Elements for handling views. + + \generatelist{related} + +*/ + +/*! + \group qml-positioning-elements + \title QML Positioning Elements + \ingroup qml-groups + + \brief Elements for positioning items. + + \generatelist{related} + +*/ + +/*! + \group qml-utility-elements + \title QML Utility Elements + \ingroup qml-groups + + \brief Elements for handling misc operations. + + \generatelist{related} + +*/ + +/*! + \group qml-transform-elements + \title QML Transform Elements + \ingroup qml-groups + + \brief Elements for handling transformations. + + \generatelist{related} + +*/ + +/*! + \group qml-particle-elements + \title QML Particle Elements + \ingroup qml-groups + + \brief Elements for handling particle effects. + + \generatelist{related} */ diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp index 9dcba60..c1ca23d 100644 --- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp @@ -139,6 +139,7 @@ void GraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent* event) /*! \qmlclass WebView QDeclarativeWebView + \ingroup qml-view-elements \since 4.7 \brief The WebView item allows you to add web content to a canvas. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp index d8527d3..e0a2149 100644 --- a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp @@ -62,7 +62,8 @@ QT_BEGIN_NAMESPACE \qmlclass AnimatedImage QDeclarativeAnimatedImage \inherits Image \since 4.7 - + \ingroup basic-visual-elements + The AnimatedImage element provides for playing animations stored as images containing a series of frames, such as GIF files. diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp index 4881248..e0c7fc2 100644 --- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp @@ -56,6 +56,7 @@ QT_BEGIN_NAMESPACE \brief The BorderImage element provides an image that can be used as a border. \inherits Item \since 4.7 + \ingroup qm-basic-visual-elements A BorderImage breaks an image into 9 sections, as shown below: diff --git a/src/declarative/graphicsitems/qdeclarativeevents.cpp b/src/declarative/graphicsitems/qdeclarativeevents.cpp index 81ec6e1..0a35a3f 100644 --- a/src/declarative/graphicsitems/qdeclarativeevents.cpp +++ b/src/declarative/graphicsitems/qdeclarativeevents.cpp @@ -45,6 +45,8 @@ QT_BEGIN_NAMESPACE /*! \qmlclass KeyEvent QDeclarativeKeyEvent \since 4.7 + \ingroup qml-event-elements + \brief The KeyEvent object provides information about a key event. For example, the following changes the Item's state property when the Enter @@ -115,6 +117,8 @@ Item { /*! \qmlclass MouseEvent QDeclarativeMouseEvent \since 4.7 + \ingroup qml-event-elements + \brief The MouseEvent object provides information about a mouse event. The position of the mouse can be found via the x and y properties. diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 19cabdd..31f7707 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -345,6 +345,8 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd() /*! \qmlclass Flickable QDeclarativeFlickable \since 4.7 + \ingroup qml-basic-interaction-elements + \brief The Flickable item provides a surface that can be "flicked". \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp index b266273..6ce0fa6 100644 --- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp @@ -70,6 +70,8 @@ public: /*! \qmlclass Flipable QDeclarativeFlipable \since 4.7 + \ingroup qml-basic-interaction-elements + \brief The Flipable item provides a surface that can be flipped. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp b/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp index bd60e25..5c7959a 100644 --- a/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp +++ b/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp @@ -51,6 +51,8 @@ QT_BEGIN_NAMESPACE /*! \qmlclass FocusPanel QDeclarativeFocusPanel \since 4.7 + \ingroup qml-basic-interaction-elements + \brief The FocusPanel item explicitly creates a focus panel. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativefocusscope.cpp b/src/declarative/graphicsitems/qdeclarativefocusscope.cpp index e8e6fa2..4498275 100644 --- a/src/declarative/graphicsitems/qdeclarativefocusscope.cpp +++ b/src/declarative/graphicsitems/qdeclarativefocusscope.cpp @@ -48,6 +48,8 @@ QT_BEGIN_NAMESPACE /*! \qmlclass FocusScope QDeclarativeFocusScope \since 4.7 + \ingroup qml-basic-interaction-elements + \brief The FocusScope object explicitly creates a focus scope. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index 68a4c64..d67e69a 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -1056,6 +1056,8 @@ void QDeclarativeGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal m /*! \qmlclass GridView QDeclarativeGridView \since 4.7 + \ingroup qml-view-elements + \inherits Flickable \brief The GridView item provides a grid view of items provided by a model. diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp index 37736cc..47a410c 100644 --- a/src/declarative/graphicsitems/qdeclarativeimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp @@ -51,6 +51,8 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Image QDeclarativeImage \since 4.7 + \ingroup qml-vasic-visual-elements + \brief The Image element allows you to add bitmaps to a scene. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index cc7c673..0f16a79 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -69,6 +69,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Transform QGraphicsTransform + \ingroup qml-transform-elements \since 4.7 \brief The Transform elements provide a way of building advanced transformations on Items. @@ -90,6 +91,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Translate QDeclarativeTranslate + \ingroup qml-transform-elements \since 4.7 \brief The Translate object provides a way to move an Item without changing its x or y properties. @@ -131,6 +133,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Scale QGraphicsScale + \ingroup qml-transform-elements \since 4.7 \brief The Scale element provides a way to scale an Item. @@ -172,6 +175,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Rotation QGraphicsRotation + \ingroup qml-transform-elements \since 4.7 \brief The Rotation object provides a way to rotate an Item. @@ -419,6 +423,7 @@ void QDeclarativeItemKeyFilter::componentComplete() /*! \qmlclass KeyNavigation QDeclarativeKeyNavigationAttached + \ingroup qml-basic-interaction-elements \since 4.7 \brief The KeyNavigation attached property supports key navigation by arrow keys. @@ -725,6 +730,7 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post) /*! \qmlclass Keys QDeclarativeKeysAttached + \ingroup qml-basic-interaction-elements \since 4.7 \brief The Keys attached property provides key handling to Items. @@ -1310,6 +1316,7 @@ QDeclarativeKeysAttached *QDeclarativeKeysAttached::qmlAttachedProperties(QObjec /*! \qmlclass Item QDeclarativeItem + \ingroup qml-basic-visual-elements \since 4.7 \brief The Item is the most basic of all visual items in QML. diff --git a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp index 38d5f59..8509473 100644 --- a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp @@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass LayoutItem QDeclarativeLayoutItem + \ingroup qml-utility-elements \since 4.7 \brief The LayoutItem element allows declarative UI elements to be placed inside Qt's Graphics View layouts. diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index e1dd1c0..ec1b6cf 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -1357,6 +1357,7 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m /*! \qmlclass ListView QDeclarativeListView + \ingroup qml-view-elements \since 4.7 \inherits Flickable \brief The ListView item provides a list view of items provided by a model. diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index d28181e..4c6268f 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -108,6 +108,7 @@ void QDeclarativeLoaderPrivate::initResize() /*! \qmlclass Loader QDeclarativeLoader + \ingroup qml-utility-elements \since 4.7 \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp index dcdb9f6..2823888 100644 --- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp +++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp @@ -180,6 +180,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate() /*! \qmlclass MouseArea QDeclarativeMouseArea + \ingroup qml-basic-interaction-elements \since 4.7 \brief The MouseArea item enables simple mouse handling. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp index c48011d3..62e03e7 100644 --- a/src/declarative/graphicsitems/qdeclarativepath.cpp +++ b/src/declarative/graphicsitems/qdeclarativepath.cpp @@ -51,6 +51,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass PathElement QDeclarativePathElement + \ingroup qml-view-elements \since 4.7 \brief PathElement is the base path type. @@ -67,6 +68,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Path QDeclarativePath + \ingroup qml-view-elements \since 4.7 \brief A Path object defines a path for use by \l PathView. @@ -497,6 +499,7 @@ void QDeclarativeCurve::setY(qreal y) /*! \qmlclass PathAttribute QDeclarativePathAttribute + \ingroup qml-view-elements \since 4.7 \brief The PathAttribute allows setting an attribute at a given position in a Path. @@ -587,6 +590,7 @@ void QDeclarativePathAttribute::setValue(qreal value) /*! \qmlclass PathLine QDeclarativePathLine + \ingroup qml-view-elements \since 4.7 \brief The PathLine defines a straight line. @@ -627,6 +631,7 @@ void QDeclarativePathLine::addToPath(QPainterPath &path) /*! \qmlclass PathQuad QDeclarativePathQuad + \ingroup qml-view-elements \since 4.7 \brief The PathQuad defines a quadratic Bezier curve with a control point. @@ -713,6 +718,7 @@ void QDeclarativePathQuad::addToPath(QPainterPath &path) /*! \qmlclass PathCubic QDeclarativePathCubic + \ingroup qml-view-elements \since 4.7 \brief The PathCubic defines a cubic Bezier curve with two control points. @@ -828,6 +834,7 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) /*! \qmlclass PathPercent QDeclarativePathPercent + \ingroup qml-view-elements \since 4.7 \brief The PathPercent manipulates the way a path is interpreted. diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 380c6ad..535fb90 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -326,6 +326,7 @@ void QDeclarativePathViewPrivate::regenerate() /*! \qmlclass PathView QDeclarativePathView + \ingroup qml-view-elements \since 4.7 \brief The PathView element lays out model-provided items on a path. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp index 179f13d..5c21b03 100644 --- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp +++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp @@ -310,6 +310,7 @@ static inline bool isInvisible(QDeclarativeItem *child) /*! \qmlclass Column QDeclarativeColumn + \ingroup qml-positioning-elements \since 4.7 \brief The Column item arranges its children vertically. \inherits Item @@ -475,6 +476,7 @@ void QDeclarativeColumn::reportConflictingAnchors() /*! \qmlclass Row QDeclarativeRow + \ingroup qml-positioning-elements \since 4.7 \brief The Row item arranges its children horizontally. \inherits Item @@ -613,6 +615,7 @@ void QDeclarativeRow::reportConflictingAnchors() /*! \qmlclass Grid QDeclarativeGrid + \ingroup qml-positioning-elements \since 4.7 \brief The Grid item positions its children in a grid. \inherits Item @@ -905,6 +908,7 @@ void QDeclarativeGrid::reportConflictingAnchors() /*! \qmlclass Flow QDeclarativeFlow + \ingroup qml-positioning-elements \since 4.7 \brief The Flow item arranges its children side by side, wrapping as necessary. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp index c49be46..5990c2d 100644 --- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp +++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp @@ -84,6 +84,7 @@ void QDeclarativePen::setWidth(int w) /*! \qmlclass GradientStop QDeclarativeGradientStop + \ingroup qml-basic-visual-elements \since 4.7 \brief The GradientStop item defines the color at a position in a Gradient @@ -105,6 +106,7 @@ void QDeclarativeGradientStop::updateGradient() /*! \qmlclass Gradient QDeclarativeGradient + \ingroup qml-basic-visual-elements \since 4.7 \brief The Gradient item defines a gradient fill. @@ -152,6 +154,7 @@ void QDeclarativeGradient::doUpdate() /*! \qmlclass Rectangle QDeclarativeRectangle + \ingroup qml-basic-visual-elements \since 4.7 \brief The Rectangle item allows you to add rectangles to a scene. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativerepeater.cpp b/src/declarative/graphicsitems/qdeclarativerepeater.cpp index 68e7e9a..8828d3e 100644 --- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp +++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp @@ -62,6 +62,7 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate() /*! \qmlclass Repeater QDeclarativeRepeater + \ingroup qml-utility-elements \since 4.7 \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index ab2be9c..fcd112e 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -162,7 +162,8 @@ QSet QTextDocumentWithImageResources::errors; /*! \qmlclass Text QDeclarativeText - \since 4.7 + \ingroup qml-basic-visual-elements + \since 4.7 \brief The Text item allows you to add formatted text to a scene. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 8117676..b8e8726 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -61,6 +61,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass TextEdit QDeclarativeTextEdit + \ingroup qml-basic-visual-elements \since 4.7 \brief The TextEdit item displays multiple lines of editable formatted text. \inherits Item diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 90f5a70..bd8d404 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -57,6 +57,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass TextInput QDeclarativeTextInput + \ingroup qml-basic-visual-elements \since 4.7 \brief The TextInput item displays an editable line of text. \inherits Item @@ -561,6 +562,7 @@ void QDeclarativeTextInput::setAutoScroll(bool b) /*! \qmlclass IntValidator QIntValidator + \ingroup qml-basic-visual-elements This element provides a validator for integer values. */ @@ -579,6 +581,7 @@ void QDeclarativeTextInput::setAutoScroll(bool b) /*! \qmlclass DoubleValidator QDoubleValidator + \ingroup qml-basic-visual-elements This element provides a validator for non-integer numbers. */ @@ -617,6 +620,7 @@ void QDeclarativeTextInput::setAutoScroll(bool b) /*! \qmlclass RegExpValidator QRegExpValidator + \ingroup qml-basic-visual-elements This element provides a validator, which counts as valid any string which matches a specified regular expression. diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index a489b5a..764676a 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -128,6 +128,7 @@ public: /*! \qmlclass VisualItemModel QDeclarativeVisualItemModel + \ingroup qml-working-with-data \since 4.7 \brief The VisualItemModel allows items to be provided to a view. @@ -644,6 +645,7 @@ QDeclarativeVisualDataModelData *QDeclarativeVisualDataModelPrivate::data(QObjec /*! \qmlclass VisualDataModel QDeclarativeVisualDataModel + \ingroup qml-working-with-data \brief The VisualDataModel encapsulates a model and delegate A VisualDataModel encapsulates a model and the delegate that will diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 5f4a063..73689fc 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -104,6 +104,7 @@ class QByteArray; /*! \qmlclass Component QDeclarativeComponent + \ingroup qml-utility-elements \since 4.7 \brief The Component element encapsulates a QML component definition. diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index de79e4d..1061c03 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -114,6 +114,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass QtObject QObject + \ingroup qml-utility-elements \since 4.7 \brief The QtObject element is the most basic element in QML. @@ -185,6 +186,7 @@ void QDeclarativeEnginePrivate::defineModule() /*! \qmlclass QML:Qt QDeclarativeEnginePrivate + \ingroup qml-utility-elements \brief The QML global Qt object provides useful enums and functions from Qt. \keyword QmlGlobalQtObject diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index aec84a6..789116e 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -514,6 +514,7 @@ void QDeclarativeWorkerScriptEngine::run() /*! \qmlclass WorkerScript QDeclarativeWorkerScript + \ingroup qml-utility-elements \brief The WorkerScript element enables the use of threads in QML. Use WorkerScript to run operations in a new thread. diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index 2fca09d..3b8cb37 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -74,6 +74,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Animation QDeclarativeAbstractAnimation + \ingroup qml-animation-transition \since 4.7 \brief The Animation element is the base of all QML animations. @@ -554,6 +555,7 @@ void QDeclarativeAbstractAnimation::timelineComplete() /*! \qmlclass PauseAnimation QDeclarativePauseAnimation + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The PauseAnimation element provides a pause for an animation. @@ -630,6 +632,7 @@ QAbstractAnimation *QDeclarativePauseAnimation::qtAnimation() /*! \qmlclass ColorAnimation QDeclarativeColorAnimation + \ingroup qml-animation-transition \since 4.7 \inherits PropertyAnimation \brief The ColorAnimation element animates changes in color values. @@ -730,6 +733,7 @@ void QDeclarativeColorAnimation::setTo(const QColor &t) /*! \qmlclass ScriptAction QDeclarativeScriptAction + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The ScriptAction element allows scripts to be run during an animation. @@ -878,6 +882,7 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation() /*! \qmlclass PropertyAction QDeclarativePropertyAction + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The PropertyAction element allows immediate property changes during animation. @@ -1129,6 +1134,7 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions, /*! \qmlclass NumberAnimation QDeclarativeNumberAnimation + \ingroup qml-animation-transition \since 4.7 \inherits PropertyAnimation \brief The NumberAnimation element animates changes in qreal-type values. @@ -1238,6 +1244,7 @@ void QDeclarativeNumberAnimation::setTo(qreal t) /*! \qmlclass Vector3dAnimation QDeclarativeVector3dAnimation + \ingroup qml-animation-transition \since 4.7 \inherits PropertyAnimation \brief The Vector3dAnimation element animates changes in QVector3d values. @@ -1311,6 +1318,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) /*! \qmlclass RotationAnimation QDeclarativeRotationAnimation + \ingroup qml-animation-transition \since 4.7 \inherits PropertyAnimation \brief The RotationAnimation element animates changes in rotation values. @@ -1540,6 +1548,7 @@ QDeclarativeListProperty QDeclarativeAnimationGro /*! \qmlclass SequentialAnimation QDeclarativeSequentialAnimation + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The SequentialAnimation element allows animations to be run sequentially. @@ -1613,6 +1622,7 @@ void QDeclarativeSequentialAnimation::transition(QDeclarativeStateActions &actio /*! \qmlclass ParallelAnimation QDeclarativeParallelAnimation + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The ParallelAnimation element allows animations to be run in parallel. @@ -1731,6 +1741,7 @@ void QDeclarativePropertyAnimationPrivate::convertVariant(QVariant &variant, int /*! \qmlclass PropertyAnimation QDeclarativePropertyAnimation + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The PropertyAnimation element animates changes in property values. @@ -2400,6 +2411,7 @@ void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions /*! \qmlclass ParentAnimation QDeclarativeParentAnimation + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The ParentAnimation element animates changes in parent values. @@ -2759,6 +2771,7 @@ QAbstractAnimation *QDeclarativeParentAnimation::qtAnimation() /*! \qmlclass AnchorAnimation QDeclarativeAnchorAnimation + \ingroup qml-animation-transition \since 4.7 \inherits Animation \brief The AnchorAnimation element animates changes in anchor values. diff --git a/src/declarative/util/qdeclarativebehavior.cpp b/src/declarative/util/qdeclarativebehavior.cpp index 1e7f81a..f1b6f9a 100644 --- a/src/declarative/util/qdeclarativebehavior.cpp +++ b/src/declarative/util/qdeclarativebehavior.cpp @@ -72,6 +72,7 @@ public: /*! \qmlclass Behavior QDeclarativeBehavior + \ingroup qml-animation-transition \since 4.7 \brief The Behavior element allows you to specify a default animation for a property change. diff --git a/src/declarative/util/qdeclarativebind.cpp b/src/declarative/util/qdeclarativebind.cpp index 5fab631..86d08f5 100644 --- a/src/declarative/util/qdeclarativebind.cpp +++ b/src/declarative/util/qdeclarativebind.cpp @@ -72,6 +72,7 @@ public: /*! \qmlclass Binding QDeclarativeBind + \ingroup qml-working-with-data \since 4.7 \brief The Binding element allows arbitrary property bindings to be created. diff --git a/src/declarative/util/qdeclarativeconnections.cpp b/src/declarative/util/qdeclarativeconnections.cpp index b364821..293928e 100644 --- a/src/declarative/util/qdeclarativeconnections.cpp +++ b/src/declarative/util/qdeclarativeconnections.cpp @@ -71,6 +71,7 @@ public: /*! \qmlclass Connections QDeclarativeConnections + \ingroup qml-utility-elements \since 4.7 \brief A Connections element describes generalized connections to signals. diff --git a/src/declarative/util/qdeclarativefontloader.cpp b/src/declarative/util/qdeclarativefontloader.cpp index 83bdb17..291583c 100644 --- a/src/declarative/util/qdeclarativefontloader.cpp +++ b/src/declarative/util/qdeclarativefontloader.cpp @@ -78,6 +78,7 @@ public: /*! \qmlclass FontLoader QDeclarativeFontLoader + \ingroup qml-utility-elements \since 4.7 \brief The FontLoader element allows fonts to be loaded by name or URL. diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp index 20fe3a9..1f66f0f 100644 --- a/src/declarative/util/qdeclarativelistmodel.cpp +++ b/src/declarative/util/qdeclarativelistmodel.cpp @@ -68,6 +68,7 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM /*! \qmlclass ListModel QDeclarativeListModel + \ingroup qml-working-with-data \since 4.7 \brief The ListModel element defines a free-form list data source. @@ -129,7 +130,7 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM \snippet examples/declarative/threading/threadedlistmodel/dataloader.js 0 - The application's \tt Timer object periodically sends a message to the +working-with-data worker script by calling \l WorkerScript::sendMessage(). When this message is received, \l {WorkerScript::onMessage}{WorkerScript.onMessage()} is invoked in \tt dataloader.js, which appends the current time to the list model. @@ -769,6 +770,7 @@ bool QDeclarativeListModelParser::definesEmptyList(const QString &s) /*! \qmlclass ListElement + \ingroup qml-working-with-data \since 4.7 \brief The ListElement element defines a data item in a ListModel. diff --git a/src/declarative/util/qdeclarativepackage.cpp b/src/declarative/util/qdeclarativepackage.cpp index 1a4f2a7..a5ec9b3 100644 --- a/src/declarative/util/qdeclarativepackage.cpp +++ b/src/declarative/util/qdeclarativepackage.cpp @@ -48,6 +48,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Package QDeclarativePackage + \ingroup qml-working-with-data \brief Package provides a collection of named items. The Package class is used in conjunction with diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp index 12c6353..25edd35 100644 --- a/src/declarative/util/qdeclarativepropertychanges.cpp +++ b/src/declarative/util/qdeclarativepropertychanges.cpp @@ -61,6 +61,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass PropertyChanges QDeclarativePropertyChanges + \ingroup qml-state-elements \since 4.7 \brief The PropertyChanges element describes new property bindings or values for a state. diff --git a/src/declarative/util/qdeclarativesmoothedanimation.cpp b/src/declarative/util/qdeclarativesmoothedanimation.cpp index 30e1491..b2f02e6 100644 --- a/src/declarative/util/qdeclarativesmoothedanimation.cpp +++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp @@ -249,6 +249,7 @@ void QSmoothedAnimation::init() /*! \qmlclass SmoothedAnimation QDeclarativeSmoothedAnimation + \ingroup qml-animation-transition \since 4.7 \inherits NumberAnimation \brief The SmoothedAnimation element allows a property to smoothly track a value. diff --git a/src/declarative/util/qdeclarativespringanimation.cpp b/src/declarative/util/qdeclarativespringanimation.cpp index 6f4ac51..fce4097 100644 --- a/src/declarative/util/qdeclarativespringanimation.cpp +++ b/src/declarative/util/qdeclarativespringanimation.cpp @@ -228,6 +228,7 @@ void QDeclarativeSpringAnimationPrivate::updateMode() /*! \qmlclass SpringAnimation QDeclarativeSpringAnimation + \ingroup qml-animation-transition \inherits Animation \since 4.7 diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp index 028bacb..6e17cf2 100644 --- a/src/declarative/util/qdeclarativestate.cpp +++ b/src/declarative/util/qdeclarativestate.cpp @@ -133,6 +133,7 @@ QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObje /*! \qmlclass State QDeclarativeState + \ingroup qml-state-elements \since 4.7 \brief The State element defines configurations of objects and properties. diff --git a/src/declarative/util/qdeclarativestategroup.cpp b/src/declarative/util/qdeclarativestategroup.cpp index 1c1e964..fc90baa 100644 --- a/src/declarative/util/qdeclarativestategroup.cpp +++ b/src/declarative/util/qdeclarativestategroup.cpp @@ -88,6 +88,7 @@ public: /*! \qmlclass StateGroup QDeclarativeStateGroup + \ingroup qml-state-elements \since 4.7 \brief The StateGroup element provides state support for non-Item elements. diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp index 2291c16..6e6f0cb 100644 --- a/src/declarative/util/qdeclarativestateoperations.cpp +++ b/src/declarative/util/qdeclarativestateoperations.cpp @@ -161,6 +161,7 @@ void QDeclarativeParentChangePrivate::doChange(QDeclarativeItem *targetParent, Q /*! \preliminary \qmlclass ParentChange QDeclarativeParentChange + \ingroup qml-state-elements \brief The ParentChange element allows you to reparent an Item in a state change. ParentChange reparents an item while preserving its visual appearance (position, size, @@ -589,6 +590,7 @@ public: /*! \qmlclass StateChangeScript QDeclarativeStateChangeScript + \ingroup qml-state-elements \brief The StateChangeScript element allows you to run a script in a state. A StateChangeScript is run upon entering a state. You can optionally use @@ -693,6 +695,7 @@ QString QDeclarativeStateChangeScript::typeName() const /*! \qmlclass AnchorChanges QDeclarativeAnchorChanges + \ingroup qml-state-elements \brief The AnchorChanges element allows you to change the anchors of an item in a state. The AnchorChanges element is used to modify the anchors of an item in a \l State. diff --git a/src/declarative/util/qdeclarativesystempalette.cpp b/src/declarative/util/qdeclarativesystempalette.cpp index c334859..7b80736 100644 --- a/src/declarative/util/qdeclarativesystempalette.cpp +++ b/src/declarative/util/qdeclarativesystempalette.cpp @@ -58,6 +58,7 @@ public: /*! \qmlclass SystemPalette QDeclarativeSystemPalette + \ingroup qml-utility-elements \since 4.7 \brief The SystemPalette element provides access to the Qt palettes. diff --git a/src/declarative/util/qdeclarativetimer.cpp b/src/declarative/util/qdeclarativetimer.cpp index 838a8f3..56320e6 100644 --- a/src/declarative/util/qdeclarativetimer.cpp +++ b/src/declarative/util/qdeclarativetimer.cpp @@ -70,6 +70,7 @@ public: /*! \qmlclass Timer QDeclarativeTimer + \ingroup qml-utility-elements \since 4.7 \brief The Timer item triggers a handler at a specified interval. diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp index aa1426c..21d7ded 100644 --- a/src/declarative/util/qdeclarativetransition.cpp +++ b/src/declarative/util/qdeclarativetransition.cpp @@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass Transition QDeclarativeTransition + \ingroup qml-animation-transition \since 4.7 \brief The Transition element defines animated transitions that occur on state changes. diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp index 8bd829e..7b3d4a8 100644 --- a/src/declarative/util/qdeclarativexmllistmodel.cpp +++ b/src/declarative/util/qdeclarativexmllistmodel.cpp @@ -72,6 +72,7 @@ typedef QPair QDeclarativeXmlListRange; /*! \qmlclass XmlRole QDeclarativeXmlListModelRole + \ingroup qml-working-with-data \since 4.7 \brief The XmlRole element allows you to specify a role for an XmlListModel. @@ -505,6 +506,7 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListPropertyroot()); findAllFunctions(tree->root()); findAllLegaleseTexts(tree->root()); @@ -751,6 +752,9 @@ int DitaXmlGenerator::generateAtom(const Atom *atom, else if (atom->string() == "classes") { generateCompactList(relative, marker, nonCompatClasses, true); } + else if (atom->string() == "qmlclasses") { + generateCompactList(relative, marker, qmlClasses, true); + } else if (atom->string().contains("classesbymodule")) { QString arg = atom->string().trimmed(); QString moduleName = atom->string().mid(atom->string().indexOf( @@ -3675,6 +3679,12 @@ void DitaXmlGenerator::findAllClasses(const InnerNode *node) if (!serviceName.isEmpty()) serviceClasses.insert(serviceName, *c); } + else if ((*c)->type() == Node::Fake && + (*c)->subType() == Node::QmlClass && + !(*c)->doc().isEmpty()) { + QString qmlClassName = (*c)->name(); + qmlClasses.insert(qmlClassName,*c); + } else if ((*c)->isInnerNode()) { findAllClasses(static_cast(*c)); } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 4603a40..50f8b56 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -376,6 +376,7 @@ void HtmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) funcIndex.clear(); legaleseTexts.clear(); serviceClasses.clear(); + qmlClasses.clear(); findAllClasses(tree->root()); findAllFunctions(tree->root()); findAllLegaleseTexts(tree->root()); @@ -611,6 +612,9 @@ int HtmlGenerator::generateAtom(const Atom *atom, else if (atom->string() == "classes") { generateCompactList(relative, marker, nonCompatClasses, true); } + else if (atom->string() == "qmlclasses") { + generateCompactList(relative, marker, qmlClasses, true); + } else if (atom->string().contains("classesbymodule")) { QString arg = atom->string().trimmed(); QString moduleName = atom->string().mid(atom->string().indexOf( @@ -3707,6 +3711,12 @@ void HtmlGenerator::findAllClasses(const InnerNode *node) if (!serviceName.isEmpty()) serviceClasses.insert(serviceName, *c); } + else if ((*c)->type() == Node::Fake && + (*c)->subType() == Node::QmlClass && + !(*c)->doc().isEmpty()) { + QString qmlClassName = (*c)->name(); + qmlClasses.insert(qmlClassName,*c); + } else if ((*c)->isInnerNode()) { findAllClasses(static_cast(*c)); } diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index eab10c6..d885ada 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -330,6 +330,7 @@ class HtmlGenerator : public PageGenerator NodeMap obsoleteClasses; NodeMap namespaceIndex; NodeMap serviceClasses; + NodeMap qmlClasses; QMap funcIndex; QMap legaleseTexts; NewSinceMaps newSinceMaps; -- cgit v0.12 From 0fb9e0fff4097bf0b84ff217526b0a9c33b69414 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Fri, 13 Aug 2010 20:57:07 +0200 Subject: Implement the general blending of ARGB32_pm with SSSE3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SSSE3 provides two tools to improve the blending speed over SSE2: -palignr -byte permutation The alignement is enforced on src and dst with palignr to always make aligned access. The extraction of the alpha mask is done with a byte permutation in order to save two instructions per cycle. On Atom, this patch gives between 0% (aligned src) to 10% of improvement (unaligned 4 and 12 bytes). On Core 2, this patch gives consistently 8% to 10% of improvement for every miss-alignment. Reviewed-by: Samuel Rødal --- src/gui/painting/painting.pri | 1 + src/gui/painting/qdrawhelper.cpp | 11 ++ src/gui/painting/qdrawhelper_ssse3.cpp | 263 +++++++++++++++++++++++++ tests/benchmarks/gui/image/blendbench/main.cpp | 43 ++++ 4 files changed, 318 insertions(+) create mode 100644 src/gui/painting/qdrawhelper_ssse3.cpp diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index dfa4a48..793d380 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -212,6 +212,7 @@ if(mmx|3dnow|sse|sse2|iwmmxt) { SSE3DNOW_SOURCES += painting/qdrawhelper_sse3dnow.cpp SSE_SOURCES += painting/qdrawhelper_sse.cpp SSE2_SOURCES += painting/qdrawhelper_sse2.cpp + SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp } diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 1ff3d7b..276da93 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -7840,6 +7840,17 @@ void qInitDrawhelperAsm() qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2; qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2; qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2; + +#if defined(QT_HAVE_SSSE3) + if (features & SSSE3) { + extern void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl, + const uchar *srcPixels, int sbpl, + int w, int h, + int const_alpha); + qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3; + qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3; + } +#endif // QT_HAVE_SSSE3 } else #endif { diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp new file mode 100644 index 0000000..bc4a7eb8 --- /dev/null +++ b/src/gui/painting/qdrawhelper_ssse3.cpp @@ -0,0 +1,263 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#ifdef QT_HAVE_SSSE3 + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +inline static void blend_pixel(quint32 &dst, const quint32 src) +{ + if (src >= 0xff000000) + dst = src; + else if (src != 0) + dst = src + BYTE_MUL(dst, qAlpha(~src)); +} + + +/* The instruction palignr uses direct arguments, so we have to generate the code fo the different + shift (4, 8, 12). Checking the alignment inside the loop is unfortunatelly way too slow. + */ +#define BLENDING_LOOP(palignrOffset, length)\ + for (; x < length-3; x += 4) { \ + const __m128i srcVectorLastLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes + 4]);\ + const __m128i srcVector = _mm_alignr_epi8(srcVectorLastLoaded, srcVectorPrevLoaded, palignrOffset); \ + const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \ + if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \ + _mm_store_si128((__m128i *)&dst[x], srcVector); \ + } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \ + __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \ + alphaChannel = _mm_sub_epi16(one, alphaChannel); \ + const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \ + __m128i destMultipliedByOneMinusAlpha; \ + BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \ + const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \ + _mm_store_si128((__m128i *)&dst[x], result); \ + } \ + srcVectorPrevLoaded = srcVectorLastLoaded;\ + } + + +#define BLEND_SOURCE_OVER_ARGB32_FIRST_ROW_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \ + int x = 0; \ +\ + /* First, get dst aligned. */ \ + const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast(dst) >> 2) & 0x3)) & 0x3;\ + const int prologLength = qMin(length, offsetToAlignOn16Bytes);\ +\ + for (; x < prologLength; ++x) {\ + blend_pixel(dst[x], src[x]); \ + } \ +\ + const int minusOffsetToAlignSrcOn16Bytes = (reinterpret_cast(&(src[x])) >> 2) & 0x3;\ +\ + if (!minusOffsetToAlignSrcOn16Bytes) {\ + /* src is aligned, usual algorithm but with aligned operations.\ + See the SSE2 version for more documentation on the algorithm itself. */\ + const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\ + for (; x < length-3; x += 4) { \ + const __m128i srcVector = _mm_load_si128((__m128i *)&src[x]); \ + const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \ + if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \ + _mm_store_si128((__m128i *)&dst[x], srcVector); \ + } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \ + __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \ + alphaChannel = _mm_sub_epi16(one, alphaChannel); \ + const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \ + __m128i destMultipliedByOneMinusAlpha; \ + BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \ + const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \ + _mm_store_si128((__m128i *)&dst[x], result); \ + } \ + } /* end for() */\ + } else if ((length - x) >= 8) {\ + /* We are at the first line, so "x - minusOffsetToAlignSrcOn16Bytes" could go before src, and\ + generate an invalid access. */\ +\ + /* We use two vectors to extract the src: prevLoaded for the first pixels, lastLoaded for the current pixels. */\ + __m128i srcVectorPrevLoaded;\ + if (minusOffsetToAlignSrcOn16Bytes <= prologLength) {\ + srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\ + } else {\ + quint32 temp[4] Q_DECL_ALIGN(16);\ + switch (prologLength) {\ + case 3:\ + temp[1] = src[x - 3];\ + case 2:\ + temp[2] = src[x - 2];\ + case 1:\ + temp[3] = src[x - 1];\ + default:\ + break;\ + }\ + srcVectorPrevLoaded = _mm_load_si128((__m128i *)temp);\ + }\ + const int palignrOffset = minusOffsetToAlignSrcOn16Bytes << 2;\ +\ + const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\ + switch (palignrOffset) {\ + case 4:\ + BLENDING_LOOP(4, length)\ + break;\ + case 8:\ + BLENDING_LOOP(8, length)\ + break;\ + case 12:\ + BLENDING_LOOP(12, length)\ + break;\ + }\ + }\ + for (; x < length; ++x) \ + blend_pixel(dst[x], src[x]); \ +} + +// Basically blend src over dst with the const alpha defined as constAlphaVector. +// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as: +//const __m128i nullVector = _mm_set1_epi32(0); +//const __m128i half = _mm_set1_epi16(0x80); +//const __m128i one = _mm_set1_epi16(0xff); +//const __m128i colorMask = _mm_set1_epi32(0x00ff00ff); +//const __m128i alphaMask = _mm_set1_epi32(0xff000000); +// +// The computation being done is: +// result = s + d * (1-alpha) +// with shortcuts if fully opaque or fully transparent. +#define BLEND_SOURCE_OVER_ARGB32_MAIN_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \ + int x = 0; \ +\ + /* First, get dst aligned. */ \ + ALIGNMENT_PROLOGUE_16BYTES(dst, x, length) { \ + blend_pixel(dst[x], src[x]); \ + } \ +\ + const int minusOffsetToAlignSrcOn16Bytes = (reinterpret_cast(&(src[x])) >> 2) & 0x3;\ +\ + if (!minusOffsetToAlignSrcOn16Bytes) {\ + /* src is aligned, usual algorithm but with aligned operations.\ + See the SSE2 version for more documentation on the algorithm itself. */\ + const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\ + for (; x < length-3; x += 4) { \ + const __m128i srcVector = _mm_load_si128((__m128i *)&src[x]); \ + const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \ + if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \ + _mm_store_si128((__m128i *)&dst[x], srcVector); \ + } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \ + __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \ + alphaChannel = _mm_sub_epi16(one, alphaChannel); \ + const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \ + __m128i destMultipliedByOneMinusAlpha; \ + BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \ + const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \ + _mm_store_si128((__m128i *)&dst[x], result); \ + } \ + } /* end for() */\ + } else if ((length - x) >= 8) {\ + /* We use two vectors to extract the src: prevLoaded for the first pixels, lastLoaded for the current pixels. */\ + __m128i srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\ + const int palignrOffset = minusOffsetToAlignSrcOn16Bytes << 2;\ +\ + const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\ + switch (palignrOffset) {\ + case 4:\ + BLENDING_LOOP(4, length)\ + break;\ + case 8:\ + BLENDING_LOOP(8, length)\ + break;\ + case 12:\ + BLENDING_LOOP(12, length)\ + break;\ + }\ + }\ + for (; x < length; ++x) \ + blend_pixel(dst[x], src[x]); \ +} + +void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl, + const uchar *srcPixels, int sbpl, + int w, int h, + int const_alpha) +{ + const quint32 *src = (const quint32 *) srcPixels; + quint32 *dst = (quint32 *) destPixels; + if (const_alpha == 256) { + const __m128i alphaMask = _mm_set1_epi32(0xff000000); + const __m128i nullVector = _mm_setzero_si128(); + const __m128i half = _mm_set1_epi16(0x80); + const __m128i one = _mm_set1_epi16(0xff); + const __m128i colorMask = _mm_set1_epi32(0x00ff00ff); + + // We have to unrol the first row in order to deal with the load on unaligned data + // prior to the src pointer. + BLEND_SOURCE_OVER_ARGB32_FIRST_ROW_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask); + dst = (quint32 *)(((uchar *) dst) + dbpl); + src = (const quint32 *)(((const uchar *) src) + sbpl); + + for (int y = 1; y < h; ++y) { + BLEND_SOURCE_OVER_ARGB32_MAIN_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask); + dst = (quint32 *)(((uchar *) dst) + dbpl); + src = (const quint32 *)(((const uchar *) src) + sbpl); + } + } else if (const_alpha != 0) { + // dest = (s + d * sia) * ca + d * cia + // = s * ca + d * (sia * ca + cia) + // = s * ca + d * (1 - sa*ca) + const_alpha = (const_alpha * 255) >> 8; + const __m128i nullVector = _mm_setzero_si128(); + const __m128i half = _mm_set1_epi16(0x80); + const __m128i one = _mm_set1_epi16(0xff); + const __m128i colorMask = _mm_set1_epi32(0x00ff00ff); + const __m128i constAlphaVector = _mm_set1_epi16(const_alpha); + for (int y = 0; y < h; ++y) { + BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, w, nullVector, half, one, colorMask, constAlphaVector) + dst = (quint32 *)(((uchar *) dst) + dbpl); + src = (const quint32 *)(((const uchar *) src) + sbpl); + } + } +} + +QT_END_NAMESPACE + +#endif // QT_HAVE_SSSE3 diff --git a/tests/benchmarks/gui/image/blendbench/main.cpp b/tests/benchmarks/gui/image/blendbench/main.cpp index f53654b..d420d6c 100644 --- a/tests/benchmarks/gui/image/blendbench/main.cpp +++ b/tests/benchmarks/gui/image/blendbench/main.cpp @@ -106,6 +106,9 @@ private slots: void blendBenchAlpha_data(); void blendBenchAlpha(); + + void unalignedBlendArgb32_data(); + void unalignedBlendArgb32(); }; void BlendBench::blendBench_data() @@ -179,6 +182,46 @@ void BlendBench::blendBenchAlpha() } } +void BlendBench::unalignedBlendArgb32_data() +{ + // The performance of blending can depend of the alignment of the data + // on 16 bytes. Some SIMD instruction set have significantly better + // memory access when the memory is aligned on 16 bytes boundary. + + // offset in 32 bits words + QTest::addColumn("offset"); + QTest::newRow("aligned on 16 bytes") << 0; + QTest::newRow("unaligned by 4 bytes") << 1; + QTest::newRow("unaligned by 8 bytes") << 2; + QTest::newRow("unaligned by 12 bytes") << 3; +} + +void BlendBench::unalignedBlendArgb32() +{ + const int dimension = 1024; + + // We use dst aligned by design. We don't want to test all the combination of alignemnt for src and dst. + // Moreover, it make sense for us to align dst in the implementation because it is accessed more often. + uchar *dstMemory = static_cast(qMallocAligned((dimension * dimension * sizeof(quint32)), 16)); + QImage destination(dstMemory, dimension, dimension, QImage::Format_ARGB32_Premultiplied); + destination.fill(0x12345678); // avoid special cases of alpha + + uchar *srcMemory = static_cast(qMallocAligned((dimension * dimension * sizeof(quint32)) + 16, 16)); + QFETCH(int, offset); + srcMemory += (offset * sizeof(quint32)); + + QImage src(srcMemory, dimension, dimension, QImage::Format_ARGB32_Premultiplied); + src.fill(0x87654321); + + QPainter painter(&destination); + QBENCHMARK { + painter.drawImage(QPoint(), src); + } + + qFreeAligned(srcMemory); + qFreeAligned(dstMemory); +} + QTEST_MAIN(BlendBench) #include "main.moc" -- cgit v0.12 From 34eb6cb58629c58b819d4c82b582106513da03bd Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 16 Aug 2010 17:35:17 +0200 Subject: diagramscene example: fix leak and crashes. In MainWindow::deleteItem, if there is arrow selected, we need to clean up the items from this arrow. We need to delete them first so there is no arrow in the list anymore when we calls removeArrows (which before, deleted arrow that were possibly in the list, resulting in crashes) Also avoid leak by giving parents to objects that needs it, and destroying items. Reviewed-by: Geir Vattekar Task-number: QTBUG-12753 Merge-request: 775 Reviewed-by: Liang Qi --- doc/src/examples/diagramscene.qdoc | 3 ++- examples/graphicsview/diagramscene/mainwindow.cpp | 29 ++++++++++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/doc/src/examples/diagramscene.qdoc b/doc/src/examples/diagramscene.qdoc index f4d6b0d..7c643c2 100644 --- a/doc/src/examples/diagramscene.qdoc +++ b/doc/src/examples/diagramscene.qdoc @@ -265,7 +265,8 @@ \snippet examples/graphicsview/diagramscene/mainwindow.cpp 3 - This slot deletes the selected item, if any, from the scene. If + This slot deletes the selected item, if any, from the scene. It + deletes the arrows first in order to avoid to delete them twice. If the item to be deleted is a \c DiagramItem, we also need to delete arrows connected to it; we don't want arrows in the scene that aren't connected to items in both ends. diff --git a/examples/graphicsview/diagramscene/mainwindow.cpp b/examples/graphicsview/diagramscene/mainwindow.cpp index f09c552..7d82df0 100644 --- a/examples/graphicsview/diagramscene/mainwindow.cpp +++ b/examples/graphicsview/diagramscene/mainwindow.cpp @@ -45,6 +45,7 @@ #include "diagramitem.h" #include "diagramscene.h" #include "diagramtextitem.h" +#include "arrow.h" const int InsertTextButton = 10; @@ -55,7 +56,7 @@ MainWindow::MainWindow() createToolBox(); createMenus(); - scene = new DiagramScene(itemMenu); + scene = new DiagramScene(itemMenu, this); scene->setSceneRect(QRectF(0, 0, 5000, 5000)); connect(scene, SIGNAL(itemInserted(DiagramItem*)), this, SLOT(itemInserted(DiagramItem*))); @@ -123,11 +124,22 @@ void MainWindow::buttonGroupClicked(int id) void MainWindow::deleteItem() { foreach (QGraphicsItem *item, scene->selectedItems()) { - if (item->type() == DiagramItem::Type) { - qgraphicsitem_cast(item)->removeArrows(); + if (item->type() == Arrow::Type) { + scene->removeItem(item); + Arrow *arrow = qgraphicsitem_cast(item); + arrow->startItem()->removeArrow(arrow); + arrow->endItem()->removeArrow(arrow); + delete item; } - scene->removeItem(item); } + + foreach (QGraphicsItem *item, scene->selectedItems()) { + if (item->type() == DiagramItem::Type) { + qgraphicsitem_cast(item)->removeArrows(); + } + scene->removeItem(item); + delete item; + } } //! [3] @@ -313,7 +325,7 @@ void MainWindow::about() //! [21] void MainWindow::createToolBox() { - buttonGroup = new QButtonGroup; + buttonGroup = new QButtonGroup(this); buttonGroup->setExclusive(false); connect(buttonGroup, SIGNAL(buttonClicked(int)), this, SLOT(buttonGroupClicked(int))); @@ -345,7 +357,7 @@ void MainWindow::createToolBox() QWidget *itemWidget = new QWidget; itemWidget->setLayout(layout); - backgroundButtonGroup = new QButtonGroup; + backgroundButtonGroup = new QButtonGroup(this); connect(backgroundButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(backgroundButtonGroupClicked(QAbstractButton*))); @@ -460,7 +472,6 @@ void MainWindow::createToolbars() editToolBar->addAction(sendBackAction); fontCombo = new QFontComboBox(); - fontSizeCombo = new QComboBox(); connect(fontCombo, SIGNAL(currentFontChanged(QFont)), this, SLOT(currentFontChanged(QFont))); @@ -526,7 +537,7 @@ void MainWindow::createToolbars() linePointerButton->setCheckable(true); linePointerButton->setIcon(QIcon(":/images/linepointer.png")); - pointerTypeGroup = new QButtonGroup; + pointerTypeGroup = new QButtonGroup(this); pointerTypeGroup->addButton(pointerButton, int(DiagramScene::MoveItem)); pointerTypeGroup->addButton(linePointerButton, int(DiagramScene::InsertLine)); @@ -605,7 +616,7 @@ QMenu *MainWindow::createColorMenu(const char *slot, QColor defaultColor) names << tr("black") << tr("white") << tr("red") << tr("blue") << tr("yellow"); - QMenu *colorMenu = new QMenu; + QMenu *colorMenu = new QMenu(this); for (int i = 0; i < colors.count(); ++i) { QAction *action = new QAction(names.at(i), this); action->setData(colors.at(i)); -- cgit v0.12 From 5b47a913473802d377ec303b425eb1ad0496f843 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Mon, 16 Aug 2010 17:35:19 +0200 Subject: Translate bughowto.qdoc into zh_CN. Merge-request: 775 Reviewed-by: Liang Qi --- doc/src/zh_CN/bughowto.qdoc | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 doc/src/zh_CN/bughowto.qdoc diff --git a/doc/src/zh_CN/bughowto.qdoc b/doc/src/zh_CN/bughowto.qdoc new file mode 100644 index 0000000..05c8403 --- /dev/null +++ b/doc/src/zh_CN/bughowto.qdoc @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in a +** written agreement between you and Nokia. +** +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of this +** file. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page bughowto.html + \title 如何报告 Bug + \brief 关于报告 Qt 中 bug 方法的信息。 + + 如果您认为您已经发现了 Qt 的一个 bug,我们非常高兴听到这个消息,因为在此之后我们可以修复它。 + + 在报告 bug 之前,请检查 Qt 网站中的 \l{FAQs}{FAQ}、\l{Platform Notes}{平台备注}和 \l{Qt Bug Tracker}{Qt Bug 跟踪器}确认这个问题是否已知。 + + 如果您还没有 \l{Qt Bug Tracker}{Qt Bug 跟踪器}的帐号,您要做的第一件事情就是注册一个。一旦您完成了这一步,您就可以提交并且跟踪您的 bug 报告,而且在您提交之后,公众就可以看到它们。 + + 请在您的 bug 报告中包含以下信息: + + \list 1 + \o 您的编译器的名称和版本号 + \o 您的操作系统的名称和版本号 + \o 您所使用的 Qt 的版本号,以及它在被编译的时候所使用的配置选项 + \o 关于如何重复这个问题的可靠并且清晰的描述 + \endlist + + 如果可能,请提供一个使用 QtTest 模块编写的测试程序,因为这样做可以加快我们重现您的这个问题的进程,并且可以让开发人员更有效率的确认这个问题。 + + 另外,如果您的问题只是在运行时可见,请尽量创建一个可以运行并且显示这个问题的小测试程序。通常,您可以在众多 Qt 实例中选择一个进行少量修改就可以实现这一目的。 + + 如果您已经实现了一个 bug 修复并且希望直接贡献这个修复,那么您需要通过\l{Public Qt Repository}{公共 Qt 代码仓库}来实现。 +*/ -- cgit v0.12 From 3e07671a2b043703bc51c2672f16c45ed0c31c42 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Fri, 13 Aug 2010 18:12:30 +0200 Subject: Keyboard navigation regression in QTreeView Ammends commit 8da7252de0badb818302763cbe62c38ad699f1f3 Auto-test included. Reviewed-by: Olivier Task-number: QTBUG-11466 --- src/gui/itemviews/qabstractitemview.cpp | 8 +- tests/auto/qtreeview/tst_qtreeview.cpp | 125 ++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 3 deletions(-) diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 97499f3..4ffd284 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -2270,9 +2270,11 @@ void QAbstractItemView::keyPressEvent(QKeyEvent *event) } else { d->selectionModel->setCurrentIndex(newCurrent, command); d->pressedPosition = visualRect(newCurrent).center() + d->offset(); - // We copy the same behaviour as for mousePressEvent(). - QRect rect(d->pressedPosition - d->offset(), QSize(1, 1)); - setSelection(rect, command); + if (newCurrent.isValid()) { + // We copy the same behaviour as for mousePressEvent(). + QRect rect(d->pressedPosition - d->offset(), QSize(1, 1)); + setSelection(rect, command); + } } event->accept(); return; diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index 75a4c62..7e2e800 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -239,6 +239,7 @@ private slots: void doubleClickedWithSpans(); void taskQTBUG_6450_selectAllWith1stColumnHidden(); void taskQTBUG_9216_setSizeAndUniformRowHeightsWrongRepaint(); + void taskQTBUG_11466_keyboardNavigationRegression(); }; class QtTestModel: public QAbstractItemModel @@ -3785,5 +3786,129 @@ void tst_QTreeView::keyboardNavigationWithDisabled() QCOMPARE(view.currentIndex(), model.index(6, 0)); } +class Model_11466 : public QAbstractItemModel +{ + Q_OBJECT +public: + Model_11466(QObject *parent) : + m_block(false) + { + // set up the model to have two top level items and a few others + m_selectionModel = new QItemSelectionModel(this, this); // owned by this + + connect(m_selectionModel, SIGNAL(currentChanged(const QModelIndex &,const QModelIndex &)), + this, SLOT(slotCurrentChanged(const QModelIndex &,const QModelIndex &))); + }; + + int rowCount(const QModelIndex &parent) const + { + if (parent.isValid()) + return (parent.internalId() == 0) ? 4 : 0; + return 2; // two top level items + } + + int columnCount(const QModelIndex &parent) const + { + return 2; + } + + QVariant data(const QModelIndex &index, int role) const + { + if (role == Qt::DisplayRole && index.isValid()) { + qint64 parentRowPlusOne = index.internalId(); + QString str; + QTextStream stream(&str); + if (parentRowPlusOne > 0) + stream << parentRowPlusOne << " -> " << index.row() << " : " << index.column(); + else + stream << index.row() << " : " << index.column(); + return QVariant(str); + } + return QVariant(); + } + + QModelIndex parent(const QModelIndex &index) const + { + if (index.isValid()) { + qint64 parentRowPlusOne = index.internalId(); + if (parentRowPlusOne > 0) { + int row = static_cast(parentRowPlusOne - 1); + return createIndex(row, 0, (quint32)0); + } + } + return QModelIndex(); + } + + void bindView(QTreeView *view) + { + // sets the view to this model with a shared selection model + QItemSelectionModel *oldModel = view->selectionModel(); + if (oldModel != m_selectionModel) + delete oldModel; + view->setModel(this); // this creates a new selection model for the view, but we dont want it either ... + oldModel = view->selectionModel(); + view->setSelectionModel(m_selectionModel); + delete oldModel; + } + + QModelIndex index(int row, int column, const QModelIndex &parent) const + { + return createIndex(row, column, parent.isValid() ? (quint32)(parent.row() + 1) : (quint32)0); + } + +public slots: + void slotCurrentChanged(const QModelIndex ¤t,const QModelIndex &) + { + if (m_block) + return; + + if (current.isValid()) { + int selectedRow = current.row(); + quint32 parentRowPlusOne = static_cast(current.internalId()); + + for (int i = 0; i < 2; ++i) { + // announce the removal of all non top level items + beginRemoveRows(createIndex(i, 0, 0), 0, 3); + // nothing to actually do for the removal + endRemoveRows(); + + // put them back in again + beginInsertRows(createIndex(i, 0, 0), 0, 3); + // nothing to actually do for the insertion + endInsertRows(); + } + // reselect the current item ... + QModelIndex selectedIndex = createIndex(selectedRow, 0, parentRowPlusOne); + + m_block = true; // recursion block + m_selectionModel->select(selectedIndex, QItemSelectionModel::ClearAndSelect|QItemSelectionModel::Current|QItemSelectionModel::Rows); + m_selectionModel->setCurrentIndex(selectedIndex, QItemSelectionModel::NoUpdate); + m_block = false; + } else { + m_selectionModel->clear(); + } + } + +private: + bool m_block; + QItemSelectionModel *m_selectionModel; +}; + +void tst_QTreeView::taskQTBUG_11466_keyboardNavigationRegression() +{ + QTreeView treeView; + treeView.setSelectionBehavior(QAbstractItemView::SelectRows); + treeView.setSelectionMode(QAbstractItemView::SingleSelection); + Model_11466 model(&treeView); + model.bindView(&treeView); + treeView.expandAll(); + treeView.show(); + QTest::qWaitForWindowShown(&treeView); + + QTest::keyPress(treeView.viewport(), Qt::Key_Down); + QTest::qWait(10); + QTRY_COMPARE(treeView.currentIndex(), treeView.selectionModel()->selection().indexes().first()); +} + QTEST_MAIN(tst_QTreeView) #include "tst_qtreeview.moc" -- cgit v0.12 From 69e8769e2a3f44700c24437dc851ea817c16318f Mon Sep 17 00:00:00 2001 From: Nicolai de Haan Brogger Date: Mon, 16 Aug 2010 21:55:42 +0000 Subject: Take advantage of a new EGL extension when posting 16 bit surfaces. Replaces the existing NVIDIA EGL extension "EGL_NV_post_convert_replication" with another newer extension named "EGL_NV_post_convert_roundinng". The newer extension produces similar result when posting 16 bit surfaces to 24/32 bit as the old and performs faster. Motivated by qtbug-9444. Merge-request: 742 Reviewed-by: Donald Carr --- src/gui/egl/qegl_x11.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/egl/qegl_x11.cpp b/src/gui/egl/qegl_x11.cpp index fea6e8d..15cc109 100644 --- a/src/gui/egl/qegl_x11.cpp +++ b/src/gui/egl/qegl_x11.cpp @@ -165,7 +165,7 @@ VisualID QEgl::getCompatibleVisualId(EGLConfig config) if (chosenVisualInfo) { // Skip size checks if implementation supports non-matching visual // and config (http://bugreports.qt.nokia.com/browse/QTBUG-9444). - if (QEgl::hasExtension("EGL_NV_post_convert_replication")) + if (QEgl::hasExtension("EGL_NV_post_convert_rounding")) return visualId; int visualRedSize = countBits(chosenVisualInfo->red_mask); -- cgit v0.12 From c6867a620259ee6c82a038995f424bef63d45aea Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 17 Aug 2010 09:12:58 +1000 Subject: Add missing auto test files. --- .../data/flickableqgraphicswidget.qml | 7 +++++++ .../data/verticalqgraphicswidget.qml | 24 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml diff --git a/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml b/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml new file mode 100644 index 0000000..8e95a94 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml @@ -0,0 +1,7 @@ +import Qt 4.7 + +Flickable { + width: 100; height: 100 + + QGraphicsWidget { objectName: "widget1"; width: 200; height: 300 } +} diff --git a/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml b/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml new file mode 100644 index 0000000..c9c8607 --- /dev/null +++ b/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml @@ -0,0 +1,24 @@ +import Qt 4.7 + +Item { + width: 640 + height: 480 + Column { + objectName: "column" + QGraphicsWidget { + objectName: "one" + width: 50 + height: 50 + } + QGraphicsWidget { + objectName: "two" + width: 20 + height: 10 + } + QGraphicsWidget { + objectName: "three" + width: 40 + height: 20 + } + } +} -- cgit v0.12 From 875d5e374dce3dd7d7cce87b55e277e8e9497044 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 17 Aug 2010 13:29:08 +1000 Subject: Update QtGui def files Task-number: Reviewed-by: Martin Jones --- src/s60installs/bwins/QtGuiu.def | 4 +++- src/s60installs/eabi/QtGuiu.def | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 90c0878..21a2122 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -4148,7 +4148,7 @@ EXPORTS ?ensureSceneTransformRecursive@QGraphicsItemPrivate@@QAEXPAPAVQGraphicsItem@@@Z @ 4147 NONAME ; void QGraphicsItemPrivate::ensureSceneTransformRecursive(class QGraphicsItem * *) ?ensureSequentialSiblingIndex@QGraphicsItemPrivate@@QAEXXZ @ 4148 NONAME ; void QGraphicsItemPrivate::ensureSequentialSiblingIndex(void) ?ensureSortedChildren@QGraphicsItemPrivate@@QAEXXZ @ 4149 NONAME ; void QGraphicsItemPrivate::ensureSortedChildren(void) - ?ensureSpace@QTextEngine@@QBEXH@Z @ 4150 NONAME ; void QTextEngine::ensureSpace(int) const + ?ensureSpace@QTextEngine@@QBEXH@Z @ 4150 NONAME ABSENT ; void QTextEngine::ensureSpace(int) const ?ensureVisible@QGraphicsItem@@QAEXABVQRectF@@HH@Z @ 4151 NONAME ; void QGraphicsItem::ensureVisible(class QRectF const &, int, int) ?ensureVisible@QGraphicsItem@@QAEXMMMMHH@Z @ 4152 NONAME ; void QGraphicsItem::ensureVisible(float, float, float, float, int, int) ?ensureVisible@QGraphicsView@@QAEXABVQRectF@@HH@Z @ 4153 NONAME ; void QGraphicsView::ensureVisible(class QRectF const &, int, int) @@ -12886,4 +12886,6 @@ EXPORTS ?zScaleChanged@QGraphicsScale@@IAEXXZ @ 12885 NONAME ; void QGraphicsScale::zScaleChanged(void) ?xScaleChanged@QGraphicsScale@@IAEXXZ @ 12886 NONAME ; void QGraphicsScale::xScaleChanged(void) ?yScaleChanged@QGraphicsScale@@IAEXXZ @ 12887 NONAME ; void QGraphicsScale::yScaleChanged(void) + ?_q_aboutToQuit@QApplicationPrivate@@QAEXXZ @ 12888 NONAME ; void QApplicationPrivate::_q_aboutToQuit(void) + ?ensureSpace@QTextEngine@@QBE_NH@Z @ 12889 NONAME ; bool QTextEngine::ensureSpace(int) const diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index d8e86bf..c4ad848 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12091,4 +12091,5 @@ EXPORTS _ZN14QGraphicsScale13xScaleChangedEv @ 12090 NONAME _ZN14QGraphicsScale13yScaleChangedEv @ 12091 NONAME _ZN14QGraphicsScale13zScaleChangedEv @ 12092 NONAME + _ZN19QApplicationPrivate14_q_aboutToQuitEv @ 12093 NONAME -- cgit v0.12 From cf0f53ecefd6914d533ffea057748480e3e5bd33 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 17 Aug 2010 13:29:08 +1000 Subject: Update QtDeclarative def files Task-number: Reviewed-by: Martin Jones --- src/s60installs/bwins/QtDeclarativeu.def | 1 + src/s60installs/eabi/QtDeclarativeu.def | 1 + 2 files changed, 2 insertions(+) diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def index 480d9ff..bc6d0aa 100644 --- a/src/s60installs/bwins/QtDeclarativeu.def +++ b/src/s60installs/bwins/QtDeclarativeu.def @@ -1684,4 +1684,5 @@ EXPORTS ?rootContext@QDeclarativeView@@QBEPAVQDeclarativeContext@@XZ @ 1683 NONAME ; class QDeclarativeContext * QDeclarativeView::rootContext(void) const ?rootContext@QDeclarativeEngine@@QBEPAVQDeclarativeContext@@XZ @ 1684 NONAME ; class QDeclarativeContext * QDeclarativeEngine::rootContext(void) const ?qmlregister@QDeclarativePrivate@@YAHW4RegistrationType@1@PAX@Z @ 1685 NONAME ; int QDeclarativePrivate::qmlregister(enum QDeclarativePrivate::RegistrationType, void *) + ?hasValue@QDeclarativeOpenMetaObject@@QBE_NH@Z @ 1686 NONAME ; bool QDeclarativeOpenMetaObject::hasValue(int) const diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index 9a3cefa..723f2ae 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -1714,4 +1714,5 @@ EXPORTS _ZNK16QDeclarativeView6engineEv @ 1713 NONAME _ZNK18QDeclarativeEngine11rootContextEv @ 1714 NONAME _ZN19QDeclarativePrivate11qmlregisterENS_16RegistrationTypeEPv @ 1715 NONAME + _ZNK26QDeclarativeOpenMetaObject8hasValueEi @ 1716 NONAME -- cgit v0.12 From 056574f7d6c331ec7d972b298585e1a3a6c975ac Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Tue, 17 Aug 2010 14:05:53 +1000 Subject: Docs - clarify use of PropertyChanges for immediate property changes in a State (e.g. for setting a transformOrigin for a RotationAnimation). Also improve some other animation docs in general. --- doc/src/declarative/animation.qdoc | 19 ++- doc/src/snippets/declarative/propertychanges.qml | 92 +++++++++++ doc/src/snippets/declarative/rotationanimation.qml | 3 +- src/declarative/util/qdeclarativeanimation.cpp | 169 +++++++++++++++------ .../util/qdeclarativepropertychanges.cpp | 119 ++++++--------- 5 files changed, 273 insertions(+), 129 deletions(-) create mode 100644 doc/src/snippets/declarative/propertychanges.qml diff --git a/doc/src/declarative/animation.qdoc b/doc/src/declarative/animation.qdoc index 7416341..53a0c55 100644 --- a/doc/src/declarative/animation.qdoc +++ b/doc/src/declarative/animation.qdoc @@ -156,11 +156,13 @@ The \l {PropertyAnimation::}{to} property is also required to specify the new \section2 Standalone Animations Animations can also be created as ordinary QML objects that are not bound to -any particular objects and properties. An example: +any particular objects and properties. Here is an example, using a +PropertyAnimation object. The animation is explicitly started when the +\l Rectangle is clicked: \snippet doc/src/snippets/declarative/animation-standalone.qml 0 -A standalone animation is not running by default and must be started explicitly +A standalone animation object is not running by default and must be started explicitly using the \l {Animation::}{running} property or \l {Animation::}{start()} and \l {Animation::}{stop()} methods. Since the animation is not bound to a particular object or property, it must define the \l @@ -183,10 +185,13 @@ object and add it to an item's \l {Item::}{transitions} property. An example: \snippet doc/src/snippets/declarative/animation-transitions.qml 0 -When the \l Rectangle changes to the \e moved state, its \c x and \c y property -values are changed by the PropertyChanges object, and the PropertyAnimation -defined within the \l Transition is triggered on these properties. The -animation will not be applied at any time other than during the state change. +The PropertyChanges object in the \e moved state defines that when the +\l Rectangle is in this state, its position should be changed +to (50, 50). When the \l Rectangle changes to the \e moved state, the +\l Transition will be triggered, and the transition's \l PropertyAnimation will +animate the changes in the \c x and \c y properties to their new values. +The animation will not be applied at any time other than during the state +change. Notice the example does not set any \l {PropertyAnimation::}{from} and \l {PropertyAnimation::}{to} values for the PropertyAnimation. As a convenience, @@ -234,7 +239,7 @@ and rotation changes. A ColorAnimation allows color values for the \l {ColorAnimation::}{from} and \l {ColorAnimation::}{to} properties. The -following animates the rectangle's \l {Rectangle::color} property: +following animates the rectangle's \l {Rectangle::}{color} property: \snippet doc/src/snippets/declarative/animation-elements.qml color diff --git a/doc/src/snippets/declarative/propertychanges.qml b/doc/src/snippets/declarative/propertychanges.qml new file mode 100644 index 0000000..9f119bf --- /dev/null +++ b/doc/src/snippets/declarative/propertychanges.qml @@ -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 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] +import Qt 4.7 +//![import] + +Column { + +//![0] +Item { + id: container + width: 300; height: 300 + + Rectangle { + id: rect + width: 100; height: 100 + color: "red" + + MouseArea { + id: mouseArea + anchors.fill: parent + } + + states: State { + name: "resized"; when: mouseArea.pressed + PropertyChanges { target: rect; color: "blue"; height: container.height } + } + } +} +//![0] + +//![reset] +Rectangle { + width: 300; height: 200 + + Text { + id: myText + width: 50 + wrapMode: Text.WordWrap + text: "a text string that is longer than 50 pixels" + + states: State { + name: "widerText" + PropertyChanges { target: myText; width: undefined } + } + } + + MouseArea { + anchors.fill: parent + onClicked: myText.state = "widerText" + } +} +//![reset] +} diff --git a/doc/src/snippets/declarative/rotationanimation.qml b/doc/src/snippets/declarative/rotationanimation.qml index c81395a..b56cb3f 100644 --- a/doc/src/snippets/declarative/rotationanimation.qml +++ b/doc/src/snippets/declarative/rotationanimation.qml @@ -52,7 +52,8 @@ Item { smooth: true states: State { - name: "rotated"; PropertyChanges { target: rect; rotation: 180 } + name: "rotated" + PropertyChanges { target: rect; rotation: 180 } } transitions: Transition { diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index 3b8cb37..4e9e8d5 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -694,9 +694,12 @@ QDeclarativeColorAnimation::~QDeclarativeColorAnimation() } \endqml - If this value is not set and the ColorAnimation is defined within - a \l Transition, it defaults to the value defined in the starting - state of the \l Transition. + If the ColorAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the starting state of the + \l Transition, or the current value of the property at the moment the + \l Behavior is triggered. + + \sa {QML Animation} */ QColor QDeclarativeColorAnimation::from() const { @@ -714,9 +717,12 @@ void QDeclarativeColorAnimation::setFrom(const QColor &f) This property holds the color value at which the animation should end. - If this value is not set and the ColorAnimation is defined within - a \l Transition or \l Behavior, it defaults to the value defined in the end - state of the \l Transition or \l Behavior. + If the ColorAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. + + \sa {QML Animation} */ QColor QDeclarativeColorAnimation::to() const { @@ -887,29 +893,45 @@ QAbstractAnimation *QDeclarativeScriptAction::qtAnimation() \inherits Animation \brief The PropertyAction element allows immediate property changes during animation. - PropertyAction is used to specify an immediate property change - during an animation. The property change is not animated. + PropertyAction is used to specify an immediate property change during an + animation. The property change is not animated. - For example, to explicitly set \c {theImage.smooth = true} during a \l Transition: - \code - transitions: Transition { - ... - PropertyAction { target: theImage; property: "smooth"; value: true } - ... - } - \endcode + It is useful for setting non-animated property values during an animation. - Or, to set \c theWebView.url to the value set for the destination state: - \code + For example, here is a SequentialAnimation that sets the image's + \l {Image::}{smooth} property to \c true, animates the width of the image, + then sets \l {Image::}{smooth} back to \c false: + + \snippet doc/src/snippets/declarative/propertyaction.qml standalone + + PropertyAction is also useful for setting the exact point at which a property + change should occur during a \l Transition. For example, if PropertyChanges + was used in a \l State to rotate an item around a particular + \l {Item::}{transformOrigin}, it might be implemented like this: + + \snippet doc/src/snippets/declarative/propertyaction.qml transition + + However, with this code, the \c transformOrigin is not set until \e after + the animation, as a \l State is taken to define the values at the \e end of + a transition. The animation would rotate at the default \c transformOrigin, + then jump to \c Item.BottomRight. To fix this, insert a PropertyChanges + before the RotationAnimation begins: + + \qml transitions: Transition { - ... - PropertyAction { target: theWebView; property: "url" } - ... + SequentialAnimation { + PropertyAction { target: rect; property: "transformOrigin" } + RotationAnimation { ... } + } } - \endcode - + \endqml + + This immediately sets the \c transformOrigin property to the value defined + in the end state of the \l Transition (i.e. the value defined in the + PropertyChanges object) so that the rotation animation begins with the + correct transform origin. - \sa QtDeclarative + \sa {QML Animation}, QtDeclarative */ /*! \internal @@ -1014,7 +1036,11 @@ QDeclarativeListProperty QDeclarativePropertyAction::exclude() /*! \qmlproperty any PropertyAction::value This property holds the value to be set on the property. - If not set, then the value defined for the end state of the transition. + + If the PropertyAction is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. */ QVariant QDeclarativePropertyAction::value() const { @@ -1190,7 +1216,7 @@ void QDeclarativeNumberAnimation::init() /*! \qmlproperty real NumberAnimation::from - This property holds the starting number value. + This property holds the starting value for the animation. For example, the following animation is not applied until the \c x value has reached 100: @@ -1205,9 +1231,12 @@ void QDeclarativeNumberAnimation::init() } \endqml - If this value is not set and the NumberAnimation is defined within - a \l Transition, it defaults to the value defined in the start - state of the \l Transition. + If the NumberAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the starting state of the + \l Transition, or the current value of the property at the moment the + \l Behavior is triggered. + + \sa {QML Animation} */ qreal QDeclarativeNumberAnimation::from() const @@ -1223,11 +1252,14 @@ void QDeclarativeNumberAnimation::setFrom(qreal f) /*! \qmlproperty real NumberAnimation::to - This property holds the ending number value. + This property holds the end value for the animation. - If this value is not set and the NumberAnimation is defined within - a \l Transition or \l Behavior, it defaults to the value defined in the end - state of the \l Transition or \l Behavior. + If the NumberAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. + + \sa {QML Animation} */ qreal QDeclarativeNumberAnimation::to() const { @@ -1280,10 +1312,14 @@ QDeclarativeVector3dAnimation::~QDeclarativeVector3dAnimation() /*! \qmlproperty real Vector3dAnimation::from - This property holds the starting value. + This property holds the starting value for the animation. + + If the Vector3dAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the starting state of the + \l Transition, or the current value of the property at the moment the + \l Behavior is triggered. - If this value is not set, it defaults to the value defined in the start - state of the \l Transition. + \sa {QML Animation} */ QVector3D QDeclarativeVector3dAnimation::from() const { @@ -1298,10 +1334,14 @@ void QDeclarativeVector3dAnimation::setFrom(QVector3D f) /*! \qmlproperty real Vector3dAnimation::to - This property holds the ending value. + This property holds the end value for the animation. - If this value is not set, it defaults to the value defined in the end - state of the \l Transition or \l Behavior. + If the Vector3dAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. + + \sa {QML Animation} */ QVector3D QDeclarativeVector3dAnimation::to() const { @@ -1343,6 +1383,12 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) your own properties via \l {PropertyAnimation::properties}{properties} or \l {PropertyAnimation::property}{property}. + Also, note the \l Rectangle will be rotated around its default + \l {Item::}{transformOrigin} (which is \c Item.Center). To use a different + transform origin, set the origin in the PropertyChanges object and apply + the change at the start of the animation using PropertyAction. See the + PropertyAction documentation for more details. + Like any other animation element, a RotationAnimation can be applied in a number of ways, including transitions, behaviors and property value sources. The \l {QML Animation} documentation shows a variety of methods @@ -1408,7 +1454,7 @@ QDeclarativeRotationAnimation::~QDeclarativeRotationAnimation() /*! \qmlproperty real RotationAnimation::from - This property holds the starting number value. + This property holds the starting value for the animation. For example, the following animation is not applied until the \c angle value has reached 100: @@ -1423,8 +1469,12 @@ QDeclarativeRotationAnimation::~QDeclarativeRotationAnimation() } \endqml - If this value is not set, it defaults to the value defined in the start - state of the \l Transition. + If the RotationAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the starting state of the + \l Transition, or the current value of the property at the moment the + \l Behavior is triggered. + + \sa {QML Animation} */ qreal QDeclarativeRotationAnimation::from() const { @@ -1439,10 +1489,14 @@ void QDeclarativeRotationAnimation::setFrom(qreal f) /*! \qmlproperty real RotationAnimation::to - This property holds the ending value. + This property holds the end value for the animation.. + + If the RotationAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. - If this value is not set, it defaults to the value defined in the end - state of the \l Transition or \l Behavior. + \sa {QML Animation} */ qreal QDeclarativeRotationAnimation::to() const { @@ -1854,8 +1908,14 @@ void QDeclarativePropertyAnimation::setDuration(int duration) /*! \qmlproperty real PropertyAnimation::from - This property holds the starting value. - If not set, then the value defined in the start state of the transition. + This property holds the starting value for the animation. + + If the PropertyAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the starting state of the + \l Transition, or the current value of the property at the moment the + \l Behavior is triggered. + + \sa {QML Animation} */ QVariant QDeclarativePropertyAnimation::from() const { @@ -1875,8 +1935,14 @@ void QDeclarativePropertyAnimation::setFrom(const QVariant &f) /*! \qmlproperty real PropertyAnimation::to - This property holds the ending value. - If not set, then the value defined in the end state of the transition or \l Behavior. + This property holds the end value for the animation. + + If the PropertyAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. + + \sa {QML Animation} */ QVariant QDeclarativePropertyAnimation::to() const { @@ -2502,7 +2568,10 @@ void QDeclarativeParentAnimation::setTarget(QDeclarativeItem *target) \qmlproperty Item ParentAnimation::newParent The new parent to animate to. - If not set, then the parent defined in the end state of the transition. + If the ParentAnimation is defined within a \l Transition or \l Behavior, + this value defaults to the value defined in the end state of the + \l Transition, or the value of the property change that triggered the + \l Behavior. */ QDeclarativeItem *QDeclarativeParentAnimation::newParent() const { diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp index 25edd35..c28ada3 100644 --- a/src/declarative/util/qdeclarativepropertychanges.cpp +++ b/src/declarative/util/qdeclarativepropertychanges.cpp @@ -65,48 +65,30 @@ QT_BEGIN_NAMESPACE \since 4.7 \brief The PropertyChanges element describes new property bindings or values for a state. - PropertyChanges provides a state change that modifies the properties of an item. + PropertyChanges is used to define the property values or bindings in a + \l State. This enables an item's property values to be changed when it + \l {QML States}{changes between states}. - Here is a property change that modifies the text and color of a \l Text element - when it is clicked: + To create a PropertyChanges object, specify the \l target item whose + properties are to be modified, and define the new property values or + bindings. For example: - \qml - Text { - id: myText - width: 100; height: 100 - text: "Hello" - color: "blue" - - states: State { - name: "myState" - - PropertyChanges { - target: myText - text: "Goodbye" - color: "red" - } - } - - MouseArea { anchors.fill: parent; onClicked: myText.state = 'myState' } - } - \endqml - - By default, PropertyChanges will establish new bindings where appropriate. - For example, the following creates a new binding for myItem's \c height property. - - \qml - PropertyChanges { - target: myItem - height: parent.height - } - \endqml - - If you don't want a binding to be established (and instead just want to assign - the value of the binding at the time the state is entered), - you should set the PropertyChange's \l{PropertyChanges::explicit}{explicit} + \snippet doc/src/snippets/declarative/propertychanges.qml import + \codeline + \snippet doc/src/snippets/declarative/propertychanges.qml 0 + + When the mouse is pressed, the \l Rectangle changes to the \e resized + state. In this state, the PropertyChanges object sets the rectangle's + color to blue and the \c height value to that of \c container.height. + + Note this automatically binds \c rect.height to \c container.height + in the \e resized state. If a property binding should not be + established, and the height should just be set to the value of + \c container.height at the time of the state change, set the \l explicit property to \c true. - - State-specific script for signal handlers can also be specified: + + A PropertyChanges object can also override the default signal handler + for an object to implement a signal handler specific to the new state: \qml PropertyChanges { @@ -115,36 +97,31 @@ QT_BEGIN_NAMESPACE } \endqml - You can reset a property in a state change by assigning \c undefined. In the following - example we reset \c theText's width when we enter state1. This will give the text its - natural width (which is the whole string on one line). + \note PropertyChanges can be used to change anchor margins, but not other anchor + values; use AnchorChanges for this instead. Similarly, to change an \l Item's + \l {Item::}{parent} value, use ParentChanges instead. - \qml - import Qt 4.7 - - Rectangle { - width: 640 - height: 480 - Text { - id: theText - width: 50 - wrapMode: Text.WordWrap - text: "a text string that is longer than 50 pixels" - } - states: State { - name: "state1" - PropertyChanges { - target: theText - width: undefined - } - } - } - \endqml + \section2 Resetting property values - Anchor margins should be changed with PropertyChanges, but other anchor changes or changes to - an Item's parent should be done using the associated change elements - (ParentChange and AnchorChanges, respectively). + The \c undefined value can be used to reset the property value for a state. + In the following example, when \c theText changes to the \e widerText + state, its \c width property is reset, giving the text its natural width + and displaying the whole string on a single line. + + \snippet doc/src/snippets/declarative/propertychanges.qml reset + + + \section2 Immediate property changes in transitions + + When \l Transitions are used to animate state changes, they animate + properties from their values in the current state to those defined in the + new state (as defined by PropertyChanges objects). However, + it is sometimes desirable to set a property value \e immediately during a + \l Transition, without animation; in these cases, the PropertyAction + element can be used to force an immediate property change. + + See the PropertyAction documentation for more details. \sa {declarative/animation/states}{states example}, {qmlstate}{States}, QtDeclarative */ @@ -397,12 +374,12 @@ void QDeclarativePropertyChanges::setObject(QObject *o) /*! \qmlproperty bool PropertyChanges::restoreEntryValues - - Whether or not the previous values should be restored when - leaving the state. By default, restoreEntryValues is true. - By setting restoreEntryValues to false, you can create a temporary state - that has permanent effects on property values. + This property holds whether the previous values should be restored when + leaving the state. + + The default value is \c true. Setting this value to \c false creates a + temporary state that has permanent effects on property values. */ bool QDeclarativePropertyChanges::restoreEntryValues() const { -- cgit v0.12 From 59d2b0a0a1c836d3371c18a2a857d88c2d28621f Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Tue, 17 Aug 2010 14:09:07 +1000 Subject: Add missing file --- doc/src/snippets/declarative/propertyaction.qml | 86 +++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 doc/src/snippets/declarative/propertyaction.qml diff --git a/doc/src/snippets/declarative/propertyaction.qml b/doc/src/snippets/declarative/propertyaction.qml new file mode 100644 index 0000000..1a15469 --- /dev/null +++ b/doc/src/snippets/declarative/propertyaction.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import Qt 4.7 + +Row { + +//![transition] +Item { + width: 400; height: 400 + + Rectangle { + id: rect + width: 200; height: 100 + color: "red" + + states: State { + name: "rotated" + PropertyChanges { target: rect; rotation: 180; transformOrigin: Item.BottomRight } + } + + transitions: Transition { + RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise } + } + + MouseArea { + anchors.fill: parent + onClicked: rect.state = "rotated" + } + } +} +//![transition] + +Item { + width: 300; height: 300 + + Image { id: img; source: "pics/qt.png" } + +//![standalone] +SequentialAnimation { + PropertyAction { target: img; property: "smooth"; value: "true" } + NumberAnimation { target: img; property: "width"; to: 300; duration: 1000 } + PropertyAction { target: img; property: "smooth"; value: "false" } +} +//![standalone] +} + +} + -- cgit v0.12 From a76b8bf67696ae69888cc6237417e7c8f07f8da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 17 Aug 2010 10:29:03 +0200 Subject: Prevented Xorg crash in qtdemo when running corkboards example. The crash happens in the Nvidia driver in glXReleaseTexImageEXT when scrolling the corkboard using the mouse. To work around it we detect the Nvidia driver versions where this is known to be a problem and skip using the texture from pixmap extension in those cases. Task-number: QTBUG-12914 Reviewed-by: Trond --- src/opengl/qgl.cpp | 30 +++++++++++++++++++++++++----- src/opengl/qgl_p.h | 3 +++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 4daa866..74bde36 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -1688,6 +1688,10 @@ void QGLContextPrivate::init(QPaintDevice *dev, const QGLFormat &format) workaround_needsFullClearOnEveryFrame = false; workaround_brokenFBOReadBack = false; workaroundsCached = false; + + workaround_brokenTextureFromPixmap = false; + workaround_brokenTextureFromPixmap_init = false; + for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i) vertexAttributeArraysEnabledState[i] = false; } @@ -2570,11 +2574,27 @@ QGLTexture *QGLContextPrivate::bindTexture(const QPixmap &pixmap, GLenum target, && xinfo && xinfo->screen() == pixmap.x11Info().screen() && target == GL_TEXTURE_2D) { - texture = bindTextureFromNativePixmap(const_cast(&pixmap), key, options); - if (texture) { - texture->options |= QGLContext::MemoryManagedBindOption; - texture->boundPixmap = pd; - boundPixmaps.insert(pd, QPixmap(pixmap)); + if (!workaround_brokenTextureFromPixmap_init) { + workaround_brokenTextureFromPixmap_init = true; + + const QByteArray versionString(reinterpret_cast(glGetString(GL_VERSION))); + const int pos = versionString.indexOf("NVIDIA "); + + if (pos >= 0) { + const QByteArray nvidiaVersionString = versionString.mid(pos + strlen("NVIDIA ")); + + if (nvidiaVersionString.startsWith("195") || nvidiaVersionString.startsWith("256")) + workaround_brokenTextureFromPixmap = true; + } + } + + if (!workaround_brokenTextureFromPixmap) { + texture = bindTextureFromNativePixmap(const_cast(&pixmap), key, options); + if (texture) { + texture->options |= QGLContext::MemoryManagedBindOption; + texture->boundPixmap = pd; + boundPixmaps.insert(pd, QPixmap(pixmap)); + } } } #endif diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h index 32feacd..ca0d3fa 100644 --- a/src/opengl/qgl_p.h +++ b/src/opengl/qgl_p.h @@ -393,6 +393,9 @@ public: uint workaround_brokenFBOReadBack : 1; uint workaroundsCached : 1; + uint workaround_brokenTextureFromPixmap : 1; + uint workaround_brokenTextureFromPixmap_init : 1; + QPaintDevice *paintDevice; QColor transpColor; QGLContext *q_ptr; -- cgit v0.12 From d7213ecceabf79de561cd276429372e09464e62c Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 17 Aug 2010 11:11:15 +0200 Subject: tst_QDataStream::stream_QPixmap: actualy test QPixmap. Because of a type, QIcon was tested twicen and QPixmap was not tested --- tests/auto/qdatastream/tst_qdatastream.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qdatastream/tst_qdatastream.cpp b/tests/auto/qdatastream/tst_qdatastream.cpp index 31e12fe..c03bc71 100644 --- a/tests/auto/qdatastream/tst_qdatastream.cpp +++ b/tests/auto/qdatastream/tst_qdatastream.cpp @@ -1820,7 +1820,7 @@ void tst_QDataStream::stream_QPixmap() #ifdef Q_OS_WINCE QSKIP("Test depends on more memory than available on Qt/CE", SkipAll); #endif - STREAM_IMPL(QIcon); + STREAM_IMPL(QPixmap); } void tst_QDataStream::stream_QIcon_data() -- cgit v0.12 From cc6dc0aeefde881a95f5fea2b26f2f3d7bdc6e15 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 17 Aug 2010 10:08:20 +0200 Subject: Cocoa: parent windows shows on screen when they should be hidden The reason is the cocoa method that adds a window as a child of another, it ends up showing both the parent and the child window regardless. And this could in some cases also cause a crash. So we therefore need to be careful when calling that function, and be sure that the parent is actually visible. In addition, addChildWindow reset the stacking level of the child window, and made e.g. normal child windows pop in front of tool child windows. This could easily be seen in e.g. Designer. Task-number: QTBUG-12866 Reviewed-by: prasanth --- src/gui/kernel/qwidget_mac.mm | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index 8ae6a99..4ed4ccc 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -2796,10 +2796,16 @@ void QWidgetPrivate::setSubWindowStacking(bool set) if (QWidget *parent = q->parentWidget()) { if (parent->testAttribute(Qt::WA_WState_Created)) { - if (set) - [qt_mac_window_for(parent) addChildWindow:qt_mac_window_for(q) ordered:NSWindowAbove]; - else + if (set) { + if (parent->isVisible()) { + NSWindow *childwin = qt_mac_window_for(q); + int childLevel = [childwin level]; + [qt_mac_window_for(parent) addChildWindow:childwin ordered:NSWindowAbove]; + [childwin setLevel:childLevel]; + } + } else { [qt_mac_window_for(parent) removeChildWindow:qt_mac_window_for(q)]; + } } } @@ -2807,10 +2813,14 @@ void QWidgetPrivate::setSubWindowStacking(bool set) for (int i=0; iisWindow() && child->testAttribute(Qt::WA_WState_Created) && child->isVisibleTo(q)) { - if (set) - [qt_mac_window_for(q) addChildWindow:qt_mac_window_for(child) ordered:NSWindowAbove]; - else + if (set) { + NSWindow *childwin = qt_mac_window_for(child); + int childLevel = [childwin level]; + [qt_mac_window_for(q) addChildWindow:childwin ordered:NSWindowAbove]; + [childwin setLevel:childLevel]; + } else { [qt_mac_window_for(q) removeChildWindow:qt_mac_window_for(child)]; + } } } } -- cgit v0.12 From ff405f5623d7ed18c881c097368e3e9afd2e9443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 17 Aug 2010 10:45:17 +0200 Subject: Outline / fill inconsistency in X11 paint engine. Change ebbab30af417dfbf3df47dec15c0e2f8d6a30fa6 broke outline / fill consistency in the X11 engine. Since the positioning of lines is more important we'll round the fill coordinates the same way. The bug was visible in the filltest.qps arthur test. Reviewed-by: Gunnar Sletta --- src/gui/painting/qpaintengine_x11.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp index e521e01..5307142 100644 --- a/src/gui/painting/qpaintengine_x11.cpp +++ b/src/gui/painting/qpaintengine_x11.cpp @@ -1516,8 +1516,8 @@ void QX11PaintEnginePrivate::fillPolygon_translated(const QPointF *polygonPoints for (int i = 0; i < pointCount; ++i) { translated_points[i] = polygonPoints[i] + offset; - translated_points[i].rx() = qRound(translated_points[i].x()) + offs; - translated_points[i].ry() = qRound(translated_points[i].y()) + offs; + translated_points[i].rx() = qFloor(translated_points[i].x()) + offs; + translated_points[i].ry() = qFloor(translated_points[i].y()) + offs; } fillPolygon_dev(translated_points.data(), pointCount, gcMode, mode); @@ -1754,8 +1754,8 @@ void QX11PaintEnginePrivate::fillPath(const QPainterPath &path, QX11PaintEngineP for (int j = 0; j < polys.at(i).size(); ++j) { translated_points[j] = polys.at(i).at(j); if (!X11->use_xrender || !(render_hints & QPainter::Antialiasing)) { - translated_points[j].rx() = qRound(translated_points[j].rx() + aliasedCoordinateDelta) + offs; - translated_points[j].ry() = qRound(translated_points[j].ry() + aliasedCoordinateDelta) + offs; + translated_points[j].rx() = qFloor(translated_points[j].rx() + aliasedCoordinateDelta) + offs; + translated_points[j].ry() = qFloor(translated_points[j].ry() + aliasedCoordinateDelta) + offs; } } -- cgit v0.12 From e0c798ebb4fc56fa6be38f6ec3e82de147891260 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Mon, 16 Aug 2010 19:02:46 +1000 Subject: Repaint TextInput when password character changes in password mode Task-number: QTBUG-12838 Reviewed-by: Martin Jones --- .../graphicsitems/qdeclarativetextinput.cpp | 18 +++++++++++++----- .../tst_qdeclarativetextinput.cpp | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index bd8d404..b4f36f4 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -277,8 +277,10 @@ void QDeclarativeTextInput::setSelectionColor(const QColor &color) QPalette p = d->control->palette(); p.setColor(QPalette::Highlight, d->selectionColor); d->control->setPalette(p); - clearCache(); - update(); + if (d->control->hasSelectedText()) { + clearCache(); + update(); + } emit selectionColorChanged(color); } @@ -303,8 +305,10 @@ void QDeclarativeTextInput::setSelectedTextColor(const QColor &color) QPalette p = d->control->palette(); p.setColor(QPalette::HighlightedText, d->selectedTextColor); d->control->setPalette(p); - clearCache(); - update(); + if (d->control->hasSelectedText()) { + clearCache(); + update(); + } emit selectedTextColorChanged(color); } @@ -1233,8 +1237,12 @@ void QDeclarativeTextInput::setPasswordCharacter(const QString &str) Q_D(QDeclarativeTextInput); if(str.length() < 1) return; - emit passwordCharacterChanged(); d->control->setPasswordCharacter(str.constData()[0]); + EchoMode echoMode_ = echoMode(); + if (echoMode_ == Password || echoMode_ == PasswordEchoOnEdit) { + updateSize(); + } + emit passwordCharacterChanged(); } /*! diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index ca9009d..98a6012 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -98,6 +98,7 @@ private slots: void validators(); void inputMethods(); + void passwordCharacter(); void cursorDelegate(); void navigation(); void copyAndPaste(); @@ -768,6 +769,21 @@ void tst_qdeclarativetextinput::copyAndPaste() { #endif } +void tst_qdeclarativetextinput::passwordCharacter() +{ + QString componentStr = "import Qt 4.7\nTextInput { text: \"Hello world!\"; font.family: \"Helvetica\"; echoMode: TextInput.Password }"; + QDeclarativeComponent textInputComponent(&engine); + textInputComponent.setData(componentStr.toLatin1(), QUrl()); + QDeclarativeTextInput *textInput = qobject_cast(textInputComponent.create()); + QVERIFY(textInput != 0); + + textInput->setPasswordCharacter("X"); + QSize contentsSize = textInput->contentsSize(); + textInput->setPasswordCharacter("."); + // QTBUG-12383 content is updated and redrawn + QVERIFY(contentsSize != textInput->contentsSize()); +} + void tst_qdeclarativetextinput::cursorDelegate() { QDeclarativeView* view = createView(SRCDIR "/data/cursorTest.qml"); -- cgit v0.12 From 63434c07fbe4e3d8735a9e28200ce9b3b121bec8 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 12 Aug 2010 19:47:41 +0200 Subject: fix QMAKE_SUBSTITUTES with shadow builds still doesn't work for nested directories, but that's because fileFixify() is plain broken. on the way, remove a superfluous check: we know that the input file name ends with .in - three lines up we made sure it does. Reviewed-by: joerg --- qmake/generators/makefile.cpp | 6 +++--- tests/auto/qmake/testdata/substitutes/sub/test2.in | 1 + tests/auto/qmake/testdata/substitutes/test.in | 2 ++ tests/auto/qmake/testdata/substitutes/test.pro | 2 ++ tests/auto/qmake/testdata/substitutes_build/README | 1 + tests/auto/qmake/tst_qmake.cpp | 16 ++++++++++++++++ 6 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 tests/auto/qmake/testdata/substitutes/sub/test2.in create mode 100644 tests/auto/qmake/testdata/substitutes/test.in create mode 100644 tests/auto/qmake/testdata/substitutes/test.pro create mode 100644 tests/auto/qmake/testdata/substitutes_build/README diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 45a96f5..851e587 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -471,9 +471,9 @@ MakefileGenerator::init() subs.at(i).toLatin1().constData()); continue; } - QFile in(fileFixify(subs.at(i))), out(fileInfo(subs.at(i)).fileName()); - if(out.fileName().endsWith(".in")) - out.setFileName(out.fileName().left(out.fileName().length()-3)); + QFile in(fileFixify(subs.at(i))); + QFile out(fileFixify(subs.at(i).left(subs.at(i).length()-3), + qmake_getpwd(), Option::output_dir)); if(in.open(QFile::ReadOnly)) { QString contents; QStack state; diff --git a/tests/auto/qmake/testdata/substitutes/sub/test2.in b/tests/auto/qmake/testdata/substitutes/sub/test2.in new file mode 100644 index 0000000..78a6069 --- /dev/null +++ b/tests/auto/qmake/testdata/substitutes/sub/test2.in @@ -0,0 +1 @@ +heya diff --git a/tests/auto/qmake/testdata/substitutes/test.in b/tests/auto/qmake/testdata/substitutes/test.in new file mode 100644 index 0000000..2fa05e0 --- /dev/null +++ b/tests/auto/qmake/testdata/substitutes/test.in @@ -0,0 +1,2 @@ +test +tst diff --git a/tests/auto/qmake/testdata/substitutes/test.pro b/tests/auto/qmake/testdata/substitutes/test.pro new file mode 100644 index 0000000..5bce312 --- /dev/null +++ b/tests/auto/qmake/testdata/substitutes/test.pro @@ -0,0 +1,2 @@ +QMAKE_SUBSTITUTES += test.in +# doesn't work for the time being: sub/test2.in diff --git a/tests/auto/qmake/testdata/substitutes_build/README b/tests/auto/qmake/testdata/substitutes_build/README new file mode 100644 index 0000000..81dc596 --- /dev/null +++ b/tests/auto/qmake/testdata/substitutes_build/README @@ -0,0 +1 @@ +Placeholder file to ensure this directory exists diff --git a/tests/auto/qmake/tst_qmake.cpp b/tests/auto/qmake/tst_qmake.cpp index 5efe714..825e49b 100644 --- a/tests/auto/qmake/tst_qmake.cpp +++ b/tests/auto/qmake/tst_qmake.cpp @@ -90,6 +90,7 @@ private slots: void bundle_spaces(); #endif void includefunction(); + void substitutes(); private: TestCompiler test_compiler; @@ -477,6 +478,21 @@ void tst_qmake::includefunction() QVERIFY(test_compiler.commandOutput().contains(warningMsg)); } +void tst_qmake::substitutes() +{ + QString workDir = base_path + "/testdata/substitutes"; + QVERIFY( test_compiler.qmake( workDir, "test" )); + QVERIFY( test_compiler.exists( workDir, "test", Exe, "1.0.0" )); + //QVERIFY( test_compiler.exists( workDir, "sub/test2", Exe, "1.0.0" )); + QVERIFY( test_compiler.makeDistClean( workDir )); + + QString buildDir = base_path + "/testdata/substitutes_build"; + QVERIFY( test_compiler.qmake( workDir, "test", buildDir )); + QVERIFY( test_compiler.exists( buildDir, "test", Exe, "1.0.0" )); + //QVERIFY( test_compiler.exists( buildDir, "sub/test2", Exe, "1.0.0" )); + QVERIFY( test_compiler.makeDistClean( buildDir )); +} + QTEST_MAIN(tst_qmake) #include "tst_qmake.moc" -- cgit v0.12 From 2b5469fcb541fd0c37c04acbe1470228272f8adf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 17 Aug 2010 11:57:58 +0200 Subject: exclude QtXmlPatterns from the completeness assessment that context is a *huge* collection of cryptic error messages, translation of which does not add too much value. so skip it. --- translations/check-ts.xq | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/check-ts.xq b/translations/check-ts.xq index 2d6404c..1062e90 100644 --- a/translations/check-ts.xq +++ b/translations/check-ts.xq @@ -1,3 +1,3 @@ for $file in tokenize($files, codepoints-to-string(10)) - let $fresh := doc($file)/TS/context/message[not (translation/@type = 'obsolete')] + let $fresh := doc($file)/TS/context[not (name = 'QtXmlPatterns')]/message[not (translation/@type = 'obsolete')] return concat($file, ":", count($fresh/translation[not (@type = 'unfinished')]) * 100 idiv count($fresh)) -- cgit v0.12 From 40a2971d2ebe2b7409c13ab049ed26b249033d8e Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Tue, 17 Aug 2010 13:34:10 +0200 Subject: Fix compilation: QT_NO_TEXTSTREAM Merge-request: 2450 Reviewed-by: Oswald Buddenhagen --- src/plugins/bearer/connman/qconnmanservice_linux.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index eb88317..b15589e 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -1053,7 +1053,9 @@ bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVarian { // QList args; +#ifndef QT_NO_TEXTSTREAM qWarning() << __FUNCTION__ << name << value.variant(); +#endif // args << qVariantFromValue(name); // args << qVariantFromValue(value); -- cgit v0.12 From 81644d683c0c8da3f14f162e31bc55038cb121d7 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 17 Aug 2010 12:56:57 +0200 Subject: Fix memory leak in gesture manager If the user unregisters a recognizer before anyone ever used it we didn't delete it on application exit. This fix makes sure we do. Task: QTBUG-12845 Reviewed-by: Denis Dzyubenko --- src/gui/kernel/qgesturemanager.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index fe9dd8a..e768a21 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -129,7 +129,12 @@ Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *r void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type) { QList list = m_recognizers.values(type); - m_recognizers.remove(type); + while (QGestureRecognizer *recognizer = m_recognizers.take(type)) { + if (!m_obsoleteGestures.contains(recognizer)) { + // inserting even an empty QSet will cause the recognizer to be deleted on destruction of the manager + m_obsoleteGestures.insert(recognizer, QSet()); + } + } foreach (QGesture *g, m_gestureToRecognizer.keys()) { QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g); if (list.contains(recognizer)) { -- cgit v0.12 From 608ed55d87a714be9b0b9681345bd012b40db4e5 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 17 Aug 2010 14:37:32 +0200 Subject: Cocoa: add autotest to be more safe regarding child window stacking Autotests only. Use native events on mac to check that child windows stays on top of parent windows. Reviewed-by: prasanth --- tests/auto/macnativeevents/tst_macnativeevents.cpp | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/tests/auto/macnativeevents/tst_macnativeevents.cpp b/tests/auto/macnativeevents/tst_macnativeevents.cpp index ffd0596..ac7d661 100644 --- a/tests/auto/macnativeevents/tst_macnativeevents.cpp +++ b/tests/auto/macnativeevents/tst_macnativeevents.cpp @@ -67,6 +67,11 @@ private slots: void testDragWindow(); void testMouseEnter(); void testChildDialogInFrontOfModalParent(); +#ifdef QT_MAC_USE_COCOA + void testChildWindowInFrontOfParentWindow(); + void testChildToolWindowInFrontOfChildNormalWindow(); + void testChildWindowInFrontOfStaysOnTopParentWindow(); +#endif void testKeyPressOnToplevel(); }; @@ -308,6 +313,81 @@ void tst_MacNativeEvents::testChildDialogInFrontOfModalParent() QVERIFY(!child.isVisible()); } +#ifdef QT_MAC_USE_COCOA +void tst_MacNativeEvents::testChildWindowInFrontOfParentWindow() +{ + // Test that a child window always stacks in front of its parent window. + // Do this by first click on the parent, then on the child window button. + QWidget parent; + QPushButton child("a button", &parent); + child.setWindowFlags(Qt::Window); + connect(&child, SIGNAL(clicked()), &child, SLOT(close())); + parent.show(); + child.show(); + + QPoint parent_p = parent.geometry().bottomLeft() + QPoint(20, -20); + QPoint child_p = child.geometry().center(); + + NativeEventList native; + native.append(new QNativeMouseButtonEvent(parent_p, Qt::LeftButton, 1, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(parent_p, Qt::LeftButton, 0, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(child_p, Qt::LeftButton, 1, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(child_p, Qt::LeftButton, 0, Qt::NoModifier)); + + native.play(); + QTest::qWait(100); + QVERIFY(!child.isVisible()); +} + +void tst_MacNativeEvents::testChildToolWindowInFrontOfChildNormalWindow() +{ + // Test that a child tool window always stacks in front of normal sibling windows. + // Do this by first click on the sibling, then on the tool window button. + QWidget parent; + QWidget normalChild(&parent, Qt::Window); + QPushButton toolChild("a button", &parent); + toolChild.setWindowFlags(Qt::Tool); + connect(&toolChild, SIGNAL(clicked()), &toolChild, SLOT(close())); + parent.show(); + normalChild.show(); + toolChild.show(); + + QPoint normalChild_p = normalChild.geometry().bottomLeft() + QPoint(20, -20); + QPoint toolChild_p = toolChild.geometry().center(); + + NativeEventList native; + native.append(new QNativeMouseButtonEvent(normalChild_p, Qt::LeftButton, 1, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(normalChild_p, Qt::LeftButton, 0, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(toolChild_p, Qt::LeftButton, 1, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(toolChild_p, Qt::LeftButton, 0, Qt::NoModifier)); + + native.play(); + QTest::qWait(100); + QVERIFY(!toolChild.isVisible()); +} + +void tst_MacNativeEvents::testChildWindowInFrontOfStaysOnTopParentWindow() +{ + // Test that a child window stacks on top of a stays-on-top parent. + QWidget parent(0, Qt::WindowStaysOnTopHint); + QPushButton button("close", &parent); + button.setWindowFlags(Qt::Window); + connect(&button, SIGNAL(clicked()), &button, SLOT(close())); + parent.show(); + button.show(); + QPoint inside = button.geometry().center(); + + // Post a click on the button to close the child dialog: + NativeEventList native; + native.append(new QNativeMouseButtonEvent(inside, Qt::LeftButton, 1, Qt::NoModifier)); + native.append(new QNativeMouseButtonEvent(inside, Qt::LeftButton, 0, Qt::NoModifier)); + + native.play(); + QTest::qWait(100); + QVERIFY(!button.isVisible()); +} +#endif + void tst_MacNativeEvents::testKeyPressOnToplevel() { // Check that we receive keyevents for -- cgit v0.12 From ab97e11919927d38bfc2be990d2b4dd1327083ea Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 17 Aug 2010 15:15:31 +0200 Subject: qgrayraster: Remove unnecessary indirection in QT_FT_Outline_Decompose MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since this function is only used inside qgrayraster.c, we can call the gray_* functions directly instead of going through function pointers. This allows inlining trivial methods like gray_line_to() et al. Reviewed-by: Samuel Rødal --- src/gui/painting/qgrayraster.c | 44 +++++++++--------------------------------- 1 file changed, 9 insertions(+), 35 deletions(-) diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c index 539a33c..94039fb 100644 --- a/src/gui/painting/qgrayraster.c +++ b/src/gui/painting/qgrayraster.c @@ -1355,10 +1355,6 @@ /* */ /* outline :: A pointer to the source target. */ /* */ - /* func_interface :: A table of `emitters', i.e,. function pointers */ - /* called during decomposition to indicate path */ - /* operations. */ - /* */ /* user :: A typeless pointer which is passed to each */ /* emitter during the decomposition. It can be */ /* used to store the state during the */ @@ -1369,15 +1365,10 @@ /* */ static int QT_FT_Outline_Decompose( const QT_FT_Outline* outline, - const QT_FT_Outline_Funcs* func_interface, void* user ) { #undef SCALED -#if 0 -#define SCALED( x ) ( ( (x) << shift ) - delta ) -#else #define SCALED( x ) (x) -#endif QT_FT_Vector v_last; QT_FT_Vector v_control; @@ -1392,12 +1383,6 @@ int error; char tag; /* current point's state */ -#if 0 - int shift = func_interface->shift; - TPos delta = func_interface->delta; -#endif - - first = 0; for ( n = 0; n < outline->n_contours; n++ ) @@ -1451,7 +1436,7 @@ tags--; } - error = func_interface->move_to( &v_start, user ); + error = gray_move_to( &v_start, user ); if ( error ) goto Exit; @@ -1471,7 +1456,7 @@ vec.x = SCALED( point->x ); vec.y = SCALED( point->y ); - error = func_interface->line_to( &vec, user ); + error = gray_line_to( &vec, user ); if ( error ) goto Exit; continue; @@ -1498,7 +1483,7 @@ if ( tag == QT_FT_CURVE_TAG_ON ) { - error = func_interface->conic_to( &v_control, &vec, + error = gray_conic_to( &v_control, &vec, user ); if ( error ) goto Exit; @@ -1511,7 +1496,7 @@ v_middle.x = ( v_control.x + vec.x ) / 2; v_middle.y = ( v_control.y + vec.y ) / 2; - error = func_interface->conic_to( &v_control, &v_middle, + error = gray_conic_to( &v_control, &v_middle, user ); if ( error ) goto Exit; @@ -1520,7 +1505,7 @@ goto Do_Conic; } - error = func_interface->conic_to( &v_control, &v_start, + error = gray_conic_to( &v_control, &v_start, user ); goto Close; } @@ -1551,20 +1536,20 @@ vec.x = SCALED( point->x ); vec.y = SCALED( point->y ); - error = func_interface->cubic_to( &vec1, &vec2, &vec, user ); + error = gray_cubic_to( &vec1, &vec2, &vec, user ); if ( error ) goto Exit; continue; } - error = func_interface->cubic_to( &vec1, &vec2, &v_start, user ); + error = gray_cubic_to( &vec1, &vec2, &v_start, user ); goto Close; } } } /* close the contour with a line segment */ - error = func_interface->line_to( &v_start, user ); + error = gray_line_to( &v_start, user ); Close: if ( error ) @@ -1592,22 +1577,11 @@ static int gray_convert_glyph_inner( RAS_ARG ) { - static - const QT_FT_Outline_Funcs func_interface = - { - (QT_FT_Outline_MoveTo_Func) gray_move_to, - (QT_FT_Outline_LineTo_Func) gray_line_to, - (QT_FT_Outline_ConicTo_Func)gray_conic_to, - (QT_FT_Outline_CubicTo_Func)gray_cubic_to, - 0, - 0 - }; - volatile int error = 0; if ( qt_ft_setjmp( ras.jump_buffer ) == 0 ) { - error = QT_FT_Outline_Decompose( &ras.outline, &func_interface, &ras ); + error = QT_FT_Outline_Decompose( &ras.outline, &ras ); gray_record_cell( RAS_VAR ); } else -- cgit v0.12 From acfa3c743c23ca2443d618bda6f3c01f78777b77 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Tue, 17 Aug 2010 16:31:14 +0200 Subject: Add tests/benchmarks/README With some information from the dev mailing list. Reviewed-by: Thiago --- tests/benchmarks/README | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/benchmarks/README diff --git a/tests/benchmarks/README b/tests/benchmarks/README new file mode 100644 index 0000000..d437299 --- /dev/null +++ b/tests/benchmarks/README @@ -0,0 +1,81 @@ +The most reliable way of running benchmarks is to do it in an otherwise idle +system. On a busy system, the results will vary according to the other tasks +demanding attention in the system. + +We have managed to obtain quite reliable results by doing the following on +Linux (and you need root): + + - switching the scheduler to a Real-Time mode + - setting the processor affinity to one single processor + - disabling the other thread of the same core + +This should work rather well for CPU-intensive tasks. A task that is in Real- +Time mode will simply not be preempted by the OS. But if you make OS syscalls, +especially I/O ones, your task will be de-scheduled. Note that this includes +page faults, so if you can, make sure your benchmark's warmup code paths touch +most of the data. + +To do this you need a tool called schedtool (package schedtool), from +http://freequaos.host.sk/schedtool/ + +From this point on, we are using CPU0 for all tasks: + +If you have a Hyperthreaded multi-core processor (Core-i5 and Core-i7), you +have to disable the other thread of the same core as CPU0. To discover which +one it is: + +$ cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list + +This will print something like 0,4, meaning that CPUs 0 and 4 are sibling +threads on the same core. So we'll turn CPU 4 off: + +(as root) +# echo 0 > /sys/devices/system/cpu/cpu4/online + +To turn it back on, echo 1 into the same file. + +To run a task on CPU 0 exclusively, using FIFO RT priority 10, you run the +following: + +(as root) +# schedtool -F -p 10 -a 1 -e ./taskname + +For example: +# schedtool -F -p 10 -a 1 -e ./tst_bench_qstring -tickcounter + +Warning: if your task livelocks or takes far too long to complete, your system +may be unusable for a long time, especially if you don't have other cores to +run stuff on. To prevent that, run it before schedtool and time it. + +You can also limit the CPU time that the task is allowed to take. Run in the +same shell as you'll run schedtool: + +$ ulimit -s 300 +To limit to 300 seconds (5 minutes) + +If your task runs away, it will get a SIGXCPU after consuming 5 minutes of CPU +time (5 minutes running at 100%). + +If your app is multithreaded, you may want to give it more CPUs, like CPU0 and +CPU1 with -a 3 (it's a bitmask). + +For best results, you should disable ALL other cores and threads of the same +processor. The new Core-i7 have one processor with 4 cores, +each core can run 2 threads; the older Mac Pros have two processors with 4 +cores each. So on those Mac Pros, you'd disable cores 1, 2 and 3, while on the +Core-i7, you'll need to disable all other CPUs. + +However, disabling just the sibling thread seems to produce very reliable +results for me already, with variance often below 0.5% (even though there are +some measurable spikes). + +Other things to try: + +Running the benchmark with highest priority, i.e. "sudo nice -19" +usually produces stable results on some machines. If the benchmark also +involves displaying something on the screen (on X11), running it with +"-sync" is a must. Though, in that case the "real" cost is not correct, +but it is useful to discover regressions. + +Also; not many people know about ionice (1) + ionice - get/set program io scheduling class and priority -- cgit v0.12 From db41f54d5cfe9e1cfa13c78536718ca34f008284 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 17 Aug 2010 16:46:21 +0200 Subject: make error messages consistent this re-uses an existing string and obsoletes another one, so it is ok during string freeze. --- tools/assistant/tools/assistant/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/assistant/tools/assistant/main.cpp b/tools/assistant/tools/assistant/main.cpp index 51ea9f9..02507ae 100644 --- a/tools/assistant/tools/assistant/main.cpp +++ b/tools/assistant/tools/assistant/main.cpp @@ -355,7 +355,7 @@ int main(int argc, char *argv[]) QHelpEngineCore cachedCollection(cachedCollectionFile); if (!cachedCollection.setupData()) { cmd.showMessage(QCoreApplication::translate("Assistant", - "Error reading collection file '%1': %2"). + "Error reading collection file '%1': %2."). arg(cachedCollectionFile). arg(cachedCollection.error()), true); return EXIT_FAILURE; -- cgit v0.12 From 5eaf1f41b17eb6f73420f1a9a5e48957015d2e4e Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 26 Jun 2010 14:34:49 +0200 Subject: Fixes QWS window decoration offset issues When using OpenGL ES in conjunction with Qt/Embedded, Q_BACKINGSTORE_SUBSURFACES is defined and the subsequent code path shared between this define and QWS defines results in window decoration offset errors. Merge-request: 714 Reviewed-by: Donald Carr --- src/gui/painting/qbackingstore.cpp | 9 ++++++++- src/gui/painting/qwindowsurface_qws.cpp | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp index 83751ed..446c867 100644 --- a/src/gui/painting/qbackingstore.cpp +++ b/src/gui/painting/qbackingstore.cpp @@ -353,8 +353,10 @@ void QWidgetBackingStore::beginPaint(QRegion &toClean, QWidget *widget, QWindowS dirtyOnScreen += toClean; #ifdef Q_WS_QWS +#ifndef Q_BACKINGSTORE_SUBSURFACES toClean.translate(tlwOffset); #endif +#endif #ifdef QT_NO_PAINT_DEBUG windowSurface->beginPaint(toClean); @@ -1294,7 +1296,12 @@ void QWidgetBackingStore::sync() #ifdef Q_BACKINGSTORE_SUBSURFACES QWindowSurface *subSurface = w->windowSurface(); BeginPaintInfo beginPaintInfo; - beginPaint(toBePainted, w, subSurface, &beginPaintInfo, false); + + QPoint off = w->mapTo(tlw, QPoint()); + toBePainted.translate(off); + beginPaint(toBePainted, w, subSurface, &beginPaintInfo, true); + toBePainted.translate(-off); + if (beginPaintInfo.nothingToPaint) continue; diff --git a/src/gui/painting/qwindowsurface_qws.cpp b/src/gui/painting/qwindowsurface_qws.cpp index a816ed2..170668b 100644 --- a/src/gui/painting/qwindowsurface_qws.cpp +++ b/src/gui/painting/qwindowsurface_qws.cpp @@ -882,7 +882,11 @@ void QWSMemorySurface::beginPaint(const QRegion &rgn) const QVector rects = rgn.rects(); const QColor blank = Qt::transparent; for (QVector::const_iterator it = rects.begin(); it != rects.end(); ++it) { - p.fillRect(*it, blank); + QRect r = *it; +#ifdef Q_BACKINGSTORE_SUBSURFACES + r.translate(painterOffset()); +#endif + p.fillRect(r, blank); } } QWSWindowSurface::beginPaint(rgn); -- cgit v0.12 From b2056bcd48aa2288f1879de4d0f53cff443e4b16 Mon Sep 17 00:00:00 2001 From: Donald Carr Date: Mon, 16 Aug 2010 23:38:18 +0000 Subject: Adjusted define styling Adjusted multi-line define to single conjugated define in order to conform to the rest of the modified file. --- src/gui/painting/qbackingstore.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp index 446c867..ac9b994 100644 --- a/src/gui/painting/qbackingstore.cpp +++ b/src/gui/painting/qbackingstore.cpp @@ -352,11 +352,9 @@ void QWidgetBackingStore::beginPaint(QRegion &toClean, QWidget *widget, QWindowS // Always flush repainted areas. dirtyOnScreen += toClean; -#ifdef Q_WS_QWS -#ifndef Q_BACKINGSTORE_SUBSURFACES +#if defined(Q_WS_QWS) && !defined(Q_BACKINGSTORE_SUBSURFACES) toClean.translate(tlwOffset); #endif -#endif #ifdef QT_NO_PAINT_DEBUG windowSurface->beginPaint(toClean); -- cgit v0.12 From 569b28760ba84a2cc5315bf06c173035dc14afc6 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 17 Aug 2010 17:30:34 +0200 Subject: Cocoa, Autotest: disable autotest that was added a bit premature The test is actually correct, but cannot be enabled before a second revision on the setStackingOrder function in qwidget_mac.mm has been rewritten to handle inter-child window stacking order Reviewed-by: prasanth --- tests/auto/macnativeevents/tst_macnativeevents.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/auto/macnativeevents/tst_macnativeevents.cpp b/tests/auto/macnativeevents/tst_macnativeevents.cpp index ac7d661..d582417 100644 --- a/tests/auto/macnativeevents/tst_macnativeevents.cpp +++ b/tests/auto/macnativeevents/tst_macnativeevents.cpp @@ -69,7 +69,7 @@ private slots: void testChildDialogInFrontOfModalParent(); #ifdef QT_MAC_USE_COCOA void testChildWindowInFrontOfParentWindow(); - void testChildToolWindowInFrontOfChildNormalWindow(); +// void testChildToolWindowInFrontOfChildNormalWindow(); void testChildWindowInFrontOfStaysOnTopParentWindow(); #endif void testKeyPressOnToplevel(); @@ -339,6 +339,7 @@ void tst_MacNativeEvents::testChildWindowInFrontOfParentWindow() QVERIFY(!child.isVisible()); } +/* This test can be enabled once setStackingOrder has been fixed in qwidget_mac.mm void tst_MacNativeEvents::testChildToolWindowInFrontOfChildNormalWindow() { // Test that a child tool window always stacks in front of normal sibling windows. @@ -365,7 +366,7 @@ void tst_MacNativeEvents::testChildToolWindowInFrontOfChildNormalWindow() QTest::qWait(100); QVERIFY(!toolChild.isVisible()); } - +*/ void tst_MacNativeEvents::testChildWindowInFrontOfStaysOnTopParentWindow() { // Test that a child window stacks on top of a stays-on-top parent. -- cgit v0.12 From 749ad26d255327c9fa3fe857a30983cc6dfef0d9 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 17 Aug 2010 17:33:42 +0200 Subject: Cocoa: revert parts of cc6dc0aeefde881a95f5fea2b26f2f3d7bdc6e15 The reason is that we tried to fix the stacking order of child windows while we fixed a crash. But the patch turned out to break an auto-test Reviewed-by: prasanth --- src/gui/kernel/qwidget_mac.mm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index 4ed4ccc..1979c84 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -2799,9 +2799,7 @@ void QWidgetPrivate::setSubWindowStacking(bool set) if (set) { if (parent->isVisible()) { NSWindow *childwin = qt_mac_window_for(q); - int childLevel = [childwin level]; [qt_mac_window_for(parent) addChildWindow:childwin ordered:NSWindowAbove]; - [childwin setLevel:childLevel]; } } else { [qt_mac_window_for(parent) removeChildWindow:qt_mac_window_for(q)]; @@ -2815,9 +2813,7 @@ void QWidgetPrivate::setSubWindowStacking(bool set) if (child->isWindow() && child->testAttribute(Qt::WA_WState_Created) && child->isVisibleTo(q)) { if (set) { NSWindow *childwin = qt_mac_window_for(child); - int childLevel = [childwin level]; [qt_mac_window_for(q) addChildWindow:childwin ordered:NSWindowAbove]; - [childwin setLevel:childLevel]; } else { [qt_mac_window_for(q) removeChildWindow:qt_mac_window_for(child)]; } -- cgit v0.12 From 837b6bba916c39665884e4967d70808f863c4487 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Tue, 17 Aug 2010 19:05:35 +0200 Subject: Fix the blending of ARGB_PM image when using palignr to load the data The data loaded for the first were incorrect because the offset was incorrect. The correct offset should be up to the alignment point. Instead of trying to load a temporary array, we just move one vector further since we know reading there is always safe. Reviewed-by: Andreas Kling --- src/gui/painting/qdrawhelper_ssse3.cpp | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp index bc4a7eb8..9c02009 100644 --- a/src/gui/painting/qdrawhelper_ssse3.cpp +++ b/src/gui/painting/qdrawhelper_ssse3.cpp @@ -118,22 +118,12 @@ inline static void blend_pixel(quint32 &dst, const quint32 src) \ /* We use two vectors to extract the src: prevLoaded for the first pixels, lastLoaded for the current pixels. */\ __m128i srcVectorPrevLoaded;\ - if (minusOffsetToAlignSrcOn16Bytes <= prologLength) {\ - srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\ - } else {\ - quint32 temp[4] Q_DECL_ALIGN(16);\ - switch (prologLength) {\ - case 3:\ - temp[1] = src[x - 3];\ - case 2:\ - temp[2] = src[x - 2];\ - case 1:\ - temp[3] = src[x - 1];\ - default:\ - break;\ - }\ - srcVectorPrevLoaded = _mm_load_si128((__m128i *)temp);\ + if (minusOffsetToAlignSrcOn16Bytes > prologLength) {\ + /* We go forward 4 pixels to avoid reading before src. */\ + for (; x < prologLength + 4; ++x)\ + blend_pixel(dst[x], src[x]); \ }\ + srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\ const int palignrOffset = minusOffsetToAlignSrcOn16Bytes << 2;\ \ const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\ -- cgit v0.12 From 401ff4b290fcff0ef599af5986bc0b7816380575 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Wed, 18 Aug 2010 15:12:31 +1000 Subject: Add visible background element to declarative examples that didn't have any Invisible areas cause redraw artifacts with OpenVg paint engine. Task-number: Reviewed-by: Martin Jones --- examples/declarative/modelviews/package/view.qml | 3 +- examples/declarative/sqllocalstorage/hello.qml | 48 ++++++++++++---------- .../threading/threadedlistmodel/timedisplay.qml | 40 ++++++++++-------- 3 files changed, 51 insertions(+), 40 deletions(-) diff --git a/examples/declarative/modelviews/package/view.qml b/examples/declarative/modelviews/package/view.qml index 152881a..26230ef 100644 --- a/examples/declarative/modelviews/package/view.qml +++ b/examples/declarative/modelviews/package/view.qml @@ -40,7 +40,8 @@ import Qt 4.7 -Item { +Rectangle { + color: "white" width: 400 height: 200 diff --git a/examples/declarative/sqllocalstorage/hello.qml b/examples/declarative/sqllocalstorage/hello.qml index 421a74c..19b7378 100644 --- a/examples/declarative/sqllocalstorage/hello.qml +++ b/examples/declarative/sqllocalstorage/hello.qml @@ -40,32 +40,38 @@ //![0] import Qt 4.7 -Text { - text: "?" +Rectangle { + color: "white" + width: 200 + height: 100 + + Text { + text: "?" + anchors.horizontalCenter: parent.horizontalCenter + function findGreetings() { + var db = openDatabaseSync("QDeclarativeExampleDB", "1.0", "The Example QML SQL!", 1000000); - function findGreetings() { - var db = openDatabaseSync("QDeclarativeExampleDB", "1.0", "The Example QML SQL!", 1000000); + db.transaction( + function(tx) { + // Create the database if it doesn't already exist + tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)'); - db.transaction( - function(tx) { - // Create the database if it doesn't already exist - tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)'); + // Add (another) greeting row + tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'hello', 'world' ]); - // Add (another) greeting row - tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'hello', 'world' ]); + // Show all added greetings + var rs = tx.executeSql('SELECT * FROM Greeting'); - // Show all added greetings - var rs = tx.executeSql('SELECT * FROM Greeting'); - - var r = "" - for(var i = 0; i < rs.rows.length; i++) { - r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n" + var r = "" + for(var i = 0; i < rs.rows.length; i++) { + r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n" + } + text = r } - text = r - } - ) - } + ) + } - Component.onCompleted: findGreetings() + Component.onCompleted: findGreetings() + } } //![0] diff --git a/examples/declarative/threading/threadedlistmodel/timedisplay.qml b/examples/declarative/threading/threadedlistmodel/timedisplay.qml index 997f7a0..9fc3eb3 100644 --- a/examples/declarative/threading/threadedlistmodel/timedisplay.qml +++ b/examples/declarative/threading/threadedlistmodel/timedisplay.qml @@ -41,31 +41,35 @@ // ![0] import Qt 4.7 -ListView { +Rectangle { + color: "white" width: 200 height: 300 - model: listModel - delegate: Component { - Text { text: time } - } + ListView { - ListModel { id: listModel } + model: listModel + delegate: Component { + Text { text: time } + } - WorkerScript { - id: worker - source: "dataloader.js" - } + ListModel { id: listModel } + + WorkerScript { + id: worker + source: "dataloader.js" + } - Timer { - id: timer - interval: 2000; repeat: true - running: true - triggeredOnStart: true + Timer { + id: timer + interval: 2000; repeat: true + running: true + triggeredOnStart: true - onTriggered: { - var msg = {'action': 'appendCurrentTime', 'model': listModel}; - worker.sendMessage(msg); + onTriggered: { + var msg = {'action': 'appendCurrentTime', 'model': listModel}; + worker.sendMessage(msg); + } } } } -- cgit v0.12 From a082d8ee8d27aaa190d28c2493b8f0326e2c9724 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Wed, 18 Aug 2010 15:22:36 +1000 Subject: Fix previous commit Task-number: Reviewed-by: Trust me --- examples/declarative/threading/threadedlistmodel/timedisplay.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/declarative/threading/threadedlistmodel/timedisplay.qml b/examples/declarative/threading/threadedlistmodel/timedisplay.qml index 9fc3eb3..d807955 100644 --- a/examples/declarative/threading/threadedlistmodel/timedisplay.qml +++ b/examples/declarative/threading/threadedlistmodel/timedisplay.qml @@ -47,7 +47,7 @@ Rectangle { height: 300 ListView { - + anchors.fill: parent model: listModel delegate: Component { Text { text: time } -- cgit v0.12 From cea26da032449d6eed252890721c230fb9ad8dd3 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 18 Aug 2010 10:47:03 +0200 Subject: Update Polish translations --- translations/designer_pl.ts | 1332 ---------------------- translations/qt_pl.ts | 2635 +------------------------------------------ 2 files changed, 19 insertions(+), 3948 deletions(-) diff --git a/translations/designer_pl.ts b/translations/designer_pl.ts index cadcc2b..59b5baf 100644 --- a/translations/designer_pl.ts +++ b/translations/designer_pl.ts @@ -4,27 +4,22 @@ AbstractFindWidget - &Previous &Poprzednie - &Next &Następne - &Case sensitive Uwzględniaj &wielkość liter - Whole &words &Całe słowa - <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/shared/images/wrap.png">&nbsp;Przeszukano od początku @@ -32,17 +27,14 @@ AddLinkDialog - Insert Link Wstaw odsyłacz - Title: Tytuł: - URL: Adres URL: @@ -50,7 +42,6 @@ AppFontDialog - Additional Fonts Dodatkowe czcionki @@ -58,37 +49,30 @@ AppFontManager - '%1' is not a file. '%1' nie jest plikiem. - The font file '%1' does not have read permissions. Plik z czcionką '%1' nie ma praw do odczytu. - The font file '%1' is already loaded. Plik z czcionką '%1' jest już wczytany. - The font file '%1' could not be loaded. Nie można wczytać pliku z czcionką %1. - '%1' is not a valid font id. '%1' nie jest poprawnym identyfikatorem czcionki. - There is no loaded font matching the id '%1'. Brak wczytanej czcionki o identyfikatorze '%1'. - The font '%1' (%2) could not be unloaded. Nie można usunąć czcionki '%1' (%2). @@ -96,52 +80,42 @@ AppFontWidget - Fonts Czcionki - Add font files Dodaj pliki z czcionkami - Remove current font file Usuń bieżący plik z czcionką - Remove all font files Usuń wszystkie pliki z czcionkami - Add Font Files Dodaj pliki z czcionkami - Font files (*.ttf) Pliki z czcionkami (*.ttf) - Error Adding Fonts Błąd podczas dodawania czcionek - Error Removing Fonts Błąd podczas usuwania czcionek - Remove Fonts Unuń czcionki - Would you like to remove all fonts? Czy chcesz usunąć wszystkie czcionki? @@ -149,12 +123,10 @@ AppearanceOptionsWidget - Form Formularz - User Interface Mode Tryb interfejsu użytkownika @@ -162,17 +134,14 @@ AssistantClient - Unable to send request: Assistant is not responding. Nie można wysłac komendy. Asystent nie odpowiada. - The binary '%1' does not exist. Plik binarny '%1' nie istnieje. - Unable to launch assistant (%1). Nie można uruchomić asystenta (%1). @@ -180,92 +149,74 @@ BrushPropertyManager - No brush Brak szczotki - Solid Jednolity - Dense 1 Gęstość 1 - Dense 2 Gęstość 2 - Dense 3 Gęstość 3 - Dense 4 Gęstość 4 - Dense 5 Gęstość 5 - Dense 6 Gęstość 6 - Dense 7 Gęstość 7 - Horizontal Poziomo - Vertical Pionowo - Cross Krzyżyk - Backward diagonal Linie pochylone w prawo - Forward diagonal Linie pochylone w lewo - Crossing diagonal Linie krzyżujące się - Style Styl - Color Kolor - [%1, %2] [%1, %2] @@ -273,360 +224,277 @@ Command - - Change signal Zmień sygnał - - Change slot Zmień slot - Change signal-slot connection Zmień połączenie sygnału ze slotem - Change sender Zmień nadawcę - Change receiver Zmień odbiorcę - Add connection Dodaj połączenie - Adjust connection Dopasuj połączenie - Delete connections Usuń połączenia - Change source Zmień źródło - Change target Zmień przeznaczenie - Insert '%1' Wstaw '%1' - Raise '%1' Przenieś na wierzch '%1' - Lower '%1' Przenieś na spód '%1' - Delete '%1' Usuń '%1' - Reparent '%1' Zmień rodzica '%1' - Promote to custom widget Zastąp widżet - Demote from custom widget Przywróć do oryginalnego widżetu - Lay out using grid Rozmieść używając siatki - Lay out vertically Rozmieść w pionie - Lay out horizontally Rozmieść w poziomie - Break layout Usuń rozmieszczenie - - - Move Page Przenieś stronę - - - - Delete Page Usuń stronę - - Page Strona - page strona - - - - Insert Page Wstaw stronę - Change Tab order Zmień kolejność tabulacji - Create Menu Bar Utwórz pasek menu - Delete Menu Bar Usuń pasek menu - Create Status Bar Utwórz pasek stanu - Delete Status Bar Usuń pasek stanu - Add Tool Bar Dodaj pasek narzędzi - Add Dock Window Dodaj okno dokowalne - Adjust Size of '%1' Dopasuj rozmiar '%1' - Change Form Layout Item Geometry Zmień geometrię elementu w formularzu - Change Layout Item Geometry Zmień geometrię elementu w rozmieszczeniu - Change Table Contents Zmień zawartość tabeli - Change Tree Contents Zmień zawartość drzewa - - Add action Dodaj akcję - - Remove action Usuń akcję - Add menu Dodaj menu - Remove menu Usuń menu - Create submenu Utwórz podmenu - Delete Tool Bar Usuń pasek narzędzi - Set action text Ustaw tekst akcji - Insert action Wstaw akcję - - Move action Przenieś akcję - Change Title Zmień tytuł - Insert Menu Wstaw menu - Change signals/slots Zmień sygnały/sloty - Delete Subwindow Usuń podokno - Insert Subwindow Wstaw podokno - subwindow podokno - Subwindow Podokno - Change Z-order of '%1' Zmień porządek głębokości (Z-order) dla '%1' - Simplify Grid Layout Uprość rozmieszczenie w siatce - Create button group Utwórz grupę przycisków - Break button group Usuń grupę przycisków - Break button group '%1' Usuń grupę przycisków '%1' - Add buttons to group Dodaj przyciski do grupy - - Add '%1' to '%2' Command description for adding buttons to a QButtonGroup Dodaj '%1' do '%2' - Remove buttons from group Usuń przyciski z grupy - Remove '%1' from '%2' Command description for removing buttons from a QButtonGroup Usuń '%1' z '%2' - Morph %1/'%2' into %3 MorphWidgetCommand description Przekształć %1/%2 w %3 - Change layout of '%1' from %2 to %3 Zmień rozmieszczenie widżetu '%1' z %2 na %3 - Change script Zmień skrypt - Changed '%1' of '%2' Zmień '%1' w '%2' - Changed '%1' of %n objects Zmieniono '%1' w %n obiekcie @@ -635,12 +503,10 @@ - Reset '%1' of '%2' Przywróć domyślną wartość '%1' w '%2' - Reset '%1' of %n objects Przywrócono domyślną wartość '%1' w '%n' obiekcie @@ -649,12 +515,10 @@ - Add dynamic property '%1' to '%2' Dodaj dynamiczną właściwość '%1' do '%2' - Add dynamic property '%1' to %n objects Dodaj dynamiczną właściwość '%1' do %n obiektu @@ -663,12 +527,10 @@ - Remove dynamic property '%1' from '%2' Usuń dynamiczną właściwość '%1' z '%2' - Remove dynamic property '%1' from %n objects Usuń dynamiczną właściwość '%1' z %n obiektu @@ -680,22 +542,18 @@ ConnectDialog - Configure Connection Skonfiguruj połączenie - GroupBox GroupBox - Edit... Edycja... - Show signals and slots inherited from QWidget Pokaż sygnały i sloty klasy QWidget @@ -703,17 +561,14 @@ ConnectionDelegate - <object> <obiekt> - <signal> <sygnał> - <slot> <slot> @@ -721,19 +576,16 @@ DPI_Chooser - Standard (96 x 96) Embedded device standard screen resolution Standardowa (96 x 96) - Greenphone (179 x 185) Embedded device screen resolution Greenphone'a (179 x 185) - High (192 x 192) Embedded device high definition screen resolution Wysoka (192 x 192) @@ -742,89 +594,72 @@ Designer - Qt Designer Qt Designer - Custom Widgets Własne widżety - Promoted Widgets Zastępcze widżety - Unable to launch %1. Nie można uruchomić %1. - %1 timed out. %1 przekroczony czas operacji. - This file cannot be read because it was created using %1. Nie można odczytać pliku ponieważ został utworzony przy użyciu %1. - This file cannot be read because the extra info extension failed to load. Nie można odczytać pliku ponieważ dodatkowe informacje nie mogły zostać załadowane. - The converted file could not be read. Nie można odczytać skonwertowanego pliku. - Invalid UI file: The root element <ui> is missing. Niepoprawny plik UI: brak głównego elementu <ui>. - An error has occurred while reading the UI file at line %1, column %2: %3 Wystąpił błąd podczas czytania zawartości pliku UI, linia %1, kolumna %2: %3 - This file was created using Designer from Qt-%1 and cannot be read. Ten plik został utworzony za pomocą Qt Designer w wersji %1 i nie można go odczytać. - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. Ten plik zawiera dystansy na najwyższym poziomie.<br><b>NIE</b> zostały one jednak zachowane w pliku. - Perhaps you forgot to create a layout? Możliwe że zapomniałeś utworzyć rozmieszczenia? - This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. Ten plik został utworzony za pomocą Qt Designer w wersji %1 i będzie skonwertowany przez Qt Designer'a do nowego formularza. - The old form has not been touched, but you will have to save the form under a new name. Stary formularz nie był zmieniony, ale nowy będzie musiał być zapisany pod nową nazwą. - This file was created using Designer from Qt-%1 and could not be read: %2 Ten plik został utworzony za pomocą Qt Designer w wersji %1 i nie można go odczytać. %2 - Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. Uruchom go przez <b>uic3&nbsp;-convert</b> aby skonwertować do formatu Qt-4. @@ -832,12 +667,10 @@ DesignerMetaEnum - %1 is not a valid enumeration value of '%2'. %1 nie jest poprawną wartością typu wyliczeniowego '%2'. - '%1' could not be converted to an enumeration value of type '%2'. Nie można skonwertować '%1' do wartości typu wyliczeniowego '%2'. @@ -845,7 +678,6 @@ DesignerMetaFlags - '%1' could not be converted to a flag value of type '%2'. Nie można skonwertować '%1' do wartości typu flaga '%2'. @@ -853,13 +685,11 @@ DeviceProfile - '%1' is not a number. Reading a number for an embedded device profile '%1' nie jest liczbą. - An invalid tag <%1> was encountered. Napotkano niepoprawny tag <%1>. @@ -867,27 +697,22 @@ DeviceProfileDialog - &Family &Rodzina - &Point Size &Wielkość punktu - Style Styl - Device DPI Rozdzielczość urządzenia - Name Nazwa @@ -895,57 +720,46 @@ DeviceSkin - The image file '%1' could not be loaded. Nie można wczytać pliku z obrazkiem %1. - The skin directory '%1' does not contain a configuration file. Katalog ze skórkami (skin) '%1' nie zawiera pliku konfiguracyjnego. - The skin configuration file '%1' could not be opened. Nie można otworzyć pliku z konfiguracją skórki (skin) '%1'. - Syntax error: %1 Błąd składni: %1 - The skin cursor image file '%1' does not exist. Plik z obrazkiem kursora '%1' dla skórki (skin) nie istnieje. - Syntax error in area definition: %1 Błąd składni w definicji obszaru: %1 - Mismatch in number of areas, expected %1, got %2. Niezgodność w ilości obszarów, spodziewano się %1, otrzymano %2. - The skin configuration file '%1' could not be read: %2 Nie można odczytać pliku z konfiguracją skórki (skin) '%1', powód: %2 - The skin "up" image file '%1' does not exist. Plik z obrazkiem "do góry" '%1' dla skórki (skin) nie istnieje. - The skin "down" image file '%1' does not exist. Plik z obrazkiem "w dół" '%1' dla skórki (skin) nie istnieje. - The skin "closed" image file '%1' does not exist. Plik z obrazkiem "zamknięte" '%1' dla skórki (skin) nie istnieje. @@ -953,7 +767,6 @@ EmbeddedOptionsControl - <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> Format embedded device profile description <html><table><tr><td><b>Font</b></td><td>%1, %2</td></tr><tr><td><b>Styl</b></td><td>%3</td></tr><tr><td><b>Rozdzielczość</b></td><td>%4 x %5</td></tr></table></html> @@ -962,13 +775,11 @@ EmbeddedOptionsPage - Embedded Design Tab in preferences dialog Projekt dla urządzeń specjalizowanych - Device Profiles EmbeddedOptionsControl group box" Profile urządzeń @@ -977,27 +788,22 @@ FontPanel - Font Czcionka - &Writing system Sys&tem pisania - &Family &Rodzina - &Style &Styl - &Point size &Wielkość punktu @@ -1005,22 +811,18 @@ FontPropertyManager - PreferDefault Preferuj domyślny - NoAntialias Brak antyaliasingu - PreferAntialias Preferuj antyaliasing - Antialiasing Antyaliasing @@ -1028,7 +830,6 @@ FormBuilder - Invalid stretch value for '%1': '%2' Parsing layout stretch values ---------- @@ -1038,7 +839,6 @@ Parsing layout stretch values Niepoprawna wartość rozciągniecia dla '%1': '%2' - Invalid minimum size for '%1': '%2' Parsing grid layout minimum size values ---------- @@ -1051,28 +851,23 @@ Parsing grid layout minimum size values FormEditorOptionsPage - %1 % %1 % - Preview Zoom Powiększanie podglądu - Default Zoom Domyślne powiększenie - Forms Tab in preferences dialog Formularze - Default Grid Domyślna siatka @@ -1080,37 +875,30 @@ Parsing grid layout minimum size values FormLayoutRowDialog - Add Form Layout Row Dodaj wiersz do formularza - &Label text: Text &etykiety: - Field &type: &Typ pola: - &Field name: Nazwa &pola: - &Buddy: Etykieta &skojarzona: - &Row: &Wiersz: - Label &name: &Nazwa etykiety: @@ -1118,12 +906,10 @@ Parsing grid layout minimum size values FormWindow - Unexpected element <%1> Niespodziewany element <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Błąd podczas wklejania zawartości schowka, linia %1, kolumna %2: %3 @@ -1131,62 +917,50 @@ Parsing grid layout minimum size values FormWindowSettings - Form Settings Ustawienia formularza - &Pixmap Function Funkcja ustawiania &pixmapy - &Include Hints Dodatkowe pliki &nagłówkowe - Embedded Design Projekt dla urządzeń specjalizowanych - &Author &Autor - Layout &Default &Rozmieszczenie domyślne - &Spacing: &Odstępy: - &Margin: &Marginesy: - &Layout Function Funkcja &rozmieszczania widżetów - Ma&rgin: Ma&rginesy: - Spa&cing: Od&stępy: - Grid Siatka @@ -1194,7 +968,6 @@ Parsing grid layout minimum size values IconSelector - All Pixmaps ( Wszystkie pixmapy ( @@ -1202,7 +975,6 @@ Parsing grid layout minimum size values ItemPropertyBrowser - XX Icon Selected off Sample string to determinate the width for the first column of the list item property browser XX ikona wybrana wyłączona @@ -1211,33 +983,27 @@ Parsing grid layout minimum size values MainWindowBase - Main Not currently used (main tool bar) Główny - File Plik - Edit Edycja - Tools Narzędzia - Form Formularz - Qt Designer Qt Designer @@ -1245,52 +1011,42 @@ Parsing grid layout minimum size values NewForm - New Form Nowy formularz - &Open... &Otwórz... - C&reate &Utwórz - &Close Za&mknij - Show this Dialog on Startup Pokazuj to okno przy uruchamianiu - Recent Ostatnie - &Recent Forms Os&tatnio edytowane formularze - Read error Błąd odczytu - A temporary form file could not be created in %1. Nie można utworzyć pliku z tymczasowym formularzem w %1. - The temporary form file %1 could not be written. Nie można zapisać pliku z tymczasowym formularzem w %1. @@ -1298,22 +1054,18 @@ Parsing grid layout minimum size values ObjectInspectorModel - Object Obiekt - Class Klasa - separator separator - <noname> <brak_nazwy> @@ -1321,12 +1073,10 @@ Parsing grid layout minimum size values ObjectNameDialog - Change Object Name Zmień nazwę obiektu - Object Name Nazwa obiektu @@ -1334,12 +1084,10 @@ Parsing grid layout minimum size values PluginDialog - Plugin Information Informacje o wtyczkach - 1 1 @@ -1347,7 +1095,6 @@ Parsing grid layout minimum size values PreferencesDialog - Preferences Ustawienia @@ -1355,32 +1102,26 @@ Parsing grid layout minimum size values PreviewConfigurationWidget - Form Formularz - Print/Preview Configuration Konfiguracja wydruku/podglądu - Style Styl - Style sheet Arkusz stylu - ... ... - Device skin Skórka (skin) urządzenia @@ -1388,7 +1129,6 @@ Parsing grid layout minimum size values PromotionModel - Not used Usage of promoted widgets Nie używana @@ -1397,8 +1137,6 @@ Parsing grid layout minimum size values Q3WizardContainer - - Page Strona @@ -1406,59 +1144,48 @@ Parsing grid layout minimum size values QAbstractFormBuilder - Unexpected element <%1> Niespodziewany element <%1> - An error has occurred while reading the UI file at line %1, column %2: %3 Wystąpił błąd podczas czytania zawartości pliku ui, linia %1, kolumna %2: %3 - Invalid UI file: The root element <ui> is missing. Niepoprawny plik UI: brak głównego elementu <ui>. - The creation of a widget of the class '%1' failed. Utworzenie widżetu klasy '%1' nie powiodło się. - Attempt to add child that is not of class QWizardPage to QWizard. Próba dodania potomka który nie jest klasy QWizardPage do QWizard. - 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. Próba dodania rozmieszczenia do widżetu '%1' (%2) który posiada już niezarządzane rozmieszczenie typu %3. To wskazuje na niespójność w pliku ui. - Empty widget item in %1 '%2'. Pusty element w %1 '%2'. - Flags property are not supported yet. Właściwości typu flaga nie są jeszcze obsługiwane. - While applying tab stops: The widget '%1' could not be found. Podczas przypisywania kolejności tabulacji: widżet '%1' nie został znaleziony. - Invalid QButtonGroup reference '%1' referenced by '%2'. Niepoprawny odnośnik QButtonGroup '%1', użyty w '%2'. - This version of the uitools library is linked without script support. Ta wersja biblioteki uitools nie zawiera obsługi skryptów. @@ -1466,12 +1193,10 @@ To wskazuje na niespójność w pliku ui. QAxWidgetPlugin - ActiveX control Kontrolka ActiveX - ActiveX control widget Widżet z kontrolką ActiveX @@ -1479,22 +1204,18 @@ To wskazuje na niespójność w pliku ui. QAxWidgetTaskMenu - Set Control Ustaw kontrolkę - Reset Control Przywróć pustą zawartość kontrolce - Licensed Control Kontrolka licencjonowana - The control requires a design-time license Kontrolka wymaga licencji podczas projektowania @@ -1502,67 +1223,54 @@ To wskazuje na niespójność w pliku ui. QCoreApplication - %1 is not a promoted class. %1 nie jest klasą zastępczą. - The base class %1 is invalid. Klasa podstawowa %1 jest niewłaściwa. - The class %1 already exists. Klasa %1 już istnieje. - Promoted Widgets Zastępcze widżety - The class %1 cannot be removed Nie można usunąć klasy %1 - The class %1 cannot be removed because it is still referenced. Nie można usunąć klasy %1 ponieważ w dalszym ciągu są do niej odwołania. - The class %1 cannot be renamed Nie można zmienić nazwy klasy %1 - The class %1 cannot be renamed to an empty name. Nie można zmienić nazwy klasy %1 na pustą nazwę. - There is already a class named %1. Istnieje już klasa o nazwie %1. - Cannot set an empty include file. Nie można ustawić pustego pliku nagłówkowego. - Exception at line %1: %2 Wyjątek w linii %1: %2 - Unknown error Nieznany błąd - An error occurred while running the script for %1: %2 Script: %3 Wystąpił błąd podczas uruchamiana skryptu dla %1: %2 @@ -1572,17 +1280,14 @@ Skrypt: %3 QDesigner - %1 - warning %1 - ostrzeżenie - Qt Designer Qt Designer - This application cannot be used for the Console edition of Qt Nie można użyć tej aplikacji w wydaniu Qt Console @@ -1590,105 +1295,82 @@ Skrypt: %3 QDesignerActions - Clear &Menu Wyczyść &menu - &Quit Za&kończ - Edit Widgets Modyfikuj widżety - CTRL+R CTRL+R - &Minimize &Zminimalizuj - CTRL+M CTRL+M - Bring All to Front Wszystkie na wierzch - Additional Fonts... Dodatkowe czcionki... - Qt Designer &Help Pomo&c Qt Designer - Current Widget Help Pomoc dla bieżącego widżetu - What's New in Qt Designer? Co nowego w Qt Designer? - About Plugins Informacje o wtyczkach - - About Qt Designer Informacje o Qt Designer - About Qt Informacje o Qt - &Recent Forms Os&tatnio edytowane formularze - - Open Form Otwórz formularz - Designer Projektant - Feature not implemented yet! Cecha nie zaimplementowana! - - Save Form? Zachować formularz? - The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? @@ -1697,145 +1379,114 @@ Powód: %2 Czy chcesz spróbować ponownie lub zmienić nazwę pliku? - Select New File Wybierz nowy plik - %1 already exists. Do you want to replace it? %1 już istnieje. Czy chcesz go zastąpić? - &Close Preview Za&mknij podgląd - Preferences... Ustawienia... - CTRL+SHIFT+S CTRL+SHIFT+S - - - Designer UI files (*.%1);;All Files (*) Pliki Designer UI (*.%1);;Wszystkie pliki (*) - Saved %1. Formularz %1 zachowany pomyślnie. - Read error Błąd odczytu - %1 Do you want to update the file location or generate a new form? %1 Czy chcesz zaktualizować położenie pliku lub wygenerować nowy formularz? - &Update &Uaktualnij - &New Form Nowy &formularz - Could not open file Nie można otworzyć pliku - Could not write file Nie można zapisać pliku - &New... &Nowy... - &Open... &Otwórz... - &Save &Zachowaj - Save &As... Zachowaj j&ako... - Save A&ll Zachowaj &wszystko - Save As &Template... Zachowaj jako &szablon... - - &Close Za&mknij - Save &Image... Zachowaj o&brazek... - &Print... &Drukuj... - View &Code... Pokaż &kod... - - Save Form As Zachowaj formularz jako - Preview failed Nie można utworzyć podglądu - Code generation failed Nie można wygenerować kodu - It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? @@ -1844,60 +1495,46 @@ Powód:%2 Czy chcesz spróbować ponownie? - - The backup file %1 could not be written. Nie można zapisać pliku zapasowego %1. - The backup directory %1 could not be created. Nie można utworzyć katalogu %1 na pliki zapasowe. - The temporary backup directory %1 could not be created. Nie można utworzyć tymczasowego katalogu %1 na pliki zapasowe. - Image files (*.%1) Pliki z obrazkami (*.%1) - - Save Image Zachowaj obrazek - The file %1 could not be written. Nie można zapisać pliku %1. - - Assistant Assistant - Saved image %1. Zachowano obrazek %1. - Please close all forms to enable the loading of additional fonts. Zamknij wszystkie formularze aby umożliwić wczytanie dodatkowych czcionek. - Printed %1. Wydrukowano %1. - ALT+CTRL+S ALT+CTRL+S @@ -1905,7 +1542,6 @@ Czy chcesz spróbować ponownie? QDesignerAppearanceOptionsPage - Appearance Tab in preferences dialog Wygląd @@ -1914,17 +1550,14 @@ Czy chcesz spróbować ponownie? QDesignerAppearanceOptionsWidget - Docked Window Okna dokowalne - Multiple Top-Level Windows Wiele okien głównych - Toolwindow Font Czcionka okna narzędzi @@ -1932,22 +1565,18 @@ Czy chcesz spróbować ponownie? QDesignerAxWidget - Reset control Przywróć pustą zawartość kontrolce - Set control Ustaw kontrolkę - Control loaded Kontrolka wczytana - A COM exception occurred when executing a meta call of type %1, index %2 of "%3". Wystąpił wyjątek COM podczas wykonywania metody typu %1 o indeksie %2 w "%3". @@ -1955,17 +1584,14 @@ Czy chcesz spróbować ponownie? QDesignerFormBuilder - Script errors occurred: Wystąpiły błędy w skrypcie: - The preview failed to build. Nie można utworzyć podglądu. - Designer Projektant @@ -1973,22 +1599,18 @@ Czy chcesz spróbować ponownie? QDesignerFormWindow - %1 - %2[*] %1 - %2[*] - Save Form? Zachować formularz? - Do you want to save the changes to this document before closing? Czy chcesz zachować zmiany w tym dokumencie przed zamknięciem? - If you don't save, your changes will be lost. Jeśli ich nie zachowasz, zostaną utracone. @@ -1996,38 +1618,30 @@ Czy chcesz spróbować ponownie? QDesignerMenu - Type Here Wpisz tutaj - Add Separator Dodaj separator - Remove action '%1' Usuń akcję '%1' - Insert action Wstaw akcję - - Add separator Dodaj separator - Insert separator Wstaw separator - Remove separator Usuń separator @@ -2035,22 +1649,18 @@ Czy chcesz spróbować ponownie? QDesignerMenuBar - Type Here Wpisz tutaj - Remove Menu '%1' Usuń menu '%1' - Remove Menu Bar Usuń pasek menu - Menu Menu @@ -2058,37 +1668,30 @@ Czy chcesz spróbować ponownie? QDesignerPluginManager - An XML error was encountered when parsing the XML of the custom widget %1: %2 Wystąpił błąd XML podczas przetwarzania kodu XML dla własnego widżetu %1: %2 - A required attribute ('%1') is missing. Brak wymaganego atrybutu "%1". - An invalid property specification ('%1') was encountered. Supported types: %2 Wystąpiła błędna specyfikacja właściwości "%1". Obsługiwane typy: %2 - '%1' is not a valid string property specification. "%1" nie jest poprawną specyfikacją właściwości typu ciąg. - The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. Kod XML własnego widżetu %1 nie zawiera żadnego elementu <widget> ani <ui>. - The class attribute for the class %1 is missing. Atrybut "class" dla klasy %1 nie istnieje. - The class attribute for the class %1 does not match the class name %2. Atrybut "class" dla klasy %1 nie odpowiada nazwie klasy %2. @@ -2096,7 +1699,6 @@ Czy chcesz spróbować ponownie? QDesignerPropertySheet - Dynamic Properties Dynamiczne właściwości @@ -2104,31 +1706,26 @@ Czy chcesz spróbować ponownie? QDesignerResource - The layout type '%1' is not supported, defaulting to grid. Rozmieszczenie typu '%1' nie jest obsługiwane. Będzie ono zastąpione siatką. - 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. Rozszerzenie pojemnikowe widżetu "%1" (%2) zwróciło widżet który nie jest zarządzany przez Designera "%3" (%4) podczas pytania o stronę #%5. Strony pojemników powinny być dodawane jedynie poprzez wyspecyfikowanie ich w XML zwróconym przez metodę domXml() w widżecie użytkownika. - Unexpected element <%1> Parsing clipboard contents Niespodziewany element <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Parsing clipboard contents Błąd podczas wklejania zawartości schowka, linia %1, kolumna %2: %3 - Error while pasting clipboard contents: The root element <ui> is missing. Parsing clipboard contents Błąd podczas wklejania zawartości schowka: Brak głównego elementu <ui>. @@ -2137,12 +1734,10 @@ Strony pojemników powinny być dodawane jedynie poprzez wyspecyfikowanie ich w QDesignerSharedSettings - The template path %1 could not be created. Nie można utworzyć ścieżki %1 dla szablonów. - An error has been encountered while parsing device profile XML: %1 Wystąpił błąd podczas przetwarzania kodu XML dla profilu urządzenia: %1 @@ -2150,32 +1745,26 @@ Strony pojemników powinny być dodawane jedynie poprzez wyspecyfikowanie ich w QDesignerToolWindow - Property Editor Edytor właściwości - Action Editor Edytor akcji - Object Inspector Hierarchia obiektów - Resource Browser Przeglądarka zasobów - Signal/Slot Editor Edytor sygnałów/slotów - Widget Box Panel widżetów @@ -2183,97 +1772,78 @@ Strony pojemników powinny być dodawane jedynie poprzez wyspecyfikowanie ich w QDesignerWorkbench - &File &Plik - F&orm &Formularz - Preview in Podgląd w stylu - &View &Widok - &Settings U&stawienia - Widget Box Panel widżetów - The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? Designer nie został poprawnie zamknięty w trakcie ostatniej sesji. Istnieją pliki zapasowe, czy chcesz je otworzyć? - The file <b>%1</b> is not a valid Designer UI file. Plik <b>%1</b> nie jest poprawnym plikiem UI Designera. - &Window &Okno - &Help Pomo&c - Edit Edycja - Toolbars Paski narzędzi - Save Forms? Zachować formularze? - If you do not review your documents, all your changes will be lost. Jeśli nie przejrzysz dokumentów, wszystkie zmiany zostaną utracone. - Review Changes Przeglądnij zmiany - Discard Changes Odrzuć zmiany - Backup Information Informacja o kopiach zapasowych - The file <b>%1</b> could not be opened. Nie można otworzyć pliku <b>%1</b>. - There are %n forms with unsaved changes. Do you want to review these changes before quitting? Jest %n formularz z niezachowanymi zmianami. Czy chcesz przejrzeć zmiany przed wyjściem z programu? @@ -2285,7 +1855,6 @@ Strony pojemników powinny być dodawane jedynie poprzez wyspecyfikowanie ich w QFormBuilder - An empty class name was passed on to %1 (object name: '%2'). Empty class name passed to widget factory method ---------- @@ -2295,47 +1864,38 @@ Empty class name passed to widget factory method Pusta nazwa klasy została przekazana do %1 (nazwa obiektu: '%2'). - QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. QFormBuilder nie mógł utworzyć własnego widżetu klasy '%1'. Będzie on zastąpiony klasą bazową '%2'. - QFormBuilder was unable to create a widget of the class '%1'. QFormBuilder nie mógł utworzyć widżetu klasy '%1'. - The layout type `%1' is not supported. Typ rozmieszczenia '%1' nie jest obsługiwany. - The set-type property %1 could not be read. Nie można odczytać właściwości %1 typu zbiór. - The enumeration-type property %1 could not be read. Nie można odczytać właściwości %1 typu wyliczeniowego. - Reading properties of the type %1 is not supported yet. Odczytywanie właściwości typu %1 nie jest jeszcze obsługiwane. - The property %1 could not be written. The type %2 is not supported yet. Nie można zapisać właściwości %1. Typ %2 nie jest jeszcze obsługiwany. - The enumeration-value '%1' is invalid. The default value '%2' will be used instead. Wartość "%1" typu wyliczeniowego jest niepoprawna. Użyta zostanie domyślna wartość "%2". - The flag-value '%1' is invalid. Zero will be used instead. Wartość "%1" flagi jest niepoprawna. Użyta zostanie wartość zerowa. @@ -2343,48 +1903,38 @@ Empty class name passed to widget factory method QStackedWidgetEventFilter - Previous Page Poprzednia strona - Next Page Następna strona - Delete Usuń - Before Current Page Przed bieżącą stroną - After Current Page Za bieżącą stroną - Change Page Order... Zmień porządek stron... - Change Page Order Zmień porządek stron - Page %1 of %2 Strona %1 z %2 - - Insert Page Wstaw stronę @@ -2392,12 +1942,10 @@ Empty class name passed to widget factory method QStackedWidgetPreviewEventFilter - Go to previous page of %1 '%2' (%3/%4). Przejdź do poprzedniej strony %1 '%2' (%3/%4). - Go to next page of %1 '%2' (%3/%4). Przejdź do następnej strony %1 '%2' (%3/%4). @@ -2405,28 +1953,22 @@ Empty class name passed to widget factory method QTabWidgetEventFilter - Delete Usuń - Before Current Page Przed bieżącą stroną - After Current Page Za bieżącą stroną - Page %1 of %2 Strona %1 z %2 - - Insert Page Wstaw stronę @@ -2434,37 +1976,30 @@ Empty class name passed to widget factory method QToolBoxHelper - Delete Page Usuń stronę - Before Current Page Przed bieżącą stroną - After Current Page Za bieżącą stroną - Change Page Order... Zmień porządek stron... - Change Page Order Zmień porządek stron - Page %1 of %2 Strona %1 z %2 - Insert Page Wstaw stronę @@ -2472,15 +2007,10 @@ Empty class name passed to widget factory method QtBoolEdit - - - True Prawda - - False Fałsz @@ -2488,12 +2018,10 @@ Empty class name passed to widget factory method QtBoolPropertyManager - True Prawda - False Fałsz @@ -2501,7 +2029,6 @@ Empty class name passed to widget factory method QtCharEdit - Clear Char Wyczyść znak @@ -2509,7 +2036,6 @@ Empty class name passed to widget factory method QtColorEditWidget - ... ... @@ -2517,22 +2043,18 @@ Empty class name passed to widget factory method QtColorPropertyManager - Red Czerwień - Green Zieleń - Blue Błękit - Alpha Kanał alfa @@ -2540,97 +2062,78 @@ Empty class name passed to widget factory method QtCursorDatabase - Cross Krzyż - Arrow Strzałka - Up Arrow Strzałka do góry - Wait Oczekiwanie - IBeam Kursor tekstowy - Size Vertical Rozmiar N-S - Size Horizontal Rozmiar W-E - Size Backslash Rozmiar NW-SE - Size Slash Rozmiar NE-SW - Size All Rozmiar N-E-S-W - Blank Pusty - Split Vertical Podzielony pionowo - Split Horizontal Podzielony poziomo - Pointing Hand Rączka wskazująca - Forbidden Zabroniony - Open Hand Rączka otwarta - Closed Hand Rączka zamknięta - What's This Co to jest - Busy Zajęty @@ -2638,12 +2141,10 @@ Empty class name passed to widget factory method QtFontEditWidget - ... ... - Select Font Wybierz czcionkę @@ -2651,37 +2152,30 @@ Empty class name passed to widget factory method QtFontPropertyManager - Bold Pogrubiony - Italic Kursywa - Underline Podkreślony - Family Rodzina - Point Size Wielkość punktu - Strikeout Przekreślony - Kerning Kerning @@ -2689,7 +2183,6 @@ Empty class name passed to widget factory method QtGradientDialog - Edit Gradient Modyfikuj gradient @@ -2697,304 +2190,242 @@ Empty class name passed to widget factory method QtGradientEditor - Start X Początek X - Start Y Początek Y - Final X Koniec X - Final Y Koniec Y - - Central X Środek X - - Central Y Środek Y - Focal X Ogniskowa X - Focal Y Ogniskowa Y - Radius Promień - Angle Kąt - Linear Liniowy - Radial Radialny - Conical Stożkowy - Pad Brak - Repeat Powtórzone - Reflect Odbite - Form Formularz - Gradient Editor Edytor gradientu - 1 1 - 2 2 - 3 3 - 4 4 - 5 5 - Gradient Stops Editor Edytor punktów gradientu - 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. Ten obszar pozwala na edycję punktów gradientu. Aby skopiować istniejący punkt kliknij dwukrotnie na jego uchwyt. W celu stworzenia nowego punktu kliknij dwukrotnie poza istniejącymi uchwytami punków. Przeciągnij i upuść uchwyt aby go przesunąć. Naciśnij prawy przycisk myszy aby pokazać menu z dodatkowymi akcjami. - Zoom Powiększenie - Position Pozycja - Hue Barwa - H H - Saturation Nasycenie - S S - Sat Nasycenie - Value Wartość - V V - Val Wartość - Alpha Kanał alfa - A A - Type Rodzaj - Spread Rozciąganie - Color Kolor - Current stop's color Kolor bieżącego punktu - HSV HSV - RGB RGB - Current stop's position Pozycja bieżącego punktu - % % - Zoom In Powiększ - Zoom Out Pomniejsz - Toggle details extension Przełącz rozszerzenie ze szczegółami - > > - Linear Type Typ liniowy - ... ... - Radial Type Typ radialny - Conical Type Typ stożkowy - Pad Spread Powtarzaj punkt brzegowy - Repeat Spread Powtarzaj cały zakres - Reflect Spread Powtarzaj z odbiciami - 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. Ten obszar pokazuje podgląd edytowanego gradientu. Możesz tutaj również zmieniać parametry specyficzne dla typu gradientu, takie jak: punkt początkowy i końcowy, promień, itp... poprzez przeciągnięcie i upuszczenie uchwytu. - Show HSV specification Pokaż specyfikację HSV - Show RGB specification Pokaż specyfikację RGB - Reset Zoom Normalny rozmiar @@ -3002,37 +2433,30 @@ Empty class name passed to widget factory method QtGradientStopsWidget - New Stop Nowy punkt - Delete Usuń - Flip All Odwróć wszystko - Select All Zaznacz wszystko - Zoom In Powiększ - Zoom Out Pomniejsz - Reset Zoom Normalny rozmiar @@ -3040,46 +2464,34 @@ Empty class name passed to widget factory method QtGradientView - Grad Grad - Remove Gradient Usuń gradient - Are you sure you want to remove the selected gradient? Czy na pewno chcesz usunąć zaznaczony gradient? - - New... Nowy... - - Edit... Modyfikuj... - - Rename Zmień nazwę - - Remove Usuń - Gradient View Widok gradientów @@ -3087,8 +2499,6 @@ Empty class name passed to widget factory method QtGradientViewDialog - - Select Gradient Wybierz gradient @@ -3096,7 +2506,6 @@ Empty class name passed to widget factory method QtKeySequenceEdit - Clear Shortcut Wyczyść skrót @@ -3104,17 +2513,14 @@ Empty class name passed to widget factory method QtLocalePropertyManager - %1, %2 %1, %2 - Language Język - Country Kraj @@ -3122,17 +2528,14 @@ Empty class name passed to widget factory method QtPointFPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3140,17 +2543,14 @@ Empty class name passed to widget factory method QtPointPropertyManager - (%1, %2) (%1, %2) - X X - Y Y @@ -3158,12 +2558,10 @@ Empty class name passed to widget factory method QtPropertyBrowserUtils - [%1, %2, %3] (%4) [%1, %2, %3] (%4) - [%1, %2] [%1, %2] @@ -3171,27 +2569,22 @@ Empty class name passed to widget factory method QtRectFPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Szerokość - Height Wysokość @@ -3199,27 +2592,22 @@ Empty class name passed to widget factory method QtRectPropertyManager - [(%1, %2), %3 x %4] [(%1, %2), %3 x %4] - X X - Y Y - Width Szerokość - Height Wysokość @@ -3227,128 +2615,98 @@ Empty class name passed to widget factory method QtResourceEditorDialog - %1 already exists. Do you want to replace it? %1 już istnieje. Czy chcesz go zastąpić? - The file does not appear to be a resource file; element '%1' was found where '%2' was expected. Plik nie wygląda na plik z zasobami; znaleziono element '%1' podczas gdy oczekiwano elementu '%2'. - %1 [read-only] %1 - [tylko do odczytu] - - %1 [missing] %1 - [brak pliku] - <no prefix> <brak przedrostka> - - New Resource File Nowy plik z zasobami - - Resource files (*.qrc) Pliki z zasobami (*.qrc) - Import Resource File Zaimportuj plik z zasobami - newPrefix nowyPrzedrostek - Add Files Dodaj pliki - Incorrect Path Niepoprawna ścieżka - - - - Copy Skopiuj - Copy As... Skopiuj jako... - Keep Pozostaw - Skip Opuść - Clone Prefix Sklonuj przedrostek - 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". Wprowadź przyrostek jaki ma być dodany do sklonowanych plików. To może być np. rozszerzenie określające język: "_de". - - Copy As Skopiuj jako - <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> <p>Zaznaczony plik:</p><p>%1</p><p>jest umiejscowiony na zewnątrz katalogu z bieżącym plikiem z zasobami:</p><p>%2</p><p>Zaznacz inną ścieżkę w tym katalogu.<p> - Could not overwrite %1. Nie można nadpisać %1. - <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> <p><b>Ostrzeżenie:</b> Plik</p><p>%1</p><p>jest na zewnątrz katalogu w którym jest bieżący plik z zasobami.</p> - <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> <p>Aby rozwiązać problem, naciśnij:</p><table><tr><th align="left">Skopiuj</th><td>żeby skopiować plik do katalogu w którym jest plik z zasobami.</td></tr><tr><th align="left">Skopiuj jako...</th><td>żeby skopiować plik do poddrzewa katalogu w którym jest plik z zasobami.</td></tr><tr><th align="left">Zatrzymaj</th><td>żeby użyć jego bieżącą ścieżkę.</td></tr></table> - Could not copy %1 to @@ -3359,153 +2717,120 @@ jako: %2 - A parse error occurred at line %1, column %2 of %3: %4 Wystąpił błąd przetwarzania w linii %1, kolumnie %2 w %3: %4 - Save Resource File Zachowaj plik z zasobami - Edit Resources Edytor zasobów - New... Nowy... - Open... Otwórz... - - Remove Usuń - - Move Up Przenieś do góry - - Move Down Przenieś w dół - - Add Prefix Dodaj przedrostek - Add Files... Dodaj pliki... - Change Prefix Zmień przedrostek - Change Language Zmień język - Change Alias Zmień alias - Clone Prefix... Sklonuj przedrostek... - Prefix / Path Przedrostek / Ścieżka - Language / Alias Język / Alias - <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> <html><p><b>Ostrzeżenie:</b> Natrafiono na problemy podczas przeładowania zasobów:</p><pre>%1</pre></html> - Resource Warning Ostrzeżenie z systemu zasobów - Dialog Okno dialogowe - New File Nowy plik - N N - Remove File Usuń plik - R R - I I - New Resource Nowy zasób - A A - Remove Resource or File Usuń zasób lub plik - Could not write %1: %2 Nie można zapisać "%1", %2 - Open Resource File Otwórz plik z zasobami @@ -3513,24 +2838,20 @@ jako: QtResourceView - Size: %1 x %2 %3 Rozmiar: %1 x %2 %3 - Edit Resources... Modyfikuj zasoby... - Reload Przeładuj - Copy Path Skopiuj ścieżkę @@ -3538,7 +2859,6 @@ jako: QtResourceViewDialog - Select Resource Wybierz zasób @@ -3546,17 +2866,14 @@ jako: QtSizeFPropertyManager - %1 x %2 %1 x %2 - Width Szerokość - Height Wysokość @@ -3564,33 +2881,26 @@ jako: QtSizePolicyPropertyManager - - <Invalid> <Niepoprawna> - [%1, %2, %3, %4] [%1, %2, %3, %4] - Horizontal Policy Strategia pozioma - Vertical Policy Strategia pionowa - Horizontal Stretch Rozciąganie w poziomie - Vertical Stretch Rozciąganie w pionie @@ -3598,17 +2908,14 @@ jako: QtSizePropertyManager - %1 x %2 %1 x %2 - Width Szerokość - Height Wysokość @@ -3616,107 +2923,86 @@ jako: QtToolBarDialog - < S E P A R A T O R > < S E P A R A T O R > - Customize Toolbars Dostosuj paski narzędzi - 1 1 - Actions Akcje - Toolbars Paski narzędzi - New Nowy - Remove Usuń - Rename Zmień nazwę - Up Do góry - <- <- - -> -> - Down W dół - Current Toolbar Actions Akcje bieżącego paska narzędzi - Custom Toolbar Własne paski narzędzi - Add new toolbar Dodaj nowy pasek narzędzi - Remove selected toolbar Usuń wybrany pasek narzędzi - Rename toolbar Zmień nazwę paska narzędzi - Move action up Przenieś akcję w górę - Remove action from toolbar Usuń akcję z paska narzędzi - Add action to toolbar Dodaj akcję do paska narzędzi - Move action down Przenieś akcję w dół @@ -3724,12 +3010,10 @@ jako: QtTreePropertyBrowser - Property Właściwość - Value Wartość @@ -3737,64 +3021,52 @@ jako: SaveFormAsTemplate - Add path... Dodaj ścieżkę... - Template Exists Szablon istnieje - Overwrite Template Nadpisz szablon - Open Error Błąd otwarcia - There was an error opening template %1 for writing. Reason: %2 Wystąpił błąd podczas otwierania szablonu %1 do zapisu. Powód: %2 - Write Error Błąd zapisu - There was an error writing the template %1 to disk. Reason: %2 Wystąpił błąd podczas zapisywania szablonu %1 na dysk. Powód: %2 - Pick a directory to save templates in Wybierz katalog do zachowywania szablonów - &Category: &Kategoria: - &Name: &Nazwa: - A template with the name %1 already exists. Do you want overwrite the template? Szablon o nazwie %1 już istnieje. Czy chcesz nadpisać szablon? - Save Form As Template Zachowaj formularz jako szablon @@ -3802,7 +3074,6 @@ Czy chcesz nadpisać szablon? ScriptErrorDialog - An error occurred while running the scripts for "%1": Wystąpił błąd podczas uruchamiana skryptu dla "%1": @@ -3812,22 +3083,18 @@ Czy chcesz nadpisać szablon? SelectSignalDialog - Go to slot Przejdź do slotu - Select signal Wybierz sygnał - signal sygnał - class klasa @@ -3835,7 +3102,6 @@ Czy chcesz nadpisać szablon? SignalSlotConnection - SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) NADAJNIK(%1), SYGNAŁ(%2), ODBIORNIK(%3), SLOT(%4) @@ -3843,32 +3109,26 @@ Czy chcesz nadpisać szablon? SignalSlotDialogClass - Signals and slots Sygnały i sloty - Slots Sloty - ... ... - Signals Sygnały - Add Dodaj - Delete Usuń @@ -3876,12 +3136,10 @@ Czy chcesz nadpisać szablon? Spacer - Horizontal Spacer '%1', %2 x %3 Poziomy dystans '%1', %2 x %3 - Vertical Spacer '%1', %2 x %3 Pionowy dystans '%1', %2 x %3 @@ -3889,7 +3147,6 @@ Czy chcesz nadpisać szablon? TemplateOptionsPage - Template Paths Tab in preferences dialog Ścieżki z szablonami @@ -3898,52 +3155,42 @@ Czy chcesz nadpisać szablon? ToolBarManager - Configure Toolbars... Skonfiguruj paski narzędzi... - Window Okno - Help Pomoc - Style Styl - Dock views Dokowalne widoki - File Plik - Edit Edycja - Tools Narzędzia - Form Formularz - Toolbars Paski narzędzi @@ -3951,22 +3198,18 @@ Czy chcesz nadpisać szablon? VersionDialog - Qt Designer Qt Designer - %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). - <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>Wersja %2 - <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> <br/>Qt Designer jest aplikacją umożliwiającą projektowanie interfejsów graficznych użytkownika w aplikacjach korzystających z Qt.<br/> @@ -3974,47 +3217,38 @@ Czy chcesz nadpisać szablon? VideoPlayerTaskMenu - Available Mime Types Dostępne typy mime - Display supported mime types... Pokaż dostępne typy mime... - Load... Załaduj... - Play Odtwórz - Pause Pauza - Stop Zatrzymaj - Choose Video Player Media Source Wybierz źródło odtwarzacza wideo - An error has occurred in '%1': %2 Wystąpił błąd w "%1": %2 - Video Player Error Błąd odtwarzacza wideo @@ -4022,7 +3256,6 @@ Czy chcesz nadpisać szablon? WidgetDataBase - 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. Plik zawiera własny widżet '%1' którego klasa bazowa (%2) różni się od bieżącego elementu w bazie danych z widżetami (%3). Baza danych z widżetami została niezmieniona. @@ -4030,87 +3263,70 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ActionEditor - Actions Akcje - New... Nowa... - Delete Usuń - New action Nowa akcja - Edit action Modyfikuj akcję - Edit... Modyfikuj... - Go to slot... Przejdź do slotu... - Copy Skopiuj - Cut Wytnij - Paste Wklej - Select all Zaznacz wszystko - Configure Action Editor Skonfiguruj edytor akcji - Icon View Widok z ikonkami - Detailed View Szczegółowy widok - Remove actions Usuń akcje - Remove action '%1' Usuń akcję '%1' - Used In Użyta w @@ -4118,32 +3334,26 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ActionModel - Name Nazwa - Used Użyta - Text Tekst - Shortcut Skrót - Checkable Przełączalny - ToolTip Podpowiedź @@ -4151,27 +3361,22 @@ Czy chcesz nadpisać szablon? qdesigner_internal::BrushManagerProxy - The element '%1' is missing the required attribute '%2'. Brak wymaganego atrybutu '%2' w elemencie '%1'. - Empty brush name encountered. Wystąpiła pusta nazwa szczotki. - An unexpected element '%1' was encountered. Wystąpił niespodziewany element '%1'. - An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 Wystąpił błąd podczas czytania pliku z definicją szczotki '%1' w linii %2, w kolumnie %3: %4 - An error occurred when reading the resource file '%1' at line %2, column %3: %4 Wystąpił błąd podczas czytania pliku z zasobami '%1' w linii %2, w kolumnie %3: %4 @@ -4179,17 +3384,14 @@ Czy chcesz nadpisać szablon? qdesigner_internal::BuddyEditor - Add buddy Dodaj skojarzoną etykietę - Remove buddies Usuń skojarzoną etykietę - Remove %n buddies Usuń %n skojarzoną etykietę @@ -4198,7 +3400,6 @@ Czy chcesz nadpisać szablon? - Add %n buddies Dodaj %n skojarzoną etykietę @@ -4207,7 +3408,6 @@ Czy chcesz nadpisać szablon? - Set automatically Ustaw automatycznie @@ -4215,7 +3415,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::BuddyEditorPlugin - Edit Buddies Modyfikuj skojarzone etykiety @@ -4223,7 +3422,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::BuddyEditorTool - Edit Buddies Modyfikuj skojarzone etykiety @@ -4231,12 +3429,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ButtonGroupMenu - Select members Zaznacz składniki grupy - Break Usuń grupę @@ -4244,32 +3440,26 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ButtonTaskMenu - Assign to button group Przypisz do grupy przycisków - Button group Grupa przycisków - New button group Nowej - Change text... Zmień tekst... - None Żadnej - Button group '%1' Grupa przycisków '%1' @@ -4277,57 +3467,46 @@ Czy chcesz nadpisać szablon? qdesigner_internal::CodeDialog - Save... Zachowaj... - Copy All Skopiuj wszystko - &Find in Text... Z&najdź w tekście... - A temporary form file could not be created in %1. Nie można utworzyć pliku z tymczasowym formularzem w %1. - The temporary form file %1 could not be written. Nie można zapisać pliku z tymczasowym formularzem w %1. - %1 - [Code] %1 - [Kod] - Save Code Zachowaj kod - Header Files (*.%1) Pliki nagłówkowe (*.%1) - The file %1 could not be opened: %2 Nie można otworzyć pliku "%1", %2 - The file %1 could not be written: %2 Nie można zapisać pliku "%1", %2 - %1 - Error %1 - Błąd @@ -4335,7 +3514,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ColorAction - Text Color Color tekstu @@ -4343,12 +3521,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ComboBoxTaskMenu - Edit Items... Modyfikuj elementy... - Change Combobox Contents Zmień zawartość combobox'a @@ -4356,7 +3532,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::CommandLinkButtonTaskMenu - Change description... Zmień opis... @@ -4364,17 +3539,14 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ConnectionEdit - Select All Zaznacz wszystko - Delete Usuń - Deselect All Odznacz wszystko @@ -4382,52 +3554,42 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ConnectionModel - Sender Nadajnik - Signal Sygnał - Receiver Odbiornik - Slot Slot - <sender> <nadajnik> - <signal> <sygnał> - <receiver> <odbiornik> - <slot> <slot> - Signal and Slot Editor Edytor sygnałów i slotów - The connection already exists!<br>%1 Połączenie już istnieje!<br>%1 @@ -4435,42 +3597,34 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ContainerWidgetTaskMenu - Insert Page Before Current Page Wstaw stronę przed bieżącą stroną - Insert Page After Current Page Wstaw stronę za bieżącą stroną - Add Subwindow Dodaj podokno - Delete Usuń - Insert Wstaw - Subwindow Podokno - Page Strona - Page %1 of %2 Strona %1 z %2 @@ -4478,18 +3632,15 @@ Czy chcesz nadpisać szablon? qdesigner_internal::DPI_Chooser - System (%1 x %2) System resolution Systemowa (%1 x %2) - User defined Zdefiniowana przez użytkownika - x DPI X/Y separator x @@ -4498,49 +3649,38 @@ Czy chcesz nadpisać szablon? qdesigner_internal::DesignerPropertyManager - - AlignLeft Wyrównanie do lewej - AlignHCenter Wyrównanie w poziomie do środka - AlignRight Wyrównanie do prawej - AlignJustify Wyjustowanie - AlignTop Wyrównanie do góry - - AlignVCenter Wyrównanie w pionie do środka - AlignBottom Wyrównanie do dołu - %1, %2 %1, %2 - Customized (%n roles) Dostosowana (%n rola) @@ -4549,75 +3689,58 @@ Czy chcesz nadpisać szablon? - Inherited Odziedziczony - Horizontal Poziomo - Vertical Pionowo - Normal Off Normalny wyciśnięty - Normal On Normalny wciśnięty - Disabled Off Wyłączony wyciśnięty - Disabled On Wyłączony wciśnięty - Active Off Aktywny wyciśnięty - Active On Aktywny wciśnięty - Selected Off Zaznaczony wyciśnięty - Selected On Zaznaczony wciśnięty - - translatable przetłumaczalny - - disambiguation ujednoznacznienie - - comment komentarz @@ -4625,48 +3748,38 @@ Czy chcesz nadpisać szablon? qdesigner_internal::DeviceProfileDialog - Device Profiles (*.%1) Profile urządzeń (*.%1) - Default Domyślny - Save Profile Zachowaj profil - Save Profile - Error Błąd podczas zachowywania profilu - Unable to open the file '%1' for writing: %2 Nie można otworzyć pliku '%1' do zapisu: %2 - Open profile Otwórz profil - - Open Profile - Error Błąd podczas otwierania profilu - Unable to open the file '%1' for reading: %2 Nie można otworzyć pliku '%1' do odczytu: %2 - '%1' is not a valid profile: %2 '%1' nie jest poprawnym profilem: %2 @@ -4674,57 +3787,46 @@ Czy chcesz nadpisać szablon? qdesigner_internal::Dialog - Dialog Okno dialogowe - StringList Lista napisów - New String Nowy napis - &New &Nowy - Delete String Usuń napis - &Delete &Usuń - &Value: &Wartość: - Move String Up Przenieś w górę - Up Do góry - Move String Down Przenieś w dół - Down W dół @@ -4732,52 +3834,42 @@ Czy chcesz nadpisać szablon? qdesigner_internal::EmbeddedOptionsControl - None Brak - Add a profile Dodaj profil - Edit the selected profile Modyfikuj zaznaczony profil - Delete the selected profile Usuń zaznaczony profil - Add Profile Dodaj profil - New profile Nowy profil - Edit Profile Modyfikuj profil - Delete Profile Usuń profil - Would you like to delete the profile '%1'? Czy chcesz usunąć profil '%1'? - Default Domyślny @@ -4785,12 +3877,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FilterWidget - Filter Filtr - Clear text Wyczyść tekst @@ -4798,12 +3888,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FormEditor - Resource File Changed Zmieniony plik z zasobami - The file "%1" has changed outside Designer. Do you want to reload it? Plik "%1" zmienił się na zewnątrz Designera. Czy chcesz go ponownie załadować? @@ -4811,7 +3899,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FormLayoutMenu - Add form layout row... Dodaj wiersz do formularza... @@ -4819,58 +3906,46 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FormWindow - Edit contents Modyfikuj zawartość - F2 F2 - Resize Zmień rozmiar - Key Move Przeniesienie - Key Resize Zmiana rozmiaru - Cannot paste widgets. Designer could not find a container without a layout to paste into. Nie można wkleić widżetów. Nie można było odnaleźć pojemnika bez rozmieszczenia do którego można by wkleić widżety. - Break the layout of the container you want to paste into, select this container and then paste again. Usuń rozmieszczenie w pojemniku do którego chcesz wkleić, zaznacz ten pojemnik i ponownie wklej. - Paste error Błąd wklejania - Lay out Rozmieść - - Drop widget Upuść widżet - Paste %n action(s) Wklej %n akcję @@ -4879,12 +3954,10 @@ Czy chcesz nadpisać szablon? - Insert widget '%1' Wstaw widżet '%1 - Paste %n widget(s) Wklej %n widżet @@ -4893,27 +3966,22 @@ Czy chcesz nadpisać szablon? - Paste (%1 widgets, %2 actions) Wklej (%1 widżetów, %2 akcji) - Select Ancestor Wybierz przodka - A QMainWindow-based form does not contain a central widget. Formularz bazujący na QMainWindow nie zawiera centralnego widżetu. - Raise widgets Przenieś widżety na wierzch - Lower widgets Przenieś widżety na spód @@ -4921,12 +3989,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FormWindowBase - Delete Usuń - Delete '%1' Usuń '%1' @@ -4934,200 +4000,159 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FormWindowManager - Cu&t Wy&tnij - Cuts the selected widgets and puts them on the clipboard Wycina zaznaczone widżety i umieszcza je w schowku - &Copy S&kopiuj - Copies the selected widgets to the clipboard Kopiuje zaznaczone widżety do schowka - &Paste Wk&lej - Pastes the clipboard's contents Wkleja zawartość schowka - &Delete &Usuń - Deletes the selected widgets Usuwa zaznaczone widżety - Select &All Zaznacz &wszystko - Selects all widgets Wybiera wszystkie widżety - Bring to &Front Przenieś na w&ierzch - - Raises the selected widgets Przenosi zaznaczone widżety na wierzch - Send to &Back Przenieś na &spód - - Lowers the selected widgets Przenosi zaznaczone widżety na spód - Adjust &Size Dopasuj &wielkość - Adjusts the size of the selected widget Dopasuj wielkość zaznaczonego widżetu - Lay Out &Horizontally Rozmieść w po&ziomie - Lays out the selected widgets horizontally Rozmieszcza zaznaczone widżety w poziomie - Lay Out &Vertically Rozmieść w pio&nie - Lays out the selected widgets vertically Rozmieszcza zaznaczone widżety w pionie - Lay Out in a &Grid Rozmieść w &siatce - Lays out the selected widgets in a grid Rozmieszcza zaznaczone widżety w siatce - Lay Out Horizontally in S&plitter Rozmieść poziomo w s&plitterze - Lays out the selected widgets horizontally in a splitter Rozmieszcza zaznaczone widżety poziomo w splitterze - Lay Out Vertically in Sp&litter Rozmieść pionowo w sp&litterze - Lays out the selected widgets vertically in a splitter Rozmieszcza zaznaczone widżety pionowo w splitterze - &Break Layout &Usuń rozmieszczenie - Breaks the selected layout Usuwa zaznaczone rozmieszczenie - &Preview... Pod&gląd... - Preview current form Podgląd bierzącego formularza - Form &Settings... Us&tawienia formularza... - Break Layout Usuń rozmieszczenie - Adjust Size Dopasuj wielkość - Could not create form preview Title of warning message box Nie można utworzyć podglądu formularza - Form Settings - %1 Ustawienia formularza - %1 - Removes empty columns and rows Usuń puste kolumny i wiersze - Lay Out in a &Form Layout Rozmieść w &formularzu - Lays out the selected widgets in a form layout Rozmieszcza zaznaczone widżety w formularzu - Si&mplify Grid Layout Up&rość rozmieszczenie w siatce @@ -5135,12 +4160,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::FormWindowSettings - None Żaden - Device Profile: %1 Profil urządzenia: %1 @@ -5148,37 +4171,30 @@ Czy chcesz nadpisać szablon? qdesigner_internal::GridPanel - Visible Widoczna - Snap Przyciągaj - Reset Przywróć ustawienia - Form Formularz - Grid Siatka - Grid &X Siatka &X - Grid &Y Siatka &Y @@ -5186,7 +4202,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::GroupBoxTaskMenu - Change title... Zmień tytuł... @@ -5194,7 +4209,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::HtmlTextEdit - Insert HTML entity Wstaw jednostkę HTML @@ -5202,92 +4216,74 @@ Czy chcesz nadpisać szablon? qdesigner_internal::IconSelector - The pixmap file '%1' cannot be read. Nie można odczytać pliku z pixmapą %1. - The file '%1' does not appear to be a valid pixmap file: %2 Plik '%1' nie wygląda na poprawny plik z pixmapą: %2 - The file '%1' could not be read: %2 Nie można odczytać pliku "%1", %2 - Pixmap Read Error Błąd przy odczycie pixmapy - ... ... - Normal Off Normalny wyciśnięty - Normal On Normalny wciśnięty - Disabled Off Wyłączony wyciśnięty - Disabled On Wyłączony wciśnięty - Active Off Aktywny wyciśnięty - Active On Aktywny wciśnięty - Selected Off Zaznaczony wyciśnięty - Selected On Zaznaczony wciśnięty - Choose Resource... Wybierz zasób... - Choose File... Wybierz plik... - Reset Przywróć - Reset All Przywróć wszystkie - Choose a Pixmap Wybierz pixmapę @@ -5295,58 +4291,46 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ItemListEditor - Properties &<< Własciwości &<< - - Properties &>> Własciwości &>> - Items List Lista elementów - New Item Nowy element - &New &Nowy - Delete Item Usuń element - &Delete &Usuń - Move Item Up Przenieś element do góry - U U - Move Item Down Przenieś element w dół - D D @@ -5354,12 +4338,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::LabelTaskMenu - Change rich text... Zmień tekst sformatowany... - Change plain text... Zmień zwykły tekst... @@ -5367,7 +4349,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::LanguageResourceDialog - Choose Resource Wybierz zasób @@ -5375,7 +4356,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::LineEditTaskMenu - Change text... Zmień tekst... @@ -5383,17 +4363,14 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ListWidgetEditor - New Item Nowy element - Edit List Widget Modyfikuj listę - Edit Combobox Modyfikuj combobox @@ -5401,12 +4378,10 @@ Czy chcesz nadpisać szablon? qdesigner_internal::ListWidgetTaskMenu - Edit Items... Modyfikuj elementy... - Change List Contents Zmień zawartość listy @@ -5414,22 +4389,18 @@ Czy chcesz nadpisać szablon? qdesigner_internal::MdiContainerWidgetTaskMenu - Next Subwindow Następne podokno - Previous Subwindow Poprzednie podokno - Tile Obok siebie - Cascade Kaskadowo @@ -5437,7 +4408,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::MenuTaskMenu - Remove Usuń @@ -5445,7 +4415,6 @@ Czy chcesz nadpisać szablon? qdesigner_internal::MorphMenu - Morph into Przekształć w @@ -5453,42 +4422,34 @@ Czy chcesz nadpisać szablon? qdesigner_internal::NewActionDialog - New Action... Nowa akcja... - &Text: &Tekst: - &Icon: &Ikonka: - Shortcut: Skrót: - Checkable: Przełączalny: - ToolTip: Podpowiedź: - ... ... - Object &name: &Nazwa obiektu: @@ -5496,41 +4457,34 @@ Czy chcesz nadpisać szablon? qdesigner_internal::NewDynamicPropertyDialog - Set Property Name Ustaw nazwę właściwości - The current object already has a property named '%1'. Please select another, unique one. Bieżący obiekt posiada już właściwość o nazwie '%1'. Wybierz inną, unikalną nazwę. - Create Dynamic Property Utwórz dynamiczną właściwość - Property Name Nazwa właściwości - Property Type Typ właściwości - The '_q_' prefix is reserved for the Qt library. Please select another name. Przedrostek '_q_' jest zarezerwowany dla biblioteki Qt. Wybierz inną nazwę. - horizontalSpacer poziomy dystans @@ -5538,83 +4492,67 @@ Wybierz inną nazwę. qdesigner_internal::NewFormWidget - Default size Domyślny rozmiar - QVGA portrait (240x320) QVGA portret (240x320) - QVGA landscape (320x240) QVGA pejzaż (320x240) - VGA portrait (480x640) VGA portret (480x640) - VGA landscape (640x480) VGA pejzaż (640x480) - Widgets New Form Dialog Categories Widżety - Custom Widgets Własne widżety - None Żadne - Error loading form Błąd podczas ładowania formularza - Unable to open the form template file '%1': %2 Nie można otworzyć pliku '%1' z szablonem formularza: %2 - Internal error: No template selected. Błąd wewnętrzny: Nie zaznaczono szablonu. - 0 0 - Choose a template for a preview Wybierz szablon do podglądu - Embedded Design Projekt dla urządzeń specjalizowanych - Device: Urządzenie: - Screen Size: Rozmiar ekranu: @@ -5622,37 +4560,30 @@ Wybierz inną nazwę. qdesigner_internal::NewPromotedClassPanel - Add Dodaj - New Promoted Class Nowa klasa zastępcza - Base class name: Nazwa bazowej klasy: - Promoted class name: Nazwa zastępczej klasy: - Header file: Plik nagłówkowy: - Global include Nagłówek globalny - Reset Przywróć ustawienia @@ -5660,12 +4591,10 @@ Wybierz inną nazwę. qdesigner_internal::ObjectInspector - Change Current Page Zmień bieżącą stronę - &Find in Text... Z&najdź w tekście... @@ -5673,32 +4602,26 @@ Wybierz inną nazwę. qdesigner_internal::OrderDialog - Index %1 (%2) Indeks %1 (%2) - Change Page Order Zmień porządek stron - Page Order Porządek stron - Move page up Przenieś stronę do góry - Move page down Przenieś stronę w dół - %1 %2 %1 %2 @@ -5706,47 +4629,38 @@ Wybierz inną nazwę. qdesigner_internal::PaletteEditor - Edit Palette Modyfikuj paletę - Tune Palette Dopasuj paletę - Show Details Pokazuj szczegóły - Compute Details Obliczaj szczegóły - Quick Szybko - Preview Podgląd - Disabled Wyszarzony - Inactive Nieaktywny - Active Aktywny @@ -5754,7 +4668,6 @@ Wybierz inną nazwę. qdesigner_internal::PaletteEditorButton - Change Palette Zmień paletę @@ -5762,22 +4675,18 @@ Wybierz inną nazwę. qdesigner_internal::PaletteModel - Color Role Rola koloru - Active Aktywna - Inactive Nieaktywna - Disabled Wyszarzona @@ -5785,28 +4694,22 @@ Wybierz inną nazwę. qdesigner_internal::PixmapEditor - Copy Path Skopiuj ścieżkę - Paste Path Wklej ścieżkę - Choose Resource... Wybierz zasób... - Choose File... Wybierz plik... - - ... ... @@ -5814,7 +4717,6 @@ Wybierz inną nazwę. qdesigner_internal::PlainTextEditorDialog - Edit text Modyfikuj tekst @@ -5822,37 +4724,30 @@ Wybierz inną nazwę. qdesigner_internal::PluginDialog - Components Komponenty - Plugin Information Informacje o wtyczkach - Qt Designer couldn't find any plugins Qt Designer nie mógł znaleźć żadnej wtyczki - Qt Designer found the following plugins Qt Designer znalazł następujące wtyczki: - Refresh Odśwież - Scan for newly installed custom widget plugins. Szukaj nowo zainstalowanych wtyczek z widżetami. - New custom widget plugins have been found. Znaleziono nową wtyczkę z widżetami. @@ -5860,7 +4755,6 @@ Wybierz inną nazwę. qdesigner_internal::PreviewActionGroup - %1 Style Styl %1 @@ -5868,47 +4762,38 @@ Wybierz inną nazwę. qdesigner_internal::PreviewConfigurationWidget - Default Domyślny - None Żadna - Browse... Przeglądaj... - Load Custom Device Skin Załaduj dostosowaną skórkę (skin) urządzenia - All QVFB Skins (*.%1) Wszystkie skórki (skin) QVFB (*.%1) - %1 - Duplicate Skin %1 - zduplikowana skórka (skin) - The skin '%1' already exists. Skórka (skin) '%1' już istnieje. - %1 - Error %1 - Błąd - %1 is not a valid skin directory: %2 %1 nie jest poprawnym katalogiem ze skórką (skin) @@ -5918,24 +4803,20 @@ Wybierz inną nazwę. qdesigner_internal::PreviewDeviceSkin - &Portrait P&ortret - Landscape (&CCW) Rotate form preview counter-clockwise Pejzaż (&CCW) - &Landscape (CW) Rotate form preview clockwise P&ejzaż (CW) - &Close Za&mknij @@ -5943,7 +4824,6 @@ Wybierz inną nazwę. qdesigner_internal::PreviewManager - %1 - [Preview] %1 - [Podgląd] @@ -5951,7 +4831,6 @@ Wybierz inną nazwę. qdesigner_internal::PreviewMdiArea - The moose in the noose ate the goose who was loose. Palette editor background @@ -5962,57 +4841,46 @@ chrząszcz brzmi w trzcinie. qdesigner_internal::PreviewWidget - Preview Window Podgląd okna - LineEdit LineEdit - ComboBox Combobox - PushButton PushButton - ButtonGroup2 ButtonGroup2 - CheckBox1 Checkbox1 - CheckBox2 CheckBox2 - ButtonGroup ButtonGroup - RadioButton1 RadioButton1 - RadioButton2 RadioButton2 - RadioButton3 RadioBUtton3 @@ -6020,22 +4888,18 @@ chrząszcz brzmi w trzcinie. qdesigner_internal::PromotionModel - Name Nazwa - Header file Plik nagłówkowy - Global include Nagłówek globalny - Usage Użycie @@ -6043,27 +4907,22 @@ chrząszcz brzmi w trzcinie. qdesigner_internal::PromotionTaskMenu - Promoted widgets... Zastępcze widżety... - Promote to ... Zastąp... - Promote to Zastąp - Demote to %1 Przywróć do %1 - Change signals/slots... Zmień sygnały/sloty... @@ -6071,59 +4930,48 @@ chrząszcz brzmi w trzcinie. qdesigner_internal::PropertyEditor - Add Dynamic Property... Dodaj dynamiczną właściwość ... - Remove Dynamic Property Usuń dynamiczną właściwość - Sorting Sortowanie - Color Groups Kolorowanie grup - Tree View Widok drzewiasty - Drop Down Button View Widok z rozszerzalnymi przyciskami - Configure Property Editor Skonfiguruj edytor właściwości - Object: %1 Class: %2 Obiekt: %1 Klasa: %2 - String... String... - Bool... Bool... - Other... Inne... @@ -6131,7 +4979,6 @@ Klasa: %2 qdesigner_internal::PropertyLineEdit - Insert line break Wstaw znak końca linii @@ -6139,27 +4986,22 @@ Klasa: %2 qdesigner_internal::QDesignerPromotionDialog - Promoted Widgets Zastępcze widżety - Promoted Classes Zastępcze klasy - Promote Zastąp - %1 - Error %1 - Błąd - Change signals/slots... Zmień sygnały/sloty... @@ -6167,22 +5009,18 @@ Klasa: %2 qdesigner_internal::QDesignerResource - Loading qrc file ładowanie pliku qrc - The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> Plik qrc <p><b>%1</b></p><p> nie został znaleziony. Czy chcesz uaktualnić ścieżkę do pliku?</p> - New location for %1 Nowe położenie dla %1 - Resource files (*.qrc) Pliki z zasobami (*.qrc) @@ -6190,57 +5028,46 @@ Klasa: %2 qdesigner_internal::QDesignerTaskMenu - Change objectName... Zmień nazwę obiektu... - Change toolTip... Zmień podpowiedź... - Change whatsThis... Zmień "co to jest"... - Create Menu Bar Utwórz pasek menu - Add Tool Bar Dodaj pasek narzędzi - Create Status Bar Utwórz pasek stanu - Change styleSheet... Zmień arkusz stylu... - Remove Status Bar Usuń pasek stanu - Change script... Zmień skrypt... - no signals available brak dostępnych sygnałów - Set size constraint on %n widget(s) Ustaw ograniczenie rozmiaru w %n obiekcie @@ -6249,57 +5076,46 @@ Klasa: %2 - Change signals/slots... Zmień sygnały/sloty... - Go to slot... Przejdź do slotu... - Size Constraints Ograniczenia rozmiaru - Set Minimum Width Ustaw minimalną szerokość - Set Minimum Height Ustaw minimalną wysokość - Set Minimum Size Ustaw minimalny rozmiar - Set Maximum Width Ustaw maksymalną szerokość - Set Maximum Height Ustaw maksymalną wysokość - Set Maximum Size Ustaw maksymalny rozmiar - Edit ToolTip Modyfikuj podpowiedź - Edit WhatsThis Modyfikuj "Co to jest" @@ -6307,42 +5123,34 @@ Klasa: %2 qdesigner_internal::QDesignerWidgetBox - - Unexpected element <%1> Niespodziewany element <%1> - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 %5 Wystąpił błąd przetwarzania w linii %1, kolumnie %2 kodu XML określonego dla widżetu %3: %4 %5 - The XML code specified for the widget %1 does not contain any widget elements. %2 Kod XML określony dla widżetu %1 nie zawiera żadnego elementu typu widżet. %2 - An error has been encountered at line %1 of %2: %3 Wystąpił błąd w linii %1 w %2: %3 - Unexpected element <%1> encountered when parsing for <widget> or <ui> Wystąpił niespodziewany element <%1> podczas przetwarzania elementu <widget> lub <ui> - Unexpected end of file encountered when parsing widgets. Wystąpił niespodziewany koniec pliku podczas przetwarzania widżetów. - A widget element could not be found. Nie można odnależć elementu <widget>. @@ -6350,73 +5158,58 @@ Klasa: %2 qdesigner_internal::QtGradientStopsController - H H - S S - V V - - Hue Barwa - Sat Nas. - Val Wart. - Saturation Nasycenie - Value Wartość - R R - G G - B B - Red Czerwień - Green Zieleń - Blue Błękit @@ -6424,27 +5217,22 @@ Klasa: %2 qdesigner_internal::RichTextEditorDialog - Edit text Modyfikuj tekst - &Cancel &Anuluj - &OK &OK - Rich Text Rich Text - Source Źródło @@ -6452,72 +5240,58 @@ Klasa: %2 qdesigner_internal::RichTextEditorToolBar - Bold Pogrubienie - Italic Kursywa - CTRL+I CTRL+I - Underline Podkreślenie - CTRL+U CTRL+U - CTRL+B CTRL+B - Left Align Wyrównanie do lewej - Center Wyrównanie do środka - Right Align Wyrównanie do prawej - Justify Wyjustuj - Superscript Indeks górny - Subscript Indeks dolny - Insert &Link Wstaw &Odsyłacz - Insert &Image Wstaw &obrazek @@ -6525,17 +5299,14 @@ Klasa: %2 qdesigner_internal::ScriptDialog - Edit script Modyfikuj skrypt - Syntax error Błąd składni - <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>Wprowadź skrypt Qt który będzie wykonany podczas ładowania formularza.<br>Widżet i jego dzieci są dostępne przez zmienne <i>widget</i> i <i>childWidgets</i>, odpowiednio. @@ -6543,7 +5314,6 @@ Klasa: %2 qdesigner_internal::ScriptErrorDialog - Script errors Błędy skryptu @@ -6551,23 +5321,18 @@ Klasa: %2 qdesigner_internal::SignalSlotDialog - There is already a slot with the signature '%1'. Slot '%1' już istnieje. - There is already a signal with the signature '%1'. Sygnał '%1' już istnieje. - %1 - Duplicate Signature %1 - zduplikowany zapis - - Signals/Slots of %1 Sygnały/sloty obiektu %1 @@ -6575,12 +5340,10 @@ Klasa: %2 qdesigner_internal::SignalSlotEditorPlugin - Edit Signals/Slots Modyfikuj sygnały/sloty - F4 F4 @@ -6588,7 +5351,6 @@ Klasa: %2 qdesigner_internal::SignalSlotEditorTool - Edit Signals/Slots Modyfikuj sygnały/sloty @@ -6596,7 +5358,6 @@ Klasa: %2 qdesigner_internal::StatusBarTaskMenu - Remove Usuń @@ -6604,7 +5365,6 @@ Klasa: %2 qdesigner_internal::StringListEditorButton - Change String List Zmień listę tekstów @@ -6612,38 +5372,30 @@ Klasa: %2 qdesigner_internal::StyleSheetEditorDialog - Edit Style Sheet Modyfikuj arkusz stylu - - Valid Style Sheet Poprawny arkusz stylu - Invalid Style Sheet Niepoprawny arkusz stylu - Add Resource... Dodaj zasób... - Add Gradient... Dodaj gradient... - Add Color... Dodaj kolor... - Add Font... Dodaj czcionkę... @@ -6651,27 +5403,22 @@ Klasa: %2 qdesigner_internal::TabOrderEditor - Start from Here Rozpocznij stąd - Restart Rozpocznij od nowa - Tab Order List... Lista kolejności tabulacji... - Tab Order List Lista kolejności tabulacji - Tab Order Kolejność tabulacji @@ -6679,7 +5426,6 @@ Klasa: %2 qdesigner_internal::TabOrderEditorPlugin - Edit Tab Order Modyfikuj kolejność tabulacji @@ -6687,7 +5433,6 @@ Klasa: %2 qdesigner_internal::TabOrderEditorTool - Edit Tab Order Modyfikuj kolejność tabulacji @@ -6695,48 +5440,38 @@ Klasa: %2 qdesigner_internal::TableWidgetEditor - Edit Table Widget Modyfikuj tablę - &Items &Elementy - New Row Nowy wiersz - &Columns &Kolumny - &Rows &Wiersze - Properties &<< Własciwości &<< - - Properties &>> Własciwości &>> - Table Items Elementy tabeli - New Column Nowa kolumna @@ -6744,7 +5479,6 @@ Klasa: %2 qdesigner_internal::TableWidgetTaskMenu - Edit Items... Modyfikuj elementy... @@ -6752,22 +5486,18 @@ Klasa: %2 qdesigner_internal::TemplateOptionsWidget - Pick a directory to save templates in Wybierz katalog do zachowywania szablonów - Form Formularz - Additional Template Paths Dodatkowe ścieżki z szablonami - ... ... @@ -6775,22 +5505,18 @@ Klasa: %2 qdesigner_internal::TextEditTaskMenu - Change HTML... Zmień HTML... - Edit HTML Modyfikuj HTML - Edit Text Modyfikuj tekst - Change Plain Text... Zmień zwykły tekst... @@ -6798,22 +5524,18 @@ Klasa: %2 qdesigner_internal::TextEditor - Choose Resource... Wybierz zasób... - Choose File... Wybierz plik... - Choose a File Wybierz plik - ... ... @@ -6821,27 +5543,22 @@ Klasa: %2 qdesigner_internal::ToolBarEventFilter - Insert Separator Wstaw separator - Remove action '%1' Usuń akcję '%1' - Remove Toolbar '%1' Usuń pasek narzędzi '%1' - Insert Separator before '%1' Wstaw separator przed '%1' - Append Separator Dodaj separator @@ -6849,125 +5566,98 @@ Klasa: %2 qdesigner_internal::TreeWidgetEditor - Edit Tree Widget Modyfikuj drzewo - &Items &Elementy - Tree Items Drzewo elementów - &Columns &Kolumny - Per column properties Właściowści dla kolumny - Common properties Wspólne właściwości - - New Item Nowy element - - New Subitem Nowy podelement - Properties &<< Własciwości &<< - - Properties &>> Własciwości &>> - New &Subitem Nowy &podelement - Delete Item Usuń element - Move Item Left (before Parent Item) Przenieś element w lewo (przed element nadrzędny) - L L - Move Item Right (as a First Subitem of the Next Sibling Item) Przenieś element w prawo (jako pierwszy podelement kolejnego elementu) - R R - Move Item Up Przenieś element do góry - U U - Move Item Down Przenieś element w dół - D D - New Column Nowa kolumna - 1 1 - &New &Nowy - &Delete &Usuń @@ -6975,7 +5665,6 @@ Klasa: %2 qdesigner_internal::TreeWidgetTaskMenu - Edit Items... Modyfikujj elementy... @@ -6983,7 +5672,6 @@ Klasa: %2 qdesigner_internal::WidgetBox - Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. Ostrzeżenie: Błąd tworzenia widżetu w panelu widżetów. Mogło to być spowodowane niepoprawnym kodem XML widżetu. @@ -6991,42 +5679,34 @@ Klasa: %2 qdesigner_internal::WidgetBoxTreeWidget - Scratchpad Notatnik - Custom Widgets Własne widżety - Expand all Rozwiń wszystkie - Collapse all Zwiń wszystkie - List View Widok w formie listy - Icon View Widok z ikonkami - Remove Usuń - Edit name Modyfikuj nazwę @@ -7034,7 +5714,6 @@ Klasa: %2 qdesigner_internal::WidgetDataBase - A custom widget plugin whose class name (%1) matches that of an existing class has been found. Została znaleziona wtyczka widżetu, w której nazwa klasy (%1) odpowiada istniejącej już klasie. @@ -7042,7 +5721,6 @@ Klasa: %2 qdesigner_internal::WidgetEditorTool - Edit Widgets Modyfikuj widżety @@ -7050,34 +5728,28 @@ Klasa: %2 qdesigner_internal::WidgetFactory - The custom widget factory registered for widgets of class %1 returned 0. Fabryka widżetów użytkownika zarejestrowana dla widżetów klasy %1 zwróciła 0. - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. Wystąpiła niezgodność nazwy klasy podczas tworzenia widżetu przy pomocy fabryki widżetów użytkownika zarejestrowanej dla klasy %1. Zwrócony został widżet klasy %2. - %1 Widget Widżet %1 - The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. Podczas tworzenia rozmieszczenia nie można było określić bieżącej strony (%2) pojemnika '%1'. Wskazuje to na niespójność pliku ui, prawdopodobnie utworzone zostało zbędne rozmieszczenie dla tego pojemnika. - Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. Próba dodania rozmieszczenia do widżetu '%1' (%2) który posiada już niezarządzane rozmieszczenie typu %3. To wskazuje na niespójność w pliku "ui". - Cannot create style '%1'. Nie można utworzyć stylu '%1'. @@ -7085,12 +5757,10 @@ To wskazuje na niespójność w pliku "ui". qdesigner_internal::WizardContainerWidgetTaskMenu - Next Dalej - Back Wstecz @@ -7098,7 +5768,6 @@ To wskazuje na niespójność w pliku "ui". qdesigner_internal::ZoomMenu - %1 % Zoom factor %1 % @@ -7107,7 +5776,6 @@ To wskazuje na niespójność w pliku "ui". qdesigner_internal::ZoomablePreviewDeviceSkin - &Zoom &Powiększenie diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts index 53549da..f0b144e 100644 --- a/translations/qt_pl.ts +++ b/translations/qt_pl.ts @@ -4,7 +4,6 @@ CloseButton - Close Tab Zamknij kartę @@ -12,12 +11,10 @@ FakeReply - Fake error ! Fałszywy błąd! - Invalid URL Niepoprawny URL @@ -25,37 +22,30 @@ MAC_APPLICATION_MENU - Services Usługi - Hide %1 Ukryj %1 - Hide Others Ukryj pozostałe - Show All Pokaż wszystko - Preferences... Preferencje… - Quit %1 Zakończ %1 - About %1 %1… @@ -63,32 +53,26 @@ Phonon:: - Notifications Powiadomienia - Music Muzyka - Video Wideo - Communication Komunikacja - Games Gry - Accessibility Dostępność @@ -96,24 +80,18 @@ Phonon::AudioOutput - - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> <html>Urządzenie dźwiękowe <b>%1</b> nie działa.<br/>Przywracanie do <b>%2</b>.</html> - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> <html>Przełączanie na urządzenie dźwiękowe <b>%1</b><br/>które właśnie stało się dostępne i ma wyższy priorytet.</html> - - Revert back to device '%1' Przywróć do urządzenia '%1' - <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> <html>Przełączanie na urządzenie dźwiękowe <b>%1</b><br/>które ma wyższy priorytet lub jest specjalnie skonfigurowane dla tego strumienia.</html> @@ -121,14 +99,12 @@ Phonon::Gstreamer::Backend - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. Ostrzeżenie: Wygląda na to, że pakiet gstreamer0.10-plugins-good nie jest zainstalowany w tym systemie. Niektóre możliwości wideo zostały wyłączone. - Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled Ostrzeżenie: Wygląda na to, że podstawowe wtyczki GStreamer nie są zainstalowane w tym systemie. @@ -138,7 +114,6 @@ Obsługa dźwięku i wideo została wyłączona Phonon::Gstreamer::MediaObject - Cannot start playback. Check your GStreamer installation and make sure you @@ -149,49 +124,34 @@ Sprawdź instalację Gstreamer i upewnij się że zainstalowałeś libgstreamer-plugins-base. - Missing codec helper script assistant. - Plugin codec installation failed for codec: %0 Błąd podczas instalacji wtyczki dla kodeka: %0 - A required codec is missing. You need to install the following codec(s) to play this content: %0 Brak wymaganego kodeka. Aby odtworzyć zawartość musisz zainstalować poniższy kodek: %0 - - - - - - - - Could not open media source. Nie można otworzyć źródła mediów. - Invalid source type. Niepoprawny typ źródła. - Could not locate media source. Nie można znaleźć źródła mediów. - Could not open audio device. The device is already in use. Nie można otworzyć urządzenia dźwiękowego. Urządzenie jest już używane. - Could not decode media source. Nie można zdekodować źródła mediów. @@ -199,162 +159,130 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF - Audio Output Wyjście dźwięku - The audio output device Wyjściowe urządzenie dźwiękowe - No error Brak błędu - Not found Nie znaleziono - Out of memory Brak pamięci - Not supported Nieobsługiwane - Overflow Przepełnienie - Underflow Niedopełnienie - Already exists Już istnieje - Path not found Nie znaleziono ścieżki - In use W użyciu - Not ready Brak gotowości - Access denied Odmowa dostępu - Could not connect Nie można połączyć - Disconnected Rozłączono - Permission denied Brak uprawnień - Insufficient bandwidth Niewystarczająca szerokość pasma - Network unavailable Sieć niedostępna - Network communication error Błąd komunikacji sieciowej - Streaming not supported Transmisje strumieniowe nie są obsługiwane - Server alert Ostrzeżenie serwera - Invalid protocol Nieprawidłowy protokół - Invalid URL Nieprawidłowy adres URL - Multicast error Błąd multiemisji - Proxy server error Błąd serwera pośredniczącego - Proxy server not supported Nieobsługiwany serwer pośredniczący - Audio output error Błąd wyjściowego sygnału dźwiękowego - Video output error Błąd wyjściowego sygnału wideo - Decoder error Błąd dekodera - Audio or video components could not be played Nie można odtworzyć dźwięku lub wideo - DRM error Błąd DRM - Unknown error (%1) Nieznany błąd (%1) @@ -362,33 +290,34 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::AbstractMediaPlayer - Not ready to play Brak gotowości odtwarzania - - Error opening file Błąd otwierania pliku - Error opening URL Błąd otwierania adresu URL - + Error opening resource + Błąd otwierania zasobu + + + Error opening source: resource not opened + Błąd otwierania źródła: zasób nie został otwarty + + Setting volume failed Ustawienie głośności zakończone błędem - Loading clip failed Załadowanie klipu zakończone błędem - Playback complete Zakończono odtwarzanie @@ -396,22 +325,18 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::AbstractVideoPlayer - Pause failed Zatrzymanie zakończone błędem - Seek failed Wyszukiwanie zakończone błędem - Getting position failed Ustalanie pozycji zakończone błędem - Opening clip failed Otwieranie klipu zakończone błędem @@ -419,7 +344,6 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::AudioEqualizer - %1 Hz %1 Hz @@ -427,7 +351,6 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::AudioPlayer - Getting position failed Ustalanie pozycji zakończone błędem @@ -435,11 +358,6 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::DsaVideoPlayer - - - - - Video display error Błąd wyświetlacza wideo @@ -447,7 +365,6 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::EffectFactory - Enabled Włączono @@ -455,61 +372,51 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::EnvironmentalReverb - Decay HF ratio (%) DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. Współczynnik zanikania HF (%) - Decay time (ms) DecayTime: Time over which reverberation is diminished. Czas zanikania (ms) - Density (%) 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. Gęstość (%) - Diffusion (%) 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. Rozpraszanie (%) - Reflections delay (ms) ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. Opóźnienie odbić (ms) - Reflections level (mB) ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. Poziom odbić (mB) - Reverb delay (ms) ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. Opóźnienie pogłosu (ms) - Reverb level (mB) ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. Poziom pogłosu (mB) - Room HF level RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. Poziom HF pomieszczenia - Room level (mB) RoomLevel: Master volume control for all reflected sound. Poziom pomieszczenia (mB) @@ -518,12 +425,18 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::MediaObject - Error opening source: type not supported Błąd otwierania źródła: typ źródła nie jest obsługiwany - + Error opening source: resource is compressed + Błąd otwierania źródła: zasób jest skompresowany + + + Error opening source: resource not valid + Błąd otwierania źródła: niepoprawny zasób + + Error opening source: media type could not be determined Błąd otwierania źródła: nie można określić typu multimediów @@ -531,7 +444,6 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::StereoWidening - Level (%) Poziom (%) @@ -539,8 +451,6 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::MMF::SurfaceVideoPlayer - - Video display error Błąd wyświetlacza wideo @@ -548,22 +458,14 @@ zainstalowałeś libgstreamer-plugins-base. Phonon::VolumeSlider - - - - Volume: %1% Głośność: %1% - - - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% Użyj tego suwaka aby zmienić głośność. Skrajnie lewa pozycja to 0%, skrajnie prawa to %1% - Muted Wyciszony @@ -571,12 +473,10 @@ zainstalowałeś libgstreamer-plugins-base. Q3Accel - %1, %2 not defined %1, %2 nie określone - Ambiguous %1 not handled Niejednoznaczne %1, nie obsłużone @@ -584,27 +484,22 @@ zainstalowałeś libgstreamer-plugins-base. Q3DataTable - Delete Skasuj - False Fałsz - Insert Wstaw - True Prawda - Update Uaktualnij @@ -612,7 +507,6 @@ zainstalowałeś libgstreamer-plugins-base. Q3FileDialog - %1 File not found. Check path and filename. @@ -621,323 +515,246 @@ Plik nie znaleziony. Sprawdź ścieżkę i nazwę pliku. - <qt>Are you sure you wish to delete %1 "%2"?</qt> <qt>Na pewno chcesz skasować %1 "%2"?</qt> - - - - All Files (*) Wszystkie pliki (*) - Attributes Atrybuty - Back Powrót - - Cancel Anuluj - Copy or Move a File Skopiuj lub przenieś plik - Create New Folder Utwórz nowy katalog - Date Data - &Delete &Skasuj - Delete %1 Skasuj %1 - Detail View Szczegóły - Dir Katalog - - Directories Katalogi - Directory: Katalog: - - Error Błąd - File Plik - - - File &name: Nazwa &pliku: - File &type: &Rodzaj pliku: - Find Directory Znajdź katalog - Inaccessible Niedostępny - List View Lista - Look &in: Sprawdź &w: - Name Nazwa - New Folder Nowy katalog - New Folder %1 Nowy katalog %1 - New Folder 1 Nowy katalog 1 - &No &Nie - - &OK &OK - One directory up Katalog wyżej - - - &Open &Otwórz - - - Open Otwórz - Preview File Contents Podgląd zawartości pliku - Preview File Info Podgląd informacji o pliku - Read: %1 Czytaj: %1 - Read-only Tylko do odczytu - Read-write Do zapisu i odczytu - R&eload &Odśwież - &Rename &Zmień nazwę - - &Save &Zachowaj - - Save As Zachowaj jako - Show &hidden files Pokaż &ukryte pliki - Size Rozmiar - Sort Sortuj - Sort by &Date Sortuj po &dacie - Sort by &Name Sortuj &po nazwie - Sort by &Size Sortuj po &rozmiarze - Special Specjalny - Symlink to Directory Dowiązanie symboliczne do katalogu - Symlink to File Dowiązanie symboliczne do pliku - Symlink to Special Dowiązanie symboliczne do pliku specjalnego - the directory katalog - the file plik - the symlink dowiązanie symboliczne - Type Rodzaj - &Unsorted &Bez sortowania - - Write: %1 Pisz: %1 - Write-only Tylko do zapisu - &Yes &Tak - All Files (*.*) Wszystkie pliki (*.*) - Open Otwórz - Select a Directory Wybierz katalog @@ -945,36 +762,30 @@ Sprawdź ścieżkę i nazwę pliku. Q3LocalFs - Could not create directory %1 Nie można utworzyć katalogu %1 - Could not open %1 Nie można otworzyć %1 - - Could not read directory %1 Nie można czytać katalogu %1 - Could not remove file or directory %1 Nie można usunąć pliku lub katalogu %1 - Could not rename %1 to @@ -985,7 +796,6 @@ na %2 - Could not write %1 Nie można zapisać @@ -995,12 +805,10 @@ na Q3MainWindow - Customize... Ustawienia użytkownika... - Line up Wyrównaj położenie @@ -1008,7 +816,6 @@ na Q3NetworkProtocol - Operation stopped by the user Operacja zatrzymana przez użytkownika @@ -1016,8 +823,6 @@ na Q3ProgressDialog - - Cancel Anuluj @@ -1025,28 +830,22 @@ na Q3TabDialog - Apply Zatwierdź - Cancel Anuluj - Defaults Domyślne - Help Pomoc - - OK OK @@ -1054,38 +853,30 @@ na Q3TextEdit - Clear Wyczyść - &Copy S&kopiuj - Cu&t W&ytnij - &Paste &Wklej - &Redo &Przywróć - - Select All Zaznacz wszystko - &Undo &Cofnij @@ -1093,67 +884,54 @@ na Q3TitleBar - Close Zamknij okno - Closes the window Zamyka okno - Contains commands to manipulate the window Zawiera polecenia zarządzające oknem - Displays the name of the window and contains controls to manipulate it Wyświetla nazwę okna i zawiera elementy do zarządzania nim - Makes the window full screen Powiększa maksymalnie okno - Maximize Zmaksymalizuj - Minimize Zminimalizuj - Puts a minimized window back to normal Przywraca normalny rozmiar uprzednio zminimalizowanego okna - Moves the window out of the way Przenosi okno w inne położenie - Puts a maximized window back to normal Przywraca normalny rozmiar uprzednio zmaksymalizowanego okna - Restore down Przywróć pod spód - Restore up Przywróć na wierzch - System System @@ -1161,7 +939,6 @@ na Q3ToolBar - More... Więcej... @@ -1169,51 +946,38 @@ na Q3UrlOperator - - (unknown) (nieznany) - - The protocol `%1' does not support copying or moving files or directories Protokół '%1' nie obsługuje kopiowania lub przenoszenia plików lub katalogów - The protocol `%1' does not support creating new directories Protokół '%1' nie obsługuje tworzenia nowych katalogów - The protocol `%1' does not support getting files Protokół '%1' nie obsługuje pobierania plików - The protocol `%1' does not support listing directories Protokół '%1' nie obsługuje pokazywania katalogów - The protocol `%1' does not support putting files Protokół '%1' nie obsługuje wysyłania plików - The protocol `%1' does not support removing files or directories Protokół '%1' nie obsługuje usuwania plików lub katalogów - The protocol `%1' does not support renaming files or directories Protokół '%1' nie obsługuje zmiany nazwy plików lub katalogów - - - The protocol `%1' is not supported Protokół '%1' nie jest obsługiwany @@ -1221,27 +985,22 @@ na Q3Wizard - < &Back < &Wstecz - &Cancel &Anuluj - &Finish &Zakończ - &Help &Pomoc - &Next > &Dalej > @@ -1249,45 +1008,30 @@ na QAbstractSocket - - - Connection refused Połączenie odrzucone - - - - Host not found Host nie znaleziony - Connection timed out Przekroczony czas połączenia - - - Operation on socket is not supported Operacja na gnieździe nie jest obsługiwana - Socket is not connected Gniazdo nie jest podłączone - - Socket operation timed out Przekroczony czas operacji gniazda - Network unreachable Sieć niedostępna @@ -1295,17 +1039,14 @@ na QAbstractSpinBox - Step &down Krok w &dół - &Step up Krok do &góry - &Select All &Zaznacz wszystko @@ -1313,7 +1054,6 @@ na QAccessibleButton - Press Wciśnij @@ -1321,27 +1061,22 @@ na QApplication - Activate Uaktywnij - Activates the program's main window Uaktywnia główne okno programu - Executable '%1' requires Qt %2, found Qt %3. Program '%1' wymaga do uruchomienia Qt %2, znaleziono Qt %3. - Incompatible Qt Library Error Niekompatybilność biblioteki Qt - QT_LAYOUT_DIRECTION 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. LTR @@ -1350,22 +1085,18 @@ na QAxSelect - Select ActiveX Control Wybierz kontrolkę ActiveX - OK OK - &Cancel &Anuluj - COM &Object: &Obiekt COM: @@ -1373,17 +1104,14 @@ na QCheckBox - Check Zaznacz - Toggle Przełącz - Uncheck Odznacz @@ -1391,57 +1119,46 @@ na QColorDialog - &Add to Custom Colors &Dodaj do własnych kolorów - A&lpha channel: Kanał &alfa: - Select Color Wybierz kolor - &Basic colors &Kolory podstawowe - Bl&ue: Błęki&t: - &Custom colors Wła&sne kolory - &Green: &Zieleń: - Hu&e: &Barwa: - &Red: &Czerwień: - &Sat: &Nasycenie: - &Val: &Wartość: @@ -1449,23 +1166,18 @@ na QComboBox - - Open Otwórz - False Fałsz - True Prawda - Close Zamknij @@ -1473,43 +1185,36 @@ na QCoreApplication - %1: already exists QSystemSemaphore %1: już istnieje - %1: does not exist QSystemSemaphore %1: nie istnieje - %1: out of resources QSystemSemaphore %1: zasoby wyczerpane - %1: unknown error %2 QSystemSemaphore %1: nieznany błąd %2 - %1: key is empty QSystemSemaphore %1: klucz jest pusty - %1: unable to make key QSystemSemaphore %1: nie można utworzyć klucza - %1: ftok failed QSystemSemaphore %1: wystąpił błąd w funkcji ftok() @@ -1518,22 +1223,18 @@ na QDB2Driver - Unable to connect Nie można nawiązać połączenia - Unable to commit transaction Nie można dokonać transakcji - Unable to rollback transaction Nie można wycofać transakcji - Unable to set autocommit Nie można ustawić trybu automatycznego dokonywania transakcji @@ -1541,33 +1242,26 @@ na QDB2Result - - Unable to execute statement Nie można wykonać polecenia - Unable to prepare statement Nie można przygotować polecenia - Unable to bind variable Nie można powiązać zmiennej - Unable to fetch record %1 Nie można pobrać rekordu %1 - Unable to fetch next Nie można pobrać kolejnego wiersza danych - Unable to fetch first Nie można pobrać pierwszego wiersza danych @@ -1575,22 +1269,18 @@ na QDateTimeEdit - am am - AM AM - pm pm - PM PM @@ -1598,17 +1288,14 @@ na QDeclarativeAbstractAnimation - Cannot animate non-existent property "%1" Nie można animować nieistniejącej właściwości "%1" - Cannot animate read-only property "%1" Nie można animować właściwości (tylko do odczytu): "%1" - Animation is an abstract class "Animation" jest klasą abstrakcyjną @@ -1616,7 +1303,6 @@ na QDeclarativeAnchorAnimation - Cannot set a duration of < 0 Nie można ustawić ujemnego czasu trwania @@ -1624,67 +1310,50 @@ na QDeclarativeAnchors - Possible anchor loop detected on fill. Wykryto możliwe zapętlenie dla kotwicy "fill". - Possible anchor loop detected on centerIn. Wykryto możliwe zapętlenie dla kotwicy "centerIn". - - - - Cannot anchor to an item that isn't a parent or sibling. Nie można doczepić kotwicy do elementu który nie jest rodzicem ani rodzeństwem. - Possible anchor loop detected on vertical anchor. Wykryto możliwe zapętlenie dla pionowej kotwicy. - Possible anchor loop detected on horizontal anchor. Wykryto możliwe zapętlenie dla poziomej kotwicy. - Cannot specify left, right, and hcenter anchors. Nie można jednocześnie podać lewej, prawej i centralnej poziomej kotwicy. - - Cannot anchor to a null item. Nie można doczepić kotwicy do zerowego elementu. - Cannot anchor a horizontal edge to a vertical edge. Nie można doczepić poziomej krawędzi do pionowej. - - Cannot anchor item to self. Nie można doczepić kotwicy do tego samego elementu. - Cannot specify top, bottom, and vcenter anchors. Nie można jednocześnie podać górnej, dolnej i centralnej pionowej kotwicy. - Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. Bazowa kotwica nie może być użyta w połączeniu z górną, dolną lub centralną pionową kotwicą. - Cannot anchor a vertical edge to a horizontal edge. Nie można doczepić pionowej krawędzi do poziomej. @@ -1692,7 +1361,6 @@ na QDeclarativeAnimatedImage - Qt was built without support for QMovie Qt zostało zbudowane bez obsługi QMovie @@ -1700,7 +1368,6 @@ na QDeclarativeBehavior - Cannot change the animation assigned to a Behavior. Nie można zmienić animacji przypisanej do "Zachowania". @@ -1708,7 +1375,6 @@ na QDeclarativeBinding - Binding loop detected for property "%1" Zapętlenie powiązania dla właściwości "%1" @@ -1716,7 +1382,6 @@ na QDeclarativeCompiledBindings - Binding loop detected for property "%1" Zapętlenie powiązania dla właściwości "%1" @@ -1724,37 +1389,26 @@ na QDeclarativeCompiler - - - - - - Invalid property assignment: "%1" is a read-only property Niepoprawne przypisanie wartości: "%1" jest właściwością tylko do odczytu - Invalid property assignment: unknown enumeration Niepoprawne przypisanie wartości: nieznana wartość wyliczeniowa - Invalid property assignment: string expected Niepoprawne przypisanie wartości: oczekiwano ciągu - Invalid property assignment: url expected Niepoprawne przypisanie wartości: oczekiwano url - Invalid property assignment: unsigned int expected Niepoprawne przypisanie wartości: oczekiwano liczby naturalnej - Invalid property assignment: int expected Niepoprawne przypisanie wartości: oczekiwano liczby całkowitej @@ -1767,356 +1421,278 @@ na Niepoprawne przypisanie wartości: oczekiwano liczby zmiennoprzecinkowej podwójnej precyzji - - Invalid property assignment: number expected Niepoprawne przypisanie wartości: oczekiwano liczby - Invalid property assignment: color expected Niepoprawne przypisanie wartości: oczekiwano koloru - Invalid property assignment: date expected Niepoprawne przypisanie wartości: oczekiwano daty - Invalid property assignment: time expected Niepoprawne przypisanie wartości: oczekiwano czasu - Invalid property assignment: datetime expected Niepoprawne przypisanie wartości: oczekiwano daty i czasu - Invalid property assignment: point expected Niepoprawne przypisanie wartości: oczekiwano punktu - Invalid property assignment: size expected Niepoprawne przypisanie wartości: oczekiwano rozmiaru - Invalid property assignment: rect expected Niepoprawne przypisanie wartości: oczekiwano prostokąta - Invalid property assignment: boolean expected Niepoprawne przypisanie wartości: oczekiwano wartości boolowskiej - Invalid property assignment: 3D vector expected - Niepoprawne przypisanie wartości: oczekiwano wektoru 3D + Niepoprawne przypisanie wartości: oczekiwano wektora 3D - Invalid property assignment: unsupported type "%1" Niepoprawne przypisanie wartości: nieobsługiwany typ "%1" - Element is not creatable. Nie można utworzyć elementu ("creatable" wyłączone). - Component elements may not contain properties other than id Elementy komponentu nie mogą posiadać właściwości innych niż "id" - Invalid component id specification Niepoprawna specyfikacja "id" komponentu - - id is not unique Wartość "id" nie jest unikatowa - Invalid component body specification Niepoprawna specyfikacja "body" komponentu - Component objects cannot declare new properties. Instancje komponentu nie mogą deklarować nowych właściwości. - Component objects cannot declare new signals. Instancje komponentu nie mogą deklarować nowych sygnałów. - Component objects cannot declare new functions. Instancje komponentu nie mogą deklarować nowych funkcji. - Cannot create empty component specification Nie można utworzyć pustej specyfikacji komponentu - Incorrectly specified signal assignment Przypisanie sygnału błędnie podane - Cannot assign a value to a signal (expecting a script to be run) Nie można przypisać wartości do sygnału (oczekiwano uruchomienia skryptu) - Empty signal assignment Przypisanie pustego sygnału - Empty property assignment Przypisanie pustej właściwości - Attached properties cannot be used here Dołączone właściwości nie mogą być tutaj użyte - - Non-existent attached object Nieistniejący dołączony obiekt - - Invalid attached object assignment Niepoprawne przypisanie dołączonego obiektu - Cannot assign to non-existent default property Nie można przypisać wartości do nieistniejącej domyślnej właściwości - - Cannot assign to non-existent property "%1" Nie można przypisać wartości do nieistniejącej właściwości "%1" - Invalid use of namespace Niepoprawne użycie przestrzeni nazw - Not an attached property name Nie jest to nazwa dołączonej właściwości - Invalid use of id property Niepoprawne użycie właściwości "id" - - Property has already been assigned a value Wartość została już przypisana do właściwości - - Invalid grouped property access Błędny dostęp do zgrupowanej właściwości - Cannot assign a value directly to a grouped property Nie można bezpośrednio przypisać wartości do zgrupowanej właściwości - Invalid property use Niepoprawne użycie właściwości - Property assignment expected Oczekiwano przypisania wartości - Single property assignment expected Oczekiwano przypisania pojedynczej wartości - Unexpected object assignment Nieoczekiwane przypisanie obiektu - Cannot assign object to list Nie można przypisać obiektu do listy - Can only assign one binding to lists Tylko jedno powiązanie może być przypisane do listy - Cannot assign primitives to lists Nie można przypisać elementu do listy - Cannot assign multiple values to a script property Nie można przypisać wielu wartości do skryptowej właściwości - Invalid property assignment: script expected Niepoprawne przypisanie wartości: oczekiwano skryptu - Cannot assign object to property Nie można przypisać obiektu dla właściwości - "%1" cannot operate on "%2" "%1" nie może operować na "%2" - Duplicate default property Powielona domyślna właściwość - Duplicate property name Powielona nazwa właściwości - Property names cannot begin with an upper case letter Nazwy właściwości nie mogą rozpoczynać się wielką literą - Illegal property name Niepoprawna nazwa właściwości - Duplicate signal name Powielona nazwa sygnału - Signal names cannot begin with an upper case letter Nazwy sygnałów nie mogą rozpoczynać się wielką literą - Illegal signal name Niepoprawna nazwa sygnału - Duplicate method name - Powielona nazwa medoty + Powielona nazwa metody - Method names cannot begin with an upper case letter Nazwy metod nie mogą rozpoczynać się wielką literą - Illegal method name Niepoprawna nazwa metody - Property value set multiple times Wartość właściwości ustawiona wielokrotnie - Invalid property nesting Niepoprawne zagnieżdżenie właściwości - Cannot override FINAL property Nie można nadpisać właściwości "FINAL" - Invalid property type Niepoprawny typ właściwości - Invalid empty ID Niepoprawny pusty identyfikator - IDs cannot start with an uppercase letter Identyfikatory nie mogą rozpoczynać się wielką literą - IDs must start with a letter or underscore Identyfikatory muszą rozpoczynać się literą lub znakiem podkreślenia - IDs must contain only letters, numbers, and underscores Identyfikatory mogą zawierać jedynie litery, cyfry i znaki podkreślenia - ID illegally masks global JavaScript property - - No property alias location - - Invalid alias location Niepoprawne położenie aliasu - Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> Niepoprawna referencja aliasu. Referencja aliasu musi być podana jako <id> lub <id> <property> - Invalid alias reference. Unable to find id "%1" Niepoprawna referencja aliasu. Nie można odnaleźć identyfikatora "%1" @@ -2124,7 +1700,6 @@ na QDeclarativeComponent - Invalid empty URL Niepoprawny pusty URL @@ -2132,23 +1707,18 @@ na QDeclarativeCompositeTypeManager - - Resource %1 unavailable Zasób %1 nie jest dostępny - Namespace %1 cannot be used as a type Przestrzeń nazw %1 nie może być użyta jako typ - %1 %2 %1 %2 - Type %1 unavailable Typ %1 nie jest dostępny @@ -2156,23 +1726,18 @@ na QDeclarativeConnections - - Cannot assign to non-existent property "%1" Nie można przypisać wartości do nieistniejącej właściwości "%1" - Connections: nested objects not allowed Połączenia: zagnieżdżone obiekty nie są dozwolone - Connections: syntax error Połączenia: błąd składni - Connections: script expected Połączenia: oczekiwano skryptu @@ -2180,33 +1745,26 @@ na QDeclarativeEngine - executeSql called outside transaction() "executeSql" zawołane na zewnątrz "transation()" - Read-only Transaction Transakcja tylko do odczytu - Version mismatch: expected %1, found %2 Niezgodność wersji: oczekiwano %1, znaleziono %2 - SQL transaction failed Transakcja SQL zakończona błędem - transaction: missing callback - - SQL: database version mismatch SQL: niezgodność wersji bazy danych @@ -2214,12 +1772,10 @@ na QDeclarativeFlipable - front is a write-once property "front" jest właściwością tylko do odczytu - back is a write-once property "back" jest właściwością tylko do odczytu @@ -2227,75 +1783,58 @@ na QDeclarativeImportDatabase - module "%1" definition "%2" not readable definicja "%2" modułu "%1" nie może zostać odczytana - plugin cannot be loaded for module "%1": %2 wtyczka nie może zostać załadowana dla modułu "%1": %2 - module "%1" plugin "%2" not found wtyczka "%2" modułu "%1" nie została odnaleziona - - module "%1" version %2.%3 is not installed wersja %2.%3 modułu %1 nie jest zainstalowana - module "%1" is not installed moduł "%1" nie jest zainstalowany - - "%1": no such directory "%1": brak katalogu - import "%1" has no qmldir and no namespace - - %1 is not a namespace - %1 nie jest przestrzenią nazw - - nested namespaces not allowed - zagnieżdżone przestrzenie nazw nie są dozwolone - - local directory lokalny katalog - is ambiguous. Found in %1 and in %2 jest niejednoznaczny. Znaleziono w %1 i w %2 - is ambiguous. Found in %1 in version %2.%3 and %4.%5 jest niejednoznaczny. Znaleziono w %1 w wersji %2.%3 i %4.%5 - is instantiated recursively jest zinstancjonowany rekurencyjnie - is not a type nie jest typem @@ -2303,7 +1842,6 @@ na QDeclarativeKeyNavigationAttached - KeyNavigation is only available via attached properties "KeyNavigation" jest dostępny jedynie poprzez dołączone właściwości @@ -2311,7 +1849,6 @@ na QDeclarativeKeysAttached - Keys is only available via attached properties "Keys" jest dostępny jedynie poprzez dołączone właściwości @@ -2319,59 +1856,46 @@ na QDeclarativeListModel - remove: index %1 out of range remove: indeks %1 poza zakresem - insert: value is not an object insert: wartość nie jest obiektem - insert: index %1 out of range insert: indeks %1 poza zakresem - move: out of range move: poza zakresem - append: value is not an object append: wartość nie jest obiektem - set: value is not an object set: wartość nie jest obiektem - - set: index %1 out of range set: indeks %1 poza zakresem - - ListElement: cannot contain nested elements ListElement: nie może zawierać zagnieżdżonych elementów - ListElement: cannot use reserved "id" property ListElement: nie można używać zarezerwowanej właściwości "id" - ListElement: cannot use script for property value ListElement: nie można używać skryptu jako wartości właściwości - ListModel: undefined property '%1' ListModel: niezdefiniowana właściwość "%1" @@ -2379,7 +1903,6 @@ na QDeclarativeLoader - Loader does not support loading non-visual elements. Ładowanie elementów niewizualnych nie jest obsługiwane. @@ -2387,18 +1910,14 @@ na QDeclarativeParentAnimation - Unable to preserve appearance under complex transform - - Unable to preserve appearance under non-uniform scale - Unable to preserve appearance under scale of 0 @@ -2406,18 +1925,14 @@ na QDeclarativeParentChange - Unable to preserve appearance under complex transform - - Unable to preserve appearance under non-uniform scale - Unable to preserve appearance under scale of 0 @@ -2425,144 +1940,110 @@ na QDeclarativeParser - - - Illegal unicode escape sequence - Illegal character Niepoprawny znak - Unclosed string at end of line Niedomknięty ciąg na końcu linii - Illegal escape squence - Unclosed comment at end of file Niedomknięty komentarz na końcu linii - Illegal syntax for exponential number Niepoprawna składnia liczby o postaci wykładniczej - Identifier cannot start with numeric literal Identyfikator nie może rozpoczynać się stałą liczbową - Unterminated regular expression literal Niedokończone wyrażenie regularne - Invalid regular expression flag '%0' Niepoprawna flaga "%0" w wyrażeniu regularnym - - Unterminated regular expression backslash sequence - Unterminated regular expression class Niedokończona klasa wyrażenia regularnego - - Syntax error Błąd składni - Unexpected token `%1' Nieoczekiwany znak "%1" - - Expected token `%1' Oczekiwany znak "%1" - - - Property value set multiple times Wartość właściwości ustawiona wielokrotnie - Expected type name Oczekiwana nazwa typu - Invalid import qualifier ID - Reserved name "Qt" cannot be used as an qualifier "Qt" jest nazwą zarezerwowaną i nie może być użyta jako kwalifikator - Script import qualifiers must be unique. Kwalifikator importu skryptu musi być unikatowy. - Script import requires a qualifier Import skryptu wymaga użycia kwalifikatora - Library import requires a version Import biblioteki wymaga podania wersji - Expected parameter type Oczekiwany typ parametru - Invalid property type modifier Niepoprawny modyfikator typu właściwości - Unexpected property type modifier Nieoczekiwany modyfikator typu właściwości - Expected property type Oczekiwany typ właściwości - Readonly not yet supported "Tylko do odczytu" nie jest jeszcze obsługiwane - JavaScript declaration outside Script element Deklaracja "JavaScript" na zewnątrz elementu "Script" @@ -2570,7 +2051,6 @@ na QDeclarativePauseAnimation - Cannot set a duration of < 0 Nie można ustawić ujemnego czasu trwania @@ -2578,19 +2058,14 @@ na QDeclarativePixmap - Error decoding: %1: %2 Błąd dekodowania: %1: %2 - - Failed to get image from provider: %1 Pobieranie obrazka od dostawcy zakończone błędem: %1 - - Cannot open: %1 Nie można otworzyć: %1 @@ -2617,7 +2092,6 @@ na QDeclarativePropertyAnimation - Cannot set a duration of < 0 Nie można ustawić ujemnego czasu trwania @@ -2625,17 +2099,14 @@ na QDeclarativePropertyChanges - PropertyChanges does not support creating state-specific objects. "PropertyChanges" nie obsługuje tworzenia obiektów charakterystycznych dla stanów. - Cannot assign to non-existent property "%1" Nie można przypisać wartości do nieistniejącej właściwości "%1" - Cannot assign to read-only property "%1" Nie można przypisać wartości do właściwości (tylko do odczytu): "%1" @@ -2643,13 +2114,10 @@ na QDeclarativeTextInput - - Could not load cursor delegate - Could not instantiate cursor delegate @@ -2657,47 +2125,38 @@ na QDeclarativeVME - Unable to create object of type %1 Nie można utworzyć obiektu typu %1 - Cannot assign value %1 to property %2 Nie można przypisać wartości %1 do właściwości %2 - Cannot assign object type %1 with no default method Nie można przypisać obiektu typu %1 który nie posiada domyślnej metody - Cannot connect mismatched signal/slot %1 %vs. %2 Nie można podłączyć niezgodnych sygnałów / slotów (%1 i %2) - Cannot assign an object to signal property %1 - Cannot assign object to list Nie można przypisać obiektu do listy - Cannot assign object to interface property - Unable to create attached object Nie można utworzyć dołączonego obiektu - Cannot set properties on %1 as it is null Nie można ustawić właściwości dla %1 ponieważ jest on zerowy @@ -2705,7 +2164,6 @@ na QDeclarativeVisualDataModel - Delegate component must be Item type. @@ -2713,8 +2171,6 @@ na QDeclarativeXmlListModel - - Qt was built without support for xmlpatterns Qt zostało zbudowane bez obsługi xmlpatterns @@ -2722,7 +2178,6 @@ na QDeclarativeXmlListModelRole - An XmlRole query must not start with '/' Zapytanie XmlRole nie może rozpoczynać się od "/" @@ -2730,7 +2185,6 @@ na QDeclarativeXmlRoleList - An XmlListModel query must start with '/' or "//" Zapytanie XmlListModel nie może rozpoczynać się od "/" ani od "//" @@ -2738,17 +2192,14 @@ na QDial - QDial QDial - SpeedoMeter Miernik prędkości - SliderHandle Uchwyt suwaka @@ -2756,12 +2207,10 @@ na QDialog - What's This? Co to jest? - Done Zrobione @@ -2769,124 +2218,98 @@ na QDialogButtonBox - Abort Przerwij - Apply Zastosuj - &Save &Zachowaj - Cancel Anuluj - &Cancel &Anuluj - Close Zamknij - &Close &Zamknij - Close without Saving Zamknij bez zapisywania - Discard Odrzuć - Don't Save Nie zachowuj - Help Pomoc - Ignore Zignoruj - &No &Nie - N&o to All Ni&e dla wszystkich - - - OK OK - Open Otwórz - Reset Resetuj - Restore Defaults Przywróć ustawienia - Retry Ponów - Save Zachowaj - Save All Zachowaj wszystko - &Yes &Tak - Yes to &All Ta&k dla wszystkich - &OK &OK @@ -2894,28 +2317,23 @@ na QDirModel - Date Modified Data modyfikacji - Kind Match OS X Finder Typ - Name Nazwa - Size Rozmiar - Type All other platforms Rodzaj @@ -2924,17 +2342,14 @@ na QDockWidget - Close Zamknij - Dock Zadokuj - Float Uwolnij @@ -2942,12 +2357,10 @@ na QDoubleSpinBox - More Więcej - Less Mniej @@ -2955,27 +2368,22 @@ na QErrorMessage - Debug Message: Komunikat dla programisty: - Fatal Error: Błąd krytyczny: - &OK &OK - &Show this message again &Pokaż ten komunikat ponownie - Warning: Ostrzeżenie: @@ -2983,38 +2391,30 @@ na QFile - - Destination file exists Plik wyjściowy już istnieje - Will not rename sequential file using block copy Nie można zmienić nazwy pliku sekwencyjnego używając kopiowania blokowego - Cannot remove source file Nie można usunąć oryginalnego pliku - Cannot open %1 for input Nie można otworzyć pliku wejściowego %1 - Cannot open for output Nie można otworzyć pliku wyjściowego - Failure to write block Nie można zapisać bloku - Cannot create %1 for output Nie można utworzyć pliku wyjściowego %1 @@ -3022,22 +2422,18 @@ na QFileDialog - %1 already exists. Do you want to replace it? %1 już istnieje. Czy chcesz zamienić? - '%1' is write protected. Do you want to delete it anyway? '%1' jest zabezpieczony przed zapisem. Czy na pewno chcesz go skasować? - - %1 Directory not found. Please verify the correct directory name was given. @@ -3046,7 +2442,6 @@ Katalog nie znaleziony. Sprawdź podaną nazwę katalogu. - %1 File not found. Please verify the correct file name was given. @@ -3055,237 +2450,178 @@ Plik nie znaleziony. Proszę o sprawdzenie podanej nazwy pliku. - Are sure you want to delete '%1'? Czy na pewno chcesz skasować '%1'? - Recent Places Ostatnie miejsca - - Back Powrót - Could not delete directory. Nie można skasować katalogu. - &Delete &Skasuj - - Detail View Szczegóły - Directories Katalogi - - Directory: Katalog: - Drive Urządzenie - - File Plik - File Folder Match Windows Explorer Katalog - Folder All other platforms Katalog - Alias Mac OS X Finder Alias - Shortcut All other platforms Skrót - - Files of type: Pliki rodzaju: - - List View Lista - My Computer Mój komputer - - - &Open &Otwórz - - Parent Directory Katalog wyżej - &Rename &Zmień nazwę - - &Save &Zachowaj - Show &hidden files Pokaż &ukryte pliki - Unknown Nieznany - Open Otwórz - Save As Zachowaj jako - Find Directory Znajdź katalog - All Files (*.*) Wszystkie pliki (*.*) - Show Pokaż - - Forward Do przodu - New Folder Nowy katalog - &New Folder &Nowy katalog - - &Choose &Wybierz - Remove Usuń - - All Files (*) Wszystkie pliki (*) - - File &name: Nazwa &pliku: - - Look in: Szukaj w: - - Create New Folder Utwórz nowy katalog - Go back Wróć - Go forward Przejdź dalej - Go to the parent directory Przejdź do katalogu wyżej - Create a New Folder Utwórz nowy katalog - Change to list view mode Pokaż listę - Change to detail view mode Pokaż szczegóły @@ -3293,83 +2629,64 @@ Proszę o sprawdzenie podanej nazwy pliku. QFileSystemModel - - %1 TB %1 TB - - %1 GB %1 GB - - %1 MB %1 MB - - %1 KB %1 KB - %1 bytes %1 bajtów - Invalid filename Niepoprawna nazwa pliku - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. <b>Nazwa "%1" nie może zostać użyta.</b><p>Spróbuj użyć nowej nazwy z mniejszą liczbą znaków lub bez znaków przystankowych. - Name Nazwa - Size Rozmiar - Kind Match OS X Finder Typ - Type All other platforms Rodzaj - Date Modified Data modyfikacji - My Computer Mój komputer - Computer Komputer - %1 byte(s) %1 bajt(ów) @@ -3377,223 +2694,172 @@ Proszę o sprawdzenie podanej nazwy pliku. QFontDatabase - - Normal Normalny - - - Bold Pogrubiony - - Demi Bold Na wpół pogrubiony - - - Black it's about font weight Bardzo gruby - Demi Na wpół - - Light it's about font weight Cienki - - Italic Kursywa - - Oblique Pochyły - Any Każdy - Latin Łaciński - Greek Grecki - Cyrillic Cyrylica - Armenian Ormiański - Hebrew Hebrajski - Arabic Arabski - Syriac Syryjski - Thaana Thaana - Devanagari Devanagari - Bengali Bengalski - Gurmukhi Gurmukhi - Gujarati Gudżaracki - Oriya Orija - Tamil Tamilski - Telugu Telugu - Kannada Kannada - Malayalam Malajalam - Sinhala Syngaleski - Thai Tajski - Lao Laotański - Tibetan Tybetański - Myanmar Birmański - Georgian Gruziński - Khmer Khmerski - Simplified Chinese Uproszczony chiński - Traditional Chinese Tradycyjny chiński - Japanese Japoński - Korean Koreański - Vietnamese Wietnamski - Symbol Symboliczny - Ogham Ogamiczny - Runic Runiczny - N'Ko N'Ko @@ -3601,47 +2867,38 @@ Proszę o sprawdzenie podanej nazwy pliku. QFontDialog - Effects Efekty - &Font &Czcionka - Font st&yle St&yl czcionki - Sample Przykład - Select Font Wybierz czcionkę - &Size &Rozmiar - Stri&keout Pr&zekreślenie - &Underline &Podkreślenie - Wr&iting System Sys&tem pisania @@ -3649,143 +2906,102 @@ Proszę o sprawdzenie podanej nazwy pliku. QFtp - - Changing directory failed: %1 Zmiana katalogu zakończona błędem: %1 - Connected to host Podłączony do hosta - - - Connected to host %1 Podłączony do hosta %1 - - Connecting to host failed: %1 Podłączanie do hosta zakończone błędem: %1 - - - Connection closed Połączenie zamknięte - - Connection refused for data connection Połączenie do przesyłu danych odrzucone - - Connection refused to host %1 Połączenie do hosta %1 odrzucone - Connection to %1 closed Połączenie do %1 zakończone - - Creating directory failed: %1 Tworzenie katalogu zakończone błędem: %1 - - Downloading file failed: %1 Pobieranie pliku zakończone błędem: %1 - Host %1 found Host %1 znaleziony - - Host %1 not found Host %1 nie znaleziony - Host found Host znaleziony - - Listing directory failed: %1 Listowanie katalogu zakończone błędem: %1 - - Login failed: %1 Logowanie zakończone błędem: %1 - - Not connected Nie podłączony - Connection timed out to host %1 Przekroczony czas połączenia do hosta %1 - - Removing directory failed: %1 Usuwanie katalogu zakończone błędem: %1 - - Removing file failed: %1 Usuwanie pliku zakończone błędem: %1 - - - - Unknown error Nieznany błąd - - Uploading file failed: %1 Wysyłanie pliku zakończone błędem: @@ -3795,12 +3011,10 @@ Proszę o sprawdzenie podanej nazwy pliku. QHostInfo - Unknown error Nieznany błąd - No host name given Nie podano nazwy hosta @@ -3808,37 +3022,22 @@ Proszę o sprawdzenie podanej nazwy pliku. QHostInfoAgent - - - - Host not found Host nie znaleziony - - - - Unknown address type Nieznany typ adresu - - - Unknown error Nieznany błąd - - No host name given Nie podano nazwy hosta - - Invalid hostname Niepoprawna nazwa hosta @@ -3846,153 +3045,110 @@ Proszę o sprawdzenie podanej nazwy pliku. QHttp - Connected to host Podłączony do hosta - Connected to host %1 Podłączony do hosta %1 - - Connection closed Połączenie zakończone - - Connection refused Połączenie odrzucone - Connection to %1 closed Połączenie do %1 zamknięte - Host %1 found Host %1 znaleziony - - - Host %1 not found Host %1 nie znaleziony - Host found Host znaleziony - - HTTP request failed Komenda HTTP zakończona błędem - - - - Invalid HTTP chunked body Niepoprawne ciało HTTP - - Invalid HTTP response header Niepoprawny nagłówek odpowiedzi HTTP - - No server set to connect to Brak serwera do podłączenia - - Request aborted Komenda przerwana - - Server closed connection unexpectedly Serwer nieoczekiwanie zakończył połączenie - - - - Unknown error Nieznany błąd - HTTPS connection requested but SSL support not compiled in Zażądano połączenia HTTPS lecz obsługa SSL nie jest wkompilowana - - Wrong content length Błędna długość zawartości - Unknown authentication method Nieznana metoda autoryzacji - Proxy authentication required Wymagana autoryzacja pośrednika - Authentication required Wymagana autoryzacja - Error writing response to device Błąd zapisywania odpowiedzi do urządzenia - Proxy requires authentication Pośrednik wymaga autoryzacji - Host requires authentication Host wymaga autoryzacji - Data corrupted Dane uszkodzone - Unknown protocol specified Podano nieznany protokół - SSL handshake failed Nawiązanie sesji SSL zakończone błędem - Connection refused (or timed out) Połączenie odrzucone (przekroczony czas połączenia) @@ -4000,47 +3156,38 @@ Proszę o sprawdzenie podanej nazwy pliku. QHttpSocketEngine - Did not receive HTTP response from proxy Nie odebrano odpowiedzi HTTP od pośrednika - Error parsing authentication request from proxy Błąd parsowania żądania autoryzacji od pośrednika - Authentication required Wymagana autoryzacja - Proxy denied connection Pośrednik odmówił połączenia - Error communicating with HTTP proxy Błąd podczas komunikacji z pośrednikiem HTTP - Proxy server not found Nie znaleziono serwera pośredniczącego - Proxy connection refused Odmowa połączenia z pośrednikiem - Proxy server connection timed out Przekroczony czas połączenia do serwera pośredniczącego - Proxy connection closed prematurely Przedwczesne zakończenie połączenia z pośrednikiem @@ -4048,22 +3195,18 @@ Proszę o sprawdzenie podanej nazwy pliku. QIBaseDriver - Could not start transaction Nie można rozpocząć transakcji - Error opening database Błąd otwierania bazy danych - Unable to commit transaction Nie można dokonać transakcji - Unable to rollback transaction Nie można wycofać transakcji @@ -4071,89 +3214,70 @@ Proszę o sprawdzenie podanej nazwy pliku. QIBaseResult - Could not allocate statement Nie można zaallokować polecenia - - Could not describe input statement Nie można opisać polecenia wejściowego - Could not describe statement Nie można opisać polecenia - Could not fetch next item Nie można pobrać kolejnego elementu - - Could not find array Nie można odnaleźć tablicy - Could not get array data Nie można pobrać danych z tablicy - Could not get query info Nie można pobrać informacji o zapytaniu - Could not get statement info Nie można pobrać informacji o poleceniu - Could not prepare statement Nie można przygotować polecenia - Could not start transaction Nie można rozpocząć transakcji - Unable to close statement Nie można zamknąć polecenia - Unable to commit transaction Nie można dokonać transakcji - Unable to create BLOB Nie można utworzyć obiektu typu BLOB - Unable to execute query Nie można wykonać zapytania - Unable to open BLOB Nie można otworzyć obiektu typu BLOB - Unable to read BLOB Nie można odczytać obiektu typu BLOB - Unable to write BLOB Nie można zapisać obiektu typu BLOB @@ -4161,27 +3285,22 @@ Proszę o sprawdzenie podanej nazwy pliku. QIODevice - No space left on device Brak wolnego miejsca na urządzeniu - No such file or directory Brak pliku lub katalogu - Permission denied Brak uprawnień - Too many open files Zbyt wiele otwartych plików - Unknown error Nieznany błąd @@ -4189,32 +3308,26 @@ Proszę o sprawdzenie podanej nazwy pliku. QInputContext - Mac OS X input method Metoda wprowadzania Mac OS X - Windows input method Metoda wprowadzania Windows - XIM XIM - FEP FEP - XIM input method Metoda wprowadzania XIM - S60 FEP input method Metoda wprowadzania S60 FEP @@ -4222,7 +3335,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QInputDialog - Enter a value: Podaj wartość: @@ -4230,67 +3342,50 @@ Proszę o sprawdzenie podanej nazwy pliku. QLibrary - Could not mmap '%1': %2 Nie można wykonać przypisania '%1': %2 - Could not unmap '%1': %2 Nie można usunąć przypisania '%1': %2 - Plugin verification data mismatch in '%1' Niezgodność podczas weryfikacji danych we wtyczce "%1" - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] Wtyczka '%1' używa niepoprawnej wersji biblioteki QT. (%2.%3.%4) [%5] - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" Wtyczka '%1' używa niepoprawnej wersji biblioteki QT. Oczekiwano klucza "%2", uzyskano "%3" - Unknown error Nieznany błąd - - - The shared library was not found. Biblioteka współdzielona niedostępna. - The file '%1' is not a valid Qt plugin. Plik "%1" nie jest poprawną wtyczką Qt. - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) Wtyczka "%1" używa innej wersji biblioteki Qt. (Nie można łączyć bibliotek zwykłych i debugowych.) - - Cannot load library %1: %2 Nie można załadować biblioteki %1: %2 - - Cannot unload library %1: %2 Nie można zwolnić biblioteki %1: %2 - - Cannot resolve symbol "%1" in %2: %3 Nie można zidentyfikować symbolu "%1" w %2: %3 @@ -4298,37 +3393,30 @@ Proszę o sprawdzenie podanej nazwy pliku. QLineEdit - &Copy S&kopiuj - Cu&t W&ytnij - Delete Skasuj - &Paste &Wklej - &Redo &Przywróć - Select All Zaznacz wszystko - &Undo &Cofnij @@ -4336,23 +3424,18 @@ Proszę o sprawdzenie podanej nazwy pliku. QLocalServer - - %1: Name error %1: Błąd nazwy - %1: Permission denied %1: Brak uprawnień - %1: Address in use %1: Adres użyty - %1: Unknown error %2 %1: Nieznany błąd %2 @@ -4360,70 +3443,46 @@ Proszę o sprawdzenie podanej nazwy pliku. QLocalSocket - - %1: Connection refused %1: Odmowa połączenia - - %1: Remote closed %1: Drugi koniec odłączony - - - - %1: Invalid name %1: Niepoprawna nazwa - - %1: Socket access error %1: Błąd dostępu do gniazda - - %1: Socket resource error %1: Błąd zasobów gniazda - - %1: Socket operation timed out %1: Przekroczony czas operacji gniazda - - %1: Datagram too large %1: Za duży datagram - - - %1: Connection error %1: Błąd połączenia - - %1: The socket operation is not supported %1: Operacja nie jest obsługiwana przez gniazdo - %1: Unknown error %1: Nieznany błąd - - %1: Unknown error %2 %1: Nieznany błąd %2 @@ -4431,27 +3490,22 @@ Proszę o sprawdzenie podanej nazwy pliku. QMYSQLDriver - Unable to begin transaction Nie można rozpocząć transakcji - Unable to commit transaction Nie można potwierdzić transakcji - Unable to connect Nie można nawiązać połączenia - Unable to open database ' Nie można otworzyć bazy danych ' - Unable to rollback transaction Nie można wycofać transakcji @@ -4459,60 +3513,46 @@ Proszę o sprawdzenie podanej nazwy pliku. QMYSQLResult - - Unable to bind outvalues Nie można powiązać wartości zewnętrznych - Unable to bind value Nie można powiązać wartości - Unable to execute query Nie można wykonać zapytania - Unable to execute statement Nie można wykonać polecenia - - Unable to fetch data Nie można pobrać danych - - Unable to prepare statement Nie można przygotować polecenia - Unable to reset statement Nie można skasować polecenia - Unable to store result Nie można zachować wyników - Unable to store statement results Nie można zachować wyników polecenia - Unable to execute next query Nie można wykonać następnego zapytania - Unable to store next result Nie można zachować następnego wyniku @@ -4520,7 +3560,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QMdiArea - (Untitled) (Nienazwany) @@ -4528,92 +3567,74 @@ Proszę o sprawdzenie podanej nazwy pliku. QMdiSubWindow - %1 - [%2] %1 - [%2] - Close Zamknij - Minimize Zminimalizuj - Restore Down Przywróć pod spód - &Restore &Przywróć - &Move Prze&nieś - &Size &Rozmiar - Mi&nimize Zmi&nimalizuj - Ma&ximize Zma&ksymalizuj - Stay on &Top Pozostaw na &wierzchu - &Close &Zamknij - Maximize Zmaksymalizuj - Unshade Rozwiń - Shade Zwiń - Restore Przywróć - Help Pomoc - Menu Menu - - [%1] - [%1] @@ -4621,21 +3642,14 @@ Proszę o sprawdzenie podanej nazwy pliku. QMenu - - Close Zamknij - - - Execute Wykonaj - - Open Otwórz @@ -4643,7 +3657,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QMenuBar - Actions Akcje @@ -4651,40 +3664,30 @@ Proszę o sprawdzenie podanej nazwy pliku. QMessageBox - About Qt Informacje o Qt - Help Pomoc - Hide Details... Ukryj szczegóły... - - - - OK OK - <h3>About Qt</h3><p>This program uses Qt version %1.</p> <h3>Informacje o Qt</h3><p> Ten program używa Qt w wersji %1.</p> - <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><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> <p>Qt jest zestawem narzędzi programistycznych dedykowanym dla języka C++. Służy on do opracowywania aplikacji międzyplatformowych.</p><p>Qt umożliwia jednoźródłowe przenoszenie między systemami MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux i wszystkimi głównymi wersjami komercyjnymi systemu Unix. Środowisko Qt jest dostępne dla urządzeń wbudowanych opartych na systemie Linux ( Qt dla wbudowanego systemu Linux) oraz Windows CE.</p><p>Zestaw Qt jest dostępny w trzech różnych opcjach licencjonowania stworzonych w celu zadowolenia naszych różnych użytkowników.</p><p>Qt podlegający licencji zgodnie z naszą komercyjną umową licencyjną jest odpowiedni do opracowywania oprogramowań własnościowych/komercyjnych, dzięki czemu kod źródłowy nie jest udostępniany osobom trzecim. W przeciwnym razie zestaw Qt jest niezgodny z warunkami licencji GNU LGPL w wersji 2.1 lub GNU GPL w wersji 3.0.</p><p>Środowisko Qt objęte licencją GNU LGPL w wersji 2.1 nadaje się do tworzenia aplikacji Qt (własnościowych lub oprogramowań otwartych) tylko wtedy, gdy przestrzegane są warunki licencji GNU LGPL w wersji 2.1.</p><p>Qt objęty Powszechną Licencją Publiczną GNU w wersji 3.0 jest odpowiedni do opracowywania aplikacji QT, aby móc korzystać z aplikacji w połączeniu z oprogramowaniem podlegającym warunkom licencji GNU GPL w wersji 3.0 lub aby przestrzegać warunków licencji GNU GPL w wersji 3.0.</p><p>Więcej informacji na temat licencji Qt można znaleźć na stronie <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>.</p><p>Copyright (C) 2010 Nokia Corporation i/lub oddziały firmy.</p><p>Qt jest produktem firmy Nokia. Dodatkowe informacje znajdują się na stronie <a href="http://qt.nokia.com/">qt.nokia.com</a> </p> - Show Details... Pokaż szczegóły... @@ -4692,7 +3695,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QMultiInputContext - Select IM Wybierz metodę wprowadzania @@ -4700,12 +3702,10 @@ Proszę o sprawdzenie podanej nazwy pliku. QMultiInputContextPlugin - Multiple input method switcher Przełącznik metody wprowadzania - Multiple input method switcher that uses the context menu of the text widgets Przełącznik metody wprowadzania, który w widżetach tekstowych używa podręcznego menu @@ -4713,132 +3713,106 @@ Proszę o sprawdzenie podanej nazwy pliku. QNativeSocketEngine - Another socket is already listening on the same port Inne gniazdo nasłuchuje już na tym porcie - Attempt to use IPv6 socket on a platform with no IPv6 support Próba użycia IPv6 na platformie bez obsługi IPv6 - Connection refused Połączenie odrzucone - Connection timed out Przekroczony czas połączenia - Datagram was too large to send Datagram za długi do wysłania - Host unreachable Komputer niedostępny - Invalid socket descriptor Niepoprawny opis gniazda - Network error Błąd sieci - Network operation timed out Przekroczony czas operacji sieciowej - Network unreachable Sieć niedostępna - Operation on non-socket Nieprawidłowa operacja na gnieździe - Out of resources Zasoby wyczerpane - Permission denied Brak uprawnień - Protocol type not supported Nieobsługiwany typ protokołu - The address is not available Adres nie jest dostępny - The address is protected Adres jest zabezpieczony - The bound address is already in use Adres jest aktualnie w użyciu - The remote host closed the connection Zdalny host zakończył połączenie - Unable to initialize broadcast socket Nie można uruchomić gniazda rozsyłającego - Unable to initialize non-blocking socket Nie można uruchomić gniazda w nieblokującym trybie - Unable to receive a message Nie można odebrać wiadomości - Unable to send a message Nie można wysłać wiadomości - Unable to write Nie można zapisać - Unknown error Nieznany błąd - Unsupported socket operation Nieobsługiwana operacja gniazda - The proxy type is invalid for this operation Typ pośrednika nie jest poprawny dla tej operacji @@ -4846,7 +3820,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessCacheBackend - Error opening %1 Błąd otwierania %1 @@ -4854,12 +3827,10 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessDataBackend - Operation not supported on %1 Operacja nieobsługiwana na %1 - Invalid URI: %1 Niepoprawny URI: %1 @@ -4867,17 +3838,14 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessDebugPipeBackend - Write error writing to %1: %2 Błąd w trakcie zapisywania do %1: %2 - Socket error on %1: %2 Błąd gniazda na %1: %2 - Remote host closed the connection prematurely on %1 Zdalny host przedwcześnie zakończył połączenie na %1 @@ -4885,30 +3853,22 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessFileBackend - - Request for opening non-local file %1 Żądanie otwarcia zdalnego pliku %1 - - Error opening %1: %2 Błąd otwierania %1: %2 - Write error writing to %1: %2 Błąd w trakcie zapisywania do %1: %2 - - Cannot open %1: Path is a directory Nie można otworzyć %1: Ścieżka jest katalogiem - Read error reading from %1: %2 Błąd w trakcie czytania z %1: %2 @@ -4916,27 +3876,22 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessFtpBackend - No suitable proxy found Nie odnaleziono odpowiedniego pośrednika - Cannot open %1: is a directory Nie można otworzyć %1: jest to katalog - Logging in to %1 failed: authentication required Błąd podczas logowania do %1: wymagana autoryzacja - Error while downloading %1: %2 Błąd podczas pobierania %1: %2 - Error while uploading %1: %2 Błąd podczas wysyłania %1: %2 @@ -4944,7 +3899,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessHttpBackend - No suitable proxy found Nie odnaleziono odpowiedniego pośrednika @@ -4952,7 +3906,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkAccessManager - Network access is disabled. Dostęp do sieci wyłączony. @@ -4960,22 +3913,18 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkReply - Error downloading %1 - server replied: %2 Błąd podczas pobierania %1 - odpowiedź serwera: %2 - Protocol "%1" is unknown Protokół "%1" nie jest znany - Network session error. Błąd sesji sieciowej. - Temporary network failure. Chwilowy błąd w sieci. @@ -4983,8 +3932,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkReplyImpl - - Operation canceled Operacja anulowana @@ -4992,7 +3939,6 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkSession - Invalid configuration. Niepoprawna konfiguracja. @@ -5000,47 +3946,34 @@ Proszę o sprawdzenie podanej nazwy pliku. QNetworkSessionPrivateImpl - Roaming error Błąd roamingu - Session aborted by user or system Sesja przerwana przez użytkownika lub system - Unidentified Error Niezidentyfikowany błąd - - Unknown session error. Nieznany błąd sesji. - - The session was aborted by the user or system. Sesja została przerwana przez użytkownika lub system. - - The requested operation is not supported by the system. Zażądana operacja nie jest obsługiwana przez system. - - The specified configuration cannot be used. Podana konfiguracja nie może być użyta. - - Roaming was aborted or is not possible. Roaming przerwany albo niemożliwy. @@ -5048,28 +3981,23 @@ Proszę o sprawdzenie podanej nazwy pliku. QOCIDriver - Unable to initialize QOCIDriver Nie można dokonać inicjalizacji - Unable to logon Nie można się zalogować - Unable to begin transaction Nie można rozpocząć transakcji - Unable to commit transaction Nie można dokonać transakcji - Unable to rollback transaction Nie można wycofać transakcji @@ -5077,44 +4005,34 @@ Proszę o sprawdzenie podanej nazwy pliku. QOCIResult - - - Unable to bind column for batch execute Nie można powiązać kolumny dla wykonania zestawu poleceń - Unable to execute batch statement Nie można wykonać polecenia wsadowego - Unable to goto next Nie można przejść do kolejnego wiersza danych - Unable to alloc statement Nie można przydzielić miejsca na polecenie - Unable to prepare statement Nie można przygotować polecenia - Unable to get statement type Nie można pobrać typu polecenia - Unable to bind value Nie można powiązać wartości - Unable to execute statement Nie można wykonać polecenia @@ -5122,32 +4040,26 @@ Proszę o sprawdzenie podanej nazwy pliku. QODBCDriver - Unable to commit transaction Nie można potwierdzić transakcji - Unable to connect Nie można nawiązać połączenia - Unable to disable autocommit Nie można wyłączyć trybu automatycznego dokonywania transakcji - Unable to enable autocommit Nie można włączyć trybu automatycznego dokonywania transakcji - Unable to rollback transaction Nie można wycofać transakcji - Unable to connect - Driver doesn't support all functionality required Nie można nawiązać połączenia - sterownik nie obsługuje całej potrzebnej funkcjonalności @@ -5155,51 +4067,38 @@ Proszę o sprawdzenie podanej nazwy pliku. QODBCResult - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult::reset: Nie można ustawić 'SQL_CURSOR_STATIC' jako atrybutu polecenia. Proszę sprawdzić konfiguracje sterownika ODBC - Unable to bind variable Nie można powiązać zmiennej - - Unable to execute statement Nie można wykonać polecenia - Unable to fetch next Nie można pobrać kolejnych danych - Unable to prepare statement Nie można przygotować polecenia - - - Unable to fetch last Nie można pobrać ostatnich danych - Unable to fetch Nie można pobrać - Unable to fetch first Nie można pobrać pierwszych danych - Unable to fetch previous Nie można pobrać poprzednich danych @@ -5207,19 +4106,14 @@ Proszę o sprawdzenie podanej nazwy pliku. QObject - - PulseAudio Sound Server Serwer dźwięku PulseAudio - "%1" duplicates a previous role name and will be disabled. - - invalid query: "%1" Niepoprawne zapytanie: "%1" @@ -5227,12 +4121,10 @@ Proszę o sprawdzenie podanej nazwy pliku. QPPDOptionsModel - Name Nazwa - Value Wartość @@ -5240,32 +4132,26 @@ Proszę o sprawdzenie podanej nazwy pliku. QPSQLDriver - Could not begin transaction Nie można rozpocząć transakcji - Could not commit transaction Nie można potwierdzić transakcji - Could not rollback transaction Nie można wycofać transakcji - Unable to connect Nie można nawiązać połączenia - Unable to subscribe Nie można wykonać subskrypcji - Unable to unsubscribe Nie można zrezygnować z subskrypcji @@ -5273,12 +4159,10 @@ Proszę o sprawdzenie podanej nazwy pliku. QPSQLResult - Unable to create query Nie można utworzyć zapytania - Unable to prepare statement Nie można przygotować polecenia @@ -5286,102 +4170,82 @@ Proszę o sprawdzenie podanej nazwy pliku. QPageSetupWidget - Centimeters (cm) Centymetry (cm) - Millimeters (mm) Milimetry (mm) - Inches (in) Cale (in) - Points (pt) Punkty (pt) - Form Formularz - Paper Papier - Page size: Rozmiar strony: - Width: Szerokość: - Height: Wysokość: - Paper source: Źródło papieru: - Orientation Położenie - Portrait Portret - Landscape Pejzaż - Reverse landscape Odwrócony pejzaż - Reverse portrait Odwrócony portret - Margins Marginesy - top margin Górny margines - left margin Lewy margines - right margin Prawy margines - bottom margin Dolny margines @@ -5389,12 +4253,10 @@ Proszę o sprawdzenie podanej nazwy pliku. QPluginLoader - Unknown error Nieznany błąd - The plugin was not loaded. Wtyczka nie została załadowana. @@ -5402,433 +4264,344 @@ Proszę o sprawdzenie podanej nazwy pliku. QPrintDialog - A0 (841 x 1189 mm) A0 (841 x 1189 mm) - A1 (594 x 841 mm) A1 (594 x 841 mm) - A2 (420 x 594 mm) A2 (420 x 594 mm) - A3 (297 x 420 mm) A3 (297 x 420 mm) - A4 (210 x 297 mm, 8.26 x 11.7 inches) A4 (210 x 297 mm, 8.26 x 11.7 cali) - A5 (148 x 210 mm) A5 (148 x 210 mm) - A6 (105 x 148 mm) A6 (105 x 148 mm) - A7 (74 x 105 mm) A7 (74 x 105 mm) - A8 (52 x 74 mm) A8 (52 x 74 mm) - A9 (37 x 52 mm) A9 (37 x 52 mm) - Print current page Wydrukuj bieżącą stronę - - Aliases: %1 Aliasy: %1 - B0 (1000 x 1414 mm) B0 (1000 x 1414 mm) - B1 (707 x 1000 mm) B1 (707 x 1000 mm) - B10 (31 x 44 mm) B10 (31 x 44 mm) - B2 (500 x 707 mm) B2 (500 x 707 mm) - B3 (353 x 500 mm) B3 (353 x 500 mm) - B4 (250 x 353 mm) B4 (250 x 353 mm) - B5 (176 x 250 mm, 6.93 x 9.84 inches) B5 (176 x 250 mm, 6.93 x 9.84 cali) - B6 (125 x 176 mm) B6 (125 x 176 mm) - B7 (88 x 125 mm) B7 (88 x 125 mm) - B8 (62 x 88 mm) B8 (62 x 88 mm) - B9 (44 x 62 mm) B9 (44 x 62 mm) - C5E (163 x 229 mm) C5E (163 x 229 mm) - DLE (110 x 220 mm) DLE (110 x 220 mm) - locally connected podłączony lokalnie - OK OK - Print all Drukuj wszystko - Print range Drukuj zakres - - unknown nieznany - Executive (7.5 x 10 inches, 191 x 254 mm) Executive (7.5 x 10 cali, 191 x 254 mm) - Folio (210 x 330 mm) Folio (210 x 330 mm) - Ledger (432 x 279 mm) Ledger (432 x 279 mm) - Legal (8.5 x 14 inches, 216 x 356 mm) Legal (8.5 x 14 cali, 216 x 356 mm) - Letter (8.5 x 11 inches, 216 x 279 mm) Letter (8.5 x 11 cali, 216 x 279 mm) - Tabloid (279 x 432 mm) Tabloid (279 x 432 mm) - US Common #10 Envelope (105 x 241 mm) US Common #10 Envelope (105 x 241 mm) - - - Print Drukowanie - Print To File ... Drukuj do pliku ... - File %1 is not writable. Please choose a different file name. Plik %1 jest plikiem tylko do odczytu. Proszę wybrać inną nazwę pliku. - %1 already exists. Do you want to overwrite it? %1 już istnieje. Czy chcesz nadpisać? - %1 is a directory. Please choose a different file name. %1 jest katalogiem. Proszę wybrać inną nazwę pliku. - File exists Plik istnieje - <qt>Do you want to overwrite it?</qt> <qt>Czy chcesz nadpisać?</qt> - Print selection Drukuj zaznaczone - A0 A0 - A1 A1 - A2 A2 - A3 A3 - A4 A4 - A5 A5 - A6 A6 - A7 A7 - A8 A8 - A9 A9 - B0 B0 - B1 B1 - B2 B2 - B3 B3 - B4 B4 - B5 B5 - B6 B6 - B7 B7 - B8 B8 - B9 B9 - B10 B10 - C5E C5E - DLE DLE - Executive Executive - Folio Folio - Ledger Ledger - Legal Legal - Letter Letter - Tabloid Tabloid - US Common #10 Envelope US Common #10 Envelope - Custom Niestandardowy - - &Options >> &Opcje >> - &Print Wy&drukuj - &Options << &Opcje << - Print to File (PDF) Drukuj do pliku (PDF) - Print to File (Postscript) Drukuj do pliku (Postscript) - Local file Plik lokalny - Write %1 file Zapisz %1 plik - The 'From' value cannot be greater than the 'To' value. Wartość "od" nie może być większa od wartości "do". @@ -5836,108 +4609,86 @@ Proszę wybrać inną nazwę pliku. QPrintPreviewDialog - %1% %1% - Print Preview Podgląd wydruku - Next page Następna strona - Previous page Poprzednia strona - First page Pierwsza strona - Last page Ostatnia strona - Fit width Dopasuj szerokość - Fit page Dopasuj stronę - Zoom in Powiększ - Zoom out Pomniejsz - Portrait Portret - Landscape Pejzaż - Show single page Pokaż pojedynczą stronę - Show facing pages Pokaż sąsiednie strony - Show overview of all pages Pokaż wszystkie strony - Print Wydrukuj - Page setup Ustawienia strony - Close Zamknij - Export to PDF Wyeksportuj do PDF - Export to PostScript Wyeksportuj do PostScript - - Page Setup Ustawienia strony @@ -5945,17 +4696,14 @@ Proszę wybrać inną nazwę pliku. QPrintPropertiesWidget - Form Forma - Page Strona - Advanced Zaawansowane @@ -5963,102 +4711,82 @@ Proszę wybrać inną nazwę pliku. QPrintSettingsOutput - Form Forma - Copies Liczba kopii - Print range Zakres wydruku - Print all Drukuj wszystko - Pages from Strony od - to do - Selection Wybrane strony - Output Settings Ustawienia wyjściowe - Copies: Kopie: - Collate Parami - Reverse Odwróć - Options Opcje - Color Mode Tryb koloru - Color Kolor - Grayscale Skala szarości - Duplex Printing Drukowanie dupleksowe - None Brak - Long side Długa strona - Short side Krótka strona - Current Page Bieżąca strona @@ -6066,47 +4794,38 @@ Proszę wybrać inną nazwę pliku. QPrintWidget - Form Forma - Printer Drukarka - &Name: &Nazwa: - P&roperties &Właściwości - Location: Położenie: - Preview Podgląd - Type: Typ: - Output &file: &Plik wyjściowy: - ... ... @@ -6114,62 +4833,38 @@ Proszę wybrać inną nazwę pliku. QProcess - - Could not open input redirection for reading Nie można otworzyć wejściowego przekierowania do odczytu - - Could not open output redirection for writing Nie można otworzyć wyjściowego przekierowania do zapisu - Resource error (fork failure): %1 Błąd zasobów (błąd forkowania): %1 - - - - - - - - - Process operation timed out Przekroczony czas operacji procesu - - - - Error reading from process Błąd odczytywania z procesu - - - Error writing to process Błąd zapisywania do procesu - Process crashed Wystąpił błąd w procesie - proces zakończony - No program defined Nie zdefiniowano programu - Process failed to start: %1 Nie można rozpocząć procesu: %1 @@ -6177,7 +4872,6 @@ Proszę wybrać inną nazwę pliku. QProgressDialog - Cancel Anuluj @@ -6185,7 +4879,6 @@ Proszę wybrać inną nazwę pliku. QPushButton - Open Otwórz @@ -6193,7 +4886,6 @@ Proszę wybrać inną nazwę pliku. QRadioButton - Check Zaznacz @@ -6201,57 +4893,46 @@ Proszę wybrać inną nazwę pliku. QRegExp - bad char class syntax niepoprawna składnia klasy znakowej - bad lookahead syntax niepoprawna składnia "lookahead" - bad repetition syntax niepoprawna składnia powtórzenia - invalid interval Niepoprawny interwał - invalid category Niepoprawna kategoria - disabled feature used użyta funkcja została wyłączona - invalid octal value niepoprawna wartość ósemkowa - met internal limit napotkano wewnętrzne ograniczenie - missing left delim brakujący lewy separator - no error occurred nie pojawił się żaden błąd - unexpected end nieoczekiwany koniec @@ -6259,22 +4940,18 @@ Proszę wybrać inną nazwę pliku. QSQLite2Driver - Error opening database Błąd otwierania bazy danych - Unable to begin transaction Nie można rozpocząć transakcji - Unable to commit transaction Nie można dokonać transakcji - Unable to rollback transaction Nie można wycofać transakcji @@ -6282,12 +4959,10 @@ Proszę wybrać inną nazwę pliku. QSQLite2Result - Unable to execute statement Nie można wykonać polecenia - Unable to fetch results Nie można pobrać wyników @@ -6295,27 +4970,22 @@ Proszę wybrać inną nazwę pliku. QSQLiteDriver - Error closing database Błąd zamykania bazy danych - Error opening database Błąd otwierania bazy danych - Unable to begin transaction Nie można rozpocząć transakcji - Unable to commit transaction Nie można dokonać transakcji - Unable to rollback transaction Nie można wycofać transakcji @@ -6323,34 +4993,26 @@ Proszę wybrać inną nazwę pliku. QSQLiteResult - Parameter count mismatch Niezgodna liczba parametrów - Unable to bind parameters Nie można powiązać parametrów - Unable to execute statement Nie można wykonać polecenia - - - Unable to fetch row Nie można pobrać wiersza danych - Unable to reset statement Nie można skasować polecenia - No query Brak zapytania @@ -6358,32 +5020,26 @@ Proszę wybrać inną nazwę pliku. QScriptBreakpointsModel - ID Identyfikator - Location Położenie - Condition Warunek - Ignore-count Licznik pominięć - Single-shot - + Pojedyncze trafienie - Hit-count Licznik trafień @@ -6391,12 +5047,10 @@ Proszę wybrać inną nazwę pliku. QScriptBreakpointsWidget - New Nowy - Delete Skasuj @@ -6404,143 +5058,114 @@ Proszę wybrać inną nazwę pliku. QScriptDebugger - - Go to Line Przejdź do linii - Line: Linia: - Interrupt Przerwij - Shift+F5 Shift+F5 - Continue Kontynuuj - F5 F5 - Step Into Wskocz do wnętrza - F11 F11 - Step Over Przeskocz - F10 F10 - Step Out Wyskocz na zewnątrz - Shift+F11 Shift+F11 - Run to Cursor Uruchom do kursora - Ctrl+F10 Ctrl+F10 - Run to New Script Uruchom do nowego skryptu - Toggle Breakpoint Przełącz ustawienie pułapki - F9 F9 - Clear Debug Output Wyczyść wyjście debuggera - Clear Error Log Wyczyść log z błędami - Clear Console Wyczyść konsolę - &Find in Script... &Znajdź w skrypcie... - Ctrl+F Ctrl+F - Find &Next Znajdź &następne - F3 F3 - Find &Previous Znajdź &poprzednie - Shift+F3 Shift+F3 - Ctrl+G Ctrl+G - Debug Debuguj @@ -6548,32 +5173,26 @@ Proszę wybrać inną nazwę pliku. QScriptDebuggerCodeFinderWidget - Close Zamknij - Previous Poprzednie - Next Następne - Case Sensitive Uwzględniaj wielkość liter - Whole words Całe słowa - <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Przeszukano od początku @@ -6581,12 +5200,10 @@ Proszę wybrać inną nazwę pliku. QScriptDebuggerLocalsModel - Name Nazwa - Value Wartość @@ -6594,17 +5211,14 @@ Proszę wybrać inną nazwę pliku. QScriptDebuggerStackModel - Level Poziom - Name Nazwa - Location Położenie @@ -6612,22 +5226,18 @@ Proszę wybrać inną nazwę pliku. QScriptEdit - Toggle Breakpoint Przełącz ustawienie pułapki - Disable Breakpoint Wyłącz pułapkę - Enable Breakpoint Włącz pułapkę - Breakpoint Condition: Warunek dla pułapki: @@ -6635,52 +5245,42 @@ Proszę wybrać inną nazwę pliku. QScriptEngineDebugger - Loaded Scripts Załadowane skrypty - Breakpoints Pułapki - Stack Stos - Locals Zmienne lokalne - Console Konsola - Debug Output Wyjście debuggera - Error Log Log z błędami - Search Szukaj - View Widok - Qt Script Debugger Debugger Qt Script @@ -6688,7 +5288,6 @@ Proszę wybrać inną nazwę pliku. QScriptNewBreakpointWidget - Close Zamknij @@ -6696,84 +5295,66 @@ Proszę wybrać inną nazwę pliku. QScrollBar - Bottom W dół - Left edge Lewa krawędź - Line down Linia w dół - Line up Linia w górę - - Page down Strona w dół - Page left Strona w lewo - Page right Strona w prawo - - Page up Strona do góry - Position Pozycja - Right edge Prawa krawędź - Scroll down Przewiń w dół - Scroll here Przewiń tutaj - Scroll left Przewiń w lewo - Scroll right Przewiń w prawo - Scroll up Przewiń do góry - Top Do góry @@ -6781,111 +5362,78 @@ Proszę wybrać inną nazwę pliku. QSharedMemory - %1: create size is less then 0 %1: rozmiar przy tworzeniu mniejszy od 0 - - %1: unable to lock %1: nie można zablokować - %1: unable to unlock %1: nie można odblokować - - - %1: permission denied %1: brak uprawnień - - - %1: already exists %1: już istnieje - %1: doesn't exists %1: nie istnieje - - - %1: out of resources %1: zasoby wyczerpane - - - %1: unknown error %2 %1: nieznany błąd %2 - %1: key is empty %1: klucz jest pusty - %1: ftok failed %1: wystąpił błąd w funkcji ftok() - - - %1: unable to make key %1: nie można utworzyć klucza - - %1: doesn't exist %1: nie istnieje - %1: UNIX key file doesn't exist %1: unixowy plik z kluczem nie istnieje - %1: system-imposed size restrictions %1: ograniczenia rozmiarów narzucone przez system - %1: not attached %1: niedołączony - - %1: invalid size %1: niepoprawny rozmiar - - %1: key error %1: błąd klucza - %1: size query failed %1: zapytanie o rozmiar zakończone błędem - %1: unable to set key on lock %1: nie można ustawić klucza na zablokowanym segmencie pamięci współdzielonej @@ -6893,1107 +5441,884 @@ Proszę wybrać inną nazwę pliku. QShortcut - + + - - Alt Alt - Back Back - Backspace Backspace - Backtab Backtab - Bass Boost Wzmocnienie basów - Bass Down Basy w dół - Bass Up Basy w górę - Call Button to start a call (note: a separate button is used to end the call) Wywołaj - Caps Lock Caps Lock - CapsLock CapsLock - Media Pause Media player pause button - Toggle Media Play/Pause Media player button to toggle between playing and paused - Monitor Brightness Up Zwiększ jasność monitora - Monitor Brightness Down Zmniejsz jasność monitora - Keyboard Light On/Off Włącz/wyłącz podświetlenie klawiatury - Keyboard Brightness Up Zwiększ jasność klawiatury - Keyboard Brightness Down Zmniejsz jasność klawiatury - Power Off Wyłącz zasilanie - Wake Up Przebudzenie - Eject Wysuń - Screensaver Wygaszacz ekranu - WWW WWW - Sleep Uśpienie - LightBulb Żarówka - Shop Sklep - History Historia - Add Favorite Dodaj do ulubionych - Hot Links Popularne łącza - Adjust Brightness Ustaw jasność - Finance Finanse - Community Społeczność - Audio Rewind Przewijanie do tyłu - Back Forward - Application Left - Application Right - Book Książka - CD CD - Calculator Kalkulator - Clear Wyczyść - Clear Grab - Close Zamknij - Copy Skopiuj - Cut Wytnij - Display Wyświetlacz - DOS DOS - Documents Dokumenty - Spreadsheet Arkusz kalkulacyjny - Browser Przeglądarka - Game Gra - Go Przejdź - iTouch iTouch - Logoff Wyloguj - Market Rynek - Meeting Spotkanie - Keyboard Menu Menu klawiatury - Menu PB Menu PB - My Sites Moje strony - News Wiadomości - Home Office Biuro domowe - Option Opcje - Paste Wklej - Phone Telefon - Reply Odpowiedz - Reload Przeładuj - Rotate Windows Obróć okna - Rotation PB Obrót PB - Rotation KB Obrót KB - Save Zachowaj - Send Wyślij - Spellchecker Sprawdzanie pisowni - Split Screen Podziel ekran - Support Pomoc techniczna - Task Panel Panel zadań - Terminal Terminal - Tools Narzędzia - Travel Podróże - Video Wideo - Word Processor Procesor tekstu - XFer XFer - Zoom In Powiększ - Zoom Out Pomniejsz - Away - Messenger Komunikator - WebCam WebCam - Mail Forward Przekazanie poczty - Pictures Zdjęcia - Music Muzyka - Battery Bateria - Bluetooth Bluetooth - Wireless Bezprzewodowy - Ultra Wide Band Ultraszerokie pasmo - Audio Forward Przewijanie do przodu - Audio Repeat Powtarzanie - Audio Random Play Odtwarzanie losowe - Subtitle Napisy - Audio Cycle Track - Time Czas - View Widok - Top Menu Menu główne - Suspend Wstrzymanie - Hibernate Hibernacja - Context1 Kontekst1 - Context2 Kontekst2 - Context3 Kontekst3 - Context4 Kontekst4 - Toggle Call/Hangup Button that will hang up if we're in call, or make a call if we're not. - Voice Dial Button to trigger voice dialling - Last Number Redial Button to redial the last number called - Camera Shutter Button to trigger the camera shutter (take a picture) - Camera Focus Button to focus the camera - Kanji Kanji - Muhenkan Muhenkan - Henkan Henkan - Romaji Romaji - Hiragana Hiragana - Katakana Katakana - Hiragana Katakana Hiragana Katakana - Zenkaku Zenkaku - Hankaku Hankaku - Zenkaku Hankaku Zenkaku Hankaku - Touroku Touroku - Massyo Massyo - Kana Lock Kana Lock - Kana Shift Kana Shift - Eisu Shift Eisu Shift - Eisu toggle Eisu toggle - Code input Wprowadzanie kodu - Multiple Candidate Kandydat wielokrotny - Previous Candidate Poprzedni kandydat - Hangul Hangul - Hangul Start Hangul Start - Hangul End Hangul End - Hangul Hanja Hangul Hanja - Hangul Jamo Hangul Jamo - Hangul Romaja Hangul Romaja - Hangul Jeonja Hangul Jeonja - Hangul Banja Hangul Banja - Hangul PreHanja Hangul PreHanja - Hangul PostHanja Hangul PostHanja - Hangul Special Hangul Special - - Ctrl Ctrl - Del Del - Delete Delete - Down Dół - End End - Enter Enter - Esc Esc - Escape Escape - F%1 F%1 - Favorites Ulubione - Flip Odwróć - Forward Do przodu - Hangup Button to end a call (note: a separate button is used to start the call) Zawieś - Help Pomoc - Home Home - Home Page Strona startowa - Ins Ins - Insert Insert - Launch (0) Uruchom (0) - Launch (1) Uruchom (1) - Launch (2) Uruchom (2) - Launch (3) Uruchom (3) - Launch (4) Uruchom (4) - Launch (5) Uruchom (5) - Launch (6) Uruchom (6) - Launch (7) Uruchom (7) - Launch (8) Uruchom (8) - Launch (9) Uruchom (9) - Launch (A) Uruchom (A) - Launch (B) Uruchom (B) - Launch (C) Uruchom (C) - Launch (D) Uruchom (D) - Launch (E) Uruchom (E) - Launch (F) Uruchom (F) - Launch Mail Uruchom program pocztowy - Launch Media Uruchom przeglądarkę mediów - Left Lewo - Media Next Następna ścieżka - Media Play Odtwarzaj - Media Previous Poprzednia ścieżka - Media Record Nagrywaj - Media Stop Zatrzymaj - Menu Menu - - Meta Meta - No Nie - Num Lock Num Lock - Number Lock Number Lock - NumLock NumLock - Open URL Otwórz adres - Page Down Strona do góry - Page Up Strona w dół - Pause Pauza - PgDown PgDown - PgUp PgUp - Print Wydrukuj - Print Screen Wydrukuj zawartość ekranu - Refresh Odśwież - Return Powrót - Right Prawo - Scroll Lock Scroll Lock - ScrollLock ScrollLock - Search Szukaj - - Select Wybierz - - Shift Shift - Space 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. Spacja - Standby Tryb oczekiwania - Stop Zatrzymaj - SysReq SysReq - System Request Żądanie systemu - Tab Tabulator - Treble Down Soprany w dół - Treble Up Soprany w górę - Up Góra - Volume Down Przycisz - Volume Mute Wycisz - Volume Up Zrób głośniej - Yes Tak @@ -8001,27 +6326,22 @@ Proszę wybrać inną nazwę pliku. QSlider - Page down Strona w dół - Page left Strona w lewo - Page right Strona w prawo - Page up Strona do góry - Position Położenie @@ -8029,72 +6349,58 @@ Proszę wybrać inną nazwę pliku. QSocks5SocketEngine - Connection to proxy refused Odmowa połączenia z pośrednikiem - Connection to proxy closed prematurely Przedwczesne zakończenie połączenia z pośrednikiem - Proxy host not found Nie odnaleziono hosta pośredniczącego - Connection to proxy timed out Przekroczony czas połączenia do pośrednika - Proxy authentication failed Autoryzacja pośrednika zakończona błędem - Proxy authentication failed: %1 Autoryzacja pośrednika zakończona błędem: %1 - SOCKS version 5 protocol error Błąd protokołu SOCKS wersji 5 - General SOCKSv5 server failure Generalny błąd serwera SOCKS wersji 5 - Connection not allowed by SOCKSv5 server Połączenie niedozwolone przez serwer SOCKS wersji 5 - TTL expired TTL stracił ważność - SOCKSv5 command not supported Nieobsługiwana komenda SOCKS wersji 5 - Address type not supported Nieobsługiwany typ adresu - Unknown SOCKSv5 proxy error code 0x%1 Nieznany kod błędu (0x%1) pośrednika SOCKS wersji 5 - Network operation timed out Przekroczony czas operacji sieciowej @@ -8102,32 +6408,26 @@ Proszę wybrać inną nazwę pliku. QSoftKeyManager - Ok OK - Select Wybierz - Done Zrobione - Options Opcje - Cancel Anuluj - Exit Wyjście @@ -8135,12 +6435,10 @@ Proszę wybrać inną nazwę pliku. QSpinBox - Less Mniej - More Więcej @@ -8148,56 +6446,42 @@ Proszę wybrać inną nazwę pliku. QSql - Cancel Anuluj - Cancel your edits? Anulować zmiany? - Confirm Potwierdź - Delete Skasuj - Delete this record? Skasować ten rekord? - Insert Wstaw - - - No Nie - Save edits? Zachować zmiany? - Update Uaktualnij - - - Yes Tak @@ -8205,178 +6489,142 @@ Proszę wybrać inną nazwę pliku. QSslSocket - Unable to write data: %1 - Unable to decrypt data: %1 Nie można odszyfrować danych: %1 - - Error while reading: %1 Błąd podczas czytania: %1 - Error during SSL handshake: %1 Błąd podczas nawiązania sesji SSL: %1 - Error creating SSL context (%1) Błąd tworzenia kontekstu (%1) - Invalid or empty cipher list (%1) Niepoprawna lub pusta lista szyfrów (%1) - Private key does not certify public key, %1 Prywatny klucz nie uwiarygodnia publicznego, %1 - Error creating SSL session, %1 Błąd tworzenia sesji SSL, %1 - Error creating SSL session: %1 Błąd tworzenia sesji SSL: %1 - Cannot provide a certificate with no key, %1 Nie można dostarczyć certyfikatu bez klucza, %1 - Error loading local certificate, %1 Błąd ładowania lokalnego certyfikatu, %1 - Error loading private key, %1 Błąd ładowania prywatnego klucza, %1 - No error Brak błędu - The issuer certificate could not be found Nie można odnaleźć wydawcy certyfikatu - The certificate signature could not be decrypted Nie można odszyfrować podpisu certyfikatu - The public key in the certificate could not be read Nie można odczytać publicznego klucza w certyfikacie - The signature of the certificate is invalid Niepoprawny podpis certyfikatu - The certificate is not yet valid Certyfikat nie jest jeszcze ważny - The certificate has expired Certyfikat utracił ważność - The certificate's notBefore field contains an invalid time Pole "notBefore" certyfikatu zawiera niepoprawną datę - The certificate's notAfter field contains an invalid time Pole "notAfter" certyfikatu zawiera niepoprawną datę - The certificate is self-signed, and untrusted Niewiarygodny certyfikat z podpisem własnym - The root certificate of the certificate chain is self-signed, and untrusted Główny certyfikat łańcucha zaufania ma własny podpis i jest niewiarygodny - The issuer certificate of a locally looked up certificate could not be found Nie można odnaleźć certyfikatu wydawcy wyszukanego lokalnie certyfikatu - No certificates could be verified Nie można zweryfikować żadnych certyfikatów - One of the CA certificates is invalid Jeden z certyfikatów urzędu certyfikacji jest nieprawidłowy - The basicConstraints path length parameter has been exceeded Długość ścieżki określona w podstawowych warunkach ograniczających została przekroczona - The supplied certificate is unsuitable for this purpose Dostarczony certyfikat jest nieodpowiedni dla tego przeznaczenia - The root CA certificate is not trusted for this purpose Główny certyfikat urzędu certyfikacji nie jest wiarygodny dla tego przeznaczenia - The root CA certificate is marked to reject the specified purpose Główny certyfikat urzędu certyfikacji jest wyznaczony do odrzucania podanego przeznaczenia - The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate Certyfikat wydawcy obecnego kandydata został odrzucony, ponieważ nazwa podmiotu nie odpowiadała nazwie wydawcy obecnego certyfikatu - 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 Certyfikat wydawcy obecnego kandydata został odrzucony, ponieważ nazwa wydawcy i przedstawiony numer seryjny nie odpowiadały identyfikatorowi klucza urzędu certyfikacji obecnego certyfikatu - The peer did not present any certificate Element równorzędny nie przedstawił żadnego certyfikatu - The host name did not match any of the valid hosts for this certificate Nazwa hosta nie odpowiadała żadnemu z poprawnych hostów dla tego certyfikatu - Unknown error Nieznany błąd @@ -8384,22 +6632,18 @@ Proszę wybrać inną nazwę pliku. QStateMachine - Missing initial state in compound state '%1' Brak stanu początkowego w stanie złożonym "%1" - Missing default state in history state '%1' Brak domyślnego stanu w historycznym stanie "%1" - No common ancestor for targets and source of transition from state '%1' Brak wspólnego przodka dla stanów docelowych i stanu źródłowego w przejściu ze stanu "%1" - Unknown error Nieznany błąd @@ -8407,30 +6651,22 @@ Proszę wybrać inną nazwę pliku. QSystemSemaphore - - %1: out of resources %1: zasoby wyczerpane - - %1: permission denied %1: brak uprawnień - %1: already exists %1: już istnieje - %1: does not exist %1: nie istnieje - - %1: unknown error %2 %1: nieznany błąd %2 @@ -8438,12 +6674,10 @@ Proszę wybrać inną nazwę pliku. QTDSDriver - Unable to open connection Nie można otworzyć połączenia - Unable to use database Nie można użyć bazy danych @@ -8451,12 +6685,10 @@ Proszę wybrać inną nazwę pliku. QTabBar - Scroll Left Przewiń w lewo - Scroll Right Przewiń w prawo @@ -8464,7 +6696,6 @@ Proszę wybrać inną nazwę pliku. QTcpServer - Operation on socket is not supported Operacja na gnieździe nieobsługiwana @@ -8472,42 +6703,34 @@ Proszę wybrać inną nazwę pliku. QTextControl - &Copy S&kopiuj - Copy &Link Location Skopiuj &adres odsyłacza - Cu&t W&ytnij - Delete Skasuj - &Paste &Wklej - &Redo &Przywróć - Select All Zaznacz wszystko - &Undo &Cofnij @@ -8515,14 +6738,10 @@ Proszę wybrać inną nazwę pliku. QToolButton - - Open Otwórz - - Press Wciśnij @@ -8530,7 +6749,6 @@ Proszę wybrać inną nazwę pliku. QUdpSocket - This platform does not support IPv6 Ta platforma nie obsługuje IPv6 @@ -8538,12 +6756,10 @@ Proszę wybrać inną nazwę pliku. QUndoGroup - Redo Przywróć - Undo Cofnij @@ -8551,7 +6767,6 @@ Proszę wybrać inną nazwę pliku. QUndoModel - <empty> <pusty> @@ -8559,12 +6774,10 @@ Proszę wybrać inną nazwę pliku. QUndoStack - Redo Przywróć - Undo Cofnij @@ -8572,57 +6785,46 @@ Proszę wybrać inną nazwę pliku. QUnicodeControlCharacterMenu - Insert Unicode control character Wstaw znak kontroli Unicode - LRE Start of left-to-right embedding LRE Początek osadzania od lewej do prawej - LRM Left-to-right mark LRM znacznik od prawej do lewej - LRO Start of left-to-right override LRO Początek nadpisania od lewej do prawej - PDF Pop directional formatting PDF Formatowanie kierunkowe pop - RLE Start of right-to-left embedding RLE Początek osadzania od prawej do lewej - RLM Right-to-left mark RLM Znacznik od prawej do lewej - RLO Start of right-to-left override RLO Początek nadpisania od prawej do lewej - ZWJ Zero width joiner ZWJ Łącznik zerowej długości - ZWNJ Zero width non-joiner ZWNJ Rozdzielnik zerowej długości - ZWSP Zero width space ZWSP Przerwa zerowej długości @@ -8630,32 +6832,26 @@ Proszę wybrać inną nazwę pliku. QWebFrame - Request cancelled Prośba anulowana - Request blocked Prośba zablokowana - Cannot show URL Nie można pokazać URL - Frame load interrupted by policy change Ładowanie ramki przerwane przez zmianę strategii - Cannot show mimetype Nie można pokazać typu MIME - File does not exist Plik nie istnieje @@ -8663,621 +6859,515 @@ Proszę wybrać inną nazwę pliku. QWebPage - Submit default label for Submit buttons in forms on web pages Wyślij - Submit Submit (input element) alt text for <input> elements with no alt, title, or value Wyślij - Reset default label for Reset buttons in forms on web pages Wyczyść - Choose File title for file button used in HTML forms Wybierz plik - No file selected text to display in file button used in HTML forms when no file is selected Nie zaznaczono pliku - Open in New Window Open in New Window context menu item Otwórz w nowym oknie - Save Link... Download Linked File context menu item Zachowaj odsyłacz... - Copy Link Copy Link context menu item Skopiuj odsyłacz - Open Image Open Image in New Window context menu item Otwórz obrazek - Save Image Download Image context menu item Zachowaj obrazek - Copy Image Copy Link context menu item Skopiuj obrazek - Open Frame Open Frame in New Window context menu item Otwórz ramkę - Copy Copy context menu item Skopiuj - Go Back Back context menu item Wróć - Go Forward Forward context menu item Przejdź dalej - Stop Stop context menu item Zatrzymaj - Reload Reload context menu item Przeładuj - Cut Cut context menu item Wytnij - Paste Paste context menu item Wklej - No Guesses Found No Guesses Found context menu item Nie odnaleziono podpowiedzi - Ignore Ignore Spelling context menu item Zignoruj - Add To Dictionary Learn Spelling context menu item Dodaj do słownika - Search The Web Search The Web context menu item Wyszukaj w sieci - Look Up In Dictionary Look Up in Dictionary context menu item Poszukaj w słowniku - Open Link Open Link context menu item Otwórz odsyłacz - Ignore Ignore Grammar context menu item Zignoruj - Spelling Spelling and Grammar context sub-menu item Pisownia - Show Spelling and Grammar menu item title Pokaż pisownię i gramatykę - Hide Spelling and Grammar menu item title Schowaj pisownię i gramatykę - Check Spelling Check spelling context menu item Sprawdź pisownię - Check Spelling While Typing Check spelling while typing context menu item Sprawdzaj pisownię podczas pisania - Check Grammar With Spelling Check grammar with spelling context menu item Sprawdzaj gramatykę wraz z pisownią - Fonts Font context sub-menu item Czcionki - Bold Bold context menu item Pogrubiony - Italic Italic context menu item Kursywa - Underline Underline context menu item Podkreślenie - Outline Outline context menu item Kontur - Direction Writing direction context sub-menu item Kierunek - Text Direction Text direction context sub-menu item Kierunek tekstu - Default Default writing direction context menu item Domyślny - Missing Plug-in Label text to be used when a plug-in is missing Brakująca wtyczka - Loading... Media controller status message when the media is loading Ładowanie... - Live Broadcast Media controller status message when watching a live broadcast Transmisja na żywo - Audio Element Media controller element Element dźwiękowy - Video Element Media controller element Element wideo - Mute Button Media controller element Przycisk wyłączania głosu - Unmute Button Media controller element Przycisk włączania głosu - Play Button Media controller element Przycisk odtwarzania - Pause Button Media controller element Przycisk pauzy - Slider Media controller element Suwak - Slider Thumb Media controller element Uchwyt suwaka - Rewind Button Media controller element Przycisk przewijania - Return to Real-time Button Media controller element Przycisk powrotu do czasu rzeczywistego - Elapsed Time Media controller element Czas który upłynął - Remaining Time Media controller element Czas który pozostał - Status Display Media controller element Wyświetlacz stanu - Fullscreen Button Media controller element Przycisk trybu pełnoekranowego - Seek Forward Button Media controller element Przycisk przeszukiwania do przodu - Seek Back Button Media controller element Przycisk przeszukiwania do tyłu - Audio element playback controls and status display Media controller element Kontrolki odtwarzania dźwięku i wyświetlacz stanu - Video element playback controls and status display Media controller element Kontrolki odtwarzania wideo i wyświetlacz stanu - Mute audio tracks Media controller element Wyłącz ścieżkę dźwiękową - Unmute audio tracks Media controller element Włącz ścieżkę dźwiękową - Begin playback Media controller element Rozpocznij odtwarzanie - Pause playback Media controller element Zatrzymaj odtwarzanie - Movie time scrubber Media controller element Suwak czasu - Movie time scrubber thumb Media controller element Uchwyt suwaka czasu - Rewind movie Media controller element Przewiń film - Return streaming movie to real-time Media controller element Przywróć przesyłanie filmu do czasu rzeczywistego - Current movie time Media controller element Czas bieżącego filmu - Remaining movie time Media controller element Czas do końca filmu - Current movie status Media controller element Stan bieżącego filmu - Play movie in full-screen mode Media controller element Odtwarzaj film w trybie pełnoekranowym - Seek quickly back Media controller element Przeszukaj szybko do tyłu - Seek quickly forward Media controller element Przeszukaj szybko do przodu - Indefinite time Media time description Nieokreślony czas - %1 days %2 hours %3 minutes %4 seconds Media time description %1 dni %2 godzin %3 minut %4 sekund - %1 hours %2 minutes %3 seconds Media time description %1 godzin %2 minut %3 sekund - %1 minutes %2 seconds Media time description %1 minut %2 sekund - %1 seconds Media time description %1 sekund - Inspect Inspect Element context menu item Zwiedzaj - No recent searches Label for only item in menu that appears when clicking on the search field image, when no searches have been performed Brak ostatnich wyszukiwań - Recent searches label for first item in the menu that appears when clicking on the search field image, used as embedded menu title Ostatnie wyszukiwania - Clear recent searches menu item in Recent Searches menu that empties menu's contents Wyczyść ostatnie wyszukiwania - Unknown Unknown filesize FTP directory listing item Nieznany - Web Inspector - %2 Wizytator sieciowy - %2 - Redirection limit reached Osiągnięto limit przekierowań - Bad HTTP request Niepoprawna komenda HTTP - This is a searchable index. Enter search keywords: text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' To jest indeks wyszukiwawczy. Podaj słowa do wyszukania: - Left to Right Left to Right context menu item Z lewej na prawą - Right to Left Right to Left context menu item Z prawej na lewą - %1 (%2x%3 pixels) Title string for images %1 (%2x%3 piksli) - Scroll here Przewiń tutaj - Left edge Lewa krawędź - Top Do góry - Right edge Prawa krawędź - Bottom W dół - Page left Strona w lewo - Page up Strona do góry - Page right Strona w prawo - Page down Strona w dół - Scroll left Przewiń w lewo - Scroll up Przewiń do góry - Scroll right Przewiń w prawo - Scroll down Przewiń w dół - %n file(s) number of chosen file @@ -9287,237 +7377,190 @@ Proszę wybrać inną nazwę pliku. - JavaScript Alert - %1 Ostrzeżenie JavaScript - %1 - JavaScript Confirm - %1 Potwierdzenie JavaScript - %1 - JavaScript Prompt - %1 Zachęta JavaScript - %1 - JavaScript Problem - %1 Problem JavaScript - %1 - The script on this page appears to have a problem. Do you want to stop the script? Skrypt na tej stronie nie działa poprawnie. Czy chcesz przerwać ten skrypt? - Move the cursor to the next character Przesuń kursor do następnego znaku - Move the cursor to the previous character Przesuń kursor do poprzedniego znaku - Move the cursor to the next word Przesuń kursor do następnego słowa - Move the cursor to the previous word Przesuń kursor do poprzedniego słowa - Move the cursor to the next line Przesuń kursor do następnej linii - Move the cursor to the previous line Przesuń kursor do poprzedniej linii - Move the cursor to the start of the line Przesuń kursor do początku linii - Move the cursor to the end of the line Przesuń kursor do końca linii - Move the cursor to the start of the block Przesuń kursor do początku bloku - Move the cursor to the end of the block Przesuń kursor do końca bloku - Move the cursor to the start of the document Przesuń kursor do początku dokumentu - Move the cursor to the end of the document Przesuń kursor do końca dokumentu - Select all Zaznacz wszystko - Select to the next character Zaznacz do następnego znaku - Select to the previous character Zaznacz do poprzedniego znaku - Select to the next word Zaznacz do następnego słowa - Select to the previous word Zaznacz do poprzedniego słowa - Select to the next line Zaznacz do następnej linii - Select to the previous line Zaznacz do poprzedniej linii - Select to the start of the line Zaznacz do początku linii - Select to the end of the line Zaznacz do końca linii - Select to the start of the block Zaznacz do początku bloku - Select to the end of the block Zaznacz do końca bloku - Select to the start of the document Zaznacz do początku dokumentu - Select to the end of the document Zaznacz do końca dokumentu - Delete to the start of the word Skasuj do początku słowa - Delete to the end of the word Skasuj do końca słowa - Insert a new paragraph Wstaw nowy paragraf - Insert a new line Wstaw nową linię - Paste and Match Style Wklej i dopasuj styl - Remove formatting Usuń formatowanie - Strikethrough Przekreślenie - Subscript Indeks dolny - Superscript Indeks górny - Insert Bulleted List Wstaw listę wypunktowaną - Insert Numbered List Wstaw listę ponumerowaną - Indent Zwiększ wcięcie - Outdent Zmniejsz wcięcie - Center Wyśrodkuj - Justify Wyjustuj - Align Left Wyrównaj do lewej - Align Right Wyrównaj do prawej @@ -9525,7 +7568,6 @@ Proszę wybrać inną nazwę pliku. QWhatsThisAction - What's This? Co to jest? @@ -9533,7 +7575,6 @@ Proszę wybrać inną nazwę pliku. QWidget - * * @@ -9541,57 +7582,46 @@ Proszę wybrać inną nazwę pliku. QWizard - Go Back Wróć - Continue Kontynuuj - Commit Dokonaj - Done Zrobione - Help Pomoc - < &Back < &Wstecz - &Finish &Zakończ - Cancel Anuluj - &Help &Pomoc - &Next &Dalej - &Next > &Dalej > @@ -9599,69 +7629,54 @@ Proszę wybrać inną nazwę pliku. QWorkspace - - %1 - [%2] %1 - [%2] - Close Zamknij - &Close &Zamknij - Ma&ximize Zma&ksymalizuj - Minimize Zminimalizuj - Mi&nimize Zmi&nimalizuj - &Move &Przenieś - &Restore &Przywróć - Restore Down Przywróć pod spód - - Sh&ade &Zwiń - &Size &Rozmiar - Stay on &Top Pozostaw na &wierzchu - &Unshade R&ozwiń @@ -9669,117 +7684,94 @@ Proszę wybrać inną nazwę pliku. QXml - encoding declaration or standalone declaration expected while reading the XML declaration oczekiwano deklaracji "encoding" lub "standalone" podczas odczytywania deklaracji XML - error in the text declaration of an external entity błąd w deklaracji "text" zewnętrznej jednostki - error occurred while parsing comment wystąpił błąd podczas parsowania komentarza - error occurred while parsing content wystąpił błąd podczas parsowania zawartości - error occurred while parsing document type definition wystąpił błąd podczas parsowania typu definicji dokumentu - error occurred while parsing element wystąpił błąd podczas parsowania elementu - error occurred while parsing reference wystąpił błąd podczas parsowania odwołania - error triggered by consumer błąd wywołany przez konsumenta - external parsed general entity reference not allowed in attribute value odwołanie do jednostki ogólnej zewnętrznie przetworzonej nie dozwolone dla wartości atrybutu - external parsed general entity reference not allowed in DTD odwołanie do jednostki ogólnej zewnętrznie przetworzonej nie dozwolone w DTD - internal general entity reference not allowed in DTD odwołanie do jednostki ogólnej wewnętrznej nie dozwolone w DTD - invalid name for processing instruction niepoprawna nazwa dla instrukcji przetwarzającej - letter is expected oczekiwana jest litera - more than one document type definition więcej niż jedna definicja typu dokumentu - no error occurred nie pojawił się żaden błąd - recursive entities jednostki rekurencyjne - standalone declaration expected while reading the XML declaration deklaracja "standalone" oczekiwana podczas czytania deklaracji XML - tag mismatch niezgodny tag - unexpected character nieoczekiwany znak - unexpected end of file nieoczekiwany koniec pliku - unparsed entity reference in wrong context odwołanie do jednostki nieprzetworzonej w złym kontekście - version expected while reading the XML declaration oczekiwano wersji podczas czytania deklaracji XML - wrong value for standalone declaration błędna wartość dla deklaracji "standalone" @@ -9787,27 +7779,22 @@ Proszę wybrać inną nazwę pliku. QXmlPatternistCLI - Warning in %1, at line %2, column %3: %4 Ostrzeżenie w %1, wiersz %2, kolumna %3: %4 - Warning in %1: %2 Ostrzeżenie w %1: %2 - Unknown location Nieznane położenie - Error %1 in %2, at line %3, column %4: %5 Błąd %1 w %2, wiersz %3, kolumna %4: %5 - Error %1 in %2: %3 Błąd %1 w %2: %3 @@ -9815,184 +7802,142 @@ Proszę wybrać inną nazwę pliku. QXmlStream - - Extra content at end of document. Dodatkowa treść na końcu dokumentu. - Invalid entity value. Niepoprawna wartość jednostki. - Invalid XML character. Niepoprawny znak XML. - Sequence ']]>' not allowed in content. Ciąg ']]>' niedozwolony w treści. - Namespace prefix '%1' not declared Przedrostek przestrzeni nazw '%1' nie został zadeklarowany - Attribute redefined. Atrybut zdefiniowany wielokrotnie. - Unexpected character '%1' in public id literal. Nieoczekiwany znak '%1' w publicznej stałej znakowej. - Invalid XML version string. Niepoprawna wersja XML. - Unsupported XML version. Nieobsługiwana wersja XML. - %1 is an invalid encoding name. %1 jest niepoprawną nazwą kodowania. - Encoding %1 is unsupported Kodowanie %1 jest nieobsługiwane - Standalone accepts only yes or no. Tylko wartości "tak" lub "nie" są akceptowane przez "standalone". - Invalid attribute in XML declaration. Niepoprawny atrybut w deklaracji XML. - Premature end of document. Przedwczesne zakończenie dokumentu. - Invalid document. Niepoprawny dokument. - Expected Oczekiwano - , but got ' , ale otrzymano ' - Unexpected ' Nieoczekiwany ' - Expected character data. Oczekiwana dana znakowa. - Recursive entity detected. Wykryto jednostkę rekurencyjną. - Start tag expected. Oczekiwano rozpoczęcia tagu. - XML declaration not at start of document. Deklaracja XML nie jest na początku dokumentu. - NDATA in parameter entity declaration. NDATA w deklaracji parametru obiektu. - %1 is an invalid processing instruction name. %1 jest niepoprawną nazwą instrukcji przetwarzającej. - Invalid processing instruction name. Niepoprawna nazwa instrukcji przetwarzającej. - - - - Illegal namespace declaration. Niepoprawna deklaracja przestrzeni nazw. - Invalid XML name. Niepoprawna nazwa XML. - Opening and ending tag mismatch. Niezgodne tagi początku i końca. - Reference to unparsed entity '%1'. Odwołanie do nieprzetworzonej jednostki '%1'. - - - Entity '%1' not declared. Jednostka '%1' nie zadeklarowana. - Reference to external entity '%1' in attribute value. Odwołanie do zewnętrznej jednostki '%1' jako wartość atrybutu. - Invalid character reference. Niepoprawny znak odwołania. - - Encountered incorrectly encoded content. Natrafiono na niepoprawnie zakodowaną treść. - The standalone pseudo attribute must appear after the encoding. Pseudo atrybut "standalone" musi pojawić się po "encoding". - %1 is an invalid PUBLIC identifier. %1 jest niepoprawnym publicznym identyfikatorem. @@ -10000,707 +7945,562 @@ Proszę wybrać inną nazwę pliku. QtXmlPatterns - Network timeout. Przekroczony czas połączenia. - Element %1 can't be serialized because it appears outside the document element. Element %1 nie może być zserializowany ponieważ pojawił się poza elementem "document". - Attribute %1 can't be serialized because it appears at the top level. Atrybut %1 nie może być zserializowany ponieważ pojawił się na najwyższym poziomie. - Year %1 is invalid because it begins with %2. Rok %1 jest niepoprawny ponieważ rozpoczyna się: %2. - Day %1 is outside the range %2..%3. Dzień %1 jest poza zakresem %2..%3. - Month %1 is outside the range %2..%3. Miesiąc %1 jest poza zakresem %2..%3. - Overflow: Can't represent date %1. Przepełnienie: Nie można wyrazić daty %1. - Day %1 is invalid for month %2. Dzień %1 jest niepoprawny dla miesiąca %2. - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; Czas 24:%1:%2:%3 jest niepoprawny. Godzina jest 24, ale minuty, sekundy i milisekundy nie są równocześnie zerami; - Time %1:%2:%3.%4 is invalid. Czas %1:%2:%3.%4 jest niepoprawny. - Overflow: Date can't be represented. Przepełnienie: Data nie może być wyrażona. - - At least one component must be present. Przynajmniej jeden komponent musi być obecny. - At least one time component must appear after the %1-delimiter. Przynajmniej jeden komponent musi wystąpić po nawiasie %1. - %1 is not a valid value of type %2. %1 nie jest poprawną wartością dla typu %2. - When casting to %1 from %2, the source value cannot be %3. W rzutowaniu %1 na %2 wartość źródłowa nie może być %3. - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. Dzielenie wartości typu %1 przez %2 (typ nienumeryczny) jest niedozwolone. - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. Dzielenie wartości typu %1 przez %2 lub %3 (plus lub minus zero) jest niedozwolone. - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. Mnożenie wartości typu %1 przez %2 lub %3 (plus lub minus nieskończoność) jest niedozwolone. - A value of type %1 cannot have an Effective Boolean Value. Wartość typu %1 nie może posiadać efektywnej wartości boolowskiej (EBV). - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. Efektywna wartość boolowska (EBV) nie może być obliczona dla sekwencji zawierającej dwie lub więcej wartości atomowe. - Value %1 of type %2 exceeds maximum (%3). Wartość %1 typu %2 przekracza maksimum (%3). - Value %1 of type %2 is below minimum (%3). Wartość %1 typu %2 jest poniżej minimum (%3). - A value of type %1 must contain an even number of digits. The value %2 does not. Wartość typu %1 musi zawierać parzystą liczbę cyfr. Wartość %2 nie zawiera. - %1 is not valid as a value of type %2. Wartość %1 nie jest poprawna jako wartość typu %2. - Operator %1 cannot be used on type %2. Operator %1 nie może być użyty dla typu %2. - Operator %1 cannot be used on atomic values of type %2 and %3. Operator %1 nie może być użyty dla atomowych wartości typu %2 i %3. - The namespace URI in the name for a computed attribute cannot be %1. Przestrzeń nazw URI nie może być %1 w nazwie dla obliczonego atrybutu. - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. Nazwa dla wyliczonego atrybutu nie może zawierać przestrzeni nazw URI %1 z lokalną nazwą %2. - Type error in cast, expected %1, received %2. Błąd typów w rzutowaniu: oczekiwano %1, otrzymano %2. - 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. Podczas rzutowania na %1 lub na typ pochodny, wartość źródłowa musi być tego samego typu lub musi być stałą znakową. Typ %2 nie jest dozwolony. - A comment cannot contain %1 Komentarz nie może zawierać %1 - A comment cannot end with a %1. Komentarz nie może kończyć się: %1. - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. Węzeł "attribute" nie może być podelementem węzła "document". Dlatego atrybut %1 jest w złym miejscu. - A library module cannot be evaluated directly. It must be imported from a main module. Moduł biblioteki nie może być bezpośrednio oceniony. On musi być zaimportowany z głównego modułu. - No template by name %1 exists. Szablon o nazwie %1 nie istnieje. - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. Wartość typu %1 nie może być predykatem. Predykat musi być typu liczbowego lub Efektywną Wartość Logiczną. - A positional predicate must evaluate to a single numeric value. Wynikiem predykatu pozycyjnego musi być pojedyncza wartość liczbowa. - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. Docelowa nazwa w instrukcji przetwarzania nie może być %1 w żadnej kombinacji wielkich i małych liter. Dlatego nazwa %2 jest niepoprawna. - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. %1 nie jest poprawną nazwą docelową w instrukcji przetwarzania. Nazwa musi być wartością %2, np. %3. - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. Ostatni krok w ścieżce musi zawierać albo węzły albo wartości atomowe. Nie może zawierać obu jednocześnie. - The data of a processing instruction cannot contain the string %1 Dane instrukcji przetwarzania nie mogą zawierać ciągu %1 - No namespace binding exists for the prefix %1 Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1 - No namespace binding exists for the prefix %1 in %2 Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1 w %2 - - %1 is an invalid %2 %1 jest niepoprawnym %2 - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. Pierwszy argument w %1 nie może być typu %2. Musi on być typu liczbowego: xs:yearMonthDuration lub xs:dayTimeDuration. - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Pierwszy argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5. - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. Drugi argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5. - %1 is not a valid XML 1.0 character. %1 nie jest poprawnym znakiem XML 1.0. - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. Jeśli oba argumenty mają przesunięcia strefowe, muszą one być takie same. %1 i %2 nie są takie same. - %1 was called. Wywołano %1. - %1 must be followed by %2 or %3, not at the end of the replacement string. Po %1 musi następować %2 lub %3, lecz nie na końcu zastępczego ciągu. - In the replacement string, %1 must be followed by at least one digit when not escaped. W ciągu zastępczym, po %1 musi następować przynajmniej jedna cyfra - In the replacement string, %1 can only be used to escape itself or %2, not %3 W ciągu zastępczym, %1 może być użyte tylko do zabezpieczenia samej siebie lub %2, nigdy %3 - %1 matches newline characters %1 dopasowało znak nowej linii - %1 and %2 match the start and end of a line. %1 i %2 dopasowały początek i koniec linii. - Matches are case insensitive Dopasowania uwzględniają wielkość liter - Whitespace characters are removed, except when they appear in character classes Spacje są usuwane z wyjątkiem kiedy pojawią się w klasach znakowych - %1 is an invalid regular expression pattern: %2 %1 jest niepoprawnym wzorcem wyrażenia regularnego: %2 - %1 is an invalid flag for regular expressions. Valid flags are: %1 jest niepoprawną flagą dla wyrażeń regularnych. Poprawnymi flagami są: - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. Jeśli pierwszy argument jest pustą sekwencją lub zerowej długości ciągiem (przy braku przestrzeni nazw), przedrostek nie może wystąpić. Podano przedrostek %1. - It will not be possible to retrieve %1. Nie będzie można odzyskać %1. - The default collection is undefined Domyślna kolekcja jest niezdefiniowana - %1 cannot be retrieved %1 nie może być odzyskane - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). Znormalizowana forma %1 nie jest obsługiwana. Obsługiwanymi formami są: %2, %3, %4 i %5 oraz pusta forma (brak normalizacji). - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. Przesunięcie strefowe musi być w zakresie %1..%2 włącznie. %3 jest poza tym zakresem. - Required cardinality is %1; got cardinality %2. Wymagana liczność wynosi %1; otrzymano %2. - The item %1 did not match the required type %2. Element %1 nie został dopasowany do wymaganego typu %2. - - %1 is an unknown schema type. %1 jest nieznanym typem schematu. - A template with name %1 has already been declared. Szablon o nazwie %1 został już zadeklarowany. - Only one %1 declaration can occur in the query prolog. Tylko jedna deklaracja %1 może się pojawić w prologu zapytania. - The initialization of variable %1 depends on itself Inicjalizacja zmiennej %1 zależy od niej samej - The variable %1 is unused Zmienna %1 jest nieużywana - Version %1 is not supported. The supported XQuery version is 1.0. Wersja %1 nie jest obsługiwana. Obsługiwaną wersją XQuery jest wersja 1.0. - No function with signature %1 is available Żadna funkcja w postaci %1 nie jest dostępna - It is not possible to redeclare prefix %1. Nie jest możliwe ponowne zadeklarowanie przedrostka %1. - Prefix %1 is already declared in the prolog. Przedrostek %1 jest już zadeklarowany w prologu. - The name of an option must have a prefix. There is no default namespace for options. Nazwa opcji musi posiadać przedrostek. Nie istnieje domyślna przestrzeń nazw dla opcji. - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. Cecha "Import schematu" nie jest obsługiwana, dlatego deklaracje %1 nie mogą pojawić. - The target namespace of a %1 cannot be empty. Docelowa przestrzeń nazw dla %1 nie może być pusta. - The module import feature is not supported Cecha "Import modułu" nie jest obsługiwana - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. Przestrzeń nazw %1 jest zarezerwowana, dlatego funkcje zdefiniowane przez użytkownika nie mogą jej użyć. Spróbuj predefiniowany przedrostek %2, który istnieje w takich przypadkach. - 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 Przestrzeń nazw dla funkcji zdefiniowanej przez użytkownika w module bibliotecznym musi odpowiadać przestrzeni nazw modułu. Powinna to być %1 zamiast %2 - A function already exists with the signature %1. Funkcja w postaci %1 już istnieje. - No external functions are supported. All supported functions can be used directly, without first declaring them as external Zewnętrzne funkcje nie są obsługiwane. Wszystkie obsługiwane funkcje mogą być używane bezpośrednio, bez ich uprzedniego deklarowania jako zewnętrzne - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. Nazwa zmiennej powiązanej w wyrażeniu "for" musi być inna od zmiennej pozycjonującej. W związku z tym dwie zmienne o nazwie %1 kolidują ze sobą. - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. Cecha "Walidacja schematu" nie jest obsługiwana. Dlatego też wyrażenia %1 nie mogą być użyte. - None of the pragma expressions are supported. Therefore, a fallback expression must be present Wyrażenia "pragma" nie są obsługiwane. Dlatego musi wystąpić wyrażenie zastępcze - The %1-axis is unsupported in XQuery Oś %1 nie jest obsługiwana w XQuery - %1 is not a valid numeric literal. %1 nie jest poprawną stałą liczbową. - W3C XML Schema identity constraint selector Selektor narzucenia niepowtarzalności W3C XML Schema - W3C XML Schema identity constraint field Pole narzucenia niepowtarzalności W3C XML Schema - A construct was encountered which is disallowed in the current language(%1). Wystąpiła konstrukcja która jest niedozwolona w bieżącym języku (%1). - The keyword %1 cannot occur with any other mode name. Słowo kluczowe %1 nie może wystąpić z inną nazwą trybu. - No variable with name %1 exists Zmienna o nazwie %1 nie istnieje - The value of attribute %1 must be of type %2, which %3 isn't. Wartość atrybutu %1 musi być typu %2, którym nie jest %3. - The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. Przedrostek %1 nie może być powiązany. Jest on domyślnie powiązany z przestrzenią nazw %2. - A variable with name %1 has already been declared. Zmienna o nazwie %1 została już zadeklarowana. - No value is available for the external variable with name %1. Brak wartości dla zewnętrznej zmiennej o nazwie %1. - A stylesheet function must have a prefixed name. Funkcja arkusza stylu musi zawierać nazwę z przedrostkiem. - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) Przestrzeń nazw dla funkcji zdefiniowanej przez użytkownika nie może być pusta (spróbuj predefiniowany przedrostek %1, który stworzono specjalnie do takich sytuacji) - An argument with name %1 has already been declared. Every argument name must be unique. Argument o nazwie %1 został już zadeklarowany. Każda nazwa argumentu musi być unikatowa. - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. Gdy funkcja %1 jest wykorzystana do dopasowania wewnątrz wzorca, jej argument musi być referencją do zmiennej lub stałą znakową. - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. We wzorze XSL-T pierwszy argument w funkcji %1 musi być stałą znakową podczas dopasowywania. - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. We wzorze XSL-T pierwszy argument w funkcji %1 musi być stałą znakową lub nazwą zmiennej podczas dopasowywania. - In an XSL-T pattern, function %1 cannot have a third argument. We wzorze XSL-T funkcja %1 nie może zawierać trzeciego argumentu. - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. We wzorze XSL-T tylko funkcje %1 i %2 mogą być użyte do dopasowania, zaś funkcja %3 nie. - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. We wzorze XSL-T tylko osie %2 i %3 mogą być użyte, zaś oś %1 nie. - %1 is an invalid template mode name. %1 nie jest poprawną nazwa trybu szablonu. - Each name of a template parameter must be unique; %1 is duplicated. Każda nazwa parametru szablonu musi być unikatowa; %1 się powtarza. - No function with name %1 is available. Żadna funkcja o nazwie %1 nie jest dostępna. - An attribute with name %1 has already appeared on this element. Atrybut o nazwie %1 już się pojawił w tym elemencie. - The namespace URI cannot be the empty string when binding to a prefix, %1. Przestrzeń nazw URI nie może być pustym ciągiem w powiązaniu z przedrostkiem, %1. - %1 is an invalid namespace URI. %1 jest niepoprawną przestrzenią nazw URI. - It is not possible to bind to the prefix %1 Nie jest możliwe powiązanie z przedrostkiem %1 - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). Przestrzeń nazw %1 może być jedynie powiązana z %2 (w przeciwnym wypadku jest ona domyślnie zadeklarowana). - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). Przedrostek %1 może być jedynie powiązany z %2 (w przeciwnym wypadku jest on domyślnie zadeklarowany). - Two namespace declaration attributes have the same name: %1. Atrybuty deklaracji przestrzeni nazw mają tą samą nazwę: %1. - The namespace URI must be a constant and cannot use enclosed expressions. Przestrzeń nazw URI nie może być stałą i nie może używać zawartych w niej wyrażeń. - A direct element constructor is not well-formed. %1 is ended with %2. Konstruktor elementu bezpośredniego nie jest dobrze sformatowany. %1 jest zakończony %2. - The name %1 does not refer to any schema type. Nazwa %1 nie odpowiada żadnemu typowi schematu. - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. %1 jest typem złożonym. Rzutowanie na typy złożone nie jest możliwe. Jednakże rzutowanie na typy atomowe np.: %2 jest dozwolone. - %1 is not an atomic type. Casting is only possible to atomic types. %1 nie jest typem atomowym. Możliwe jest rzutowanie tylko na typy atomowe. - %1 is not a valid name for a processing-instruction. %1 nie jest poprawną nazwą dla instrukcji przetwarzającej. - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. %1 nie jest wewnątrz zakresu deklaracji atrybutów. Zwróć uwagę że importowanie schematów nie jest obsługiwane. - The name of an extension expression must be in a namespace. Nazwa dodatkowego wyrażenia musi znajdować sie w przestrzeni nazw. - empty pusty - zero or one zero lub jeden - exactly one dokładnie jeden - one or more jeden lub więcej - zero or more zero lub więcej - Required type is %1, but %2 was found. Odnaleziono typ %2, lecz wymaganym typem jest %1. - Promoting %1 to %2 may cause loss of precision. Przekształcenie %1 do %2 może spowodować utratę precyzji. - The focus is undefined. Fokus jest niezdefiniowany. - It's not possible to add attributes after any other kind of node. Dodanie atrybutu poza węzłami nie jest możliwe. - An attribute by name %1 has already been created. Atrybut o nazwie %1 został już utworzony. - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. Obsługiwane jest jedynie "Unicode Codepoint Collation" (%1), %2 nie jest obsługiwane. - Integer division (%1) by zero (%2) is undefined. Dzielenie w dziedzinie liczb całkowitych (%1) przez zero (%2) jest niezdefiniowane. - Division (%1) by zero (%2) is undefined. Dzielenie (%1) przez zero (%2) jest niezdefiniowane. - Modulus division (%1) by zero (%2) is undefined. Dzielenie modulo (%1) przez zero (%2) jest niezdefiniowane. - %1 takes at most %n argument(s). %2 is therefore invalid. %1 przyjmuje co najwyżej %n argument. %2 jest dlatego niepoprawne. @@ -10709,7 +8509,6 @@ Proszę wybrać inną nazwę pliku. - %1 requires at least %n argument(s). %2 is therefore invalid. %1 wymaga przynajmniej %n argumentu. %2 jest dlatego niepoprawne. @@ -10718,1651 +8517,1255 @@ Proszę wybrać inną nazwę pliku. - The root node of the second argument to function %1 must be a document node. %2 is not a document node. Głównym węzłem drugiego argumentu w funkcji %1 musi być węzeł "document". %2 nie jest węzłem "document". - %1 is not a whole number of minutes. %1 nie jest całkowitą liczbą minut. - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. Enkodowanie %1 jest niepoprawne. Może ono zawierać jedynie znaki alfabetu łacińskiego, nie może zawierać spacji i musi być dopasowane do wyrażenia regularnego %2. - - A default namespace declaration must occur before function, variable, and option declarations. Domyślna deklaracja przestrzeni nazw musi pojawić się przed deklaracjami funkcji, zmiennych i opcji. - Namespace declarations must occur before function, variable, and option declarations. Deklaracje przestrzeni nazw muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji. - Module imports must occur before function, variable, and option declarations. Importy modułów muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji. - %1 is an unsupported encoding. Nieobsługiwane kodowanie %1. - %1 contains octets which are disallowed in the requested encoding %2. %1 zawiera bity które są niedozwolone w zażądanym kodowaniu %2. - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. Kod %1 który pojawił się w %2 i który używa kodowania %3 jest niepoprawnym znakiem XML. - Ambiguous rule match. Dopasowano niejednoznaczną regułę. - In a namespace constructor, the value for a namespace cannot be an empty string. W konstruktorze przestrzeni nazw wartość przestrzeni nazw nie może być pustym ciągiem. - The prefix must be a valid %1, which %2 is not. Przedrostek musi być poprawnym %1, którym %2 nie jest. - The prefix %1 cannot be bound. Przedrostek %1 nie może być powiązany. - Only the prefix %1 can be bound to %2 and vice versa. Tylko przedrostek %1 może być powiązany z %2 i vice versa. - The parameter %1 is required, but no corresponding %2 is supplied. Wymagany jest parametr %1 lecz żaden odpowiadający mu %2 nie został dostarczony. - The parameter %1 is passed, but no corresponding %2 exists. Przekazany jest parametr %1 lecz żaden odpowiadający mu %2 nie istnieje. - The URI cannot have a fragment URI nie może posiadać fragmentu - Element %1 is not allowed at this location. Element %1 jest niedozwolony w tym miejscu. - Text nodes are not allowed at this location. Węzły tekstowe są niedozwolone w tym miejscu. - Parse error: %1 Błąd parsowania: %1 - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. Wartość atrybutu wersji XSL-T musi być typu %1, którym %2 nie jest. - Running an XSL-T 1.0 stylesheet with a 2.0 processor. Przetwarzanie arkusza XSL-T w wersji 1.0 przez procesor w wersji 2.0. - Unknown XSL-T attribute %1. Nieznany atrybut %1 XSL-T. - Attribute %1 and %2 are mutually exclusive. Atrybuty %1 i %2 wzajemnie się wykluczającą. - In a simplified stylesheet module, attribute %1 must be present. W uproszczonym module arkuszu stylu musi wystąpić atrybut %1. - If element %1 has no attribute %2, it cannot have attribute %3 or %4. Jeśli element %1 nie posiada atrybutu %2, nie może on również posiadać atrybutu %3 ani %4. - Element %1 must have at least one of the attributes %2 or %3. Element %1 musi posiadać przynajmniej jeden z atrybutów: %2 lub %3. - At least one mode must be specified in the %1-attribute on element %2. Przynajmniej jeden tryb musi być podany w atrybucie %1 elementu %2. - Element %1 must come last. Element %1 musi wystąpić jako ostatni. - At least one %1-element must occur before %2. Przynajmniej jeden element %1 musi wystąpić przed %2. - Only one %1-element can appear. Może wystąpić tylko jeden element %1. - At least one %1-element must occur inside %2. Przynajmniej jeden element %1 musi wystąpić wewnątrz %2. - When attribute %1 is present on %2, a sequence constructor cannot be used. Kiedy atrybut %1 występuje w %2 konstruktor sekwencyjny nie może być użyty. - Element %1 must have either a %2-attribute or a sequence constructor. Element %1 musi posiadać albo atrybut %2 albo sekwencyjny konstruktor. - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. Kiedy wymagany jest parametr, domyślna wartość nie może być dostarczona przez atrybut %1 ani przez sekwencyjny konstruktor. - Element %1 cannot have children. Element %1 nie może posiadać potomków. - Element %1 cannot have a sequence constructor. Element %1 nie może posiadać sekwencyjnego konstruktora. - - The attribute %1 cannot appear on %2, when it is a child of %3. Atrybut %1 nie może wystąpić w %2 kiedy jest on potomkiem %3. - A parameter in a function cannot be declared to be a tunnel. Parametr funkcji nie może być zadeklarowany jako tunelowy. - This processor is not Schema-aware and therefore %1 cannot be used. Procesor nie obsługuje schematów, więc %1 nie może zostać użyte. - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. Elementy arkusza stylu najwyższego poziomu muszą być w niezerowej przestrzeni nazw, którą %1 nie jest. - The value for attribute %1 on element %2 must either be %3 or %4, not %5. Wartością atrybutu %1 w elemencie %2 musi być %3 albo %4, lecz nie %5. - Attribute %1 cannot have the value %2. Atrybut %1 nie może posiadać wartości %2. - The attribute %1 can only appear on the first %2 element. Atrybut %1 może wystąpić jedynie w pierwszym elemencie %2. - At least one %1 element must appear as child of %2. Przynajmniej jeden element %1 musi wystąpić jako potomek %2. - %1 has inheritance loop in its base type %2. %1 ma pętlę w dziedziczeniu w jego podstawowym typie %2. - - Circular inheritance of base type %1. Cykliczne dziedziczenie podstawowego typu %1. - Circular inheritance of union %1. Cykliczne dziedziczenie unii %1. - %1 is not allowed to derive from %2 by restriction as the latter defines it as final. Nie można wywieść %1 z %2 ograniczając go ponieważ jest on zdefiniowany jako końcowy. - %1 is not allowed to derive from %2 by extension as the latter defines it as final. Nie można wywieść %1 z %2 rozszerzając go ponieważ jest on zdefiniowany jako końcowy. - Base type of simple type %1 cannot be complex type %2. Typ podstawowy dla typu prostego %1 nie może być typem złożonym %2. - Simple type %1 cannot have direct base type %2. Typ prosty %1 nie może mieć bezpośredniego typu podstawowego %2. - - Simple type %1 is not allowed to have base type %2. Typ prosty %1 nie może mieć typu podstawowego %2. - Simple type %1 can only have simple atomic type as base type. Typem podstawowym typu prostego %1 może być tylko typ atomowy. - Simple type %1 cannot derive from %2 as the latter defines restriction as final. Typ prosty %1 nie może wywodzić się z %2 ponieważ ten ostatni jest zdefiniowany jako końcowy. - - Variety of item type of %1 must be either atomic or union. Typem elementów listy %1 musi być albo typ atomowy albo unia. - - Variety of member types of %1 must be atomic. Typy składników %1 muszą być atomowe. - - %1 is not allowed to derive from %2 by list as the latter defines it as final. Nie można wywieść %1 z %2 poprzez listę ponieważ jest to zdefiniowane ostatecznie w typie podstawowym. - Simple type %1 is only allowed to have %2 facet. Typ prosty %1 może jedynie posiadać aspekt %2. - Base type of simple type %1 must have variety of type list. Typ podstawowy dla typu prostego %1 musi być listą typów. - Base type of simple type %1 has defined derivation by restriction as final. Typ podstawowy dla typu prostego %1 ma zdefiniowane wywodzenie poprzez ograniczenie jako końcowe. - Item type of base type does not match item type of %1. Typ elementów listy typu podstawowego nie pasuje do typu elementów listy %1. - - Simple type %1 contains not allowed facet type %2. Typ prosty %1 posiada niedozwolony aspekt %2. - - %1 is not allowed to derive from %2 by union as the latter defines it as final. Nie można wywieść %1 z %2 poprzez unię ponieważ jest to zdefiniowane ostatecznie w typie podstawowym. - %1 is not allowed to have any facets. %1 nie może posiadać żadnych aspektów. - Base type %1 of simple type %2 must have variety of union. Typ podstawowy %1 dla typu prostego %2 musi być unią. - Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. Typ podstawowy %1 dla typu prostego %2 nie może posiadać ograniczenia dla atrybutu %3. - Member type %1 cannot be derived from member type %2 of %3's base type %4. Typ %1 składnika nie może być wywiedziony z typu %2 który jest typem składnika %3 typu podstawowego %4. - Derivation method of %1 must be extension because the base type %2 is a simple type. Metodą wywodzenia z %1 musi być rozszerzenie ponieważ typ podstawowy %2 jest typem prostym. - Complex type %1 has duplicated element %2 in its content model. Typ złożony %1 posiada powielony element %2 w jego modelu zawartości. - Complex type %1 has non-deterministic content. Typ złożony %1 posiada nieokreśloną zawartość. - Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. Atrybuty typu złożonego %1 nie są poprawnym rozszerzeniem atrybutów typu podstawowego %2: %3. - Content model of complex type %1 is not a valid extension of content model of %2. Model zawartości typu złożonego %1 nie jest poprawnym rozszerzeniem modelu zawartości %2. - Complex type %1 must have simple content. Typ złożony %1 musi mieć prostą zawartość. - Complex type %1 must have the same simple type as its base class %2. Typ złożony %1 musi posiadać ten sam prosty typ jaki posiada jego klasa podstawowa %2. - Complex type %1 cannot be derived from base type %2%3. Typ złożony %1 nie może być wywiedziony z typu %2%3. - Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. Atrybuty typu złożonego %1 nie są poprawnym ograniczeniem atrybutów typu podstawowego %2: %3. - Complex type %1 with simple content cannot be derived from complex base type %2. Typ złożony %1 z prostą zawartością nie może być wywiedziony z podstawowego typu złożonego %2. - Item type of simple type %1 cannot be a complex type. Typ elementów listy w prostym typie %1 nie może być typem złożonym. - Member type of simple type %1 cannot be a complex type. Typ składnika typu prostego %1 nie może być typem złożonym. - %1 is not allowed to have a member type with the same name as itself. %1 nie może posiadać typu składnika o tej samej nazwie jaką on sam posiada. - - - %1 facet collides with %2 facet. Aspekt %1 koliduje z aspektem %2. - %1 facet must have the same value as %2 facet of base type. Aspekt %1 musi mieć tą samą wartość jaką ma aspekt %2 typu podstawowego. - %1 facet must be equal or greater than %2 facet of base type. Wartość aspektu %1 musi większa od lub równa wartości aspektu %2 typu podstawowego. - - - - - - - - %1 facet must be less than or equal to %2 facet of base type. Wartość aspektu %1 musi być mniejsza od lub równa wartości aspektu %2 typu podstawowego. - %1 facet contains invalid regular expression Aspekt %1 zawiera niepoprawne wyrażenie regularne - Unknown notation %1 used in %2 facet. Nieznany zapis %1 użyty w aspekcie %2. - %1 facet contains invalid value %2: %3. Aspekt %1 zawiera niepoprawną wartość %2: %3. - %1 facet cannot be %2 or %3 if %4 facet of base type is %5. Aspektem %1 nie może być %2 ani %3 jeśli aspektem %4 typu podstawowego jest %5. - %1 facet cannot be %2 if %3 facet of base type is %4. Aspektem %1 nie może być %2 jeśli aspektem %3 typu podstawowego jest %4. - - - %1 facet must be less than or equal to %2 facet. Wartość aspektu %1 musi być mniejsza od lub równa wartości aspektu %2. - - - %1 facet must be less than %2 facet of base type. Wartość aspektu %1 musi być mniejsza od wartości aspektu %2 typu podstawowego. - - %1 facet and %2 facet cannot appear together. Aspekty %1 i %2 nie mogą wystąpić jednocześnie. - - - %1 facet must be greater than %2 facet of base type. Wartość aspektu %1 musi być większa od wartości aspektu %2 typu podstawowego. - - %1 facet must be less than %2 facet. Wartość aspektu %1 musi być mniejsza od wartości aspektu %2. - - %1 facet must be greater than or equal to %2 facet of base type. Wartość aspektu %1 musi być większa od lub równa wartości aspektu %2 typu podstawowego. - Simple type contains not allowed facet %1. Typ prosty zawiera niedozwolony aspekt %1. - %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. Aspekty %1, %2, %3, %4, %5 i %6 nie są dozwolone podczas wywodzenia z listy. - Only %1 and %2 facets are allowed when derived by union. Dozwolone są jedynie aspekty %1 i %2 podczas wywodzenia z unii. - - %1 contains %2 facet with invalid data: %3. %1 zawiera aspekt %2 z niepoprawnymi danymi: %3. - Attribute group %1 contains attribute %2 twice. Grupa atrybutów %1 zawiera dwukrotnie atrybut %2. - Attribute group %1 contains two different attributes that both have types derived from %2. Grupa atrybutów %1 zawiera dwa różne atrybuty których typy są wywiedzione z %2. - Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. Grupa atrybutów %1 zawiera atrybut %2 który ma ograniczenie wartości ale typ wywodzi się z %3. - Complex type %1 contains attribute %2 twice. Typ złożony %1 zawiera atrybut %2 dwukrotnie. - Complex type %1 contains two different attributes that both have types derived from %2. Typ złożony %1 zawiera dwa różne atrybuty których typy są wywiedzione z %2. - Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. Typ złożony %1 zawiera atrybut %2 który ma ograniczenie wartości ale typ wywodzi się z %3. - Element %1 is not allowed to have a value constraint if its base type is complex. Element %1 nie może zawierać ograniczenia wartości gdy jego typ podstawowy jest złożony. - Element %1 is not allowed to have a value constraint if its type is derived from %2. Element %1 nie może zawierać ograniczenia wartości gdy jego typ jest wywiedziony z %2. - - Value constraint of element %1 is not of elements type: %2. Ograniczenie wartości elementu %1 nie jest typu: %2. - Element %1 is not allowed to have substitution group affiliation as it is no global element. Element %1 nie może przynależeć do grupy zastępującej ponieważ nie jest on elementem globalnym. - Type of element %1 cannot be derived from type of substitution group affiliation. Typ elementu %1 nie może być wywiedziony z typu przynależnego do grupy zastępującej. - Value constraint of attribute %1 is not of attributes type: %2. Ograniczenie wartości atrybutu %1 nie jest typu: %2. - Attribute %1 has value constraint but has type derived from %2. Atrybut %1 posiada ograniczenie wartości lecz jego typ wywodzi się z %2. - %1 attribute in derived complex type must be %2 like in base type. Atrybut %1 w wywiedzionym typie złożonym musi być %2 jak w typie podstawowym. - Attribute %1 in derived complex type must have %2 value constraint like in base type. Atrybut %1 w wywiedzionym typie złożonym musi zawierać ograniczenie wartości %2 jak w typie podstawowym. - Attribute %1 in derived complex type must have the same %2 value constraint like in base type. Atrybut %1 w wywiedzionym typie złożonym musi zawierać te same ograniczenie wartości %2 jak w typie podstawowym. - Attribute %1 in derived complex type must have %2 value constraint. Atrybut %1 w wywiedzionym typie złożonym musi zawierać ograniczenie wartości %2. - processContent of base wildcard must be weaker than derived wildcard. "processContent" podstawowego dżokera musi być słabszy od wywiedzionego dżokera. - - Element %1 exists twice with different types. Istnieją dwa elementy %1 o różnych typach. - Particle contains non-deterministic wildcards. Element zawiera nieokreślone dżokery. - - Base attribute %1 is required but derived attribute is not. Wymagany jest bazowy atrybut %1, wywiedziony zaś nie. - Type of derived attribute %1 cannot be validly derived from type of base attribute. Typ wywiedzionego atrybutu %1 nie może być poprawnie wywiedziony z typu podstawowego atrybutu. - Value constraint of derived attribute %1 does not match value constraint of base attribute. Ograniczenie wartości wywiedzionego atrybutu %1 nie pasuje do ograniczenia wartości podstawowego atrybutu. - Derived attribute %1 does not exist in the base definition. Wywiedziony atrybut %1 nie istnieje w podstawowej definicji. - Derived attribute %1 does not match the wildcard in the base definition. Wywiedziony atrybut %1 nie pasuje do dżokera w podstawowej definicji. - Base attribute %1 is required but missing in derived definition. Brak wymaganego bazowego atrybutu %1 w wywiedzionej definicji. - Derived definition contains an %1 element that does not exists in the base definition Wywiedziona definicja zawiera element %1 który nie istnieje w definicji podstawowej - Derived wildcard is not a subset of the base wildcard. Wywiedziony dżoker nie jest podzbiorem podstawowego dżokera. - %1 of derived wildcard is not a valid restriction of %2 of base wildcard %1 wywiedzionego dżokera nie jest poprawnym ograniczeniem %2 podstawowego dżokera - Attribute %1 from base type is missing in derived type. Brak atrybutu %1 typu bazowego w wywiedzionej definicji. - Type of derived attribute %1 differs from type of base attribute. Typ wywiedzionego atrybutu %1 różni się od typu podstawowego atrybutu. - Base definition contains an %1 element that is missing in the derived definition Podstawowa definicja zawiera element %1 którego brakuje w wywiedzionej definicji - %1 references unknown %2 or %3 element %4. %1 odwołuje się do nieznanego elementu %2 lub %3: %4. - %1 references identity constraint %2 that is no %3 or %4 element. %1 odwołuje się do narzucenia niepowtarzalności %2 które nie jest elementem %3 ani %4. - %1 has a different number of fields from the identity constraint %2 that it references. %1 posiada inna liczbę pól od narzucenia niepowtarzalności %2 które się do niego odwołuje. - Base type %1 of %2 element cannot be resolved. Nie można rozwiązać typu podstawowego %1 elementu %2. - Item type %1 of %2 element cannot be resolved. Nie można rozwiązać typu elementów listy %1 w elemencie %2. - Member type %1 of %2 element cannot be resolved. Nie można rozwiązać typu %1 składnika elementu %2. - - - Type %1 of %2 element cannot be resolved. Nie można rozwiązać typu %1 elementu %2. - Base type %1 of complex type cannot be resolved. Nie można rozwiązać typu podstawowego %1 dla typu złożonego. - %1 cannot have complex base type that has a %2. %1 nie może mieć złożonego typu podstawowego który ma %2. - Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. Model zawartości typu złożonego %1 posiada element %2 więc nie może być on wywiedziony poprzez rozszerzenie niepustego typu. - Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. Typ złożony %1 nie może być wywiedziony z %2 poprzez rozszerzenie ponieważ ten ostatni zawiera element %3 w jego modelu zawartości. - Type of %1 element must be a simple type, %2 is not. Typem elementu %1 musi być typ prosty, %2 nim nie jest. - Substitution group %1 of %2 element cannot be resolved. Nie można rozwiązać grupy zastępującej %1 elementu %2. - Substitution group %1 has circular definition. Grupa zastępująca %1 posiada cykliczną definicję. - - Duplicated element names %1 in %2 element. Powielona nazwa elementu %1 w elemencie %2. - - - - Reference %1 of %2 element cannot be resolved. Nie można rozwiązać odwołania %1 do elementu %2. - Circular group reference for %1. Cykliczne odwołanie do grupy dla %1. - %1 element is not allowed in this scope Element %1 nie jest dozwolony w tym zakresie - %1 element cannot have %2 attribute with value other than %3. Element %1 nie może mieć atrybutu %2 z wartością inną niż %3. - %1 element cannot have %2 attribute with value other than %3 or %4. Element %1 nie może mieć atrybutu %2 z wartością inną niż %3 lub %4. - %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. Atrybut %1 lub %2 odwołania %3 nie pasuje do deklaracji atrybutu %4. - Attribute group %1 has circular reference. Grupa atrybutów %1 posiada cykliczne odwołanie. - %1 attribute in %2 must have %3 use like in base type %4. Atrybut %1 w %2 powinien używać %3 jak w typie podstawowym %4. - Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. Atrybut dżokera %1 nie jest poprawnym ograniczeniem atrybutu dżokera typu podstawowego %2. - %1 has attribute wildcard but its base type %2 has not. %1 posiada atrybut dżokera lecz jego typ podstawowy %2 go nie posiada. - Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. Nie można wyrazić unii atrybutu dżokera typu %1 i atrybutu dżokera jego typu podstawowego %2. - Enumeration facet contains invalid content: {%1} is not a value of type %2. Aspekt "enumeration" posiada niepoprawną zawartość: {%1} nie jest wartością typu %2. - Namespace prefix of qualified name %1 is not defined. Przedrostek przestrzeni nazw występujący w pełnej nazwie %1 nie jest zdefiniowany. - - %1 element %2 is not a valid restriction of the %3 element it redefines: %4. Element %1 (%2) nie jest poprawnym ograniczeniem elementu %3 który redefiniuje: %4. - Empty particle cannot be derived from non-empty particle. Pusty element nie może być wywiedziony z niepustego elementu. - Derived particle is missing element %1. Brak elementu %1 w wywiedzionym elemencie. - Derived element %1 is missing value constraint as defined in base particle. Brak ograniczenia wartości w wywiedzionym elemencie %1 takiego jak w podstawowym elemencie. - Derived element %1 has weaker value constraint than base particle. Wywiedziony element %1 posiada słabsze ograniczenie wartości niż element podstawowy. - Fixed value constraint of element %1 differs from value constraint in base particle. Ograniczenie stałej wartości elementu %1 różni się od ograniczenia wartości w podstawowym elemencie. - Derived element %1 cannot be nillable as base element is not nillable. Wywiedziony element %1 może być zerowalny ponieważ element podstawowy nie jest zerowalny. - Block constraints of derived element %1 must not be more weaker than in the base element. Ograniczenia blokujące dla wywiedzionego elementu %1 nie mogą być słabsze od ograniczeń w elemencie podstawowym. - Simple type of derived element %1 cannot be validly derived from base element. Typ prosty w elemencie wywiedzionym %1 nie może być poprawnie wywiedziony z elementu podstawowego. - Complex type of derived element %1 cannot be validly derived from base element. Typ złożony w elemencie wywiedzionym %1 nie może być poprawnie wywiedziony z elementu podstawowego. - Element %1 is missing in derived particle. Brak elementu %1 w wywiedzionym elemencie. - Element %1 does not match namespace constraint of wildcard in base particle. Element %1 nie pasuje do ograniczenia przestrzeni nazw dżokera w elemencie podstawowym. - Wildcard in derived particle is not a valid subset of wildcard in base particle. Dżoker w wywiedzionym elemencie nie jest poprawnym podzbiorem dżokera w elemencie podstawowym. - processContent of wildcard in derived particle is weaker than wildcard in base particle. "processContent" dżokera w wywiedzionym elemencie jest słabszy od dżokera w podstawowym elemencie. - Derived particle allows content that is not allowed in the base particle. Wywiedziony element pozwala na zawartość która jest niedozwolona w podstawowym elemencie. - Can not process unknown element %1, expected elements are: %2. Nie można przetworzyć nieznanego elementu %1, oczekiwanymi elementami są: %2. - Element %1 is not allowed in this scope, possible elements are: %2. Element %1 jest niedozwolony w tym zakresie, możliwymi elementami są: %2. - Child element is missing in that scope, possible child elements are: %1. Brak podelementu w tym zakresie, możliwymi podelementami są: %1. - Document is not a XML schema. Dokument nie jest schematem XML. - %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. Atrybut %1 elementu %2 posiada niepoprawną zawartość: {%3} nie jest wartością typu %4. - %1 attribute of %2 element contains invalid content: {%3}. Atrybut %1 elementu %2 posiada niepoprawną zawartość: {%3}. - Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. Docelowa przestrzeń nazw %1 załączonego schematu jest różna od docelowej przestrzeni nazw %2 która jest zdefiniowana w schemacie załączającym. - - Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. Docelowa przestrzeń nazw %1 zaimportowanego schematu jest różna od docelowej przestrzeni nazw %2 która jest zdefiniowana w schemacie importującym. - %1 element is not allowed to have the same %2 attribute value as the target namespace %3. Element %1 nie może zawierać tej samej wartości atrybutu %2 co docelowa przestrzeń nazw %3. - %1 element without %2 attribute is not allowed inside schema without target namespace. Element %1 bez atrybutu %2 jest niedozwolony wewnątrz schematu bez docelowej przestrzeni nazw. - - %1 element is not allowed inside %2 element if %3 attribute is present. Element %1 jest niedozwolony wewnątrz elementu %2 jeśli jest obecny atrybut %3. - - - %1 element has neither %2 attribute nor %3 child element. Element %1 nie posiada ani atrybutu %2 ani podelementu %3. - - - - - - - - - - - - - - %1 element with %2 child element must not have a %3 attribute. Element %1 z podelementem %2 nie może mieć atrybutu %3. - %1 attribute of %2 element must be %3 or %4. Atrybutem %1 elementu %2 musi być %3 lub %4. - %1 attribute of %2 element must have a value of %3. Atrybut %1 elementu %2 musi posiadać wartość %3. - - %1 attribute of %2 element must have a value of %3 or %4. Atrybut %1 elementu %2 musi posiadać wartość %3 lub %4. - - - - - - - - - - - - - - %1 element must not have %2 and %3 attribute together. Element %1 nie może posiadać jednocześnie atrybutów %2 i %3. - - Content of %1 attribute of %2 element must not be from namespace %3. Zawartość atrybutu %1 elementu %2 nie może pochodzić z przestrzeni nazw %3. - - %1 attribute of %2 element must not be %3. Atrybut %1 elementu %2 nie może być %3. - %1 attribute of %2 element must have the value %3 because the %4 attribute is set. Atrybut %1 elementu %2 musi zawierać wartość %3 ponieważ atrybut %4 jest ustawiony. - Specifying use='prohibited' inside an attribute group has no effect. Podawanie: use='prohibited' wewnątrz grupy atrybutów nie przynosi żadnego efektu. - %1 element must have either %2 or %3 attribute. Element %1 musi zawierać atrybut %2 albo %3. - %1 element must have either %2 attribute or %3 or %4 as child element. Element %1 musi zawierać albo atrybut %2 albo %3 lub %4 jako podelement. - %1 element requires either %2 or %3 attribute. Element %1 wymaga atrybutu %2 albo %3. - Text or entity references not allowed inside %1 element Tekst ani odwołanie nie są dozwolone wewnątrz elementu %1 - - %1 attribute of %2 element must contain %3, %4 or a list of URIs. Atrybut %1 elementu %2 musi zawierać %3, %4 lub listę URI. - %1 element is not allowed in this context. Element %1 jest niedozwolony w tym kontekście. - %1 attribute of %2 element has larger value than %3 attribute. Atrybut %1 elementu %2 posiada większą wartość niż atrybut %3. - Prefix of qualified name %1 is not defined. Przedrostek w pełnej nazwie %1 nie jest zdefiniowany. - - %1 attribute of %2 element must either contain %3 or the other values. Atrybut %1 elementu %2 musi zawierać albo %3 albo inne wartości. - Component with ID %1 has been defined previously. Komponent o identyfikatorze %1 został uprzednio zdefiniowany. - Element %1 already defined. Element %1 jest już zdefiniowany. - Attribute %1 already defined. Atrybut %1 jest już zdefiniowany. - Type %1 already defined. Typ %1 jest już zdefiniowany. - Attribute group %1 already defined. Grupa atrybutów %1 jest już zdefiniowana. - Element group %1 already defined. Grupa elementów %1 jest już zdefiniowana. - Notation %1 already defined. Zapis %1 jest już zdefiniowany. - Identity constraint %1 already defined. Narzucenie niepowtarzalności %1 jest już zdefiniowane. - Duplicated facets in simple type %1. Powielone aspekty w prostym typie %1. - - - %1 is not valid according to %2. Ponieważ nie wiadomo co jest podmiotem nie można stwierdzić czy to ma być "poprawnym", "poprawną" czy "poprawne" %1 nie jest poprawne według %2. - String content does not match the length facet. Wartość ciągu koliduje z aspektem "length". - String content does not match the minLength facet. Wartość ciągu koliduje z aspektem "minLength". - String content does not match the maxLength facet. Wartość ciągu koliduje z aspektem "maxLength". - String content does not match pattern facet. Wartość ciągu koliduje z aspektem "pattern". - String content is not listed in the enumeration facet. Wartość ciągu nie widnieje na liście aspektu "enumeration". - Signed integer content does not match the maxInclusive facet. Wartość liczby całkowitej koliduje z aspektem "maxInclusive". - Signed integer content does not match the maxExclusive facet. Wartość liczby całkowitej koliduje z aspektem "maxExclusive". - Signed integer content does not match the minInclusive facet. Wartość liczby całkowitej koliduje z aspektem "minInclusive". - Signed integer content does not match the minExclusive facet. Wartość liczby całkowitej koliduje z aspektem "minExclusive". - Signed integer content is not listed in the enumeration facet. Wartość liczby całkowitej nie widnieje na liście aspektu "enumeration". - Signed integer content does not match pattern facet. Wartość liczby całkowitej koliduje z aspektem "pattern". - Signed integer content does not match in the totalDigits facet. Wartość liczby całkowitej koliduje z aspektem "totalDigits". - Unsigned integer content does not match the maxInclusive facet. Wartość liczby naturalnej koliduje z aspektem "maxInclusive". - Unsigned integer content does not match the maxExclusive facet. Wartość liczby naturalnej koliduje z aspektem "maxExclusive". - Unsigned integer content does not match the minInclusive facet. Wartość liczby naturalnej koliduje z aspektem "minInclusive". - Unsigned integer content does not match the minExclusive facet. Wartość liczby naturalnej koliduje z aspektem "minExclusive". - Unsigned integer content is not listed in the enumeration facet. Wartość liczby naturalnej nie widnieje na liście aspektu "enumeration". - Unsigned integer content does not match pattern facet. Wartość liczby naturalnej koliduje z aspektem "pattern". - Unsigned integer content does not match in the totalDigits facet. Wartość liczby naturalnej koliduje z aspektem "totalDigits". - Double content does not match the maxInclusive facet. Wartość liczby rzeczywistej koliduje z aspektem "maxInclusive". - Double content does not match the maxExclusive facet. Wartość liczby rzeczywistej koliduje z aspektem "maxExclusive". - Double content does not match the minInclusive facet. Wartość liczby rzeczywistej koliduje z aspektem "minInclusive". - Double content does not match the minExclusive facet. Wartość liczby rzeczywistej koliduje z aspektem "minExclusive". - Double content is not listed in the enumeration facet. Wartość liczby rzeczywistej nie widnieje na liście aspektu "enumeration". - Double content does not match pattern facet. Wartość liczby rzeczywistej koliduje z aspektem "pattern". - Decimal content does not match in the fractionDigits facet. Wartość liczby rzeczywistej koliduje z aspektem "fractionDigits". - Decimal content does not match in the totalDigits facet. Wartość liczby rzeczywistej koliduje z aspektem "totalDigits". - Date time content does not match the maxInclusive facet. Zawartość daty i czasu koliduje z aspektem "maxInclusive". - Date time content does not match the maxExclusive facet. Zawartość daty i czasu koliduje z aspektem "maxExclusive". - Date time content does not match the minInclusive facet. Zawartość daty i czasu koliduje z aspektem "minInclusive". - Date time content does not match the minExclusive facet. Zawartość daty i czasu koliduje z aspektem "minExclusive". - Date time content is not listed in the enumeration facet. Zawartość daty i czasu nie widnieje na liście aspektu "enumeration". - Date time content does not match pattern facet. Zawartość daty i czasu koliduje z aspektem "pattern". - Duration content does not match the maxInclusive facet. Wartość czasu trwania koliduje z aspektem "maxInclusive". - Duration content does not match the maxExclusive facet. Wartość czasu trwania koliduje z aspektem "maxExclusive". - Duration content does not match the minInclusive facet. Wartość czasu trwania koliduje z aspektem "minInclusive". - Duration content does not match the minExclusive facet. Wartość czasu trwania koliduje z aspektem "minExclusive". - Duration content is not listed in the enumeration facet. Wartość czasu trwania nie widnieje na liście aspektu "enumeration". - Duration content does not match pattern facet. Wartość czasu trwania koliduje z aspektem "pattern". - Boolean content does not match pattern facet. Wartość boolowska koliduje z aspektem "pattern". - Binary content does not match the length facet. Wartość binarna koliduje z aspektem "length". - Binary content does not match the minLength facet. Wartość binarna koliduje z aspektem "minLength". - Binary content does not match the maxLength facet. Wartość binarna koliduje z aspektem "maxLength". - Binary content is not listed in the enumeration facet. Wartość binarna nie widnieje na liście aspektu "enumeration". - Invalid QName content: %1. Niepoprawna zawartość QName: %1. - QName content is not listed in the enumeration facet. Zawartość QName nie widnieje na liście aspektu "enumeration". - QName content does not match pattern facet. Zawartość QName koliduje z aspektem "pattern". - Notation content is not listed in the enumeration facet. Zapis zawartości nie widnieje na liście aspektu "enumeration". - List content does not match length facet. Zawartość listy koliduje z aspektem "length". - List content does not match minLength facet. Zawartość listy koliduje z aspektem "minLength". - List content does not match maxLength facet. Zawartość listy koliduje z aspektem "maxLength". - List content is not listed in the enumeration facet. Zawartość listy nie widnieje na liście aspektu "enumeration". - List content does not match pattern facet. Zawartość listy koliduje z aspektem "pattern". - Union content is not listed in the enumeration facet. Zawartość unii nie widnieje na liście aspektu "enumeration". - Union content does not match pattern facet. Zawartość unii koliduje z aspektem "pattern". - Data of type %1 are not allowed to be empty. Dane typu %1 nie mogą być puste. - Element %1 is missing child element. Brak wymaganego podelementu w elemencie %1. - There is one IDREF value with no corresponding ID: %1. Istnieje wartość IDREF bez odpowiadającej jej wartości ID: %1. - Loaded schema file is invalid. Załadowany plik nie jest poprawnym plikiem ze schematem. - %1 contains invalid data. %1 zawiera niepoprawne dane. - xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. Przestrzeń nazw "xsi:schemaLocation" %1 wystąpiła już wcześniej w dokumencie. - xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. "xsi:noNamespaceSchemaLocation" nie może wystąpić po pierwszym elemencie lub atrybucie który nie jest przestrzenią nazw. - No schema defined for validation. Brak zdefiniowanego schematu dla walidacji. - No definition for element %1 available. Brak dostępnej definicji dla elementu %1. - - - Specified type %1 is not known to the schema. Podany typ %1 nie jest schematowi znany. - Element %1 is not defined in this scope. Element %1 nie jest zdefiniowany w tym zakresie. - Declaration for element %1 does not exist. Brak deklaracji dla elementu %1. - Element %1 contains invalid content. Element %1 posiada niepoprawną zawartość. - Element %1 is declared as abstract. Element %1 jest zadeklarowany jako abstrakcyjny. - Element %1 is not nillable. Element %1 nie jest zerowalny. - Attribute %1 contains invalid data: %2 Atrybut %1 zawiera niepoprawne dane: %2 - Element contains content although it is nillable. Element posiada zawartość chociaż jest zerowalny. - Fixed value constraint not allowed if element is nillable. Ograniczenie stałej wartości jest niedozwolone gdy element jest zerowalny. - Element %1 cannot contain other elements, as it has a fixed content. Element %1 nie może zawierać innych elementów ponieważ posiada on stałą zawartość. - Specified type %1 is not validly substitutable with element type %2. Podany typ %1 nie jest poprawnie zastępowalny typem elementu %2. - Complex type %1 is not allowed to be abstract. Typ złożony %1 nie może być abstrakcyjny. - Element %1 contains not allowed attributes. Element %1 zawiera niedozwolone atrybuty. - - Element %1 contains not allowed child element. Element %1 zawiera niedozwolony podelement. - - Content of element %1 does not match its type definition: %2. Zawartość elementu %1 nie pasuje do jego definicji typu: %2. - - - Content of element %1 does not match defined value constraint. Zawartość elementu %1 nie pasuje do zdefiniowanego ograniczenia wartości. - Element %1 contains not allowed child content. Element %1 zawiera niedozwolony podelement. - Element %1 contains not allowed text content. Element %1 zawiera niedozwolony text. - Element %1 is missing required attribute %2. Brak wymaganego atrybutu %2 w elemencie %1. - Attribute %1 does not match the attribute wildcard. Atrybut %1 nie pasuje do atrybutu dżokera. - Declaration for attribute %1 does not exist. Brak deklaracji atrybutu %1. - Element %1 contains two attributes of type %2. Element %1 posiada dwa atrybuty typu %2. - Attribute %1 contains invalid content. Atrybut %1 posiada niepoprawną zawartość. - Element %1 contains unknown attribute %2. Element %1 posiada nieznany atrybut %2. - - Content of attribute %1 does not match its type definition: %2. Zawartość atrybutu %1 nie pasuje do jego definicji typu: %2. - - Content of attribute %1 does not match defined value constraint. Zawartość elementu %1 nie pasuje do zdefiniowanego ograniczenia wartości. - Non-unique value found for constraint %1. Znaleziono nieunikatową wartość dla ograniczenia %1. - Key constraint %1 contains absent fields. Ograniczenie klucza %1 zawiera nieobecne pola. - Key constraint %1 contains references nillable element %2. - No referenced value found for key reference %1. Brak wartości do której odwołuje się klucz %1. - More than one value found for field %1. Znaleziono więcej niż jedną wartość dla pola %1. - Field %1 has no simple type. Pole %1 nie posiada prostego typu. - ID value '%1' is not unique. Wartość ID "%1" nie jest unikatowa. - '%1' attribute contains invalid QName content: %2. Atrybut "%1" zawiera niepoprawną zawartość QName: %2. -- cgit v0.12 From cc1b6475a99994908cbd6309a08fd08614f18221 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 10 Aug 2010 16:30:18 +0100 Subject: Test backing store is deleted after: partial reveal, full reveal, hide After the following sequence: * widget starts hidden * Partially reveal widget * Fully reveal widget * Hide widget widget's backing store should be deleted, when running on Symbian. Task-number: QTBUG-12800 Reviewed-by: Jason Barron --- tests/auto/qwidget/tst_qwidget.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index f722f89..e6e8970 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -9758,6 +9758,43 @@ void tst_QWidget::destroyBackingStoreWhenHidden() QVERIFY(0 != backingStore(parent)); QVERIFY(0 == backingStore(child)); } + + // 6. Partial reveal followed by full reveal + { + QWidget upper; + upper.setAutoFillBackground(true); + upper.setPalette(Qt::red); + upper.setGeometry(50, 50, 100, 100); + + QWidget lower; + lower.setAutoFillBackground(true); + lower.setPalette(Qt::green); + lower.setGeometry(50, 50, 100, 100); + + lower.show(); + QTest::qWaitForWindowShown(&lower); + upper.show(); + QTest::qWaitForWindowShown(&upper); + upper.raise(); + + QVERIFY(0 != backingStore(upper)); + QVERIFY(0 == backingStore(lower)); + + // Check that upper obscures lower + QVERIFY(lower.visibleRegion().subtracted(upper.visibleRegion()).isEmpty()); + + // Partially reveal lower + upper.move(100, 100); + + // Completely reveal lower + upper.hide(); + + // Hide lower widget - this should cause its backing store to be deleted + lower.hide(); + + // Check that backing store was deleted + WAIT_AND_VERIFY(0 == backingStore(lower)); + } } #undef WAIT_AND_VERIFY -- cgit v0.12 From b5360eb223d5377beb62008fcc1da48f432dc8dd Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 10 Aug 2010 17:08:37 +0100 Subject: Test backing store is deleted after reparenting a visible native child widget After the following sequence: * Create a TLW, parent1 * Create a child of parent1, and make it a native widget * Create another TLW, parent2 * Show parent1 and parent2 * Reparent child so its parent is now parent2 * Hide parent1 parent1's backing store should be deleted, when running on Symbian. Task-number: QTBUG-12817 Reviewed-by: Jason Barron --- tests/auto/qwidget/tst_qwidget.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index e6e8970..ba0be3e 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -9795,6 +9795,43 @@ void tst_QWidget::destroyBackingStoreWhenHidden() // Check that backing store was deleted WAIT_AND_VERIFY(0 == backingStore(lower)); } + + // 7. Reparenting of visible native child widget + { + QWidget parent1; + parent1.setAutoFillBackground(true); + parent1.setPalette(Qt::green); + parent1.setGeometry(50, 50, 100, 100); + + QWidget *child = new QWidget(&parent1); + child->winId(); + child->setAutoFillBackground(true); + child->setPalette(Qt::red); + child->setGeometry(10, 10, 30, 30); + + QWidget parent2; + parent2.setAutoFillBackground(true); + parent2.setPalette(Qt::blue); + parent2.setGeometry(150, 150, 100, 100); + + parent1.show(); + QTest::qWaitForWindowShown(&parent1); + QVERIFY(0 != backingStore(parent1)); + + parent2.show(); + QTest::qWaitForWindowShown(&parent2); + QVERIFY(0 != backingStore(parent2)); + + child->setParent(&parent2); + child->setGeometry(10, 10, 30, 30); + child->show(); + + parent1.hide(); + WAIT_AND_VERIFY(0 == backingStore(parent1)); + + parent2.hide(); + WAIT_AND_VERIFY(0 == backingStore(parent2)); + } } #undef WAIT_AND_VERIFY -- cgit v0.12 From cb8d2dcc70846ccd9384a8b94b2a80821c0eb285 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 10 Aug 2010 16:34:19 +0100 Subject: Replaced backing store reference count with list of visible widgets Previously, the following sequence: 1. Widget is hidden 2. Widget partially revealed 3. Widget fully revealed resulted in the reference count of the backing store owned by the widget's window() being incremented twice. This patch replaces the simple reference count with a QSet which stores pointers to the native widgets which are descendents of the backing store owner, and which are currently visible. The sequence above therefore results in just a single insertion at step (2), with step (3) having no effect on the backing store. The QRefCountedWidgetBackingStore class has been renamed QWidgetBackingStoreTracker to better reflect its purpose. Task-number: QTBUG-12800 Task-number: QTBUG-12817 Reviewed-by: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 11 +++---- src/gui/kernel/qwidget.cpp | 61 +++++++++++++++++++++++++++---------- src/gui/kernel/qwidget_p.h | 17 ++++++----- 3 files changed, 58 insertions(+), 31 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 559bb6a..df93bc5 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1926,27 +1926,24 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent QWidget *const window = w->window(); if (!window->d_func()->maybeTopData()) break; - QRefCountedWidgetBackingStore &backingStore = window->d_func()->maybeTopData()->backingStore; + QWidgetBackingStoreTracker &backingStore = window->d_func()->maybeTopData()->backingStore; if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) { #ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS S60->wsSession().SendEffectCommand(ETfxCmdDeallocateLayer); #endif - // Decrement backing store reference count - backingStore.deref(); + backingStore.unregisterWidget(w); // In order to ensure that any resources used by the window surface // are immediately freed, we flush the WSERV command buffer. S60->wsSession().Flush(); } else if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible) { if (backingStore.data()) { - // Increment backing store reference count - backingStore.ref(); + backingStore.registerWidget(w); } else { #ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS S60->wsSession().SendEffectCommand(ETfxCmdRestoreLayer); #endif - // Create backing store with an initial reference count of 1 backingStore.create(window); - backingStore.ref(); + backingStore.registerWidget(w); w->d_func()->invalidateBuffer(w->rect()); w->repaint(); } diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index aaa29a1..dad4848 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -162,47 +162,76 @@ static inline bool hasBackingStoreSupport() extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); // qapplication.cpp extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp +/*! + \internal + \class QWidgetBackingStoreTracker + \brief Class which allows tracking of which widgets are using a given backing store -QRefCountedWidgetBackingStore::QRefCountedWidgetBackingStore() + QWidgetBackingStoreTracker is a thin wrapper around a QWidgetBackingStore pointer, + which maintains a list of the QWidgets which are currently using the backing + store. This list is modified via the registerWidget and unregisterWidget functions. + */ + +QWidgetBackingStoreTracker::QWidgetBackingStoreTracker() : m_ptr(0) - , m_count(0) { } -QRefCountedWidgetBackingStore::~QRefCountedWidgetBackingStore() +QWidgetBackingStoreTracker::~QWidgetBackingStoreTracker() { delete m_ptr; } -void QRefCountedWidgetBackingStore::create(QWidget *widget) +/*! + \internal + Destroy the contained QWidgetBackingStore, if not null, and clear the list of + widgets using the backing store, then create a new QWidgetBackingStore, providing + the QWidget. + */ +void QWidgetBackingStoreTracker::create(QWidget *widget) { destroy(); m_ptr = new QWidgetBackingStore(widget); - m_count = 0; } -void QRefCountedWidgetBackingStore::destroy() +/*! + \internal + Destroy the contained QWidgetBackingStore, if not null, and clear the list of + widgets using the backing store. + */ +void QWidgetBackingStoreTracker::destroy() { delete m_ptr; m_ptr = 0; - m_count = 0; + m_widgets.clear(); } -void QRefCountedWidgetBackingStore::ref() +/*! + \internal + Add the widget to the list of widgets currently using the backing store. + If the widget was already in the list, this function is a no-op. + */ +void QWidgetBackingStoreTracker::registerWidget(QWidget *w) { Q_ASSERT(m_ptr); - ++m_count; + Q_ASSERT(w->internalWinId()); + Q_ASSERT(qt_widget_private(w)->maybeBackingStore() == m_ptr); + m_widgets.insert(w); } -void QRefCountedWidgetBackingStore::deref() +/*! + \internal + Remove the widget from the list of widgets currently using the backing store. + If the widget was in the list, and removing it causes the list to be empty, + the backing store is deleted. + If the widget was not in the list, this function is a no-op. + */ +void QWidgetBackingStoreTracker::unregisterWidget(QWidget *w) { - if (m_count) { - Q_ASSERT(m_ptr); - if (0 == --m_count) { - delete m_ptr; - m_ptr = 0; - } + if (m_widgets.remove(w) && m_widgets.isEmpty()) { + delete m_ptr; + m_ptr = 0; } } diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 587d7fb..4a79dc7 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -110,17 +110,18 @@ class QWidgetItemV2; class QStyle; -class Q_AUTOTEST_EXPORT QRefCountedWidgetBackingStore +class Q_AUTOTEST_EXPORT QWidgetBackingStoreTracker { + public: - QRefCountedWidgetBackingStore(); - ~QRefCountedWidgetBackingStore(); + QWidgetBackingStoreTracker(); + ~QWidgetBackingStoreTracker(); void create(QWidget *tlw); void destroy(); - void ref(); - void deref(); + void registerWidget(QWidget *w); + void unregisterWidget(QWidget *w); inline QWidgetBackingStore* data() { @@ -143,11 +144,11 @@ public: } private: - Q_DISABLE_COPY(QRefCountedWidgetBackingStore) + Q_DISABLE_COPY(QWidgetBackingStoreTracker) private: QWidgetBackingStore* m_ptr; - int m_count; + QSet m_widgets; }; struct QTLWExtra { @@ -156,7 +157,7 @@ struct QTLWExtra { // Regular pointers (keep them together to avoid gaps on 64 bits architectures). QIcon *icon; // widget icon QPixmap *iconPixmap; - QRefCountedWidgetBackingStore backingStore; + QWidgetBackingStoreTracker backingStore; QWindowSurface *windowSurface; QPainter *sharedPainter; -- cgit v0.12 From ea85300f6456ef1bd9702296f3068edf0795736e Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 17 Aug 2010 16:05:01 +0100 Subject: Refactored handling of window visibility events on Symbian Task-number: QTBUG-12817 Reviewed-by: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 62 +++++++++++++++++++++---------------- src/gui/kernel/qt_s60_p.h | 1 + 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index df93bc5..670bf34 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -135,6 +135,38 @@ void QS60Data::setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, boo } #endif +void QS60Data::controlVisibilityChanged(CCoeControl *control, bool visible) +{ + if (QWidgetPrivate::mapper && QWidgetPrivate::mapper->contains(control)) { + QWidget *const widget = QWidgetPrivate::mapper->value(control); + QWidget *const window = widget->window(); + if (QTLWExtra *topData = qt_widget_private(window)->maybeTopData()) { + QWidgetBackingStoreTracker &backingStore = topData->backingStore; + if (visible) { + if (backingStore.data()) { + backingStore.registerWidget(widget); + } else { +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + S60->wsSession().SendEffectCommand(ETfxCmdRestoreLayer); +#endif + backingStore.create(window); + backingStore.registerWidget(widget); + qt_widget_private(widget)->invalidateBuffer(widget->rect()); + widget->repaint(); + } + } else { +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS + S60->wsSession().SendEffectCommand(ETfxCmdDeallocateLayer); +#endif + backingStore.unregisterWidget(widget); + // In order to ensure that any resources used by the window surface + // are immediately freed, we flush the WSERV command buffer. + S60->wsSession().Flush(); + } + } + } +} + bool qt_nograb() // application no-grab option { #if defined(QT_DEBUG) @@ -1922,32 +1954,10 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent if (callSymbianEventFilters(symbianEvent)) return 1; const TWsVisibilityChangedEvent *visChangedEvent = event->VisibilityChanged(); - QWidget *w = QWidgetPrivate::mapper->value(control); - QWidget *const window = w->window(); - if (!window->d_func()->maybeTopData()) - break; - QWidgetBackingStoreTracker &backingStore = window->d_func()->maybeTopData()->backingStore; - if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) { -#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS - S60->wsSession().SendEffectCommand(ETfxCmdDeallocateLayer); -#endif - backingStore.unregisterWidget(w); - // In order to ensure that any resources used by the window surface - // are immediately freed, we flush the WSERV command buffer. - S60->wsSession().Flush(); - } else if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible) { - if (backingStore.data()) { - backingStore.registerWidget(w); - } else { -#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS - S60->wsSession().SendEffectCommand(ETfxCmdRestoreLayer); -#endif - backingStore.create(window); - backingStore.registerWidget(w); - w->d_func()->invalidateBuffer(w->rect()); - w->repaint(); - } - } + if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) + S60->controlVisibilityChanged(control, false); + else if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible) + S60->controlVisibilityChanged(control, true); return 1; } break; diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index a18ea07..ad6a99a 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -164,6 +164,7 @@ public: static inline CEikButtonGroupContainer* buttonGroupContainer(); static void setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, bool buttonGroupVisible); #endif + static void controlVisibilityChanged(CCoeControl *control, bool visible); #ifdef Q_OS_SYMBIAN TTrapHandler *s60InstalledTrapHandler; -- cgit v0.12 From 3ae514c6cd55cb0f63eea13c9d23593db38beee8 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 18 Aug 2010 11:37:05 +0200 Subject: unbreak qmake autotest ok, that was a rather obvious braindamage ... :} --- tests/auto/qmake/tst_qmake.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/auto/qmake/tst_qmake.cpp b/tests/auto/qmake/tst_qmake.cpp index 825e49b..1a3f843 100644 --- a/tests/auto/qmake/tst_qmake.cpp +++ b/tests/auto/qmake/tst_qmake.cpp @@ -482,14 +482,14 @@ void tst_qmake::substitutes() { QString workDir = base_path + "/testdata/substitutes"; QVERIFY( test_compiler.qmake( workDir, "test" )); - QVERIFY( test_compiler.exists( workDir, "test", Exe, "1.0.0" )); - //QVERIFY( test_compiler.exists( workDir, "sub/test2", Exe, "1.0.0" )); + QVERIFY( test_compiler.exists( workDir, "test", Plain, "" )); + //QVERIFY( test_compiler.exists( workDir, "sub/test2", Plain, "" )); QVERIFY( test_compiler.makeDistClean( workDir )); QString buildDir = base_path + "/testdata/substitutes_build"; QVERIFY( test_compiler.qmake( workDir, "test", buildDir )); - QVERIFY( test_compiler.exists( buildDir, "test", Exe, "1.0.0" )); - //QVERIFY( test_compiler.exists( buildDir, "sub/test2", Exe, "1.0.0" )); + QVERIFY( test_compiler.exists( buildDir, "test", Plain, "" )); + //QVERIFY( test_compiler.exists( buildDir, "sub/test2", Plain, "" )); QVERIFY( test_compiler.makeDistClean( buildDir )); } -- cgit v0.12 From 3e4f85dbbdb8b8a62e33f8680b0cc87ce2ed9e7e Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 18 Aug 2010 10:00:48 +0200 Subject: respect the layout direction in the default text option This fixes a regression against 4.6 where setting the default layout direction for rich text got ignored Task-number: QT-3566 Reviewed-by: Jiang Jiang --- src/gui/text/qtextobject.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/text/qtextobject.cpp b/src/gui/text/qtextobject.cpp index 5fb3384..d25fb05 100644 --- a/src/gui/text/qtextobject.cpp +++ b/src/gui/text/qtextobject.cpp @@ -1156,6 +1156,10 @@ Qt::LayoutDirection QTextBlock::textDirection() const if (dir != Qt::LayoutDirectionAuto) return dir; + dir = p->defaultTextOption.textDirection(); + if (dir != Qt::LayoutDirectionAuto) + return dir; + const QString buffer = p->buffer(); const int pos = position(); -- cgit v0.12 From bc1c472967c78579178cf7e98ab999842fee3102 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 11 Aug 2010 12:58:29 +0100 Subject: Ensure native window is considered invisible when it gets destroyed The lifetime of the backing store depends, on Symbian, on the visibility of the native windows which are rendering from it. Specifically, once all such windows (i.e. the TLW window and those of any native widget descendents) have become invisible, the backing store is deleted. During re-parenting of a visible native child widget from parent1 to parent2, the following events occur: 1. QWidget::hide() is called on the child 2. The child widget's native control is deleted 3. A new native control is created, with its parent set as parent2->window()->effectiveWinId() Because there is no yield to the event loop between (1) and (2), the application does not receive a 'window hidden' notification as a result of the call to hide(). This means that the child widget is not removed from the list of visible widgets held in the backing store of parent1->window(). This patch ensures that the child is removed from this list during between steps (1) and (2). Task-number: QTBUG-12406 Task-number: QTBUG-12817 Reviewed-by: Jason Barron --- src/gui/kernel/qwidget_s60.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 56349ad..319f330 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -684,6 +684,12 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f) QSymbianControl *old_winid = static_cast(wasCreated ? data.winid : 0); if ((q->windowType() == Qt::Desktop)) old_winid = 0; + + // old_winid may not have received a 'not visible' visibility + // changed event before being destroyed; make sure that it is + // removed from the backing store's list of visible windows. + S60->controlVisibilityChanged(old_winid, false); + setWinId(0); // hide and reparent our own window away. Otherwise we might get -- cgit v0.12 From 0129e6e48613378a1a5548b2744ec7f9ae0d9961 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 17 Aug 2010 16:08:02 +0100 Subject: Removed QEXPECT_FAIL macros for test case which now passes Task-number: QTBUG-12406 Reviewed-by: Jason Barron --- tests/auto/qwidget/tst_qwidget.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index ba0be3e..ef05b91 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -9742,7 +9742,6 @@ void tst_QWidget::destroyBackingStoreWhenHidden() QVERIFY(0 != backingStore(child)); // Parent is obscured, therefore its backing store should be destroyed - QEXPECT_FAIL("", "QTBUG-12406", Continue); QVERIFY(0 == backingStore(parent)); // Disable full screen -- cgit v0.12 From bc0328e334f456c789a18eb254af4427ea730187 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 18 Aug 2010 13:31:55 +0200 Subject: qdoc: Reorganized the QML elements table to be a dictionary... ...and a set of functional group pages. --- tools/qdoc3/htmlgenerator.cpp | 107 +++++++++++++++++++++++++++++------------- tools/qdoc3/node.cpp | 23 ++++++++- 2 files changed, 95 insertions(+), 35 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 50f8b56..8215ddc 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4422,57 +4422,98 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, return true; if (node->access() == Node::Private) return false; - if (!node->isInnerNode()) - return false; + QString t; + QString url = PageGenerator::fileName(node); QString title; QString rawTitle; QString fullTitle; - const InnerNode* inner = static_cast(node); - - writer.writeStartElement("page"); + QStringList pageWords; QXmlStreamAttributes attributes; - QString t; + + writer.writeStartElement("page"); t.setNum(id++); - switch (node->type()) { - case Node::Fake: - { - const FakeNode* fake = static_cast(node); - title = fake->fullTitle(); - break; - } - case Node::Class: - { - title = node->name() + " Class Reference"; + + if (node->isInnerNode()) { + const InnerNode* inner = static_cast(node); + switch (node->type()) { + case Node::Fake: + { + const FakeNode* fake = static_cast(node); + title = fake->fullTitle(); + pageWords << title; + break; + } + case Node::Class: + { + title = node->name() + " Class Reference"; + pageWords << node->name() << "class" << "reference"; + break; + } + case Node::Namespace: + { + rawTitle = marker->plainName(inner); + fullTitle = marker->plainFullName(inner); + title = rawTitle + " Namespace Reference"; + pageWords << rawTitle << "namespace" << "reference"; + break; + } + default: + title = node->name(); + pageWords << title; break; } - case Node::Namespace: - { - rawTitle = marker->plainName(inner); - fullTitle = marker->plainFullName(inner); - title = rawTitle + " Namespace Reference"; + + if (!inner->pageKeywords().isEmpty()) + pageWords << inner->pageKeywords(); + } + else { + switch (node->type()) { + case Node::Enum: + { + title = node->name() + " Enum Reference"; + pageWords << node->name() << "enum" << "type"; + url += "#" + node->name() + "-enum"; + break; + } + case Node::Function: + { + title = node->name() + " Function Reference"; + pageWords << node->name() << "function"; + url += "#" + node->name(); + break; + } + case Node::Property: + { + title = node->name() + " Property Reference"; + pageWords << node->name() << "property"; + url += "#" + node->name() + "-prop"; + break; + } + case Node::Typedef: + { + title = node->name() + " Type Reference"; + pageWords << node->name() << "typedef" << "type"; + url += "#" + node->name(); + break; + } + default: + title = node->name(); + pageWords << title; break; } - default: - title = node->name(); - break; } + writer.writeAttribute("id",t); writer.writeStartElement("pageWords"); - writer.writeCharacters(title); - if (!inner->pageKeywords().isEmpty()) { - const QStringList& w = inner->pageKeywords(); - for (int i = 0; i < w.size(); ++i) { - writer.writeCharacters(" "); - writer.writeCharacters(w.at(i).toLocal8Bit().constData()); - } - } + writer.writeCharacters(pageWords.join(" ")); + writer.writeEndElement(); writer.writeStartElement("pageTitle"); writer.writeCharacters(title); writer.writeEndElement(); writer.writeStartElement("pageUrl"); - writer.writeCharacters(PageGenerator::fileName(node)); + writer.writeCharacters(url); writer.writeEndElement(); writer.writeStartElement("pageType"); switch (node->pageType()) { diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index 259641e..41f90d5 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -652,8 +652,14 @@ NodeList InnerNode::overloads(const QString &funcName) const InnerNode::InnerNode(Type type, InnerNode *parent, const QString& name) : Node(type, parent, name) { - if (type == Class) + switch (type) { + case Class: + case Namespace: setPageType(ApiPage); + break; + default: + break; + } } /*! @@ -845,6 +851,19 @@ bool LeafNode::isInnerNode() const LeafNode::LeafNode(Type type, InnerNode *parent, const QString& name) : Node(type, parent, name) { + switch (type) { + case Enum: + case Function: + case Typedef: + case Variable: + case QmlProperty: + case QmlSignal: + case QmlMethod: + setPageType(ApiPage); + break; + default: + break; + } } /*! @@ -1600,7 +1619,7 @@ QmlPropertyNode::QmlPropertyNode(QmlPropGroupNode *parent, des(Trool_Default), att(attached) { - // nothing. + setPageType(ApiPage); } /*! -- cgit v0.12 From ccb77caba466fe0e4d28a809129513cefdbd5575 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Wed, 18 Aug 2010 13:37:21 +0200 Subject: Doc: Fixing overlapping text in header list --- doc/src/template/style/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css index 190c60a..6f2bdce 100755 --- a/doc/src/template/style/style.css +++ b/doc/src/template/style/style.css @@ -388,9 +388,9 @@ .shortCut-topleft-inactive { padding-left: 3px; + padding-right: 3px; background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px; height: 20px; - width: 47px; } .shortCut-topleft-inactive span { -- cgit v0.12 From 3014b427aa8700890f9bd8ea2a0300fc152bf3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 18 Aug 2010 17:06:19 +0200 Subject: Revert "Outline / fill inconsistency in X11 paint engine." This reverts commit ff405f5623d7ed18c881c097368e3e9afd2e9443. Reviewed-by: Trond --- src/gui/painting/qpaintengine_x11.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp index 5307142..e521e01 100644 --- a/src/gui/painting/qpaintengine_x11.cpp +++ b/src/gui/painting/qpaintengine_x11.cpp @@ -1516,8 +1516,8 @@ void QX11PaintEnginePrivate::fillPolygon_translated(const QPointF *polygonPoints for (int i = 0; i < pointCount; ++i) { translated_points[i] = polygonPoints[i] + offset; - translated_points[i].rx() = qFloor(translated_points[i].x()) + offs; - translated_points[i].ry() = qFloor(translated_points[i].y()) + offs; + translated_points[i].rx() = qRound(translated_points[i].x()) + offs; + translated_points[i].ry() = qRound(translated_points[i].y()) + offs; } fillPolygon_dev(translated_points.data(), pointCount, gcMode, mode); @@ -1754,8 +1754,8 @@ void QX11PaintEnginePrivate::fillPath(const QPainterPath &path, QX11PaintEngineP for (int j = 0; j < polys.at(i).size(); ++j) { translated_points[j] = polys.at(i).at(j); if (!X11->use_xrender || !(render_hints & QPainter::Antialiasing)) { - translated_points[j].rx() = qFloor(translated_points[j].rx() + aliasedCoordinateDelta) + offs; - translated_points[j].ry() = qFloor(translated_points[j].ry() + aliasedCoordinateDelta) + offs; + translated_points[j].rx() = qRound(translated_points[j].rx() + aliasedCoordinateDelta) + offs; + translated_points[j].ry() = qRound(translated_points[j].ry() + aliasedCoordinateDelta) + offs; } } -- cgit v0.12 From 041a68007413a20a9a9c97d0f2f04f9e03428f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 18 Aug 2010 17:17:15 +0200 Subject: Revert "Fix the rendering of lines with the X11 paint engine" This reverts commit ebbab30af417dfbf3df47dec15c0e2f8d6a30fa6, which broke fill / outline consistency, and when trying to fix that by rounding the fill the same way that broke rendering in Creator. Unfortunately the X11 paint engine is too sensitive to changes, there have already been tons of patches to make it as consistent as possible. It's simply not possible to get the same rounding for both fill and outlines and at the same time have consistency between fill and outline (no holes or fill outside the outline), while using the integer based Xlib rendering API. Hopefully in 4.8 we'll switch to raster and the X11 paint engine will be a legacy. Reviewed-by: Trond --- src/gui/painting/qpaintengine_x11.cpp | 22 ++++++------ tests/auto/qpainter/tst_qpainter.cpp | 65 ----------------------------------- 2 files changed, 12 insertions(+), 75 deletions(-) diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp index e521e01..910b2df 100644 --- a/src/gui/painting/qpaintengine_x11.cpp +++ b/src/gui/painting/qpaintengine_x11.cpp @@ -696,10 +696,11 @@ void QX11PaintEngine::drawLines(const QLine *lines, int lineCount) linef = d->matrix.map(QLineF(lines[i])); } if (clipLine(&linef, d->polygonClipper.boundingRect())) { - int x1 = qFloor(linef.x1() + aliasedCoordinateDelta); - int y1 = qFloor(linef.y1() + aliasedCoordinateDelta); - int x2 = qFloor(linef.x2() + aliasedCoordinateDelta); - int y2 = qFloor(linef.y2() + aliasedCoordinateDelta); + int x1 = qRound(linef.x1() + aliasedCoordinateDelta); + int y1 = qRound(linef.y1() + aliasedCoordinateDelta); + int x2 = qRound(linef.x2() + aliasedCoordinateDelta); + int y2 = qRound(linef.y2() + aliasedCoordinateDelta); + XDrawLine(d->dpy, d->hd, d->gc, x1, y1, x2, y2); } } @@ -729,10 +730,11 @@ void QX11PaintEngine::drawLines(const QLineF *lines, int lineCount) for (int i = 0; i < lineCount; ++i) { QLineF linef = d->matrix.map(lines[i]); if (clipLine(&linef, d->polygonClipper.boundingRect())) { - int x1 = qFloor(linef.x1() + aliasedCoordinateDelta); - int y1 = qFloor(linef.y1() + aliasedCoordinateDelta); - int x2 = qFloor(linef.x2() + aliasedCoordinateDelta); - int y2 = qFloor(linef.y2() + aliasedCoordinateDelta); + int x1 = qRound(linef.x1() + aliasedCoordinateDelta); + int y1 = qRound(linef.y1() + aliasedCoordinateDelta); + int x2 = qRound(linef.x2() + aliasedCoordinateDelta); + int y2 = qRound(linef.y2() + aliasedCoordinateDelta); + XDrawLine(d->dpy, d->hd, d->gc, x1, y1, x2, y2); } } @@ -1688,8 +1690,8 @@ void QX11PaintEnginePrivate::strokePolygon_dev(const QPointF *polygonPoints, int if (clippedCount > 0) { QVarLengthArray xpoints(clippedCount); for (int i = 0; i < clippedCount; ++i) { - xpoints[i].x = qFloor(clippedPoints[i].x + aliasedCoordinateDelta); - xpoints[i].y = qFloor(clippedPoints[i].y + aliasedCoordinateDelta); + xpoints[i].x = qRound(clippedPoints[i].x + aliasedCoordinateDelta); + xpoints[i].y = qRound(clippedPoints[i].y + aliasedCoordinateDelta); } uint numberPoints = qMin(clippedCount, xlibMaxLinePoints); XPoint *pts = xpoints.data(); diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp index 2cbb9b2..f358681 100644 --- a/tests/auto/qpainter/tst_qpainter.cpp +++ b/tests/auto/qpainter/tst_qpainter.cpp @@ -118,12 +118,10 @@ private slots: void drawLine_task190634(); void drawLine_task229459(); void drawLine_task234891(); - void drawHorizontalLineF(); void drawRect_data() { fillData(); } void drawRect(); void drawRect2(); - void drawRectFHorizontalLine(); void fillRect(); void fillRect2(); @@ -253,7 +251,6 @@ private slots: void setPenColorOnPixmap(); void QTBUG5939_attachPainterPrivate(); - void drawHorizontalLine(); private: void fillData(); @@ -1221,26 +1218,6 @@ void tst_QPainter::drawLine_task234891() QCOMPARE(expected, img); } -void tst_QPainter::drawHorizontalLineF() -{ - QPixmap pixmap(100, 3); - pixmap.fill(); - - { - QPainter painter(&pixmap); - painter.drawLine(QLineF(1.5f, 1.5f, 98.5f, 1.5f)); - } - - QImage refImage(100, 3, QImage::Format_ARGB32); - refImage.fill(0xFFFFFFFF); - { - QPainter painter(&refImage); - painter.drawLine(QLineF(1.5f, 1.5f, 98.5f, 1.5f)); - } - - QCOMPARE(pixmap.toImage().convertToFormat(QImage::Format_ARGB32), refImage); -} - void tst_QPainter::drawLine_task216948() { QImage img(1, 10, QImage::Format_ARGB32_Premultiplied); @@ -1325,26 +1302,6 @@ void tst_QPainter::drawRect2() } } -void tst_QPainter::drawRectFHorizontalLine() -{ - QPixmap pixmap(100, 3); - pixmap.fill(); - - { - QPainter painter(&pixmap); - painter.drawRect(QRectF(1.5f, 1.5f, 98.5f, 1.5f)); - } - - QImage refImage(100, 3, QImage::Format_ARGB32); - refImage.fill(0xFFFFFFFF); - { - QPainter painter(&refImage); - painter.drawRect(QRectF(1.5f, 1.5f, 98.5f, 1.5f)); - } - - QCOMPARE(pixmap.toImage().convertToFormat(QImage::Format_ARGB32), refImage); -} - void tst_QPainter::fillRect() { QImage image(100, 100, QImage::Format_ARGB32_Premultiplied); @@ -4565,28 +4522,6 @@ void tst_QPainter::QTBUG5939_attachPainterPrivate() QCOMPARE(widget->deviceTransform, proxy->deviceTransform); } -void tst_QPainter::drawHorizontalLine() -{ - QPixmap pixmap(100, 3); - pixmap.fill(); - - { - QPainter painter(&pixmap); - painter.translate(0.3, 0.3); - painter.drawLine(QLine(1, 1, 99, 1)); - } - - QImage refImage(100, 3, QImage::Format_ARGB32); - refImage.fill(0xFFFFFFFF); - { - QPainter painter(&refImage); - painter.translate(0.3, 0.3); - painter.drawLine(QLine(1, 1, 99, 1)); - } - - QCOMPARE(pixmap.toImage().convertToFormat(QImage::Format_ARGB32), refImage); -} - QTEST_MAIN(tst_QPainter) #include "tst_qpainter.moc" -- cgit v0.12 From 8e7fb343372acd0bc5fe04db7a5c5542541d4538 Mon Sep 17 00:00:00 2001 From: Carlos Manuel Duclos Vergara Date: Wed, 11 Aug 2010 15:47:40 +0200 Subject: Crash in QX11PaintEngine::drawPixmap We receive a pixmap as a const reference and then we convert it to an X11 pixmap. This conversion could fail for many reasons, however we were not looking at the result of this conversion. This patch was contributed by Christoph Feck from KDE. Task-number: QTBUG-12826 Reviewed-by: Samuel --- src/gui/painting/qpaintengine_x11.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp index 910b2df..fecf25f 100644 --- a/src/gui/painting/qpaintengine_x11.cpp +++ b/src/gui/painting/qpaintengine_x11.cpp @@ -1916,6 +1916,8 @@ void QX11PaintEngine::drawPixmap(const QRectF &r, const QPixmap &px, const QRect int sh = qRound(sr.height()); QPixmap pixmap = qt_toX11Pixmap(px); + if(pixmap.isNull()) + return; if ((d->xinfo && d->xinfo->screen() != pixmap.x11Info().screen()) || (pixmap.x11Info().screen() != DefaultScreen(X11->display))) { -- cgit v0.12 From 8dd8db250d92521fda619bdcf3e1c859b37b2da0 Mon Sep 17 00:00:00 2001 From: Carlos Manuel Duclos Vergara Date: Wed, 18 Aug 2010 17:59:04 +0200 Subject: Crash in QWidgetPrivate::init on QApplication::quit() using a modal dialog on Mac The problem was the order of deletion in the destructor. To autotest this I create an application, start a modal dialog and then quit the application. The fix was contributed by a customer. Task-number: QTBUG-12673 Reviewed-by: Olivier Goffart --- src/gui/kernel/qapplication.cpp | 24 ++++++++++++------------ tests/auto/qapplication/modal/base.cpp | 21 +++++++++++++++++++++ tests/auto/qapplication/modal/base.h | 23 +++++++++++++++++++++++ tests/auto/qapplication/modal/main.cpp | 11 +++++++++++ tests/auto/qapplication/modal/modal.pro | 8 ++++++++ tests/auto/qapplication/qapplication.pro | 1 + tests/auto/qapplication/tst_qapplication.cpp | 18 ++++++++++++++++++ 7 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 tests/auto/qapplication/modal/base.cpp create mode 100644 tests/auto/qapplication/modal/base.h create mode 100644 tests/auto/qapplication/modal/main.cpp create mode 100644 tests/auto/qapplication/modal/modal.pro diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index e164baf..3d3a749 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -1055,6 +1055,18 @@ QApplication::~QApplication() QApplicationPrivate::is_app_closing = true; QApplicationPrivate::is_app_running = false; + // delete all widgets + if (QWidgetPrivate::allWidgets) { + QWidgetSet *mySet = QWidgetPrivate::allWidgets; + QWidgetPrivate::allWidgets = 0; + for (QWidgetSet::ConstIterator it = mySet->constBegin(); it != mySet->constEnd(); ++it) { + register QWidget *w = *it; + if (!w->parent()) // window + w->destroy(true, true); + } + delete mySet; + } + delete qt_desktopWidget; qt_desktopWidget = 0; @@ -1075,18 +1087,6 @@ QApplication::~QApplication() delete QWidgetPrivate::mapper; QWidgetPrivate::mapper = 0; - // delete all widgets - if (QWidgetPrivate::allWidgets) { - QWidgetSet *mySet = QWidgetPrivate::allWidgets; - QWidgetPrivate::allWidgets = 0; - for (QWidgetSet::ConstIterator it = mySet->constBegin(); it != mySet->constEnd(); ++it) { - register QWidget *w = *it; - if (!w->parent()) // window - w->destroy(true, true); - } - delete mySet; - } - delete QApplicationPrivate::app_pal; QApplicationPrivate::app_pal = 0; delete QApplicationPrivate::sys_pal; diff --git a/tests/auto/qapplication/modal/base.cpp b/tests/auto/qapplication/modal/base.cpp new file mode 100644 index 0000000..d3a7de6 --- /dev/null +++ b/tests/auto/qapplication/modal/base.cpp @@ -0,0 +1,21 @@ +#include "base.h" + +base::base(QWidget *parent) : + QWidget(parent) +{ + m_timer = new QTimer(this); + m_modalStarted = false; + m_timer->setSingleShot(false); + connect(m_timer, SIGNAL(timeout()), this, SLOT(periodicTimer())); + m_timer->start(5000); +} + +void base::periodicTimer() +{ + if(m_modalStarted) + exit(0); + m_modalDialog = new QDialog(this); + m_modalDialog->setModal(true); + m_modalDialog->show(); + m_modalStarted = true; +} diff --git a/tests/auto/qapplication/modal/base.h b/tests/auto/qapplication/modal/base.h new file mode 100644 index 0000000..ebf1198 --- /dev/null +++ b/tests/auto/qapplication/modal/base.h @@ -0,0 +1,23 @@ +#ifndef BASE_H +#define BASE_H + +#include +#include +#include + +class base : public QWidget +{ +Q_OBJECT + QTimer *m_timer; + bool m_modalStarted; + QDialog *m_modalDialog; +public: + explicit base(QWidget *parent = 0); + +signals: + +public slots: + void periodicTimer(); +}; + +#endif // BASE_H diff --git a/tests/auto/qapplication/modal/main.cpp b/tests/auto/qapplication/modal/main.cpp new file mode 100644 index 0000000..e1d39cf --- /dev/null +++ b/tests/auto/qapplication/modal/main.cpp @@ -0,0 +1,11 @@ +#include + +#include +#include "base.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + base *b = new base(); + return app.exec(); +} diff --git a/tests/auto/qapplication/modal/modal.pro b/tests/auto/qapplication/modal/modal.pro new file mode 100644 index 0000000..836f6ff --- /dev/null +++ b/tests/auto/qapplication/modal/modal.pro @@ -0,0 +1,8 @@ +TEMPLATE = app +TARGET = +DEPENDPATH += . +INCLUDEPATH += . +SOURCES += main.cpp \ + base.cpp +DESTDIR = ./ +HEADERS += base.h diff --git a/tests/auto/qapplication/qapplication.pro b/tests/auto/qapplication/qapplication.pro index 7814ad3..becc6c6 100644 --- a/tests/auto/qapplication/qapplication.pro +++ b/tests/auto/qapplication/qapplication.pro @@ -1,6 +1,7 @@ TEMPLATE = subdirs SUBDIRS = test \ desktopsettingsaware \ + modal \ wincmdline diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp index 1a38070..91ae921 100644 --- a/tests/auto/qapplication/tst_qapplication.cpp +++ b/tests/auto/qapplication/tst_qapplication.cpp @@ -146,6 +146,7 @@ private slots: void symbianNeedForTraps(); void symbianLeaveThroughMain(); + void qtbug_12673(); }; class EventSpy : public QObject @@ -2239,6 +2240,23 @@ void tst_QApplication::symbianLeaveThroughMain() #endif } +void tst_QApplication::qtbug_12673() +{ +#ifdef Q_OS_SYMBIAN + QSKIP("This might not make sense in Symbian, but since I do not know how to test it I'll just skip it for now.", SkipAll); +#else + QProcess testProcess; + QStringList arguments; +#ifdef Q_OS_MAC + testProcess.start("modal/modal.app", arguments); +#else + testProcess.start("modal/modal", arguments); +#endif + QVERIFY(testProcess.waitForFinished(20000)); + QCOMPARE(testProcess.exitStatus(), QProcess::NormalExit); +#endif // Q_OS_SYMBIAN +} + //QTEST_APPLESS_MAIN(tst_QApplication) int main(int argc, char *argv[]) { -- cgit v0.12 From 0e443155c99a1ba9b990e7a2195132b2b8a1d36e Mon Sep 17 00:00:00 2001 From: Tuomas Suutari Date: Wed, 18 Aug 2010 12:41:24 +0200 Subject: QMake/Win32/MinGW: Fix ar script generating with absolute paths When QMake decides to use absolute path for some object file, this code used to leave the ADDMOD command out from the ar object script, which resulted in following errors from the issued "ar -M" command: Syntax error in archive script, line 2 Syntax error in archive script, line 3 etc... And the build failed in the linking phase, because the generated static library was empty. Fix this issue by prepending the file name with ADDMOD command even if the file path is absolute. Task-number: QTBUG-12959 Merge-request: 2451 Reviewed-by: Oswald Buddenhagen --- qmake/generators/win32/mingw_make.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp index 5685d6b..4717542 100644 --- a/qmake/generators/win32/mingw_make.cpp +++ b/qmake/generators/win32/mingw_make.cpp @@ -191,10 +191,7 @@ void createArObjectScriptFile(const QString &fileName, const QString &target, co QTextStream t(&file); t << "CREATE " << target << endl; for (QStringList::ConstIterator it = objList.constBegin(); it != objList.constEnd(); ++it) { - if (QDir::isRelativePath(*it)) - t << "ADDMOD " << *it << endl; - else - t << *it << endl; + t << "ADDMOD " << *it << endl; } t << "SAVE" << endl; t.flush(); -- cgit v0.12 From 4583ab15437c7744e8f08adafa1baccec238c1fa Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 18 Aug 2010 17:49:32 +0200 Subject: fix shadow builds with scratchbox seems it doesn't grok xargs -I. as some other unixes don't grok cp -s, we have two paths now ... Reviewed-by: joerg --- configure | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 7c3f9a3..bd69a0a 100755 --- a/configure +++ b/configure @@ -2414,10 +2414,15 @@ if [ "$OPT_SHADOW" = "yes" ]; then # Special case for mkspecs/features directory. # To be able to place .prf files into a shadow build directory, # we're creating links for files only. The directory structure is reproduced. - # A simple "cp -rs" doesn't work on Mac. :( rm -rf "$outpath/mkspecs/features" - find "$relpath/mkspecs/features" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p - find "$relpath/mkspecs/features" -type f | sed "s,^$relpath/,," | xargs -n 1 -I % ln -s "$relpath/%" "$outpath/%" + if [ "$UNAME_SYSTEM" = "Linux" ]; then + # This works with GNU coreutils, and is needed for ScratchBox + cp -rs "$relpath/mkspecs/features" "$outpath/mkspecs/features" + else + # A simple "cp -rs" doesn't work on Mac. :( + find "$relpath/mkspecs/features" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p + find "$relpath/mkspecs/features" -type f | sed "s,^$relpath/,," | xargs -n 1 -I % ln -s "$relpath/%" "$outpath/%" + fi # symlink the doc directory rm -rf "$outpath/doc" -- cgit v0.12 From 76d1c995e5bce542c5aa22e7bbf8a012fd5cb50e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 18 Aug 2010 11:43:23 +0200 Subject: create missing output directories for substituted files it wasn't the fault of fileFixify() after all ... Reviewed-by: joerg --- qmake/generators/makefile.cpp | 1 + tests/auto/qmake/testdata/substitutes/test.pro | 3 +-- tests/auto/qmake/tst_qmake.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 851e587..852471d 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -538,6 +538,7 @@ MakefileGenerator::init() continue; } } + mkdir(QFileInfo(out).absolutePath()); if(out.open(QFile::WriteOnly)) { v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i)); out.write(contents.toUtf8()); diff --git a/tests/auto/qmake/testdata/substitutes/test.pro b/tests/auto/qmake/testdata/substitutes/test.pro index 5bce312..ddad93f 100644 --- a/tests/auto/qmake/testdata/substitutes/test.pro +++ b/tests/auto/qmake/testdata/substitutes/test.pro @@ -1,2 +1 @@ -QMAKE_SUBSTITUTES += test.in -# doesn't work for the time being: sub/test2.in +QMAKE_SUBSTITUTES += test.in sub/test2.in diff --git a/tests/auto/qmake/tst_qmake.cpp b/tests/auto/qmake/tst_qmake.cpp index 1a3f843..060fa01 100644 --- a/tests/auto/qmake/tst_qmake.cpp +++ b/tests/auto/qmake/tst_qmake.cpp @@ -483,13 +483,13 @@ void tst_qmake::substitutes() QString workDir = base_path + "/testdata/substitutes"; QVERIFY( test_compiler.qmake( workDir, "test" )); QVERIFY( test_compiler.exists( workDir, "test", Plain, "" )); - //QVERIFY( test_compiler.exists( workDir, "sub/test2", Plain, "" )); + QVERIFY( test_compiler.exists( workDir, "sub/test2", Plain, "" )); QVERIFY( test_compiler.makeDistClean( workDir )); QString buildDir = base_path + "/testdata/substitutes_build"; QVERIFY( test_compiler.qmake( workDir, "test", buildDir )); QVERIFY( test_compiler.exists( buildDir, "test", Plain, "" )); - //QVERIFY( test_compiler.exists( buildDir, "sub/test2", Plain, "" )); + QVERIFY( test_compiler.exists( buildDir, "sub/test2", Plain, "" )); QVERIFY( test_compiler.makeDistClean( buildDir )); } -- cgit v0.12 From 2eba19cdaa859dc9b06eb12f2dea9da27b69ea74 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 18 Aug 2010 20:42:06 +0200 Subject: use intel linker and librarian with icc Reviewed-by: thiago Task-number: QTBUG-12937 --- mkspecs/win32-icc/qmake.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index 3ae18b6..2dd796d 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -50,7 +50,7 @@ QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< -QMAKE_LINK = link +QMAKE_LINK = xilink QMAKE_LFLAGS = /NOLOGO QMAKE_LFLAGS_RELEASE = QMAKE_LFLAGS_DEBUG = /DEBUG @@ -72,7 +72,7 @@ QMAKE_UIC = $$[QT_INSTALL_BINS]\\uic.exe QMAKE_IDC = $$[QT_INSTALL_BINS]\\idc.exe QMAKE_IDL = midl -QMAKE_LIB = lib /NOLOGO +QMAKE_LIB = xilib /NOLOGO QMAKE_RC = rc QMAKE_ZIP = zip -r -9 -- cgit v0.12 From bf141a24864e48e997ea3b626ad25bf5b232c2fb Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 19 Aug 2010 08:19:41 +1000 Subject: Added license headers to new files. --- tests/auto/qapplication/modal/base.cpp | 41 ++++++++++++++++++++++++++++++++++ tests/auto/qapplication/modal/base.h | 41 ++++++++++++++++++++++++++++++++++ tests/auto/qapplication/modal/main.cpp | 41 ++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) diff --git a/tests/auto/qapplication/modal/base.cpp b/tests/auto/qapplication/modal/base.cpp index d3a7de6..9022c36 100644 --- a/tests/auto/qapplication/modal/base.cpp +++ b/tests/auto/qapplication/modal/base.cpp @@ -1,3 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + #include "base.h" base::base(QWidget *parent) : diff --git a/tests/auto/qapplication/modal/base.h b/tests/auto/qapplication/modal/base.h index ebf1198..faa1765 100644 --- a/tests/auto/qapplication/modal/base.h +++ b/tests/auto/qapplication/modal/base.h @@ -1,3 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + #ifndef BASE_H #define BASE_H diff --git a/tests/auto/qapplication/modal/main.cpp b/tests/auto/qapplication/modal/main.cpp index e1d39cf..f9d8fb4 100644 --- a/tests/auto/qapplication/modal/main.cpp +++ b/tests/auto/qapplication/modal/main.cpp @@ -1,3 +1,44 @@ +/**************************************************************************** +** +** 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 #include -- cgit v0.12 From 4d1f74c9c8f26e978f4c3487f2bd8a9af219167f Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Thu, 19 Aug 2010 14:34:30 +1000 Subject: cleanup and remove __FUNCTION__, which breaks build on solaris Task-number: QTBUG-12904 --- src/plugins/bearer/connman/qconnmanengine.cpp | 4 ---- .../bearer/connman/qconnmanservice_linux.cpp | 23 ++-------------------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 3b5ae86..341f7cd 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -328,7 +328,6 @@ QString QConnmanEngine::getServiceForNetwork(const QString &netPath) void QConnmanEngine::propertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value) { Q_UNUSED(path); -// qDebug() << __FUNCTION__ << path << item << value.variant(); QMutexLocker locker(&mutex); if(item == "Services") { @@ -380,12 +379,10 @@ void QConnmanEngine::servicePropertyChangedContext(const QString &path,const QSt void QConnmanEngine::networkPropertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value) { QMutexLocker locker(&mutex); -// qDebug() << __FUNCTION__ << path << item << value.variant(); } void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const QString &item,const QDBusVariant &value) { -// qDebug() << __FUNCTION__ << devpath << item << value.variant(); QMutexLocker locker(&mutex); if(item == "Networks") { @@ -429,7 +426,6 @@ void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const Q void QConnmanEngine::technologyPropertyChangedContext(const QString & path, const QString &item, const QDBusVariant &value) { -// qDebug() << __FUNCTION__ << path << item << value.variant(); if(item == "Devices") { QDBusArgument arg = qvariant_cast(value.variant()); QStringList list = qdbus_cast(arg); diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index b15589e..3722c43 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -481,9 +481,7 @@ QVariant QConnmanProfileInterface::getProperty(const QString &property) QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); - } else { - qDebug() <<__FUNCTION__<< "Could not find" << property; - } + } return var; } @@ -522,8 +520,6 @@ QConnmanServiceInterface::~QConnmanServiceInterface() void QConnmanServiceInterface::connectNotify(const char *signal) { -// qWarning() << __FUNCTION__ << signal << this->path(); - if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { dbusConnection.connect(QLatin1String(CONNMAN_SERVICE), this->path(), @@ -569,9 +565,7 @@ QVariant QConnmanServiceInterface::getProperty(const QString &property) QVariantMap map = getProperties(); if (map.contains(property)) { var = map.value(property); - } else { -// qDebug() <<__FUNCTION__<< "Could not find" << property; - } + } return var; } @@ -1051,17 +1045,7 @@ QVariantMap QConnmanDeviceInterface::getProperties() bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVariant &value) { - -// QList args; -#ifndef QT_NO_TEXTSTREAM - qWarning() << __FUNCTION__ << name << value.variant(); -#endif -// args << qVariantFromValue(name); -// args << qVariantFromValue(value); - QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value)); -qWarning() << reply.errorMessage(); - return true; } @@ -1150,7 +1134,6 @@ bool QConnmanDeviceInterface::setEnabled(bool powered) << qVariantFromValue(QDBusVariant(powered)); QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args); - qWarning() << reply.errorMessage() << reply.errorName(); return true; } @@ -1166,8 +1149,6 @@ QConnmanDBusHelper::~QConnmanDBusHelper() void QConnmanDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var) { QDBusMessage msg = this->message(); -// qWarning() << sender(); - // qWarning() << msg.interface() << msg.path() << item << var.variant() <<"\n"; Q_EMIT propertyChangedContext(msg.path() ,item, var); } -- cgit v0.12 From 015b726aa46e774155bc13359dcd68d15df73bbd Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 19 Aug 2010 16:35:40 +1000 Subject: Without Declarative, still build and run QtDemo If declarative is configured out then QtDemo will now still build, with all declarative demos disabled. Task-number: QTBUG-12983 --- demos/qtdemo/mainwindow.h | 1 - demos/qtdemo/menumanager.cpp | 32 ++++++++++++++++++++++---------- demos/qtdemo/menumanager.h | 7 ++++++- demos/qtdemo/qtdemo.pro | 6 +++++- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/demos/qtdemo/mainwindow.h b/demos/qtdemo/mainwindow.h index e613268..b8cfda6 100644 --- a/demos/qtdemo/mainwindow.h +++ b/demos/qtdemo/mainwindow.h @@ -43,7 +43,6 @@ #define MAIN_WINDOW_H #include -#include #include class DemoTextItem; diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp index 5b851b4..f98c2fc 100644 --- a/demos/qtdemo/menumanager.cpp +++ b/demos/qtdemo/menumanager.cpp @@ -356,6 +356,7 @@ void MenuManager::launchExample(const QString &name) void MenuManager::launchQmlExample(const QString &name) { +#ifndef QT_NO_DECLARATIVE if(!qmlRoot){ exampleError(QProcess::UnknownError); return; @@ -382,6 +383,11 @@ void MenuManager::launchQmlExample(const QString &name) qmlRoot->setProperty("qmlFile", QVariant(""));//unload component qmlRoot->setProperty("show", QVariant(true)); qmlRoot->setProperty("qmlFile", QUrl::fromLocalFile(file.fileName())); +#else + QMessageBox::critical(0, tr("Failed to launch the example"), + tr("This application was built without the QtDeclarative module, and therefore declarative examples have been disabled."), + QMessageBox::Cancel); +#endif } void MenuManager::exampleFinished() @@ -427,21 +433,26 @@ void MenuManager::init(MainWindow *window) level2MenuNode = level2MenuNode.nextSibling(); } + qmlRoot = 0; +#ifndef QT_NO_DECLARATIVE // Create QML Loader declarativeEngine = new QDeclarativeEngine(this); QDeclarativeComponent component(declarativeEngine, QUrl("qrc:qml/qmlShell.qml"), this); - qmlRoot = 0; - if(component.isReady()) - qmlRoot = qobject_cast(component.create()); - else + QDeclarativeItem* qmlRootItem = 0; + if(component.isReady()){ + qmlRoot = component.create(); + qmlRootItem = qobject_cast(qmlRoot); + }else{ qDebug() << component.status() << component.errorString(); - if(qmlRoot){ - qmlRoot->setHeight(this->window->scene->sceneRect().height()); - qmlRoot->setWidth(this->window->scene->sceneRect().width()); - qmlRoot->setZValue(101);//Above other items - qmlRoot->setCursor(Qt::ArrowCursor); - window->scene->addItem(qmlRoot); + } + + if(qmlRootItem){ + qmlRootItem->setHeight(this->window->scene->sceneRect().height()); + qmlRootItem->setWidth(this->window->scene->sceneRect().width()); + qmlRootItem->setZValue(101);//Above other items + qmlRootItem->setCursor(Qt::ArrowCursor); + window->scene->addItem(qmlRootItem); //Note that QML adds key handling to the app. window->viewport()->setFocusPolicy(Qt::NoFocus);//Correct keyboard focus handling @@ -451,6 +462,7 @@ void MenuManager::init(MainWindow *window) }else{ qDebug() << "Error initializing QML subsystem, Declarative examples will not work"; } +#endif } void MenuManager::readInfoAboutExample(const QDomElement &example) diff --git a/demos/qtdemo/menumanager.h b/demos/qtdemo/menumanager.h index 5e14204..e4303c8 100644 --- a/demos/qtdemo/menumanager.h +++ b/demos/qtdemo/menumanager.h @@ -45,6 +45,9 @@ #include #include #include +#ifndef QT_NO_DECLARATIVE +#include +#endif #include "score.h" #include "textbutton.h" @@ -83,8 +86,10 @@ public: Score *score; int currentMenuCode; + QObject *qmlRoot; +#ifndef QT_NO_DECLARATIVE QDeclarativeEngine* declarativeEngine; - QDeclarativeItem *qmlRoot; +#endif private slots: void exampleFinished(); diff --git a/demos/qtdemo/qtdemo.pro b/demos/qtdemo/qtdemo.pro index 61ea376..836178b 100644 --- a/demos/qtdemo/qtdemo.pro +++ b/demos/qtdemo/qtdemo.pro @@ -6,13 +6,17 @@ DESTDIR = $$DEMO_DESTDIR/bin INSTALLS += target sources -QT += xml network declarative +QT += xml network contains(QT_CONFIG, opengl) { DEFINES += QT_OPENGL_SUPPORT QT += opengl } +contains(QT_CONFIG, declarative) { + QT += declarative +} + build_all:!build_pass { CONFIG -= build_all CONFIG += release -- cgit v0.12 From 386b4900912d8d784860e60c17838a7b61d387a5 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Thu, 19 Aug 2010 16:30:07 +1000 Subject: Fix Image element svg autotest Also, reduced some platform-specific test as the test case is not meant to test regression in the painting routines, but that Image's svg support works. Task-number: Reviewed-by: Martin Jones --- .../qdeclarativeimage/data/heart-arm.png | Bin 12596 -> 0 bytes .../qdeclarativeimage/data/heart-mac.png | Bin 12621 -> 0 bytes .../qdeclarativeimage/data/heart-win32.png | Bin 12621 -> 12457 bytes .../declarative/qdeclarativeimage/data/heart.png | Bin 12577 -> 12424 bytes .../qdeclarativeimage/data/heart200-arm.png | Bin 8063 -> 0 bytes .../qdeclarativeimage/data/heart200-mac.png | Bin 8062 -> 0 bytes .../qdeclarativeimage/data/heart200-win32.png | Bin 8062 -> 7939 bytes .../declarative/qdeclarativeimage/data/heart200.png | Bin 8063 -> 7943 bytes .../qdeclarativeimage/tst_qdeclarativeimage.cpp | 16 ++++------------ 9 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart-arm.png delete mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart-mac.png delete mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png delete mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-arm.png b/tests/auto/declarative/qdeclarativeimage/data/heart-arm.png deleted file mode 100644 index 3245027..0000000 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart-arm.png and /dev/null differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-mac.png b/tests/auto/declarative/qdeclarativeimage/data/heart-mac.png deleted file mode 100644 index d7df0e4..0000000 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart-mac.png and /dev/null differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png b/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png index 351da13..5992e79 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png and b/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart.png b/tests/auto/declarative/qdeclarativeimage/data/heart.png index 372b224..ff93f6c 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart.png and b/tests/auto/declarative/qdeclarativeimage/data/heart.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png deleted file mode 100644 index b16db76..0000000 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png and /dev/null differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png deleted file mode 100644 index df22325..0000000 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png and /dev/null differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png index 4976ff9..19b20a8 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png and b/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200.png b/tests/auto/declarative/qdeclarativeimage/data/heart200.png index 786e75d..5a31ae8 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart200.png and b/tests/auto/declarative/qdeclarativeimage/data/heart200.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp index b8d2828..0f1050e 100644 --- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp +++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp @@ -274,14 +274,10 @@ void tst_qdeclarativeimage::svg() QCOMPARE(obj->pixmap().height(), 300); QCOMPARE(obj->width(), 550.0); QCOMPARE(obj->height(), 500.0); -#if defined(Q_OS_MAC) - QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-mac.png")); +#if defined(Q_OS_LINUX) + QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart.png")); #elif defined(Q_OS_WIN32) QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-win32.png")); -#elif defined(QT_ARCH_ARM) - QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-arm.png")); -#else - QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart.png")); #endif obj->setSourceSize(QSize(200,200)); @@ -290,14 +286,10 @@ void tst_qdeclarativeimage::svg() QCOMPARE(obj->pixmap().height(), 200); QCOMPARE(obj->width(), 550.0); QCOMPARE(obj->height(), 500.0); -#if defined(Q_OS_MAC) - QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-mac.png")); +#if defined(Q_OS_LINUX) + QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200.png")); #elif defined(Q_OS_WIN32) QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-win32.png")); -#elif defined(QT_ARCH_ARM) - QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-arm.png")); -#else - QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200.png")); #endif delete obj; } -- cgit v0.12 From 91f47532111927c7b8d5cd9981ded7bc0c203d88 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 19 Aug 2010 10:04:58 +0200 Subject: qdoc3: Added more pagewords & elements to the search index. Task-nr: QTBUG-11113 --- tools/qdoc3/htmlgenerator.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 8215ddc..6fbc2a9 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4502,6 +4502,12 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, pageWords << title; break; } + + Node* parent = node->parent(); + if (parent && ((parent->type() == Node::Class) || + (parent->type() == Node::Namespace))) { + pageWords << parent->name(); + } } writer.writeAttribute("id",t); -- cgit v0.12 From f894befedf669fb864a500b0aa395157ff0fb929 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 17 Aug 2010 15:38:33 +0200 Subject: QDeclarativeImageProvider: Do not keep the global declarative mutex locked when processing. The point is to be able to process images in a thread. If the mutex is locked, this is useless. Use case is a slow QDeclarativeImageProvider that generates thumbmails from large files. Even with the asynchronous attribute set to true, the gui thread would be blocked by the mutex. By using QSharedPointer, I also fix the leak of the providers (which were not deleted) Reviewed-by: Martin Jones --- src/declarative/qml/qdeclarativeengine.cpp | 15 +-- src/declarative/qml/qdeclarativeengine_p.h | 2 +- src/declarative/qml/qdeclarativeimageprovider.cpp | 4 +- .../tst_qdeclarativeimageprovider.cpp | 105 +++++++++++++++++++-- 4 files changed, 110 insertions(+), 16 deletions(-) diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 513fc65..bc7468f 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -674,7 +674,7 @@ void QDeclarativeEngine::addImageProvider(const QString &providerId, QDeclarativ { Q_D(QDeclarativeEngine); QMutexLocker locker(&d->mutex); - d->imageProviders.insert(providerId, provider); + d->imageProviders.insert(providerId, QSharedPointer(provider)); } /*! @@ -684,7 +684,7 @@ QDeclarativeImageProvider *QDeclarativeEngine::imageProvider(const QString &prov { Q_D(const QDeclarativeEngine); QMutexLocker locker(&d->mutex); - return d->imageProviders.value(providerId); + return d->imageProviders.value(providerId).data(); } /*! @@ -698,13 +698,14 @@ void QDeclarativeEngine::removeImageProvider(const QString &providerId) { Q_D(QDeclarativeEngine); QMutexLocker locker(&d->mutex); - delete d->imageProviders.take(providerId); + d->imageProviders.take(providerId); } QDeclarativeImageProvider::ImageType QDeclarativeEnginePrivate::getImageProviderType(const QUrl &url) { QMutexLocker locker(&mutex); - QDeclarativeImageProvider *provider = imageProviders.value(url.host()); + QSharedPointer provider = imageProviders.value(url.host()); + locker.unlock(); if (provider) return provider->imageType(); return static_cast(-1); @@ -714,7 +715,8 @@ QImage QDeclarativeEnginePrivate::getImageFromProvider(const QUrl &url, QSize *s { QMutexLocker locker(&mutex); QImage image; - QDeclarativeImageProvider *provider = imageProviders.value(url.host()); + QSharedPointer provider = imageProviders.value(url.host()); + locker.unlock(); if (provider) image = provider->requestImage(url.path().mid(1), size, req_size); return image; @@ -724,7 +726,8 @@ QPixmap QDeclarativeEnginePrivate::getPixmapFromProvider(const QUrl &url, QSize { QMutexLocker locker(&mutex); QPixmap pixmap; - QDeclarativeImageProvider *provider = imageProviders.value(url.host()); + QSharedPointer provider = imageProviders.value(url.host()); + locker.unlock(); if (provider) pixmap = provider->requestPixmap(url.path().mid(1), size, req_size); return pixmap; diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h index 3b5dd5a..db2db35 100644 --- a/src/declarative/qml/qdeclarativeengine_p.h +++ b/src/declarative/qml/qdeclarativeengine_p.h @@ -232,7 +232,7 @@ public: mutable QNetworkAccessManager *networkAccessManager; mutable QDeclarativeNetworkAccessManagerFactory *networkAccessManagerFactory; - QHash imageProviders; + QHash > imageProviders; QDeclarativeImageProvider::ImageType getImageProviderType(const QUrl &url); QImage getImageFromProvider(const QUrl &url, QSize *size, const QSize& req_size); QPixmap getPixmapFromProvider(const QUrl &url, QSize *size, const QSize& req_size); diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp index ea68327..ef31be7 100644 --- a/src/declarative/qml/qdeclarativeimageprovider.cpp +++ b/src/declarative/qml/qdeclarativeimageprovider.cpp @@ -161,7 +161,9 @@ QDeclarativeImageProvider::QDeclarativeImageProvider(ImageType type) } /*! - \internal + Destroys the QDeclarativeImageProvider + + \note The destructor of your derived class need to be thread safe. */ QDeclarativeImageProvider::~QDeclarativeImageProvider() { diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp index e0b46f0..4a9224e 100644 --- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp +++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #ifdef Q_OS_SYMBIAN // In Symbian OS test data is located in applications private dir @@ -85,6 +86,8 @@ private slots: void removeProvider_data(); void removeProvider(); + void threadTest(); + private: QString newImageFileName() const; void fillRequestTestsData(const QString &id); @@ -95,9 +98,15 @@ private: class TestQImageProvider : public QDeclarativeImageProvider { public: - TestQImageProvider() - : QDeclarativeImageProvider(Image) + TestQImageProvider(bool *deleteWatch = 0) + : QDeclarativeImageProvider(Image), deleteWatch(deleteWatch) + { + } + + ~TestQImageProvider() { + if (deleteWatch) + *deleteWatch = true; } QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize) @@ -114,6 +123,8 @@ public: image = image.scaled(requestedSize); return image; } + + bool *deleteWatch; }; Q_DECLARE_METATYPE(TestQImageProvider*); @@ -121,11 +132,17 @@ Q_DECLARE_METATYPE(TestQImageProvider*); class TestQPixmapProvider : public QDeclarativeImageProvider { public: - TestQPixmapProvider() - : QDeclarativeImageProvider(Pixmap) + TestQPixmapProvider(bool *deleteWatch = 0) + : QDeclarativeImageProvider(Pixmap), deleteWatch(deleteWatch) { } + ~TestQPixmapProvider() + { + if (deleteWatch) + *deleteWatch = true; + } + QPixmap requestPixmap(const QString &id, QSize *size, const QSize& requestedSize) { if (id == QLatin1String("no-such-file.png")) @@ -140,6 +157,8 @@ public: image = image.scaled(requestedSize); return image; } + + bool *deleteWatch; }; Q_DECLARE_METATYPE(TestQPixmapProvider*); @@ -225,7 +244,9 @@ void tst_qdeclarativeimageprovider::requestImage_sync_data() void tst_qdeclarativeimageprovider::requestImage_sync() { - runTest(false, new TestQImageProvider); + bool deleteWatch = false; + runTest(false, new TestQImageProvider(&deleteWatch)); + QVERIFY(deleteWatch); } void tst_qdeclarativeimageprovider::requestImage_async_data() @@ -235,7 +256,9 @@ void tst_qdeclarativeimageprovider::requestImage_async_data() void tst_qdeclarativeimageprovider::requestImage_async() { - runTest(true, new TestQImageProvider); + bool deleteWatch = false; + runTest(true, new TestQImageProvider(&deleteWatch)); + QVERIFY(deleteWatch); } void tst_qdeclarativeimageprovider::requestPixmap_sync_data() @@ -245,13 +268,15 @@ void tst_qdeclarativeimageprovider::requestPixmap_sync_data() void tst_qdeclarativeimageprovider::requestPixmap_sync() { - runTest(false, new TestQPixmapProvider); + bool deleteWatch = false; + runTest(false, new TestQPixmapProvider(&deleteWatch)); + QVERIFY(deleteWatch); } void tst_qdeclarativeimageprovider::requestPixmap_async() { QDeclarativeEngine engine; - QDeclarativeImageProvider *provider = new TestQPixmapProvider; + QDeclarativeImageProvider *provider = new TestQPixmapProvider(); engine.addImageProvider("test", provider); QVERIFY(engine.imageProvider("test") != 0); @@ -305,6 +330,70 @@ void tst_qdeclarativeimageprovider::removeProvider() delete obj; } +class TestThreadProvider : public QDeclarativeImageProvider +{ + public: + TestThreadProvider() : QDeclarativeImageProvider(Image), ok(false) {} + + ~TestThreadProvider() {} + + QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize) + { + mutex.lock(); + if (!ok) + cond.wait(&mutex); + mutex.unlock(); + QVector v; + for (int i = 0; i < 10000; i++) + v.prepend(i); //do some computation + QImage image(50,50, QImage::Format_RGB32); + image.fill(QColor(id).rgb()); + if (size) + *size = image.size(); + if (requestedSize.isValid()) + image = image.scaled(requestedSize); + return image; + } + + QWaitCondition cond; + QMutex mutex; + bool ok; +}; + + +void tst_qdeclarativeimageprovider::threadTest() +{ + QDeclarativeEngine engine; + + TestThreadProvider *provider = new TestThreadProvider; + + engine.addImageProvider("test_thread", provider); + QVERIFY(engine.imageProvider("test_thread") != 0); + + QString componentStr = "import Qt 4.7\nItem { \n" + "Image { source: \"image://test_thread/blue\"; asynchronous: true; }\n" + "Image { source: \"image://test_thread/red\"; asynchronous: true; }\n" + "Image { source: \"image://test_thread/green\"; asynchronous: true; }\n" + "Image { source: \"image://test_thread/yellow\"; asynchronous: true; }\n" + " }"; + QDeclarativeComponent component(&engine); + component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); + QObject *obj = component.create(); + //MUST not deadlock + QVERIFY(obj != 0); + QList images = obj->findChildren(); + QCOMPARE(images.count(), 4); + QTest::qWait(100); + foreach(QDeclarativeImage *img, images) { + QCOMPARE(img->status(), QDeclarativeImage::Loading); + } + provider->ok = true; + provider->cond.wakeAll(); + foreach(QDeclarativeImage *img, images) { + TRY_WAIT(img->status() == QDeclarativeImage::Ready); + } +} + QTEST_MAIN(tst_qdeclarativeimageprovider) -- cgit v0.12 From acb18f598d96f4e193b85045a1e2d05272e4100b Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 18 Aug 2010 14:16:02 +0200 Subject: QTextCodec: fix wodring of a comment --- src/corelib/codecs/qtextcodec_symbian.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/corelib/codecs/qtextcodec_symbian.cpp b/src/corelib/codecs/qtextcodec_symbian.cpp index e4db9d7..20e0cfc 100644 --- a/src/corelib/codecs/qtextcodec_symbian.cpp +++ b/src/corelib/codecs/qtextcodec_symbian.cpp @@ -53,8 +53,10 @@ struct QSymbianCodecInitData { const char *aliases; }; -/* This table contains the known Symbian codecs aliases. It is ordered by charsetId. - It is required as symbian does not provide have aliases. +/* This table contains the known Symbian codecs aliases. + It is required because symbian does not provide aliases for codecs. + It is also faster to have a name here than asking the system. + It is ordered by charsetId to allow binary search lookup */ static const QSymbianCodecInitData codecsData[] = { { /*268439485*/ KCharacterSetIdentifierShiftJis, 17, "Shift_JIS\0MS_Kanji\0csShiftJIS\0MS_KANJI\0SJIS\0" }, -- cgit v0.12 From c0fa797ba33f0d15be1ba5d4b3587f47ccb02f0f Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 19 Aug 2010 12:47:03 +0200 Subject: qdoc3: Added more pagewords & elements to the search index. Task-nr: QTBUG-11113 --- doc/src/xml-processing/xquery-introduction.qdoc | 1 + tools/qdoc3/htmlgenerator.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/src/xml-processing/xquery-introduction.qdoc b/doc/src/xml-processing/xquery-introduction.qdoc index b79c205..b5356f7 100644 --- a/doc/src/xml-processing/xquery-introduction.qdoc +++ b/doc/src/xml-processing/xquery-introduction.qdoc @@ -29,6 +29,7 @@ \page xquery-introduction.html \title A Short Path to XQuery +\pagekeywords XPath XQuery \startpage XQuery \target XQuery-introduction diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 6fbc2a9..f3390de 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4436,6 +4436,9 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, if (node->isInnerNode()) { const InnerNode* inner = static_cast(node); + if (!inner->pageKeywords().isEmpty()) + pageWords << inner->pageKeywords(); + switch (node->type()) { case Node::Fake: { @@ -4463,9 +4466,6 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, pageWords << title; break; } - - if (!inner->pageKeywords().isEmpty()) - pageWords << inner->pageKeywords(); } else { switch (node->type()) { -- cgit v0.12 From f30adf43b9331dbf0bb3768fb7694af5bce66c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 19 Aug 2010 13:19:31 +0200 Subject: Made GL pixmap backend respect Qt::NoOpaqueDetection flag.. We don't want to do the opaque image scan when the Qt::NoOpaqueDetection flag is set. Reviewed-by: Trond --- src/opengl/qpixmapdata_gl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp index 653e805..1efd398 100644 --- a/src/opengl/qpixmapdata_gl.cpp +++ b/src/opengl/qpixmapdata_gl.cpp @@ -367,7 +367,7 @@ void QGLPixmapData::ensureCreated() const } void QGLPixmapData::fromImage(const QImage &image, - Qt::ImageConversionFlags /*flags*/) + Qt::ImageConversionFlags flags) { if (image.size() == QSize(w, h)) setSerialNumber(++qt_gl_pixmap_serial); @@ -381,7 +381,9 @@ void QGLPixmapData::fromImage(const QImage &image, if (qApp->desktop()->depth() == 16) format = QImage::Format_RGB16; - if (image.hasAlphaChannel() && const_cast(image).data_ptr()->checkForAlphaPixels()) + if (image.hasAlphaChannel() + && ((flags & Qt::NoOpaqueDetection) + || const_cast(image).data_ptr()->checkForAlphaPixels())) format = QImage::Format_ARGB32_Premultiplied;; m_source = image.convertToFormat(format); -- cgit v0.12 From d0a25e466ea0234d03caff4ab0742484c37ae39f Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 19 Aug 2010 13:58:44 +0200 Subject: doc: Removed comment about automatic inclusion of 3rd party library. It must be copied into the appliv=cation bundle automatically. --- doc/src/deployment/deployment.qdoc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc index 00771ed..f2908bd 100644 --- a/doc/src/deployment/deployment.qdoc +++ b/doc/src/deployment/deployment.qdoc @@ -1442,10 +1442,8 @@ \endlist \note If you want a 3rd party library to be included in your - application bundle, then you must add an excplicit lib entry for - that library to your application's .pro file. Otherwise, the - \c macdeployqt tool will not copy the 3rd party .dylib into the - bundle. + application bundle, then you must copy the library into the + bundle manually, after the bundle is created. \c macdeployqt supports the following options: \list -- cgit v0.12 From da005580969b2501a246027f47f75ed3ee52670e Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Thu, 19 Aug 2010 14:46:10 +0200 Subject: Fixes a regression preventing loading images without extensions Task-number: QTBUG-12560 Reviewed-by: gabi --- src/gui/image/qpixmap.cpp | 3 --- tests/auto/qpixmap/tst_qpixmap.cpp | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index ef9be8f..1c0ceff 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -830,9 +830,6 @@ bool QPixmap::load(const QString &fileName, const char *format, Qt::ImageConvers return false; QFileInfo info(fileName); - if (!info.exists()) - return false; - QString key = QLatin1Literal("qt_pixmap") % info.absoluteFilePath() % HexString(info.lastModified().toTime_t()) diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index f22edf6..e461b64 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -1673,31 +1673,39 @@ void tst_QPixmap::preserveDepth() void tst_QPixmap::loadAsBitmapOrPixmap() { QImage tmp(10, 10, QImage::Format_RGB32); - tmp.save("tmp.png"); + tmp.save("temp_image.png"); bool ok; // Check that we can load the pixmap as a pixmap and that it then turns into a pixmap - QPixmap pixmap("tmp.png"); + QPixmap pixmap("temp_image.png"); QVERIFY(!pixmap.isNull()); QVERIFY(pixmap.depth() > 1); QVERIFY(!pixmap.isQBitmap()); pixmap = QPixmap(); - ok = pixmap.load("tmp.png"); + ok = pixmap.load("temp_image.png"); + QVERIFY(ok); + QVERIFY(!pixmap.isNull()); + QVERIFY(pixmap.depth() > 1); + QVERIFY(!pixmap.isQBitmap()); + + //now we can try to load it without an extension + pixmap = QPixmap(); + ok = pixmap.load("temp_image"); QVERIFY(ok); QVERIFY(!pixmap.isNull()); QVERIFY(pixmap.depth() > 1); QVERIFY(!pixmap.isQBitmap()); // The do the same check for bitmaps.. - QBitmap bitmap("tmp.png"); + QBitmap bitmap("temp_image.png"); QVERIFY(!bitmap.isNull()); QVERIFY(bitmap.depth() == 1); QVERIFY(bitmap.isQBitmap()); bitmap = QBitmap(); - ok = bitmap.load("tmp.png"); + ok = bitmap.load("temp_image.png"); QVERIFY(ok); QVERIFY(!bitmap.isNull()); QVERIFY(bitmap.depth() == 1); -- cgit v0.12 From 1d991c8df38e0c5e75f99ad26ebcbe35ff674751 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 19 Aug 2010 15:00:22 +0200 Subject: qdoc: Added more elements to qt.pageindex Task-nr: QTBUG-11113 --- tools/qdoc3/htmlgenerator.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index f3390de..3e79a9f 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4537,6 +4537,35 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, } writer.writeEndElement(); writer.writeEndElement(); + + if (node->type() == Node::Fake && node->doc().hasTableOfContents()) { + QList toc = node->doc().tableOfContents(); + if (!toc.isEmpty()) { + for (int i = 0; i < toc.size(); ++i) { + Text headingText = Text::sectionHeading(toc.at(i)); + QString s = headingText.toString(); + writer.writeStartElement("page"); + t.setNum(id++); + QString internalUrl = url + "#" + Doc::canonicalTitle(s); + writer.writeAttribute("id",t); + writer.writeStartElement("pageWords"); + writer.writeCharacters(pageWords.join(" ")); + writer.writeCharacters(" "); + writer.writeCharacters(s); + writer.writeEndElement(); + writer.writeStartElement("pageTitle"); + writer.writeCharacters(s); + writer.writeEndElement(); + writer.writeStartElement("pageUrl"); + writer.writeCharacters(internalUrl); + writer.writeEndElement(); + writer.writeStartElement("pageType"); + writer.writeCharacters("Article"); + writer.writeEndElement(); + writer.writeEndElement(); + } + } + } return true; } -- cgit v0.12 From 76bce7b04ceaae174c8ef0db5223f2dd17d9b102 Mon Sep 17 00:00:00 2001 From: Carlos Manuel Duclos Vergara Date: Thu, 19 Aug 2010 15:03:05 +0200 Subject: Fatal crash on solaris 64 bit We use a dummy variable for a function call, and that variable is causing a data misalignment. Changing the type to long fixes the issue. According to Denis it is ok to change this for all cases. Task-number: QTBUG-12928 Reviewed-by: Denis Dzyubenko --- src/gui/kernel/qclipboard_x11.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qclipboard_x11.cpp b/src/gui/kernel/qclipboard_x11.cpp index 9fcc718..4b75f0a 100644 --- a/src/gui/kernel/qclipboard_x11.cpp +++ b/src/gui/kernel/qclipboard_x11.cpp @@ -456,7 +456,8 @@ QClipboard::QClipboard(QObject *parent) XCheckIfEvent(X11->display, &ev, &qt_init_timestamp_scanner, (XPointer)&data); if (data.timestamp == CurrentTime) { setupOwner(); - int dummy = 0; + // We need this value just for completeness, we don't use it. + long dummy = 0; Window ownerId = owner->internalWinId(); XChangeProperty(X11->display, ownerId, ATOM(CLIP_TEMPORARY), XA_INTEGER, 32, -- cgit v0.12 From 380b3dbd3ec3de31fb9be72a5cfd02543d291a62 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 18 Aug 2010 18:19:19 +0200 Subject: QDateEdit/QTimeEdit: remove duplicate properties. They were hidding QDateTimeEdit properties. (And their NOTIFY signal did not work correctly) Reviewed-by: Joao --- src/gui/widgets/qdatetimeedit.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gui/widgets/qdatetimeedit.h b/src/gui/widgets/qdatetimeedit.h index 81bbdb9..d2f315a 100644 --- a/src/gui/widgets/qdatetimeedit.h +++ b/src/gui/widgets/qdatetimeedit.h @@ -206,7 +206,6 @@ private: class Q_GUI_EXPORT QTimeEdit : public QDateTimeEdit { Q_OBJECT - Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChanged USER true) public: QTimeEdit(QWidget *parent = 0); QTimeEdit(const QTime &time, QWidget *parent = 0); @@ -215,7 +214,6 @@ public: class Q_GUI_EXPORT QDateEdit : public QDateTimeEdit { Q_OBJECT - Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged USER true) public: QDateEdit(QWidget *parent = 0); QDateEdit(const QDate &date, QWidget *parent = 0); -- cgit v0.12 From 6cf0ad80bb8a168115772aa5c3b4abec3e372ccc Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 18 Aug 2010 18:10:01 +0200 Subject: moc: Error if the NOTIFY signal is invalid. Previously, an invalid NOTIFY signal would be silently ignored. Now it throws an error Reviewed-by: Joao Task-number: QTBUG-7684 --- src/tools/moc/generator.cpp | 48 ---------------------------- src/tools/moc/moc.cpp | 58 ++++++++++++++++++++++++++++++++++ src/tools/moc/moc.h | 1 + tests/auto/moc/error-on-wrong-notify.h | 53 +++++++++++++++++++++++++++++++ tests/auto/moc/tst_moc.cpp | 22 +++++++++++++ 5 files changed, 134 insertions(+), 48 deletions(-) create mode 100644 tests/auto/moc/error-on-wrong-notify.h diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 9a982d0..c3bbba1 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -483,54 +483,6 @@ void Generator::generateFunctions(QList& list, const char *functype void Generator::generateProperties() { // - // specify get function, for compatibiliy we accept functions - // returning pointers, or const char * for QByteArray. - // - for (int i = 0; i < cdef->propertyList.count(); ++i) { - PropertyDef &p = cdef->propertyList[i]; - if (p.read.isEmpty()) - continue; - for (int j = 0; j < cdef->publicList.count(); ++j) { - const FunctionDef &f = cdef->publicList.at(j); - if (f.name != p.read) - continue; - if (!f.isConst) // get functions must be const - continue; - if (f.arguments.size()) // and must not take any arguments - continue; - PropertyDef::Specification spec = PropertyDef::ValueSpec; - QByteArray tmp = f.normalizedType; - if (p.type == "QByteArray" && tmp == "const char *") - tmp = "QByteArray"; - if (tmp.left(6) == "const ") - tmp = tmp.mid(6); - if (p.type != tmp && tmp.endsWith('*')) { - tmp.chop(1); - spec = PropertyDef::PointerSpec; - } else if (f.type.name.endsWith('&')) { // raw type, not normalized type - spec = PropertyDef::ReferenceSpec; - } - if (p.type != tmp) - continue; - p.gspec = spec; - break; - } - if(!p.notify.isEmpty()) { - int notifyId = -1; - for (int j = 0; j < cdef->signalList.count(); ++j) { - const FunctionDef &f = cdef->signalList.at(j); - if(f.name != p.notify) { - continue; - } else { - notifyId = j /* Signal indexes start from 0 */; - break; - } - } - p.notifyId = notifyId; - } - } - - // // Create meta data // diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index ac49d65..2c24165 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -727,6 +727,7 @@ void Moc::parse() error("Class declarations lacks Q_OBJECT macro."); checkSuperClasses(&def); + checkProperties(&def); classList += def; knownQObjectClasses.insert(def.classname); @@ -1312,5 +1313,62 @@ void Moc::checkSuperClasses(ClassDef *def) } } +void Moc::checkProperties(ClassDef *cdef) +{ + // + // specify get function, for compatibiliy we accept functions + // returning pointers, or const char * for QByteArray. + // + for (int i = 0; i < cdef->propertyList.count(); ++i) { + PropertyDef &p = cdef->propertyList[i]; + if (p.read.isEmpty()) + continue; + for (int j = 0; j < cdef->publicList.count(); ++j) { + const FunctionDef &f = cdef->publicList.at(j); + if (f.name != p.read) + continue; + if (!f.isConst) // get functions must be const + continue; + if (f.arguments.size()) // and must not take any arguments + continue; + PropertyDef::Specification spec = PropertyDef::ValueSpec; + QByteArray tmp = f.normalizedType; + if (p.type == "QByteArray" && tmp == "const char *") + tmp = "QByteArray"; + if (tmp.left(6) == "const ") + tmp = tmp.mid(6); + if (p.type != tmp && tmp.endsWith('*')) { + tmp.chop(1); + spec = PropertyDef::PointerSpec; + } else if (f.type.name.endsWith('&')) { // raw type, not normalized type + spec = PropertyDef::ReferenceSpec; + } + if (p.type != tmp) + continue; + p.gspec = spec; + break; + } + if(!p.notify.isEmpty()) { + int notifyId = -1; + for (int j = 0; j < cdef->signalList.count(); ++j) { + const FunctionDef &f = cdef->signalList.at(j); + if(f.name != p.notify) { + continue; + } else { + notifyId = j /* Signal indexes start from 0 */; + break; + } + } + p.notifyId = notifyId; + if (notifyId == -1) { + QByteArray msg = "NOTIFY signal '" + p.notify + "' of property '" + p.name + + "' does not exist in class " + cdef->classname + "."; + error(msg.constData()); + } + } + } +} + + QT_END_NAMESPACE diff --git a/src/tools/moc/moc.h b/src/tools/moc/moc.h index 9f349b5..5e47d9a 100644 --- a/src/tools/moc/moc.h +++ b/src/tools/moc/moc.h @@ -238,6 +238,7 @@ public: bool testFunctionAttribute(Token tok, FunctionDef *def); void checkSuperClasses(ClassDef *def); + void checkProperties(ClassDef* cdef); }; inline QByteArray noRef(const QByteArray &type) diff --git a/tests/auto/moc/error-on-wrong-notify.h b/tests/auto/moc/error-on-wrong-notify.h new file mode 100644 index 0000000..4b6284a --- /dev/null +++ b/tests/auto/moc/error-on-wrong-notify.h @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include + +class ClassWithWrongNOTIFY : public QObject +{ + Q_OBJECT + Q_PROPERTY(int foo READ foo WRITE setFoo NOTIFY fooChanged) + + int m_foo; +public: + void setFoo(int i) { m_foo = i; } + int foo() { return m_foo; } +}; + diff --git a/tests/auto/moc/tst_moc.cpp b/tests/auto/moc/tst_moc.cpp index d3a7e03..f9c3ccb 100644 --- a/tests/auto/moc/tst_moc.cpp +++ b/tests/auto/moc/tst_moc.cpp @@ -492,6 +492,7 @@ private slots: void warnOnVirtualSignal(); void QTBUG5590_dummyProperty(); void QTBUG12260_defaultTemplate(); + void notifyError(); signals: void sigWithUnsignedArg(unsigned foo); void sigWithSignedArg(signed foo); @@ -1362,6 +1363,27 @@ void tst_Moc::QTBUG12260_defaultTemplate() QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doAnotherThing(bool,bool)") != -1); } +void tst_Moc::notifyError() +{ +#ifdef MOC_CROSS_COMPILED + QSKIP("Not tested when cross-compiled", SkipAll); +#endif +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) + QProcess proc; + proc.start("moc", QStringList(srcify("error-on-wrong-notify.h"))); + QVERIFY(proc.waitForFinished()); + QCOMPARE(proc.exitCode(), 1); + QCOMPARE(proc.exitStatus(), QProcess::NormalExit); + QByteArray mocOut = proc.readAllStandardOutput(); + QVERIFY(mocOut.isEmpty()); + QString mocError = QString::fromLocal8Bit(proc.readAllStandardError()); + QCOMPARE(mocError, QString(SRCDIR) + + QString("/error-on-wrong-notify.h:52: Error: NOTIFY signal 'fooChanged' of property 'foo' does not exist in class ClassWithWrongNOTIFY.\n")); +#else + QSKIP("Only tested on linux/gcc", SkipAll); +#endif +} + QTEST_APPLESS_MAIN(tst_Moc) #include "tst_moc.moc" -- cgit v0.12 From e0e6fece5f79609a39a410044437e4d78eca56c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Trond=20Kjern=C3=A5sen?= Date: Thu, 19 Aug 2010 13:19:42 +0200 Subject: Fix an obvious bug in tst_QGL::clipTest() Reviewed-by: Samuel --- tests/auto/qgl/tst_qgl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index 7fe461c..bdff5ed 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -1835,7 +1835,7 @@ void tst_QGL::clipTest() // Sample pixels in a grid pattern which avoids false failures due to // off-by-one pixel errors on some buggy GL implementations for (int x = 2; x < reference.width(); x += 5) { - for (int y = 2; y < reference.width(); y += 5) { + for (int y = 2; y < reference.height(); y += 5) { QFUZZY_COMPARE_PIXELS(widgetFB.pixel(x, y), reference.pixel(x, y)); } } -- cgit v0.12 From ee2ff544fec7a40ff3096edc4bf7cc7ca8cfa191 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Wed, 18 Aug 2010 16:03:54 +0200 Subject: Ignore LayoutDirectionChange event in QTextControl LayoutDirectionChange should no longer affect text direction in 4.7, by ignoring this event in QTextControl, we make the behavior consistent with QLineEdit. Reviewed-by: Lars Knoll --- src/gui/text/qtextcontrol.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp index 3d34687..5fe0c0c 100644 --- a/src/gui/text/qtextcontrol.cpp +++ b/src/gui/text/qtextcontrol.cpp @@ -1101,14 +1101,6 @@ void QTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget *conte } } break; - case QEvent::LayoutDirectionChange: { - if (contextWidget) { - QTextOption opt = document()->defaultTextOption(); - opt.setTextDirection(contextWidget->layoutDirection()); - document()->setDefaultTextOption(opt); - } - } - // FALL THROUGH default: break; } -- cgit v0.12 From d31e3bd3e27e9249df451b4b2a3a3a16e9160fa4 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 19 Aug 2010 17:02:05 +0200 Subject: Remove wrong NOTIFY attribute. They where related to not unreachable signals. It would cause the compilation to break --- src/declarative/graphicsitems/qdeclarativepath_p.h | 2 +- src/declarative/util/qdeclarativeanimation_p.h | 18 +++++++++--------- src/declarative/util/qdeclarativefontloader_p.h | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativepath_p.h b/src/declarative/graphicsitems/qdeclarativepath_p.h index 5ab5cfd..195057c 100644 --- a/src/declarative/graphicsitems/qdeclarativepath_p.h +++ b/src/declarative/graphicsitems/qdeclarativepath_p.h @@ -190,7 +190,7 @@ private: class Q_AUTOTEST_EXPORT QDeclarativePathPercent : public QDeclarativePathElement { Q_OBJECT - Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed) + Q_PROPERTY(qreal value READ value WRITE setValue) public: QDeclarativePathPercent(QObject *parent=0) : QDeclarativePathElement(parent) {} diff --git a/src/declarative/util/qdeclarativeanimation_p.h b/src/declarative/util/qdeclarativeanimation_p.h index 481c36c..d15d1f6 100644 --- a/src/declarative/util/qdeclarativeanimation_p.h +++ b/src/declarative/util/qdeclarativeanimation_p.h @@ -74,7 +74,7 @@ class Q_AUTOTEST_EXPORT QDeclarativeAbstractAnimation : public QObject, public Q Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged) Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) Q_PROPERTY(bool alwaysRunToEnd READ alwaysRunToEnd WRITE setAlwaysRunToEnd NOTIFY alwaysRunToEndChanged) - Q_PROPERTY(int loops READ loops WRITE setLoops NOTIFY loopsChanged) + Q_PROPERTY(int loops READ loops WRITE setLoops NOTIFY loopCountChanged) Q_CLASSINFO("DefaultMethod", "start()") public: @@ -301,8 +301,8 @@ class Q_AUTOTEST_EXPORT QDeclarativeColorAnimation : public QDeclarativeProperty { Q_OBJECT Q_DECLARE_PRIVATE(QDeclarativePropertyAnimation) - Q_PROPERTY(QColor from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(QColor to READ to WRITE setTo NOTIFY toChanged) + Q_PROPERTY(QColor from READ from WRITE setFrom) + Q_PROPERTY(QColor to READ to WRITE setTo) public: QDeclarativeColorAnimation(QObject *parent=0); @@ -320,8 +320,8 @@ class Q_AUTOTEST_EXPORT QDeclarativeNumberAnimation : public QDeclarativePropert Q_OBJECT Q_DECLARE_PRIVATE(QDeclarativePropertyAnimation) - Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged) + Q_PROPERTY(qreal from READ from WRITE setFrom) + Q_PROPERTY(qreal to READ to WRITE setTo) public: QDeclarativeNumberAnimation(QObject *parent=0); @@ -345,8 +345,8 @@ class Q_AUTOTEST_EXPORT QDeclarativeVector3dAnimation : public QDeclarativePrope Q_OBJECT Q_DECLARE_PRIVATE(QDeclarativePropertyAnimation) - Q_PROPERTY(QVector3D from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(QVector3D to READ to WRITE setTo NOTIFY toChanged) + Q_PROPERTY(QVector3D from READ from WRITE setFrom) + Q_PROPERTY(QVector3D to READ to WRITE setTo) public: QDeclarativeVector3dAnimation(QObject *parent=0); @@ -366,8 +366,8 @@ class Q_AUTOTEST_EXPORT QDeclarativeRotationAnimation : public QDeclarativePrope Q_DECLARE_PRIVATE(QDeclarativeRotationAnimation) Q_ENUMS(RotationDirection) - Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged) - Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged) + Q_PROPERTY(qreal from READ from WRITE setFrom) + Q_PROPERTY(qreal to READ to WRITE setTo) Q_PROPERTY(RotationDirection direction READ direction WRITE setDirection NOTIFY directionChanged) public: diff --git a/src/declarative/util/qdeclarativefontloader_p.h b/src/declarative/util/qdeclarativefontloader_p.h index 6947547..a5fbb8f 100644 --- a/src/declarative/util/qdeclarativefontloader_p.h +++ b/src/declarative/util/qdeclarativefontloader_p.h @@ -60,7 +60,7 @@ class Q_AUTOTEST_EXPORT QDeclarativeFontLoader : public QObject Q_DECLARE_PRIVATE(QDeclarativeFontLoader) Q_ENUMS(Status) - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(Status status READ status NOTIFY statusChanged) -- cgit v0.12 From d30921f13dc74a3e05a3f29c0c45147823f2a064 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Thu, 19 Aug 2010 18:05:12 +0200 Subject: Fixed build issue on Solaris Task-number: QTBUG-12994 --- tests/auto/qpauseanimation/tst_qpauseanimation.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp index e473176..605cee6 100644 --- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp +++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp @@ -280,7 +280,7 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); - QCOMPARE(&animation2, group.currentAnimation()); + QCOMPARE((QAbstractAnimation*)&animation2, group.currentAnimation()); QVERIFY(animation2.state() == QAbstractAnimation::Running); QVERIFY(animation3.state() == QAbstractAnimation::Stopped); @@ -292,7 +292,7 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); QVERIFY(animation2.state() == QAbstractAnimation::Stopped); - QCOMPARE(&animation3, group.currentAnimation()); + QCOMPARE((QAbstractAnimation*)&animation3, group.currentAnimation()); QVERIFY(animation3.state() == QAbstractAnimation::Running); group.setCurrentTime(750); @@ -329,7 +329,7 @@ void tst_QPauseAnimation::sequentialGroupWithPause() QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation.state() == QAbstractAnimation::Stopped); - QCOMPARE(&pause, group.currentAnimation()); + QCOMPARE((QAbstractAnimation*)&pause, group.currentAnimation()); QVERIFY(pause.state() == QAbstractAnimation::Running); group.setCurrentTime(600); -- cgit v0.12 From ba277e9ce92dc40e648f6c83a7cd9f01dd33b886 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Thu, 19 Aug 2010 18:09:47 +0200 Subject: Fixed autotest compilation issue on solaris Task-number: QTBUG-12991 --- tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp | 8 ++++---- .../auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp | 4 ++-- tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp | 12 ++++++------ tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp | 2 +- tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp | 12 ++++++------ 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp index 5dc0c9d..fa6a5ec 100644 --- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp +++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp @@ -183,20 +183,20 @@ void tst_QGraphicsEffect::source() QGraphicsItem *item = new QGraphicsRectItem(0, 0, 10, 10); item->setGraphicsEffect(effect); QVERIFY(effect->source()); - QCOMPARE(effect->source()->graphicsItem(), item); + QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item); QVERIFY(effect->m_sourceChangedFlags & QGraphicsEffect::SourceAttached); effect->reset(); // Make sure disabling/enabling the effect doesn't change the source. effect->setEnabled(false); QVERIFY(effect->source()); - QCOMPARE(effect->source()->graphicsItem(), item); + QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item); QVERIFY(!effect->m_sourceChangedFlags); effect->reset(); effect->setEnabled(true); QVERIFY(effect->source()); - QCOMPARE(effect->source()->graphicsItem(), item); + QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item); QVERIFY(!effect->m_sourceChangedFlags); effect->reset(); @@ -210,7 +210,7 @@ void tst_QGraphicsEffect::source() item->setGraphicsEffect(effect); QPointer source = effect->source(); QVERIFY(source); - QCOMPARE(source->graphicsItem(), item); + QCOMPARE(source->graphicsItem(), (const QGraphicsItem*)item); delete item; QVERIFY(!effect); QVERIFY(!source); diff --git a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp index 49a76fa..af23b46 100644 --- a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp +++ b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp @@ -209,7 +209,7 @@ void tst_QGraphicsEffectSource::init() void tst_QGraphicsEffectSource::graphicsItem() { QVERIFY(effect->source()); - QCOMPARE(effect->source()->graphicsItem(), item); + QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item); } void tst_QGraphicsEffectSource::styleOption() @@ -237,7 +237,7 @@ void tst_QGraphicsEffectSource::isPixmap() CustomEffect *anotherEffect = new CustomEffect; pixmapItem->setGraphicsEffect(anotherEffect); QVERIFY(anotherEffect->source()); - QCOMPARE(anotherEffect->source()->graphicsItem(), static_cast(pixmapItem)); + QCOMPARE(anotherEffect->source()->graphicsItem(), static_cast(pixmapItem)); QVERIFY(anotherEffect->source()->isPixmap()); delete pixmapItem; } diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp index 6cea834..411c790 100644 --- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp +++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp @@ -788,7 +788,7 @@ void tst_QGraphicsProxyWidget::focusNextPrevChild() view.show(); QApplication::setActiveWindow(&view); QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); if (hasScene) { scene.addItem(proxy); proxy->show(); @@ -837,7 +837,7 @@ void tst_QGraphicsProxyWidget::focusOutEvent() view.setFocus(); QTest::qWaitForWindowShown(&view); QTRY_VERIFY(view.isVisible()); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); QWidget *widget = new QWidget; widget->setFocusPolicy(Qt::WheelFocus); @@ -1093,7 +1093,7 @@ void tst_QGraphicsProxyWidget::keyPressEvent() view.viewport()->setFocus(); QApplication::setActiveWindow(&view); QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; proxy->setFlag(QGraphicsItem::ItemIsFocusable, true); // ### remove me!!! @@ -1134,7 +1134,7 @@ void tst_QGraphicsProxyWidget::keyReleaseEvent() view.show(); QApplication::setActiveWindow(&view); QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; @@ -1178,7 +1178,7 @@ void tst_QGraphicsProxyWidget::mouseDoubleClickEvent() QApplication::setActiveWindow(&view); QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget; proxy->setFlag(QGraphicsItem::ItemIsFocusable, true); // ### remove me!!! @@ -3472,7 +3472,7 @@ void tst_QGraphicsProxyWidget::clickFocus() qt_x11_wait_for_window_manager(&view); #endif QApplication::setActiveWindow(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); QVERIFY(!proxy->hasFocus()); QVERIFY(!proxy->widget()->hasFocus()); diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp index 67a41ca..903977c 100644 --- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp @@ -1491,7 +1491,7 @@ void tst_QGraphicsScene::clear() scene.setItemIndexMethod(QGraphicsScene::NoIndex); scene.addItem(firstItem); scene.addItem(secondItem); - QCOMPARE(scene.items().at(0), firstItem); + QCOMPARE(scene.items().at(0), (QGraphicsItem*)firstItem); QCOMPARE(scene.items().at(1), secondItem); ClearTestItem *thirdItem = new ClearTestItem(firstItem); diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp index bda22eb..e5628d1 100644 --- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp +++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp @@ -890,7 +890,7 @@ void tst_QGraphicsWidget::initStyleOption() qt_x11_wait_for_window_manager(&view); #endif QApplication::setActiveWindow(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); view.setAlignment(Qt::AlignTop | Qt::AlignLeft); SubQGraphicsWidget *widget = new SubQGraphicsWidget; @@ -1222,7 +1222,7 @@ void tst_QGraphicsWidget::setTabOrder() qt_x11_wait_for_window_manager(&view); #endif QApplication::setActiveWindow(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); QGraphicsWidget *lastItem = 0; QTest::ignoreMessage(QtWarningMsg, "QGraphicsWidget::setTabOrder(0, 0) is undefined"); @@ -1285,7 +1285,7 @@ void tst_QGraphicsWidget::setTabOrderAndReparent() view.show(); QApplication::setActiveWindow(&view); QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); int i; QGraphicsWidget *w1, *w2, *w3, *w4; @@ -1425,7 +1425,7 @@ void tst_QGraphicsWidget::verifyFocusChain() view.show(); QApplication::setActiveWindow(&view); QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); { // parent/child focus @@ -1552,7 +1552,7 @@ void tst_QGraphicsWidget::updateFocusChainWhenChildDie() qt_x11_wait_for_window_manager(&view); #endif QApplication::setActiveWindow(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); // delete item in focus chain with no focus and verify chain SubQGraphicsWidget *parent = new SubQGraphicsWidget(0, Qt::Window); @@ -2503,7 +2503,7 @@ void tst_QGraphicsWidget::task250119_shortcutContext() view.setScene(&scene); view.show(); QApplication::setActiveWindow(&view); - QTRY_COMPARE(QApplication::activeWindow(), &view); + QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view); // *** Event: *** -- cgit v0.12 From a957ed92a61d9311ed163dba15f2b6f8d30bf03c Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 18 Aug 2010 15:36:09 +0100 Subject: Ensure geometry of top-level widget accounts for S60 screen furniture If the S60 screen furniture has already been constructed before QWidgetPrivate::show_sys() is called on a top-level widget which has Qt::WindowMaximized set (e.g. due to a showMaximized() call), its geometry is set to the full screen extent, including the regions covered by the status bar and CBA. This patch ensures that calculation of the widget geometry always takes into account the screen furniture. Task-number: QTBUG-12605 Reviewed-by: Jason Barron --- src/gui/kernel/qwidget_s60.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 319f330..7ab9fbc 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -482,14 +482,13 @@ void QWidgetPrivate::show_sys() activateSymbianWindow(); QSymbianControl *id = static_cast(q->internalWinId()); + const bool isFullscreen = q->windowState() & Qt::WindowFullScreen; #ifdef Q_WS_S60 // Lazily initialize the S60 screen furniture when the first window is shown. if (!QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes) && !S60->buttonGroupContainer() && !S60->statusPane()) { - bool isFullscreen = q->windowState() & Qt::WindowFullScreen; - if (!q->testAttribute(Qt::WA_DontShowOnScreen)) { // Create the status pane and CBA here @@ -504,23 +503,24 @@ void QWidgetPrivate::show_sys() // Can't use AppUi directly because it privately inherits from MEikStatusPaneObserver. QSymbianControl *desktopControl = static_cast(QApplication::desktop()->winId()); S60->statusPane()->SetObserver(desktopControl); - - // Hide the status pane if fullscreen OR - // Fill client area if maximized OR - // Put window below status pane unless the window has an explicit position. - if (isFullscreen) { + if (isFullscreen) S60->statusPane()->MakeVisible(false); - } else if (q->windowState() & Qt::WindowMaximized) { - TRect r = static_cast(S60->appUi())->ClientRect(); - id->SetExtent(r.iTl, r.Size()); - } else if (!q->testAttribute(Qt::WA_Moved)) { - id->SetPosition(static_cast(S60->appUi())->ClientRect().iTl); - } } } } #endif + // Fill client area if maximized OR + // Put window below status pane unless the window has an explicit position. + if (!isFullscreen) { + if (q->windowState() & Qt::WindowMaximized) { + TRect r = static_cast(S60->appUi())->ClientRect(); + id->SetExtent(r.iTl, r.Size()); + } else if (!q->testAttribute(Qt::WA_Moved)) { + id->SetPosition(static_cast(S60->appUi())->ClientRect().iTl); + } + } + id->MakeVisible(true); if(q->isWindow()) -- cgit v0.12 From f0c1beda18d79097ab85f062e9125da175ad04b8 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 19 Aug 2010 18:03:16 +1000 Subject: Add info to Loader docs about receiving signals and key events --- doc/src/snippets/declarative/loader/KeyReader.qml | 53 ++++++++++ doc/src/snippets/declarative/loader/MyItem.qml | 55 +++++++++++ .../snippets/declarative/loader/connections.qml | 57 +++++++++++ doc/src/snippets/declarative/loader/focus.qml | 62 ++++++++++++ doc/src/snippets/declarative/loader/simple.qml | 54 +++++++++++ .../graphicsitems/qdeclarativeloader.cpp | 107 +++++++++++++-------- 6 files changed, 349 insertions(+), 39 deletions(-) create mode 100644 doc/src/snippets/declarative/loader/KeyReader.qml create mode 100644 doc/src/snippets/declarative/loader/MyItem.qml create mode 100644 doc/src/snippets/declarative/loader/connections.qml create mode 100644 doc/src/snippets/declarative/loader/focus.qml create mode 100644 doc/src/snippets/declarative/loader/simple.qml diff --git a/doc/src/snippets/declarative/loader/KeyReader.qml b/doc/src/snippets/declarative/loader/KeyReader.qml new file mode 100644 index 0000000..4423ac6 --- /dev/null +++ b/doc/src/snippets/declarative/loader/KeyReader.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the 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$ +** +****************************************************************************/ +//![0] +import Qt 4.7 + +Item { + Item { + focus: true + Keys.onPressed: { + console.log("Loaded item captured:", event.text); + event.accepted = true; + } + } +} +//![0] diff --git a/doc/src/snippets/declarative/loader/MyItem.qml b/doc/src/snippets/declarative/loader/MyItem.qml new file mode 100644 index 0000000..cc69661 --- /dev/null +++ b/doc/src/snippets/declarative/loader/MyItem.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE: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$ +** +****************************************************************************/ +//![0] +import Qt 4.7 + +Rectangle { + id: myItem + signal message(string msg) + + width: 100; height: 100 + + MouseArea { + anchors.fill: parent + onClicked: myItem.message("clicked!") + } +} +//![0] diff --git a/doc/src/snippets/declarative/loader/connections.qml b/doc/src/snippets/declarative/loader/connections.qml new file mode 100644 index 0000000..babac4e --- /dev/null +++ b/doc/src/snippets/declarative/loader/connections.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE: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$ +** +****************************************************************************/ +//![0] +import Qt 4.7 + +Item { + width: 100; height: 100 + + Loader { + id: myLoader + source: "MyItem.qml" + } + + Connections { + target: myLoader.item + onMessage: console.log(msg) + } +} +//![0] diff --git a/doc/src/snippets/declarative/loader/focus.qml b/doc/src/snippets/declarative/loader/focus.qml new file mode 100644 index 0000000..464d986 --- /dev/null +++ b/doc/src/snippets/declarative/loader/focus.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE: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$ +** +****************************************************************************/ +//![0] +import Qt 4.7 + +Rectangle { + width: 200; height: 200 + + Loader { + id: loader + focus: true + } + + MouseArea { + anchors.fill: parent + onClicked: loader.source = "KeyReader.qml" + } + + Keys.onPressed: { + console.log("Captured:", event.text); + } +} +//![0] + diff --git a/doc/src/snippets/declarative/loader/simple.qml b/doc/src/snippets/declarative/loader/simple.qml new file mode 100644 index 0000000..e0dc6b3 --- /dev/null +++ b/doc/src/snippets/declarative/loader/simple.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE: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$ +** +****************************************************************************/ +//![0] +import Qt 4.7 + +Item { + width: 200; height: 200 + + Loader { id: pageLoader } + + MouseArea { + anchors.fill: parent + onClicked: pageLoader.source = "Page1.qml" + } +} +//![0] diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 4c6268f..2fde4c8 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -115,53 +115,76 @@ void QDeclarativeLoaderPrivate::initResize() \brief The Loader item allows dynamically loading an Item-based subtree from a URL or Component. - The Loader element instantiates an item from a component. The component to - be instantiated may be specified directly by the \l sourceComponent - property, or loaded from a URL via the \l source property. + Loader is used to dynamically load visual QML components. It can load a + QML file (using the \l source property) or a \l Component object (using + the \l sourceComponent property). It is useful for delaying the creation + of a component until it is required: for example, when a component should + be created on demand, or when a component should not be created + unnecessarily for performance reasons. - Loader can be used to delay the creation of a component until it - is required. For example, this loads "Page1.qml" as a component - into the Loader element, when the \l MouseArea is clicked: + Here is a Loader that loads "Page1.qml" as a component when the + \l MouseArea is clicked: - \code - import Qt 4.7 + \snippet doc/src/snippets/declarative/loader/simple.qml 0 - Item { - width: 200; height: 200 + The loaded item can be accessed using the \l item property. - MouseArea { - anchors.fill: parent - onClicked: pageLoader.source = "Page1.qml" - } + Loader is like any other visual item and must be positioned and sized + accordingly to become visible. Once the component is loaded, the Loader + is automatically resized to the size of the component. - Loader { id: pageLoader } - } - \endcode + If the \l source or \l sourceComponent changes, any previously instantiated + items are destroyed. Setting \l source to an empty string or setting + \l sourceComponent to \c undefined destroys the currently loaded item, + freeing resources and leaving the Loader empty. + + + \section2 Receiving signals from loaded items - Note that Loader is like any other graphical Item and needs to be positioned - and sized accordingly to become visible. When a component is loaded, the - Loader is automatically resized to the size of the component. + Any signals emitted from the loaded item can be received using the + \l Connections element. For example, the following \c application.qml + loads \c MyItem.qml, and is able to receive the \c message signal from + the loaded item through a \l Connections object: - If the Loader source is changed, any previous items instantiated - will be destroyed. Setting \l source to an empty string, or setting - sourceComponent to \e undefined - will destroy the currently instantiated items, freeing resources - and leaving the Loader empty. For example: + \table + \row + \o application.qml + \o MyItem.qml + \row + \o \snippet doc/src/snippets/declarative/loader/connections.qml 0 + \o \snippet doc/src/snippets/declarative/loader/MyItem.qml 0 + \endtable - \code - pageLoader.source = "" - \endcode + Alternatively, since \c MyItem.qml is loaded within the scope of the + Loader, it could also directly call any function defined in the Loader or + its parent \l Item. - or - \code - pageLoader.sourceComponent = undefined - \endcode + \section2 Focus and key events - unloads "Page1.qml" and frees resources consumed by it. + Loader is a focus scope. Its \l {Item::}{focus} property must be set to + \c true for any of its children to get the \e {active focus}. (See + \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} + for more details.) Any key events received in the loaded item should likely + also be \l {KeyEvent::}{accepted} so they are not propagated to the Loader. - Note that Loader is a focus scope. Its \c focus property must be set to \c true for any of its children - to get the \e {active focus} (see \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} for more details). + For example, the following \c application.qml loads \c KeyReader.qml when + the \l MouseArea is clicked. Notice the \l {Item::}{focus} property is + set to \c true for the Loader as well as the \l Item in the dynamically + loaded object: + + \table + \row + \o application.qml + \o KeyReader.qml + \row + \o \snippet doc/src/snippets/declarative/loader/focus.qml 0 + \o \snippet doc/src/snippets/declarative/loader/KeyReader.qml 0 + \endtable + + Once \c KeyReader.qml is loaded, it accepts key events and sets + \c event.accepted to \c true so that the event is not propagated to the + parent \l Rectangle. \sa {dynamic-object-creation}{Dynamic Object Creation} */ @@ -198,8 +221,13 @@ QDeclarativeLoader::~QDeclarativeLoader() /*! \qmlproperty url Loader::source - This property holds the URL of the QML component to - instantiate. + This property holds the URL of the QML component to instantiate. + + Note the QML component must be an \l Item-based component. Loader cannot + load non-visual components. + + To unload the currently loaded item, set this property to an empty string, + or set \l sourceComponent to \c undefined. \sa sourceComponent, status, progress */ @@ -258,7 +286,8 @@ void QDeclarativeLoader::setSource(const QUrl &url) } \endqml - Note this value must hold a \l Component object; it cannot be a \l Item. + To unload the currently loaded item, set this property to an empty string, + or set \l sourceComponent to \c undefined. \sa source, progress */ @@ -477,7 +506,7 @@ void QDeclarativeLoaderPrivate::_q_updateSize(bool loaderGeometryChanged) /*! \qmlproperty Item Loader::item - This property holds the top-level item created from source. + This property holds the top-level item that is currently loaded. */ QGraphicsObject *QDeclarativeLoader::item() const { -- cgit v0.12 From 1f515224d52c9a33b46bbf926e82d5c2df1a84e4 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Fri, 20 Aug 2010 11:10:44 +1000 Subject: Doing "import foo.qml" doesn't work in QML anymore Task-number: QTBUG-13042 --- doc/src/getting-started/gettingstartedqml.qdoc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index 885e6ce..a19d281 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -224,15 +224,13 @@ \code import Qt 4.7 \\import the main Qt QML module import "folderName" \\import the contents of the folder - import "Button.qml" \\import a QML file - import "NewButton.qml" as ButtonModule \\import a QML file and give it a name import "script.js" as Script \\import a Javascript file and name it as Script \endcode - To use the \c Button element in \c FileMenu.qml, we need to import \c Button.qml. - The syntax shown above, shows how to use the \c import keyword. However, the - \c {import Button.qml} is not necessary; qmlviewer will import all the contents - of the current directory. We can directly create a \c Button element by declaring + The syntax shown above shows how to use the \c import keyword. This is required to + use JavaScript files, or QML files that are not within the same directory. Since + \c Button.qml is in the same directory as \c FileMenu.qml, we do not need to import + the \c Button.qml file to use it. We can directly create a \c Button element by declaring \c Button{}, similar to a \c Rectangle{} declaration. \code -- cgit v0.12 From e4d89bfba06b38f32dc2ad2d8f1d474bc5477361 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 20 Aug 2010 12:29:21 +1000 Subject: just build connman and networkmanager plugins on linux --- src/plugins/bearer/bearer.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro index 6d8f7f2..bbe8ab1 100644 --- a/src/plugins/bearer/bearer.pro +++ b/src/plugins/bearer/bearer.pro @@ -5,7 +5,7 @@ contains(QT_CONFIG, dbus) { SUBDIRS += icd } else { SUBDIRS += generic - !mac:SUBDIRS += connman networkmanager + linux*:SUBDIRS += connman networkmanager } } -- cgit v0.12 From 43c2a627123d9f4a884dbe96e1ef6dbde02e50d5 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 20 Aug 2010 14:53:22 +1000 Subject: Add a quit button to declarative examples in QtDemo --- demos/qtdemo/qmlShell.qml | 58 ++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/demos/qtdemo/qmlShell.qml b/demos/qtdemo/qmlShell.qml index b5fdf39..b8a019e 100644 --- a/demos/qtdemo/qmlShell.qml +++ b/demos/qtdemo/qmlShell.qml @@ -100,6 +100,30 @@ Item { } } + Rectangle{ id: closeButton + width: 24 + height: 24 + z: 11 + border.color: "#aaaaaaaa" + gradient: Gradient{ + GradientStop{ position: 0.0; color: "#34FFFFFF" } + GradientStop{ position: 1.0; color: "#7AFFFFFF" } + } + anchors.left: frame.right + anchors.bottom: frame.top + anchors.margins: -(2*width/3) + Text{ + text: 'X' + font.bold: true + color: "white" + font.pixelSize: 12 + anchors.centerIn: parent + } + MouseArea{ + anchors.fill: parent + onClicked: main.show = false; + } + } Text{ id: errorTxt @@ -116,32 +140,6 @@ Item { onLinkActivated: Qt.openUrlExternally(link); } } - Rectangle{ - id: helpLabel - property bool timedOut: false - z: 9 - //Positioned in the top left corner - x: 8 - y: 8 - color: "white" - border.color: "black" - border.width: 1 - width: helpText.width + 16 - height: helpText.height + 8 - Text{ - id: helpText - color: "black" - anchors.centerIn: parent - text: "Click outside the example to exit it." - } - opacity: 0 - Behavior on opacity{ NumberAnimation{duration:500} } - Timer{ - id: helpTimer - interval: 5000 - onTriggered: {helpLabel.timedOut=true} - } - } Rectangle{ id: blackout //Maybe use a colorize effect instead? z: 8 anchors.fill: parent @@ -154,7 +152,6 @@ Item { hoverEnabled: main.show //To steal focus from the buttons acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton anchors.fill: parent - onClicked: main.show=false; } states: [ @@ -166,10 +163,6 @@ Item { opacity: 1 } PropertyChanges { - target: helpLabel - opacity: helpLabel.timedOut?0:1 - } - PropertyChanges { target: blackout opacity: 0.5 } @@ -178,8 +171,7 @@ Item { transitions: [//Should not be too long, because the component has already started running Transition { from: ''; to: "show"; reversible: true ParallelAnimation{ - ScriptAction{ script: {helpLabel.timedOut = false; helpTimer.restart();} } - NumberAnimation{ exclude: helpLabel; properties: "opacity"; easing.type: Easing.InQuad; duration: 500} + NumberAnimation{ properties: "opacity"; easing.type: Easing.InQuad; duration: 500} PropertyAction { target: loader; property: "focus"; value: true}//Might be needed to ensure the focus stays with us } } -- cgit v0.12 From e8141d3eff43e419f566449f42f9548ce54acf70 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Fri, 20 Aug 2010 14:09:51 +1000 Subject: Fix minehunt demo for Symbian Task-number: QTBUG-8927 Reviewed-by: Alan Alpert --- demos/declarative/minehunt/MinehuntCore/qmldir | 1 - demos/declarative/minehunt/README | 7 +- demos/declarative/minehunt/main.cpp | 70 ++++++++++++++ demos/declarative/minehunt/minehunt.cpp | 117 +--------------------- demos/declarative/minehunt/minehunt.h | 129 +++++++++++++++++++++++++ demos/declarative/minehunt/minehunt.pro | 36 ++----- doc/src/examples/qml-minehunt.qdoc | 2 +- 7 files changed, 216 insertions(+), 146 deletions(-) create mode 100644 demos/declarative/minehunt/main.cpp create mode 100644 demos/declarative/minehunt/minehunt.h diff --git a/demos/declarative/minehunt/MinehuntCore/qmldir b/demos/declarative/minehunt/MinehuntCore/qmldir index 2beccf9..81980e0 100644 --- a/demos/declarative/minehunt/MinehuntCore/qmldir +++ b/demos/declarative/minehunt/MinehuntCore/qmldir @@ -1,3 +1,2 @@ -plugin qmlminehuntplugin Explosion 1.0 Explosion.qml Tile 1.0 Tile.qml diff --git a/demos/declarative/minehunt/README b/demos/declarative/minehunt/README index b9f1d2a..3849ca5 100644 --- a/demos/declarative/minehunt/README +++ b/demos/declarative/minehunt/README @@ -1,3 +1,6 @@ -To compile the C++ part, do 'qmake && make'. Minehunt will not run properly if the C++ plugin is not compiled. +Minehunt has to be compiled to run. + +To compile the C++ part, do 'qmake && make'. +To run, simply run the executable. +To deploy on a device, do 'make sis'. -To run, simply load the minehunt.qml file with the qml runtime. diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp new file mode 100644 index 0000000..fc223dd --- /dev/null +++ b/demos/declarative/minehunt/main.cpp @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the 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 +#include +#include +#include + +#include "minehunt.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QDeclarativeView canvas; + + qmlRegisterType(); + MinehuntGame* game = new MinehuntGame(); + +#ifdef Q_OS_SYMBIAN + canvas.setResizeMode(QDeclarativeView::SizeRootObjectToView); +#endif + canvas.engine()->rootContext()->setContextObject(game); + canvas.setSource(QString("minehunt.qml")); + +#ifdef Q_OS_SYMBIAN + canvas.showFullScreen(); +#else + canvas.setGeometry(QRect(100, 100, 450, 450)); + canvas.show(); +#endif + return app.exec(); +} diff --git a/demos/declarative/minehunt/minehunt.cpp b/demos/declarative/minehunt/minehunt.cpp index 2a4ed10..9c82f30 100644 --- a/demos/declarative/minehunt/minehunt.cpp +++ b/demos/declarative/minehunt/minehunt.cpp @@ -40,99 +40,10 @@ ****************************************************************************/ #include -#include -#include -#include -#include - #include #include -class TileData : public QObject -{ - Q_OBJECT -public: - TileData() : _hasFlag(false), _hasMine(false), _hint(-1), _flipped(false) {} - - Q_PROPERTY(bool hasFlag READ hasFlag WRITE setHasFlag NOTIFY hasFlagChanged) - bool hasFlag() const { return _hasFlag; } - - Q_PROPERTY(bool hasMine READ hasMine NOTIFY hasMineChanged) - bool hasMine() const { return _hasMine; } - - Q_PROPERTY(int hint READ hint NOTIFY hintChanged) - int hint() const { return _hint; } - - Q_PROPERTY(bool flipped READ flipped NOTIFY flippedChanged()) - bool flipped() const { return _flipped; } - - void setHasFlag(bool flag) {if(flag==_hasFlag) return; _hasFlag = flag; emit hasFlagChanged();} - void setHasMine(bool mine) {if(mine==_hasMine) return; _hasMine = mine; emit hasMineChanged();} - void setHint(int hint) { if(hint == _hint) return; _hint = hint; emit hintChanged(); } - void flip() { if (_flipped) return; _flipped = true; emit flippedChanged(); } - void unflip() { if(!_flipped) return; _flipped = false; emit flippedChanged(); } - -signals: - void flippedChanged(); - void hasFlagChanged(); - void hintChanged(); - void hasMineChanged(); - -private: - bool _hasFlag; - bool _hasMine; - int _hint; - bool _flipped; -}; - -class MinehuntGame : public QObject -{ - Q_OBJECT -public: - MinehuntGame(); - - Q_PROPERTY(QDeclarativeListProperty tiles READ tiles CONSTANT) - QDeclarativeListProperty tiles(); - - Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged) - bool isPlaying() {return playing;} - - Q_PROPERTY(bool hasWon READ hasWon NOTIFY hasWonChanged) - bool hasWon() {return won;} - - Q_PROPERTY(int numMines READ numMines NOTIFY numMinesChanged) - int numMines() const{return nMines;} - - Q_PROPERTY(int numFlags READ numFlags NOTIFY numFlagsChanged) - int numFlags() const{return nFlags;} - -public slots: - Q_INVOKABLE bool flip(int row, int col); - Q_INVOKABLE bool flag(int row, int col); - void setBoard(); - void reset(); - -signals: - void isPlayingChanged(); - void hasWonChanged(); - void numMinesChanged(); - void numFlagsChanged(); - -private: - bool onBoard( int r, int c ) const { return r >= 0 && r < numRows && c >= 0 && c < numCols; } - TileData *tile( int row, int col ) { return onBoard(row, col) ? _tiles[col+numRows*row] : 0; } - int getHint(int row, int col); - void setPlaying(bool b){if(b==playing) return; playing=b; emit isPlayingChanged();} - - QList _tiles; - int numCols; - int numRows; - bool playing; - bool won; - int remaining; - int nMines; - int nFlags; -}; +#include "minehunt.h" void tilesPropAppend(QDeclarativeListProperty* prop, TileData* value) { @@ -306,29 +217,3 @@ bool MinehuntGame::flag(int row, int col) emit numFlagsChanged(); return true; } - -class MinehuntExtensionPlugin : public QDeclarativeExtensionPlugin -{ - Q_OBJECT - - public: - void registerTypes(const char *uri) { - Q_UNUSED(uri); - qmlRegisterType(); - } - - void initializeEngine(QDeclarativeEngine *engine, const char *uri) { - Q_UNUSED(uri); - - srand(QTime(0,0,0).secsTo(QTime::currentTime())); - - MinehuntGame* game = new MinehuntGame(); - - engine->rootContext()->setContextObject(game); - } -}; - -#include "minehunt.moc" - -Q_EXPORT_PLUGIN(MinehuntExtensionPlugin); - diff --git a/demos/declarative/minehunt/minehunt.h b/demos/declarative/minehunt/minehunt.h new file mode 100644 index 0000000..962cf3d --- /dev/null +++ b/demos/declarative/minehunt/minehunt.h @@ -0,0 +1,129 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include + +class TileData : public QObject +{ + Q_OBJECT +public: + TileData() : _hasFlag(false), _hasMine(false), _hint(-1), _flipped(false) {} + + Q_PROPERTY(bool hasFlag READ hasFlag WRITE setHasFlag NOTIFY hasFlagChanged) + bool hasFlag() const { return _hasFlag; } + + Q_PROPERTY(bool hasMine READ hasMine NOTIFY hasMineChanged) + bool hasMine() const { return _hasMine; } + + Q_PROPERTY(int hint READ hint NOTIFY hintChanged) + int hint() const { return _hint; } + + Q_PROPERTY(bool flipped READ flipped NOTIFY flippedChanged()) + bool flipped() const { return _flipped; } + + void setHasFlag(bool flag) {if(flag==_hasFlag) return; _hasFlag = flag; emit hasFlagChanged();} + void setHasMine(bool mine) {if(mine==_hasMine) return; _hasMine = mine; emit hasMineChanged();} + void setHint(int hint) { if(hint == _hint) return; _hint = hint; emit hintChanged(); } + void flip() { if (_flipped) return; _flipped = true; emit flippedChanged(); } + void unflip() { if(!_flipped) return; _flipped = false; emit flippedChanged(); } + +signals: + void flippedChanged(); + void hasFlagChanged(); + void hintChanged(); + void hasMineChanged(); + +private: + bool _hasFlag; + bool _hasMine; + int _hint; + bool _flipped; +}; + +class MinehuntGame : public QObject +{ + Q_OBJECT +public: + MinehuntGame(); + + Q_PROPERTY(QDeclarativeListProperty tiles READ tiles CONSTANT) + QDeclarativeListProperty tiles(); + + Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged) + bool isPlaying() {return playing;} + + Q_PROPERTY(bool hasWon READ hasWon NOTIFY hasWonChanged) + bool hasWon() {return won;} + + Q_PROPERTY(int numMines READ numMines NOTIFY numMinesChanged) + int numMines() const{return nMines;} + + Q_PROPERTY(int numFlags READ numFlags NOTIFY numFlagsChanged) + int numFlags() const{return nFlags;} + +public slots: + Q_INVOKABLE bool flip(int row, int col); + Q_INVOKABLE bool flag(int row, int col); + void setBoard(); + void reset(); + +signals: + void isPlayingChanged(); + void hasWonChanged(); + void numMinesChanged(); + void numFlagsChanged(); + +private: + bool onBoard( int r, int c ) const { return r >= 0 && r < numRows && c >= 0 && c < numCols; } + TileData *tile( int row, int col ) { return onBoard(row, col) ? _tiles[col+numRows*row] : 0; } + int getHint(int row, int col); + void setPlaying(bool b){if(b==playing) return; playing=b; emit isPlayingChanged();} + + QList _tiles; + int numCols; + int numRows; + bool playing; + bool won; + int remaining; + int nMines; + int nFlags; +}; diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro index f85afeb..1d56013 100644 --- a/demos/declarative/minehunt/minehunt.pro +++ b/demos/declarative/minehunt/minehunt.pro @@ -1,38 +1,22 @@ -TEMPLATE = lib -TARGET = qmlminehuntplugin +TEMPLATE = app +TARGET = minehunt QT += declarative CONFIG += qt plugin -TARGET = $$qtLibraryTarget($$TARGET) -DESTDIR = MinehuntCore - # Input -SOURCES += minehunt.cpp +HEADERS += minehunt.h +SOURCES += main.cpp minehunt.cpp -sources.files = minehunt.qml minehunt.pro +sources.files = minehunt.qml minehunt.pro MinehuntCore sources.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt +target.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt -target.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt/MinehuntCore - -MinehuntCore_sources.files = \ - MinehuntCore/Explosion.qml \ - MinehuntCore/Tile.qml \ - MinehuntCore/pics \ - MinehuntCore/qmldir -MinehuntCore_sources.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt/MinehuntCore - -INSTALLS = sources MinehuntCore_sources target +INSTALLS = sources target symbian:{ TARGET.EPOCALLOWDLLDATA = 1 include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) - TARGET.CAPABILITY = NetworkServices ReadUserData - importFiles.sources = MinehuntCore/qmlminehuntplugin.dll \ - MinehuntCore/Explosion.qml \ - MinehuntCore/pics \ - MinehuntCore/qmldir - importFiles.path = MinehuntCore - DEPLOYMENT = importFiles + qmlminehuntfiles.sources = MinehuntCore minehunt.qml + DEPLOYMENT = qmlminehuntfiles } - -INSTALLS = sources MinehuntCore_sources target + \ No newline at end of file diff --git a/doc/src/examples/qml-minehunt.qdoc b/doc/src/examples/qml-minehunt.qdoc index be82302..e1ff22f 100644 --- a/doc/src/examples/qml-minehunt.qdoc +++ b/doc/src/examples/qml-minehunt.qdoc @@ -30,7 +30,7 @@ \example demos/declarative/minehunt This demo shows how to create a simple Minehunt game, using QML for the - UI and a C++ plugin for the game logic. + UI and C++ for the game logic. \image qml-minehunt-demo.png */ -- cgit v0.12 From db63beeb4d421e98d851f4f837ad978e0f04d9aa Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 20 Aug 2010 15:18:43 +1000 Subject: Allow QML Quit buttons to work inside QtDemo. Also changes the line documenting the quit signal on QDeclarativeEngine. --- demos/qtdemo/menumanager.cpp | 8 ++++++++ demos/qtdemo/menumanager.h | 2 ++ demos/qtdemo/qmlShell.qml | 2 -- src/declarative/qml/qdeclarativeengine.cpp | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp index f98c2fc..4ae9ca1 100644 --- a/demos/qtdemo/menumanager.cpp +++ b/demos/qtdemo/menumanager.cpp @@ -390,6 +390,12 @@ void MenuManager::launchQmlExample(const QString &name) #endif } +void MenuManager::quitQML() +{ + if(qmlRoot) + qmlRoot->setProperty("show", QVariant(false)); +} + void MenuManager::exampleFinished() { } @@ -437,6 +443,8 @@ void MenuManager::init(MainWindow *window) #ifndef QT_NO_DECLARATIVE // Create QML Loader declarativeEngine = new QDeclarativeEngine(this); + connect(declarativeEngine, SIGNAL(quit()), + this, SLOT(quitQML())); QDeclarativeComponent component(declarativeEngine, QUrl("qrc:qml/qmlShell.qml"), this); QDeclarativeItem* qmlRootItem = 0; diff --git a/demos/qtdemo/menumanager.h b/demos/qtdemo/menumanager.h index e4303c8..93fb998 100644 --- a/demos/qtdemo/menumanager.h +++ b/demos/qtdemo/menumanager.h @@ -95,6 +95,8 @@ private slots: void exampleFinished(); void exampleError(QProcess::ProcessError error); + void quitQML(); + private: // singleton pattern: MenuManager(); diff --git a/demos/qtdemo/qmlShell.qml b/demos/qtdemo/qmlShell.qml index b8a019e..24c12ae 100644 --- a/demos/qtdemo/qmlShell.qml +++ b/demos/qtdemo/qmlShell.qml @@ -68,8 +68,6 @@ Item { loader.item.width = 640; if(loader.item.height > 480) loader.item.height = 480; - if(loader.item.inAnotherDemo != undefined) - loader.item.inAnotherDemo = true; }} } diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index bc7468f..cedf9d5 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -551,7 +551,7 @@ QDeclarativeEngine::~QDeclarativeEngine() } /*! \fn void QDeclarativeEngine::quit() - This signal is emitted when the QDeclarativeEngine quits. + This signal is emitted when the QML loaded by the engine would like to quit. */ /*! \fn void QDeclarativeEngine::warnings(const QList &warnings) -- cgit v0.12 From 917307b393e613a891fa762f70cb676e33ca68ee Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 20 Aug 2010 16:10:10 +1000 Subject: Add a menu option to open remote files in the QML viewer Task-number: QTBUG-11019 --- tools/qml/qmlruntime.cpp | 14 ++++++++++++++ tools/qml/qmlruntime.h | 1 + 2 files changed, 15 insertions(+) diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index b9fd570..321b7fd 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -85,6 +85,7 @@ #include #include #include +#include #include #include #include @@ -715,6 +716,9 @@ void QDeclarativeViewer::createMenu() openAction->setShortcuts(QKeySequence::Open); connect(openAction, SIGNAL(triggered()), this, SLOT(openFile())); + QAction *openUrlAction = new QAction(tr("Open &URL..."), this); + connect(openUrlAction, SIGNAL(triggered()), this, SLOT(openUrl())); + QAction *reloadAction = new QAction(tr("&Reload"), this); reloadAction->setShortcuts(QKeySequence::Refresh); connect(reloadAction, SIGNAL(triggered()), this, SLOT(reload())); @@ -789,6 +793,7 @@ void QDeclarativeViewer::createMenu() #if defined(Q_WS_MAEMO_5) menu->addAction(openAction); + menu->addAction(openUrlAction); menu->addAction(reloadAction); menu->addAction(snapshotAction); @@ -809,6 +814,7 @@ void QDeclarativeViewer::createMenu() QMenu *fileMenu = menu->addMenu(tr("&File")); fileMenu->addAction(openAction); + fileMenu->addAction(openUrlAction); fileMenu->addAction(reloadAction); fileMenu->addSeparator(); fileMenu->addAction(closeAction); @@ -1021,6 +1027,14 @@ void QDeclarativeViewer::openFile() } } +void QDeclarativeViewer::openUrl() +{ + QString cur = canvas->source().toLocalFile(); + QString url= QInputDialog::getText(this, tr("Open QML file"), tr("URL of main QML file:"), QLineEdit::Normal, cur); + if (!url.isEmpty()) + open(url); +} + void QDeclarativeViewer::statusChanged() { if (canvas->status() == QDeclarativeView::Error && tester) diff --git a/tools/qml/qmlruntime.h b/tools/qml/qmlruntime.h index 6fa7d81..d1ec26d 100644 --- a/tools/qml/qmlruntime.h +++ b/tools/qml/qmlruntime.h @@ -113,6 +113,7 @@ public slots: void sceneResized(QSize size); bool open(const QString&); void openFile(); + void openUrl(); void reload(); void takeSnapShot(); void toggleRecording(); -- cgit v0.12 From a68ad8cea58fd3bcbcf4ab5c6708896073c476b2 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Thu, 19 Aug 2010 22:33:31 +0300 Subject: Introduce QtOpenGL module for Symbian. Task-number: QT-2139 Reviewed-by: Gunnar Sletta --- mkspecs/common/symbian/symbian.conf | 7 +- mkspecs/features/symbian/opengl.prf | 21 ++ src/gui/kernel/qapplication_s60.cpp | 9 +- src/gui/kernel/qwidget.cpp | 13 +- src/gui/kernel/qwidget_s60.cpp | 2 +- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 16 +- src/opengl/gl2paintengineex/qtriangulator.cpp | 8 + src/opengl/opengl.pro | 28 +- src/opengl/qgl.cpp | 32 +- src/opengl/qgl_egl.cpp | 2 +- src/opengl/qgl_p.h | 9 +- src/opengl/qgl_symbian.cpp | 362 +++++++++++++++++++++ src/plugins/graphicssystems/opengl/opengl.pro | 2 + src/s60installs/qt.iby | 3 + src/s60installs/s60installs.pro | 5 + tests/auto/qgl/tst_qgl.cpp | 1 + 16 files changed, 495 insertions(+), 25 deletions(-) create mode 100644 mkspecs/features/symbian/opengl.prf create mode 100644 src/opengl/qgl_symbian.cpp diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 6d96b01..04b81b0 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -70,7 +70,12 @@ QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository QMAKE_LIBS_NETWORK = QMAKE_LIBS_EGL = -llibEGL -QMAKE_LIBS_OPENGL = +QMAKE_LIBS_OPENGL = -llibglesv2 +QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM +QMAKE_LIBS_OPENGL_ES2 = -llibglesv2 +QMAKE_LIBS_OPENGL_QT = -llibglesv2 -lcone -lws32 +QMAKE_LIBS_OPENGL_ES1_QT = -llibGLESv1_CM -lcone -lws32 +QMAKE_LIBS_OPENGL_ES2_QT = -llibglesv2 -lcone -lws32 QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi QMAKE_LIBS_THREAD = -llibpthread QMAKE_LIBS_COMPAT = diff --git a/mkspecs/features/symbian/opengl.prf b/mkspecs/features/symbian/opengl.prf new file mode 100644 index 0000000..9a8ab18 --- /dev/null +++ b/mkspecs/features/symbian/opengl.prf @@ -0,0 +1,21 @@ +contains(QT_CONFIG, opengles1) { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1 + !isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1 + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1_QT + else:LIBS += $$QMAKE_LIBS_OPENGL_ES1 +} else:contains(QT_CONFIG, opengles2) { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2 + !isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2 + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2_QT + else:LIBS += $$QMAKE_LIBS_OPENGL_ES2 +} else { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL + !isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT + else:LIBS += $$QMAKE_LIBS_OPENGL +} + +contains(QT_CONFIG, egl) { + !isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL +} + diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 670bf34..7c5e790 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1107,17 +1107,19 @@ void QSymbianControl::Draw(const TRect& controlRect) const CFbsBitmap *bitmap = s60Surface->symbianBitmap(); CWindowGc &gc = SystemGc(); - switch(qwidget->d_func()->extraData()->nativePaintMode) { + QWExtra::NativePaintMode nativePaintMode = qwidget->d_func()->extraData()->nativePaintMode; + if(qwidget->d_func()->paintOnScreen()) + nativePaintMode = QWExtra::Disable; + + switch(nativePaintMode) { case QWExtra::Disable: // Do nothing break; - case QWExtra::Blit: if (qwidget->d_func()->isOpaque) gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); gc.BitBlt(controlRect.iTl, bitmap, backingStoreRect); break; - case QWExtra::ZeroFill: if (Window().DisplayMode() == EColor16MA || Window().DisplayMode() == Q_SYMBIAN_ECOLOR16MAP) { @@ -1130,7 +1132,6 @@ void QSymbianControl::Draw(const TRect& controlRect) const gc.Clear(controlRect); }; break; - default: Q_ASSERT(false); } diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index dad4848..8b8641f 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -1274,7 +1274,16 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f) q->setAttribute(Qt::WA_WState_Hidden); //give potential windows a bigger "pre-initial" size; create_sys() will give them a new size later +#ifdef Q_OS_SYMBIAN + if(q->inherits("QGLWidget")) { + // Don't waste GPU mem for unnecessary large egl surface + data.crect = parentWidget ? QRect(0,0,2,2) : QRect(0,0,2,2); + } else { + data.crect = parentWidget ? QRect(0,0,100,30) : QRect(0,0,360,640); + } +#else data.crect = parentWidget ? QRect(0,0,100,30) : QRect(0,0,640,480); +#endif focus_next = focus_prev = q; @@ -9957,7 +9966,7 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) desktopWidget = parent; bool newParent = (parent != parentWidget()) || !wasCreated || desktopWidget; -#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) +#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_OS_SYMBIAN) if (newParent && parent && !desktopWidget) { if (testAttribute(Qt::WA_NativeWindow) && !qApp->testAttribute(Qt::AA_DontCreateNativeWidgetSiblings)) parent->d_func()->enforceNativeChildren(); @@ -10611,7 +10620,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) } case Qt::WA_PaintOnScreen: d->updateIsOpaque(); -#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_MAC) +#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_OS_SYMBIAN) // Recreate the widget if it's already created as an alien widget and // WA_PaintOnScreen is enabled. Paint on screen widgets must have win id. // So must their children. diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 7ab9fbc..7494f92 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -486,7 +486,7 @@ void QWidgetPrivate::show_sys() #ifdef Q_WS_S60 // Lazily initialize the S60 screen furniture when the first window is shown. - if (!QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes) + if (q->isWindow() && !QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes) && !S60->buttonGroupContainer() && !S60->statusPane()) { if (!q->testAttribute(Qt::WA_DontShowOnScreen)) { diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index d3f6a29..18192e3 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -90,7 +90,10 @@ QT_BEGIN_NAMESPACE -//#define QT_GL_NO_SCISSOR_TEST +#if defined(Q_OS_SYMBIAN) +#define QT_GL_NO_SCISSOR_TEST +#endif + #if defined(Q_WS_WIN) extern Q_GUI_EXPORT bool qt_cleartype_enabled; #endif @@ -374,12 +377,12 @@ void QGL2PaintEngineExPrivate::updateMatrix() dx = ceilf(dx - 0.5f); dy = ceilf(dy - 0.5f); } - +#ifndef Q_OS_SYMBIAN if (addOffset) { dx += 0.49f; dy += 0.49f; } - +#endif pmvMatrix[0][0] = (wfactor * transform.m11()) - transform.m13(); pmvMatrix[1][0] = (wfactor * transform.m21()) - transform.m23(); pmvMatrix[2][0] = (wfactor * dx) - transform.m33(); @@ -686,7 +689,12 @@ void QGL2PaintEngineExPrivate::fill(const QVectorPath& path) const QPointF* const points = reinterpret_cast(path.points()); // ### Remove before release... - static bool do_vectorpath_cache = qgetenv("QT_OPENGL_NO_PATH_CACHE").isEmpty(); +#ifdef Q_OS_SYMBIAN + // ### There are some unresolved issues in Symbian vector path caching. + static bool do_vectorpath_cache = false; +#else + static bool do_vectorpath_cache = true; +#endif // Check to see if there's any hints if (path.shape() == QVectorPath::RectangleHint) { diff --git a/src/opengl/gl2paintengineex/qtriangulator.cpp b/src/opengl/gl2paintengineex/qtriangulator.cpp index df7cbc2..f14b0a4 100644 --- a/src/opengl/gl2paintengineex/qtriangulator.cpp +++ b/src/opengl/gl2paintengineex/qtriangulator.cpp @@ -65,7 +65,11 @@ QT_BEGIN_NAMESPACE // Quick sort. template +#ifdef Q_CC_RVCT // RVCT 2.2 doesn't see recursive _static_ template function +void sort(T *array, int count, LessThan lessThan) +#else static void sort(T *array, int count, LessThan lessThan) +#endif { // If the number of elements fall below some threshold, use insertion sort. const int INSERTION_SORT_LIMIT = 7; // About 7 is fastest on my computer... @@ -122,7 +126,11 @@ sort_loop_end: // Quick sort. template +#ifdef Q_CC_RVCT +void sort(T *array, int count) // RVCT 2.2 doesn't see recursive _static_ template function +#else static void sort(T *array, int count) +#endif { // If the number of elements fall below some threshold, use insertion sort. const int INSERTION_SORT_LIMIT = 25; // About 25 is fastest on my computer... diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro index d6011cf..0e82467 100644 --- a/src/opengl/opengl.pro +++ b/src/opengl/opengl.pro @@ -11,18 +11,18 @@ unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui include(../qbase.pri) -!win32:!embedded:!mac:CONFIG += x11 +!win32:!embedded:!mac:!symbian:CONFIG += x11 contains(QT_CONFIG, opengl):CONFIG += opengl contains(QT_CONFIG, opengles1):CONFIG += opengles1 contains(QT_CONFIG, opengles2):CONFIG += opengles2 contains(QT_CONFIG, egl):CONFIG += egl HEADERS += qgl.h \ - qgl_p.h \ - qglcolormap.h \ - qglpixelbuffer.h \ + qgl_p.h \ + qglcolormap.h \ + qglpixelbuffer.h \ qglpixelbuffer_p.h \ - qglframebufferobject.h \ + qglframebufferobject.h \ qglframebufferobject_p.h \ qglextensions_p.h \ qglpaintdevice_p.h \ @@ -30,9 +30,9 @@ HEADERS += qgl.h \ SOURCES += qgl.cpp \ - qglcolormap.cpp \ - qglpixelbuffer.cpp \ - qglframebufferobject.cpp \ + qglcolormap.cpp \ + qglpixelbuffer.cpp \ + qglframebufferobject.cpp \ qglextensions.cpp \ qglpaintdevice.cpp \ qglbuffer.cpp \ @@ -119,7 +119,7 @@ mac { win32:!wince*: { DEFINES += QT_NO_EGL SOURCES += qgl_win.cpp \ - qglpixelbuffer_win.cpp + qglpixelbuffer_win.cpp } wince*: { SOURCES += qgl_wince.cpp \ @@ -147,4 +147,14 @@ embedded { } } +symbian { + SOURCES += qgl_symbian.cpp \ + qglpixelbuffer_egl.cpp \ + qgl_egl.cpp + + HEADERS += qgl_egl_p.h + + symbian:TARGET.UID3 = 0x2002131A +} + INCLUDEPATH += ../3rdparty/harfbuzz/src diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 74bde36..1802107 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -96,7 +96,7 @@ QT_BEGIN_NAMESPACE -#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) +#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) QGLExtensionFuncs QGLContextPrivate::qt_extensionFuncs; #endif @@ -2264,7 +2264,7 @@ static void convertToGLFormatHelper(QImage &dst, const QImage &img, GLenum textu } } -#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) +#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) QGLExtensionFuncs& QGLContextPrivate::extensionFuncs(const QGLContext *) { return qt_extensionFuncs; @@ -4197,6 +4197,34 @@ bool QGLWidget::event(QEvent *e) d->glcx->d_ptr->clearDrawable(); # endif } +#elif defined(Q_OS_SYMBIAN) + // prevents errors on some systems, where we get a flush to a + // hidden widget + if (e->type() == QEvent::Hide) { + makeCurrent(); + glFinish(); + doneCurrent(); + } else if (e->type() == QEvent::ParentChange) { + // if we've reparented a window that has the current context + // bound, we need to rebind that context to the new window id + if (d->glcx == QGLContext::currentContext()) + makeCurrent(); + + if (testAttribute(Qt::WA_TranslucentBackground)) + setContext(new QGLContext(d->glcx->requestedFormat(), this)); + } + + // A re-parent is likely to destroy the Symbian window and re-create it. It is important + // that we free the EGL surface _before_ the winID changes - otherwise we can leak. + if (e->type() == QEvent::ParentAboutToChange) + d->glcx->d_func()->destroyEglSurfaceForDevice(); + + if ((e->type() == QEvent::ParentChange) || (e->type() == QEvent::WindowStateChange)) { + // The window may have been re-created during re-parent or state change - if so, the EGL + // surface will need to be re-created. + d->recreateEglSurface(); + } + #endif return QWidget::event(e); diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp index a154325..ebd1169 100644 --- a/src/opengl/qgl_egl.cpp +++ b/src/opengl/qgl_egl.cpp @@ -230,7 +230,7 @@ void QGLContext::swapBuffers() const void QGLContextPrivate::destroyEglSurfaceForDevice() { if (eglSurface != EGL_NO_SURFACE) { -#ifdef Q_WS_X11 +#if defined(Q_WS_X11) || defined(Q_OS_SYMBIAN) // Make sure we don't call eglDestroySurface on a surface which // was created for a different winId. This applies only to QGLWidget // paint device, so make sure this is the one we're operating on diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h index ca0d3fa..387c8f7 100644 --- a/src/opengl/qgl_p.h +++ b/src/opengl/qgl_p.h @@ -167,6 +167,9 @@ public: #if defined(Q_WS_X11) && !defined(QT_NO_EGL) , eglSurfaceWindowId(0) #endif +#if defined(Q_OS_SYMBIAN) + , eglSurfaceWindowId(0) +#endif { isGLWidget = 1; } @@ -208,6 +211,10 @@ public: #elif defined(Q_WS_QWS) QWSGLWindowSurface *wsurf; #endif +#ifdef Q_OS_SYMBIAN + void recreateEglSurface(); + WId eglSurfaceWindowId; +#endif }; class QGLContextResource; @@ -417,7 +424,7 @@ public: static inline QGLExtensionFuncs& extensionFuncs(const QGLContext *ctx) { return ctx->d_ptr->group->extensionFuncs(); } #endif -#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) +#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) static QGLExtensionFuncs qt_extensionFuncs; static Q_OPENGL_EXPORT QGLExtensionFuncs& extensionFuncs(const QGLContext *); #endif diff --git a/src/opengl/qgl_symbian.cpp b/src/opengl/qgl_symbian.cpp new file mode 100644 index 0000000..73fe4c9 --- /dev/null +++ b/src/opengl/qgl_symbian.cpp @@ -0,0 +1,362 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtOpenGL module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "qgl.h" +#include +#include +#include +#include +#include +#include +#include +#include // to access QWExtra +#include "qgl_egl_p.h" +#include "qcolormap.h" +#include + +QT_BEGIN_NAMESPACE + +// Turn off "direct to window" rendering if EGL cannot support it. +#if !defined(EGL_RENDER_BUFFER) || !defined(EGL_SINGLE_BUFFER) +#if defined(QGL_DIRECT_TO_WINDOW) +#undef QGL_DIRECT_TO_WINDOW +#endif +#endif + +// Determine if preserved window contents should be used. +#if !defined(EGL_SWAP_BEHAVIOR) || !defined(EGL_BUFFER_PRESERVED) +#if !defined(QGL_NO_PRESERVED_SWAP) +#define QGL_NO_PRESERVED_SWAP 1 +#endif +#endif + +/* + QGLTemporaryContext implementation +*/ + + +class QGLTemporaryContextPrivate +{ +public: + bool initialized; + RWindow *window; + EGLContext context; + EGLSurface surface; + EGLDisplay display; +}; + +QGLTemporaryContext::QGLTemporaryContext(bool, QWidget *) + : d(new QGLTemporaryContextPrivate) +{ + d->initialized = false; + d->window = 0; + d->context = 0; + d->surface = 0; + + d->display = d->display = QEgl::display(); + + EGLConfig config; + int numConfigs = 0; + EGLint attribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, +#ifdef QT_OPENGL_ES_2 + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, +#endif + EGL_NONE + }; + + eglChooseConfig(d->display, attribs, &config, 1, &numConfigs); + if (!numConfigs) { + qWarning("QGLTemporaryContext: No EGL configurations available."); + return; + } + + d->window = new RWindow(CCoeEnv::Static()->WsSession()); + d->window->Construct(CCoeEnv::Static()->RootWin(),(uint)this); + + d->surface = eglCreateWindowSurface(d->display, config, (EGLNativeWindowType) d->window, NULL); + + if (d->surface == EGL_NO_SURFACE) { + qWarning("QGLTemporaryContext: Error creating EGL surface."); + delete d->window; + d->window = 0; + return; + } + + EGLint contextAttribs[] = { +#ifdef QT_OPENGL_ES_2 + EGL_CONTEXT_CLIENT_VERSION, 2, +#endif + EGL_NONE + }; + d->context = eglCreateContext(d->display, config, 0, contextAttribs); + if (d->context != EGL_NO_CONTEXT + && eglMakeCurrent(d->display, d->surface, d->surface, d->context)) + { + d->initialized = true; + } else { + qWarning("QGLTemporaryContext: Error creating EGL context."); + d->window = 0; + return; + } +} + +QGLTemporaryContext::~QGLTemporaryContext() +{ + if (d->initialized) { + eglMakeCurrent(d->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglDestroyContext(d->display, d->context); + eglDestroySurface(d->display, d->surface); + delete d->window; + } +} + +bool QGLFormat::hasOpenGLOverlays() +{ + return false; +} + +// Chooses the EGL config and creates the EGL context +bool QGLContext::chooseContext(const QGLContext* shareContext) // almost same as in qgl_x11egl.cpp +{ + Q_D(QGLContext); + + if (!device()) + return false; + + int devType = device()->devType(); + + if ((devType != QInternal::Widget) && (devType != QInternal::Pbuffer)) { + qWarning("WARNING: Creating a QGLContext not supported on device type %d", devType); + return false; + } + + // Get the display and initialize it. + if (d->eglContext == 0) { + d->eglContext = new QEglContext(); + d->ownsEglContext = true; + d->eglContext->setApi(QEgl::OpenGL); + + // If the device is a widget with WA_TranslucentBackground set, make sure the glFormat + // has the alpha channel option set: + if (devType == QInternal::Widget) { + QWidget* widget = static_cast(device()); + if (widget->testAttribute(Qt::WA_TranslucentBackground)) + d->glFormat.setAlpha(true); + } + + // Construct the configuration we need for this surface. + QEglProperties configProps; + configProps.setDeviceType(devType); + configProps.setPaintDeviceFormat(device()); + configProps.setRenderableType(QEgl::OpenGL); + configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_SWAP_BEHAVIOR_PRESERVED_BIT); + + qt_eglproperties_set_glformat(configProps, d->glFormat); + + if (!d->eglContext->chooseConfig(configProps, QEgl::BestPixelFormat)) { + delete d->eglContext; + d->eglContext = 0; + return false; + } + + // Create a new context for the configuration. + QEglContext* eglSharedContext = shareContext ? shareContext->d_func()->eglContext : 0; + if (!d->eglContext->createContext(eglSharedContext)) { + delete d->eglContext; + d->eglContext = 0; + return false; + } + d->sharing = d->eglContext->isSharing(); + if (d->sharing && shareContext) + const_cast(shareContext)->d_func()->sharing = true; + } + + // Inform the higher layers about the actual format properties + qt_glformat_from_eglconfig(d->glFormat, d->eglContext->config()); + + // Do don't create the EGLSurface for everything. + // QWidget - yes, create the EGLSurface and store it in QGLContextPrivate::eglSurface + // QGLWidget - yes, create the EGLSurface and store it in QGLContextPrivate::eglSurface + // QGLPixelBuffer - no, it creates the surface itself and stores it in QGLPixelBufferPrivate::pbuf + + if (devType == QInternal::Widget) { + if (d->eglSurface != EGL_NO_SURFACE) + eglDestroySurface(d->eglContext->display(), d->eglSurface); + + d->eglSurface = QEgl::createSurface(device(), d->eglContext->config()); + +#if !defined(QGL_NO_PRESERVED_SWAP) + eglGetError(); // Clear error state first. + eglSurfaceAttrib(QEgl::display(), d->eglSurface, + EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED); + if (eglGetError() != EGL_SUCCESS) { + qWarning("QGLContext: could not enable preserved swap"); + } +#endif + + setWindowCreated(true); + } + + return true; +} + +void QGLWidget::resizeEvent(QResizeEvent *) +{ + Q_D(QGLWidget); + if (!isValid()) + return; + + if (QGLContext::currentContext()) + doneCurrent(); + + // Symbian needs to recreate the surface on resize. + d->recreateEglSurface(); + + makeCurrent(); + if (!d->glcx->initialized()) + glInit(); + resizeGL(width(), height()); + //handle overlay +} + +const QGLContext* QGLWidget::overlayContext() const +{ + return 0; +} + +void QGLWidget::makeOverlayCurrent() +{ + //handle overlay +} + +void QGLWidget::updateOverlayGL() +{ + //handle overlay +} + +void QGLWidget::setContext(QGLContext *context, const QGLContext* shareContext, bool deleteOldContext) +{ + Q_D(QGLWidget); + if (context == 0) { + qWarning("QGLWidget::setContext: Cannot set null context"); + return; + } + if (!context->deviceIsPixmap() && context->device() != this) { + qWarning("QGLWidget::setContext: Context must refer to this widget"); + return; + } + + if (d->glcx) + d->glcx->doneCurrent(); + QGLContext* oldcx = d->glcx; + d->glcx = context; + + bool createFailed = false; + if (!d->glcx->isValid()) { + // Create the QGLContext here, which in turn chooses the EGL config + // and creates the EGL context: + if (!d->glcx->create(shareContext ? shareContext : oldcx)) + createFailed = true; + } + if (createFailed) { + if (deleteOldContext) + delete oldcx; + return; + } + + d->eglSurfaceWindowId = winId(); // Remember the window id we created the surface for +} + +void QGLWidgetPrivate::init(QGLContext *context, const QGLWidget* shareWidget) +{ + Q_Q(QGLWidget); + + initContext(context, shareWidget); + + if(q->isValid() && glcx->format().hasOverlay()) { + //no overlay + qWarning("QtOpenGL ES doesn't currently support overlays"); + } +} + +void QGLWidgetPrivate::cleanupColormaps() +{ +} + +const QGLColormap & QGLWidget::colormap() const +{ + return d_func()->cmap; +} + +void QGLWidget::setColormap(const QGLColormap &) +{ +} + +void QGLWidgetPrivate::recreateEglSurface() +{ + Q_Q(QGLWidget); + + WId currentId = q->winId(); + + if (glcx->d_func()->eglSurface != EGL_NO_SURFACE) { + eglDestroySurface(glcx->d_func()->eglContext->display(), + glcx->d_func()->eglSurface); + } + + glcx->d_func()->eglSurface = QEgl::createSurface(glcx->device(), + glcx->d_func()->eglContext->config()); + +#if !defined(QGL_NO_PRESERVED_SWAP) + eglGetError(); // Clear error state first. + eglSurfaceAttrib(QEgl::display(), glcx->d_func()->eglSurface, + EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED); + if (eglGetError() != EGL_SUCCESS) { + qWarning("QGLContext: could not enable preserved swap"); + } +#endif + + eglSurfaceWindowId = currentId; +} + +QT_END_NAMESPACE + diff --git a/src/plugins/graphicssystems/opengl/opengl.pro b/src/plugins/graphicssystems/opengl/opengl.pro index 7d6fe3f..47e15c5 100644 --- a/src/plugins/graphicssystems/opengl/opengl.pro +++ b/src/plugins/graphicssystems/opengl/opengl.pro @@ -9,3 +9,5 @@ SOURCES = main.cpp target.path += $$[QT_INSTALL_PLUGINS]/graphicssystems INSTALLS += target + +symbian: TARGET.UID3 = 0x2002131B diff --git a/src/s60installs/qt.iby b/src/s60installs/qt.iby index 935bdc5..b6cdce9 100644 --- a/src/s60installs/qt.iby +++ b/src/s60installs/qt.iby @@ -20,6 +20,7 @@ file=ABI_DIR\BUILD_DIR\phonon.dll SHARED_LIB_DIR\phonon.dll file=ABI_DIR\BUILD_DIR\QtMultimedia.dll SHARED_LIB_DIR\QtMultimedia.dll file=ABI_DIR\BUILD_DIR\QtXmlPatterns.dll SHARED_LIB_DIR\QtXmlPatterns.dll file=ABI_DIR\BUILD_DIR\QtDeclarative.dll SHARED_LIB_DIR\QtDeclarative.dll +file=ABI_DIR\BUILD_DIR\QtOpenGL.dll SHARED_LIB_DIR\QtOpenGL.dll // imageformats file=ABI_DIR\BUILD_DIR\qgif.dll SHARED_LIB_DIR\qgif.dll @@ -50,6 +51,7 @@ file=ABI_DIR\BUILD_DIR\qaudio.dll SHARED_LIB_DIR\qaudio.dll // graphicssystems file=ABI_DIR\BUILD_DIR\qvggraphicssystem.dll SHARED_LIB_DIR\qvggraphicssystem.dll +file=ABI_DIR\BUILD_DIR\qglgraphicssystem.dll SHARED_LIB_DIR\qglgraphicssystem.dll // S60 version compatibility plugins for 5.0 (3.1 and 3.2 devices are never likely to have this in ROM, // so don't bother including those plugins @@ -95,6 +97,7 @@ data=\epoc32\data\qt\qtlibspluginstubs\qaudio.qtplugin resource\qt\plugins\audio // graphicssystems data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin +data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplugin resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplugin // Stub sis file data=ZSYSTEM\install\qt_stub.sis System\Install\qt_stub.sis diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 8a8167b..9e1d582 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -189,6 +189,11 @@ symbian: { "[0x1028315F],0,0,0,{\"S60ProductID\"}" } + contains(QT_CONFIG, opengl) { + qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtOpenGL$${QT_LIBINFIX}.dll + graphicssystems_plugins.sources += $$QT_BUILD_TREE/plugins/graphicssystems/qglgraphicssystem$${QT_LIBINFIX}.dll + } + contains(QT_CONFIG, multimedia){ qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtMultimedia$${QT_LIBINFIX}.dll } diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index 7fe461c..5bebdf6 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -847,6 +847,7 @@ void tst_QGL::graphicsViewClipping() scene.addWidget(widget)->setPos(0, 0); QGraphicsView view(&scene); + view.setBackgroundBrush(Qt::white); #ifdef Q_WS_QWS view.setWindowFlags(Qt::FramelessWindowHint); #endif -- cgit v0.12 From 870701fc34dc50bb06e55467e28da66f23ace2ea Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 20 Aug 2010 08:50:57 +0200 Subject: qdoc: Changed id attribute to be a UUID. Task-nr: QTBUG-11113 --- tools/qdoc3/htmlgenerator.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 3e79a9f..e4443b0 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -4423,7 +4423,7 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, if (node->access() == Node::Private) return false; - QString t; + QString guid = QUuid::createUuid().toString(); QString url = PageGenerator::fileName(node); QString title; QString rawTitle; @@ -4432,7 +4432,6 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, QXmlStreamAttributes attributes; writer.writeStartElement("page"); - t.setNum(id++); if (node->isInnerNode()) { const InnerNode* inner = static_cast(node); @@ -4510,7 +4509,7 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, } } - writer.writeAttribute("id",t); + writer.writeAttribute("id",guid); writer.writeStartElement("pageWords"); writer.writeCharacters(pageWords.join(" ")); @@ -4545,9 +4544,9 @@ bool HtmlGenerator::generatePageElement(QXmlStreamWriter& writer, Text headingText = Text::sectionHeading(toc.at(i)); QString s = headingText.toString(); writer.writeStartElement("page"); - t.setNum(id++); + guid = QUuid::createUuid().toString(); QString internalUrl = url + "#" + Doc::canonicalTitle(s); - writer.writeAttribute("id",t); + writer.writeAttribute("id",guid); writer.writeStartElement("pageWords"); writer.writeCharacters(pageWords.join(" ")); writer.writeCharacters(" "); -- cgit v0.12 From 9554d46c421edfcfa1c3f91244581a72d3930801 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 20 Aug 2010 09:09:08 +0200 Subject: tst_qmetaobject: fix compilation, now that wrong NOTIFY property fails --- tests/auto/qmetaobject/tst_qmetaobject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qmetaobject/tst_qmetaobject.cpp b/tests/auto/qmetaobject/tst_qmetaobject.cpp index bb96da1..8c2a0f9 100644 --- a/tests/auto/qmetaobject/tst_qmetaobject.cpp +++ b/tests/auto/qmetaobject/tst_qmetaobject.cpp @@ -107,7 +107,7 @@ class tst_QMetaObject : public QObject Q_PROPERTY(QVariantList value5 WRITE setVal5 READ val5) Q_PROPERTY(int value6 READ value6 NOTIFY value6Changed) Q_PROPERTY(MyStruct value7 READ value7 WRITE setVal7 NOTIFY value7Changed) - Q_PROPERTY(int value8 READ value8 NOTIFY value8Changed) + Q_PROPERTY(int value8 READ value8) Q_PROPERTY(int value9 READ value9 CONSTANT) Q_PROPERTY(int value10 READ value10 FINAL) -- cgit v0.12 From 0e4a9ab0f60faff3bde86cb7f08250161c18103e Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Fri, 20 Aug 2010 10:06:04 +0200 Subject: QFileDialog::HideNameFilterDetails breaks Cocoa QFileDIalog filter Using namefilters in the non-native file dialog is a bit broken by design, since it don't store the whole selected name filter, but only the filter with details stripped off (if this is specified). And it stores this data in gui widgets. And the native file dialog also suffers from this. At least this patch will pick the first matching name filter (with details) given a details-stripped version. Task-number: QTBUG-12870 Reviewed-by: cduclos --- src/gui/dialogs/qfiledialog_mac.mm | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/gui/dialogs/qfiledialog_mac.mm b/src/gui/dialogs/qfiledialog_mac.mm index 64fc0ee..87850a7 100644 --- a/src/gui/dialogs/qfiledialog_mac.mm +++ b/src/gui/dialogs/qfiledialog_mac.mm @@ -119,6 +119,7 @@ QT_USE_NAMESPACE - (QString)removeExtensions:(const QString &)filter; - (void)createTextField; - (void)createPopUpButton:(const QString &)selectedFilter hideDetails:(BOOL)hideDetails; +- (QStringList)findStrippedFilterWithVisualFilterName:(QString)name; - (void)createAccessory; @end @@ -127,8 +128,6 @@ QT_USE_NAMESPACE - (id)initWithAcceptMode:(QT_PREPEND_NAMESPACE(QFileDialog::AcceptMode))acceptMode title:(const QString &)title - nameFilters:(const QStringList &)nameFilters - selectedNameFilter:(const QString &)selectedNameFilter hideNameFilterDetails:(bool)hideNameFilterDetails qDirFilter:(QT_PREPEND_NAMESPACE(QDir::Filters))qDirFilter fileOptions:(QT_PREPEND_NAMESPACE(QFileDialog::Options))fileOptions @@ -158,8 +157,10 @@ QT_USE_NAMESPACE mPriv = priv; mLastFilterCheckPath = new QString; mQDirFilterEntryList = new QStringList; - mNameFilterDropDownList = new QStringList(nameFilters); - mSelectedNameFilter = new QStringList(qt_clean_filter_list(selectedNameFilter)); + mNameFilterDropDownList = new QStringList(priv->nameFilters); + QString selectedVisualNameFilter = priv->qFileDialogUi->fileTypeCombo->currentText(); + mSelectedNameFilter = new QStringList([self findStrippedFilterWithVisualFilterName:selectedVisualNameFilter]); + QFileInfo sel(selectFile); if (sel.isDir()){ mCurrentDir = [qt_mac_QStringToNSString(sel.absoluteFilePath()) retain]; @@ -168,8 +169,9 @@ QT_USE_NAMESPACE mCurrentDir = [qt_mac_QStringToNSString(sel.absolutePath()) retain]; mCurrentSelection = new QString(sel.absoluteFilePath()); } + [mSavePanel setTitle:qt_mac_QStringToNSString(title)]; - [self createPopUpButton:selectedNameFilter hideDetails:hideNameFilterDetails]; + [self createPopUpButton:selectedVisualNameFilter hideDetails:hideNameFilterDetails]; [self createTextField]; [self createAccessory]; [mSavePanel setAccessoryView:mNameFilterDropDownList->size() > 1 ? mAccessoryView : nil]; @@ -350,7 +352,7 @@ QT_USE_NAMESPACE // This mDelegate function is called when the _name_ filter changes. Q_UNUSED(sender); QString selection = mNameFilterDropDownList->value([mPopUpButton indexOfSelectedItem]); - *mSelectedNameFilter = QT_PREPEND_NAMESPACE(qt_clean_filter_list)(selection); + *mSelectedNameFilter = [self findStrippedFilterWithVisualFilterName:selection]; [mSavePanel validateVisibleColumns]; [self updateProperties]; if (mPriv) @@ -499,6 +501,15 @@ QT_USE_NAMESPACE } } +- (QStringList) findStrippedFilterWithVisualFilterName:(QString)name +{ + for (int i=0; isize(); ++i) { + if (mNameFilterDropDownList->at(i).startsWith(name)) + return qt_clean_filter_list(mNameFilterDropDownList->at(i)); + } + return QStringList(); +} + - (void)createAccessory { NSRect accessoryRect = { { 0.0, 0.0 }, { 450.0, 33.0 } }; @@ -1039,8 +1050,6 @@ void QFileDialogPrivate::createNSOpenSavePanelDelegate() QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) alloc] initWithAcceptMode:acceptMode title:q->windowTitle() - nameFilters:q->nameFilters() - selectedNameFilter:q->selectedNameFilter() hideNameFilterDetails:q->testOption(QFileDialog::HideNameFilterDetails) qDirFilter:model->filter() fileOptions:opts -- cgit v0.12 From dafd0da322157ffd784374a810826821a180be24 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 20 Aug 2010 10:21:39 +0200 Subject: QGraphicsView: fix few artefacts that can appear if the changed() signal is connected. Reviewed-by: bnilsen --- src/gui/graphicsview/qgraphicsview.cpp | 4 ++- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 40 +++++++++++++++++++------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 0674610..c8aca80 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -2596,9 +2596,11 @@ void QGraphicsView::updateScene(const QList &rects) // Convert scene rects to viewport rects. foreach (const QRectF &rect, rects) { - QRect xrect = transform.mapRect(rect).toRect(); + QRect xrect = transform.mapRect(rect).toAlignedRect(); if (!(d->optimizationFlags & DontAdjustForAntialiasing)) xrect.adjust(-2, -2, 2, 2); + else + xrect.adjust(-1, -1, 1, 1); if (!viewportRect.intersects(xrect)) continue; dirtyViewportRects << xrect; diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 1cce687..7b5ac7a 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -244,6 +244,9 @@ private slots: void QTBUG_4151_clipAndIgnore(); void QTBUG_5859_exposedRect(); void QTBUG_7438_cursor(); + +public slots: + void dummySlot() {} }; void tst_QGraphicsView::initTestCase() @@ -3202,14 +3205,18 @@ void tst_QGraphicsView::scrollAfterResize() void tst_QGraphicsView::moveItemWhileScrolling_data() { QTest::addColumn("adjustForAntialiasing"); + QTest::addColumn("changedConnected"); - QTest::newRow("no adjust") << false; - QTest::newRow("adjust") << true; + QTest::newRow("no adjust") << false << false; + QTest::newRow("adjust") << true << false; + QTest::newRow("no adjust changedConnected") << false << true; + QTest::newRow("adjust changedConnected") << true << true; } void tst_QGraphicsView::moveItemWhileScrolling() { QFETCH(bool, adjustForAntialiasing); + QFETCH(bool, changedConnected); class MoveItemScrollView : public QGraphicsView { @@ -3253,6 +3260,8 @@ void tst_QGraphicsView::moveItemWhileScrolling() view.resize(200, 200); view.painted = false; view.show(); + if (changedConnected) + QObject::connect(view.scene(), SIGNAL(changed(QList)), this, SLOT(dummySlot())); QTest::qWaitForWindowShown(&view); QApplication::processEvents(); QTRY_VERIFY(view.painted); @@ -3691,24 +3700,32 @@ void tst_QGraphicsView::update2_data() { QTest::addColumn("penWidth"); QTest::addColumn("antialiasing"); + QTest::addColumn("changedConnected"); // Anti-aliased. - QTest::newRow("pen width: 0.0, antialiasing: true") << 0.0 << true; - QTest::newRow("pen width: 1.5, antialiasing: true") << 1.5 << true; - QTest::newRow("pen width: 2.0, antialiasing: true") << 2.0 << true; - QTest::newRow("pen width: 3.0, antialiasing: true") << 3.0 << true; + QTest::newRow("pen width: 0.0, antialiasing: true") << 0.0 << true << false; + QTest::newRow("pen width: 1.5, antialiasing: true") << 1.5 << true << false; + QTest::newRow("pen width: 2.0, antialiasing: true") << 2.0 << true << false; + QTest::newRow("pen width: 3.0, antialiasing: true") << 3.0 << true << false; // Aliased. - QTest::newRow("pen width: 0.0, antialiasing: false") << 0.0 << false; - QTest::newRow("pen width: 1.5, antialiasing: false") << 1.5 << false; - QTest::newRow("pen width: 2.0, antialiasing: false") << 2.0 << false; - QTest::newRow("pen width: 3.0, antialiasing: false") << 3.0 << false; + QTest::newRow("pen width: 0.0, antialiasing: false") << 0.0 << false << false; + QTest::newRow("pen width: 1.5, antialiasing: false") << 1.5 << false << false; + QTest::newRow("pen width: 2.0, antialiasing: false") << 2.0 << false << false; + QTest::newRow("pen width: 3.0, antialiasing: false") << 3.0 << false << false; + + // changed() connected + QTest::newRow("pen width: 0.0, antialiasing: false, changed") << 0.0 << false << true; + QTest::newRow("pen width: 1.5, antialiasing: true, changed") << 1.5 << true << true; + QTest::newRow("pen width: 2.0, antialiasing: false, changed") << 2.0 << false << true; + QTest::newRow("pen width: 3.0, antialiasing: true, changed") << 3.0 << true << true; } void tst_QGraphicsView::update2() { QFETCH(qreal, penWidth); QFETCH(bool, antialiasing); + QFETCH(bool, changedConnected); // Create a rect item. const QRectF rawItemRect(-50.4, -50.3, 100.2, 100.1); @@ -3719,6 +3736,9 @@ void tst_QGraphicsView::update2() // Add item to a scene. QGraphicsScene scene(-100, -100, 200, 200); + if (changedConnected) + QObject::connect(&scene, SIGNAL(changed(QList)), this, SLOT(dummySlot())); + scene.addItem(rect); // Create a view on the scene. -- cgit v0.12 From a3aeebff0afed0e974d20b088b14cdf2efa89d2b Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Fri, 20 Aug 2010 12:46:47 +0200 Subject: add full width characters to ending() in linguist U+FF01 (FULLWIDTH EXCLAMATION MARK), U+FF1F (FULLWIDTH QUESTION MARK) and U+FF1A (FULLWIDTH COLON) Merge-request: 2455 Reviewed-by: Oswald Buddenhagen --- tools/linguist/linguist/mainwindow.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp index 163ef54..7d11823 100644 --- a/tools/linguist/linguist/mainwindow.cpp +++ b/tools/linguist/linguist/mainwindow.cpp @@ -142,10 +142,13 @@ static Ending ending(QString str, QLocale::Language lang) case 0x2048: // question exclamation mark case 0x2049: // exclamation question mark case 0x2762: // heavy exclamation mark ornament + case 0xff01: // full width exclamation mark + case 0xff1f: // full width question mark return End_Interrobang; case 0x003b: // greek 'compatibility' questionmark return lang == QLocale::Greek ? End_Interrobang : End_None; case 0x003a: // colon + case 0xff1a: // full width colon return End_Colon; case 0x2026: // horizontal ellipsis return End_Ellipsis; -- cgit v0.12 From a4d2844c99481fc7764ffd8436a2b79531a58d8b Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Fri, 20 Aug 2010 12:36:15 +0200 Subject: qtconfig and qvfb internationalization fixes - install QTranslators in qtconfig and qvfb - add tr() to qvfb strings Merge-request: 783 Reviewed-by: Oswald Buddenhagen --- tools/qtconfig/main.cpp | 14 ++++++++++++ tools/qvfb/main.cpp | 13 +++++++++++ tools/qvfb/qvfb.cpp | 54 +++++++++++++++++++++++----------------------- tools/qvfb/qvfbratedlg.cpp | 10 ++++----- 4 files changed, 59 insertions(+), 32 deletions(-) diff --git a/tools/qtconfig/main.cpp b/tools/qtconfig/main.cpp index 24d044f..928cf01 100644 --- a/tools/qtconfig/main.cpp +++ b/tools/qtconfig/main.cpp @@ -42,6 +42,9 @@ #include "ui_previewwidgetbase.h" #include "mainwindow.h" #include +#include +#include +#include QT_USE_NAMESPACE @@ -50,6 +53,17 @@ int main(int argc, char **argv) Q_INIT_RESOURCE(qtconfig); QApplication app(argc, argv); + + QTranslator translator; + QTranslator qtTranslator; + QString sysLocale = QLocale::system().name(); + QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); + if (translator.load(QLatin1String("qtconfig_") + sysLocale, resourceDir) + && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) { + app.installTranslator(&translator); + app.installTranslator(&qtTranslator); + } + MainWindow mw; mw.show(); return app.exec(); diff --git a/tools/qvfb/main.cpp b/tools/qvfb/main.cpp index d96b255..28aa7d4 100644 --- a/tools/qvfb/main.cpp +++ b/tools/qvfb/main.cpp @@ -43,6 +43,9 @@ #include #include +#include +#include +#include #include #include #include @@ -73,6 +76,16 @@ int runQVfb( int argc, char *argv[] ) QApplication app( argc, argv ); + QTranslator translator; + QTranslator qtTranslator; + QString sysLocale = QLocale::system().name(); + QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); + if (translator.load(QLatin1String("qvfb_") + sysLocale, resourceDir) + && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) { + app.installTranslator(&translator); + app.installTranslator(&qtTranslator); + } + int width = 0; int height = 0; int depth = -32; // default, but overridable by skin diff --git a/tools/qvfb/qvfb.cpp b/tools/qvfb/qvfb.cpp index bc9e529..b4ccebc 100644 --- a/tools/qvfb/qvfb.cpp +++ b/tools/qvfb/qvfb.cpp @@ -398,47 +398,47 @@ void QVFb::createMenu(T *menu) QMenu* QVFb::createFileMenu() { - QMenu *file = new QMenu( "File", this ); - file->addAction( "Configure...", this, SLOT(configure()), 0 ); + QMenu *file = new QMenu( tr("&File"), this ); + file->addAction( tr("&Configure..."), this, SLOT(configure()), QKeySequence::Preferences ); file->addSeparator(); - file->addAction( "&Save image...", this, SLOT(saveImage()), 0 ); - file->addAction( "&Animation...", this, SLOT(toggleAnimation()), 0 ); + file->addAction( tr("&Save image..."), this, SLOT(saveImage()), QKeySequence::Save ); + file->addAction( tr("&Animation..."), this, SLOT(toggleAnimation()), 0 ); file->addSeparator(); - file->addAction( "&Quit", qApp, SLOT(quit()) ); + file->addAction( tr("&Quit"), qApp, SLOT(quit()), QKeySequence::Quit ); return file; } QMenu* QVFb::createViewMenu() { - viewMenu = new QMenu( "View", this ); - cursorAction = viewMenu->addAction( "Show &Cursor", this, + viewMenu = new QMenu( tr("&View"), this ); + cursorAction = viewMenu->addAction( tr("Show &Cursor"), this, SLOT(toggleCursor()) ); cursorAction->setCheckable(true); if ( view ) enableCursor(true); - viewMenu->addAction( "&Refresh Rate...", this, SLOT(changeRate()) ); + viewMenu->addAction( tr("&Refresh Rate..."), this, SLOT(changeRate()) ); viewMenu->addSeparator(); - viewMenu->addAction( "No rotation", this, SLOT(setRot0()) ); - viewMenu->addAction( "90\260 rotation", this, SLOT(setRot90()) ); - viewMenu->addAction( "180\260 rotation", this, SLOT(setRot180()) ); - viewMenu->addAction( "270\260 rotation", this, SLOT(setRot270()) ); + viewMenu->addAction( tr("&No rotation"), this, SLOT(setRot0()) ); + viewMenu->addAction( tr("&90\260 rotation"), this, SLOT(setRot90()) ); + viewMenu->addAction( tr("1&80\260 rotation"), this, SLOT(setRot180()) ); + viewMenu->addAction( tr("2&70\260 rotation"), this, SLOT(setRot270()) ); viewMenu->addSeparator(); - viewMenu->addAction( "Zoom scale &0.5", this, SLOT(setZoomHalf()) ); - viewMenu->addAction( "Zoom scale 0.75", this, SLOT(setZoom075()) ); - viewMenu->addAction( "Zoom scale &1", this, SLOT(setZoom1()) ); - viewMenu->addAction( "Zoom scale &2", this, SLOT(setZoom2()) ); - viewMenu->addAction( "Zoom scale &3", this, SLOT(setZoom3()) ); - viewMenu->addAction( "Zoom scale &4", this, SLOT(setZoom4()) ); + viewMenu->addAction( tr("Zoom scale &0.5"), this, SLOT(setZoomHalf()) ); + viewMenu->addAction( tr("Zoom scale 0.7&5"), this, SLOT(setZoom075()) ); + viewMenu->addAction( tr("Zoom scale &1"), this, SLOT(setZoom1()) ); + viewMenu->addAction( tr("Zoom scale &2"), this, SLOT(setZoom2()) ); + viewMenu->addAction( tr("Zoom scale &3"), this, SLOT(setZoom3()) ); + viewMenu->addAction( tr("Zoom scale &4"), this, SLOT(setZoom4()) ); viewMenu->addSeparator(); - viewMenu->addAction( "Zoom scale...", this, SLOT(setZoom()) ); + viewMenu->addAction( tr("Zoom &scale..."), this, SLOT(setZoom()) ); return viewMenu; } QMenu* QVFb::createHelpMenu() { - QMenu *help = new QMenu( "Help", this ); - help->addAction("About...", this, SLOT(about())); + QMenu *help = new QMenu( tr("&Help"), this ); + help->addAction(tr("&About..."), this, SLOT(about())); return help; } @@ -525,17 +525,17 @@ void QVFb::setZoom4() void QVFb::saveImage() { QImage img = view->image(); - QString filename = QFileDialog::getSaveFileName(this, "Save Main Screen image", "snapshot.png", "Portable Network Graphics (*.png)"); + QString filename = QFileDialog::getSaveFileName(this, tr("Save Main Screen image"), tr("snapshot.png"), tr("Portable Network Graphics (*.png)")); if (!filename.isEmpty()){ if(!img.save(filename,"PNG")) - QMessageBox::critical(this, "Save Main Screen Image", "Save failed. Check that you have permission to write to the target directory."); + QMessageBox::critical(this, tr("Save Main Screen Image"), tr("Save failed. Check that you have permission to write to the target directory.")); } if (secondaryView) { QImage img = view->image(); - QString filename = QFileDialog::getSaveFileName(this, "Save Second Screen image", "snapshot.png", "Portable Network Graphics (*.png)"); + QString filename = QFileDialog::getSaveFileName(this, tr("Save Second Screen image"), tr("snapshot.png"), tr("Portable Network Graphics (*.png)")); if (!filename.isEmpty()) { if(!img.save(filename,"PNG")) - QMessageBox::critical(this, "Save Second Screen Image", "Save failed. Check that you have permission to write to the target directory."); + QMessageBox::critical(this, tr("Save Second Screen Image"), tr("Save failed. Check that you have permission to write to the target directory.")); } } } @@ -577,7 +577,7 @@ void QVFb::setRate(int i) void QVFb::about() { - QMessageBox::about(this, "About QVFB", + QMessageBox::about(this, tr("About QVFB"), tr( "

    The Qt for Embedded Linux Virtual X11 Framebuffer

    " "

    This application runs under Qt for X11, emulating a simple framebuffer, " "which the Qt for Embedded Linux server and clients can attach to just as if " @@ -586,7 +586,7 @@ void QVFb::about() "Linux applications under X11 without having to switch to a virtual console. " "This means you can comfortably use your other development tools such " "as GUI profilers and debuggers." - ); + )); } void QVFb::findSkins(const QString ¤tSkin) diff --git a/tools/qvfb/qvfbratedlg.cpp b/tools/qvfb/qvfbratedlg.cpp index e491bdf..a0cbb2f 100644 --- a/tools/qvfb/qvfbratedlg.cpp +++ b/tools/qvfb/qvfbratedlg.cpp @@ -55,7 +55,7 @@ QVFbRateDialog::QVFbRateDialog(int rate, QWidget *parent) QVBoxLayout *tl = new QVBoxLayout(this); tl->setMargin(5); - QLabel *label = new QLabel("Target frame rate:", this); + QLabel *label = new QLabel(tr("Target frame rate:"), this); tl->addWidget(label); QHBoxLayout *hl = new QHBoxLayout(); @@ -67,15 +67,15 @@ QVFbRateDialog::QVFbRateDialog(int rate, QWidget *parent) rateSlider->setValue(rate); hl->addWidget(rateSlider); connect(rateSlider, SIGNAL(valueChanged(int)), this, SLOT(rateChanged(int))); - rateLabel = new QLabel(QString("%1fps").arg(rate), this); + rateLabel = new QLabel(tr("%1fps").arg(rate), this); hl->addWidget(rateLabel); hl = new QHBoxLayout(); tl->addItem(hl); - QPushButton *pb = new QPushButton("OK", this); + QPushButton *pb = new QPushButton(tr("OK"), this); connect(pb, SIGNAL(clicked()), this, SLOT(ok())); hl->addWidget(pb); - pb = new QPushButton("Cancel", this); + pb = new QPushButton(tr("Cancel"), this); connect(pb, SIGNAL(clicked()), this, SLOT(cancel())); hl->addWidget(pb); } @@ -84,7 +84,7 @@ void QVFbRateDialog::rateChanged(int r) { if (rateSlider->value() != r) rateSlider->setValue(r); - rateLabel->setText(QString("%1fps").arg(r)); + rateLabel->setText(tr("%1fps").arg(r)); emit updateRate(r); } -- cgit v0.12 From 4ed1d49b650b41f1d9541b955717413330a733c9 Mon Sep 17 00:00:00 2001 From: Victor Ostashevsky Date: Fri, 20 Aug 2010 12:32:59 +0200 Subject: Ukrainian translation updated Some spell and stylistic fixes applied, new messages appeared in assistant and linguist translated and everything except xmlpatterns in qt also translated. Thanks KDE Ukrainian localisation team for some useful hints. Merge-request: 782 Reviewed-by: Oswald Buddenhagen --- translations/assistant_uk.ts | 763 ++- translations/designer_uk.ts | 24 +- translations/linguist_uk.ts | 450 +- translations/qt_help_uk.ts | 8 +- translations/qt_uk.ts | 10537 ++++++++++++++++++++++++----------------- translations/qtconfig_uk.ts | 8 +- translations/qvfb_uk.ts | 10 +- 7 files changed, 7341 insertions(+), 4459 deletions(-) diff --git a/translations/assistant_uk.ts b/translations/assistant_uk.ts index 78fd59d..c7aad83 100644 --- a/translations/assistant_uk.ts +++ b/translations/assistant_uk.ts @@ -76,12 +76,8 @@ Reason: Помилка створення файлу колекції '%1': %2. - Error reading collection file '%1': %2 - Помилка читання файлу колекції '%1': %2 - - Cannot load sqlite database driver! - Не можу завантажити драйвер бази даний SQLite! + Не можу завантажити драйвер бази даних SQLite! @@ -123,7 +119,7 @@ Reason: You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? - Ви збираєтесь видалити теку, що призведе до видалення її змісту.<br>Ви впевнені, що хочете продовжити? + Ви збираєтесь видалити теку, що призведе до видалення її вмісту.<br>Ви впевнені, що хочете продовжити? Manage Bookmarks... @@ -214,7 +210,7 @@ Reason: You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue? - Ви збираєтесь видалити теку, що призведе до видалення її змісту.<br>Ви впевнені, що хочете продовжити? + Ви збираєтесь видалити теку, що призведе до видалення її вмісту.<br>Ви впевнені, що хочете продовжити? Delete Folder @@ -354,7 +350,7 @@ Reason: Missing filter argument. - Відсутній аргумент фільтру. + Відсутній аргумент фільтра. Error @@ -377,14 +373,119 @@ Reason: + ConversionWizard + + Help Conversion Wizard + Майстер конвертування довідки + + + Converting %1... + Конвертую %1... + + + Writing help collection file... + Записую файл колекції довідки... + + + Done. + Виконано. + + + + FilesPage + + Form + Форма + + + Files: + Файли: + + + Remove + Видалити + + + Remove All + Видалити все + + + Unreferenced Files + Файли,на які немає посилань + + + Remove files which are neither referenced by a keyword nor by the TOC. + Видаліть файли, на які немає посилань ні за ключовим словом, ні зі змісту. + + + <p><b>Warning:</b> Be aware when removing images or stylesheets since those files are not directly referenced by the .adp or .dcf file.</p> + <p><b>Попередження:</b> Будьте уважними, при видаленні зображень чи таблиць стилів, оскільки на ці файли не має прямих посилань файла .adp чи .dcf.</p> + + + FilterNameDialogClass Add Filter Name - Додати назву фільтру + Додати назву фільтра Filter Name: - Назва фільтру: + Назва фільтра: + + + + FilterPage + + Form + Форма + + + Filter attributes for current documentation (comma separated list): + Атрибути фільтра для поточної документації (список, розділений комою): + + + Custom Filters + Користувацькі фільтри + + + 1 + 1 + + + 2 + 2 + + + Add + Додати + + + Remove + Видалити + + + Filter Settings + Налаштування фільтрів + + + Specify the filter attributes for the documentation. If filter attributes are used, also define a custom filter for it. Both, the filter attributes and the custom filters are optional. + Вкажіть атрибути фільтра для документації. Якщо використовуються атрибути фільтра, то, також, визначіть користувацький фільтр для нього. Як атрибути фільтра, так і користувацькі фільтри, є необов'язковими. + + + Filter Name + Назва фільтра + + + Filter Attributes + Атрибути фільтра + + + The custom filter '%1' is defined multiple times. + Користувацький фільтр '%1' визначено декілька раз. + + + The attributes for custom filter '%1' are defined multiple times. + Атрибути для користувацького фільтра '%1' визначено декілька раз. @@ -407,6 +508,13 @@ Reason: + FinishPage + + Converting File + Конвертування файлу + + + FontPanel Font @@ -414,7 +522,7 @@ Reason: &Writing system - Система &письма + Система &писемності &Family @@ -430,6 +538,45 @@ Reason: + GeneralPage + + Form + Форма + + + Namespace: + Простір імен: + + + Virtual Folder: + Віртуальна тека: + + + General Settings + Загальні налаштування + + + Specify the namespace and the virtual folder for the documentation. + Вкажіть простір імен та віртуальну теку для документації. + + + Namespace Error + Помилка простору імен + + + The namespace contains some invalid characters. + Простір імен містить деякі неприпустимі символи. + + + Virtual Folder Error + Помилка віртуальної теки + + + The virtual folder contains some invalid characters. + Віртуальна тека містить деякі неприпустимі символи. + + + HelpViewer <title>about:blank</title> @@ -453,10 +600,37 @@ Reason: + IdentifierPage + + Form + Форма + + + Create identifiers + Створювати ідентифікатори + + + Global prefix: + Глобальний префікс: + + + Inherit prefix from file names + Успадковувати префікс з імен файлів + + + Identifiers + Ідентифікатори + + + This page allows you to create identifiers from the keywords found in the .adp or .dcf file. + Ця сторінка дозволяє вам створювати ідентифікатори з ключових слів, знайдених в файлі .adp чи .dcf. + + + IndexWindow &Look for: - + &Шукати: Open Link @@ -468,6 +642,53 @@ Reason: + InputPage + + Form + Форма + + + File name: + Ім'я файлу: + + + ... + ... + + + Input File + Вхідний файл + + + Specify the .adp or .dcf file you want to convert to the new Qt help project format and/or collection format. + Вкажіть файл .adp чи .dcf, який ви бажаєте сконвертувати до нового формату проекту довідки Qt та/або формату колекції. + + + Open file + Відкрити файл + + + Qt Help Files (*.adp *.dcf) + Файли довідки Qt (*.adp *.dcf) + + + File Open Error + Помилка відкриття файлу + + + The specified file could not be opened! + Не вдалось відкрити вказаний файл! + + + File Parsing Error + Помилка розбору файлу + + + Parsing error in line %1! + Помилка розбору в рядку %1! + + + InstallDialog Install Documentation @@ -499,11 +720,11 @@ Reason: Downloading documentation info... - Завантажую інформацію про документацію... + Звантажую інформацію про документацію... Download canceled. - Завантаження скасоване. + Звантаження скасоване. Done. @@ -519,19 +740,19 @@ Reason: Downloading %1... - Завантажую %1... + Звантажую %1... Download failed: %1. - Завантаження провалилось: %1. + Звантаження провалилось: %1. Documentation info file is corrupt! - Файл інформації про документації пошкоджений! + Файл інформації про документацію пошкоджений! Download failed: Downloaded file is corrupted. - Завантаження провалилось: Завантажений файл пошкоджений. + Звантаження провалилось: Звантажений файл пошкоджений. Installing documentation %1... @@ -548,7 +769,7 @@ Reason: MainWindow Index - Індекс + Покажчик Contents @@ -564,7 +785,7 @@ Reason: Looking for Qt Documentation... - + Пошук документації Qt... &File @@ -672,7 +893,7 @@ Reason: &Home - &Додому + &Домівка ALT+Home @@ -748,7 +969,7 @@ Reason: Filter Toolbar - Панель фільтру + Панель фільтрування Filtered by: @@ -772,7 +993,7 @@ Reason: Updating search index - Оновлюється індекс пошуку + Оновлюється покажчик пошуку Could not register file '%1': %2 @@ -780,6 +1001,92 @@ Reason: + OutputPage + + Form + Форма + + + Project file name: + Ім'я файлу проекту: + + + Collection file name: + Ім'я файлу колекції: + + + Output File Names + Імена вихідний файлів + + + Specify the file names for the output files. + Вкажіть імена вихідних файлів. + + + Convert... + Конвертувати... + + + Qt Help Project File + Файл проекту довідки Qt + + + Qt Help Collection Project File + Файл проекту колекції довідки Qt + + + The specified file %1 already exist. + +Do you want to remove it? + Вказаний файл %1 вже існує + +Бажаєте видалити його? + + + Remove + Видалити + + + Cancel + Скасувати + + + + PathPage + + Form + Форма + + + File filters: + Фільтри файлів: + + + Documentation source file paths: + Шляхи вхідних файлів документації: + + + Add + Додати + + + Remove + Видалити + + + Source File Paths + Шляхи вхідних файлів + + + Specify the paths where the sources files are located. By default, all files in those directories matched by the file filter will be included. + Вкажіть шляхи, де розташовані вхідні файли. Зазвичай, усі файли в цих теках, що відповідають фільтру файлів, будуть включені. + + + Source File Path + Шлях вхідного файлу + + + PreferencesDialog Add Documentation @@ -803,7 +1110,7 @@ Reason: Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. - Деякі документи, що зараз відкриті в Assistant пов'язані з документацією, яку ви намагаєтесь видалити. Видалення документації призведе до закриття цих документів. + Деякі документи, що зараз відкриті в Assistant, пов'язані з документацією, яку ви намагаєтесь видалити. Видалення документації призведе до закриття цих документів. Cancel @@ -838,7 +1145,7 @@ Reason: Application - Додаток + Програма Filters @@ -890,7 +1197,7 @@ Reason: Show a blank page - Показувати пусту сторінку + Показувати порожню сторінку Show my tabs from last session @@ -906,7 +1213,7 @@ Reason: Blank Page - Пуста сторінка + Порожня сторінка Restore to default @@ -914,6 +1221,408 @@ Reason: + QCLuceneResultWidget + + Search Results + Результати пошуку + + + Note: + Примітка: + + + The search results may not be complete since the documentation is still being indexed! + Результати пошуку можуть бути не повні, оскільки документація досі індексується! + + + Your search did not match any documents. + Ваш пошук не повернув результатів. + + + (The reason for this might be that the documentation is still being indexed.) + (Причиною цього може бути те, що документація досі індексується.) + + + + QCollectionGenerator + + Unknown token at line %1. + Невідомий токен в рядку %1. + + + Unknown token at line %1. Expected "QtHelpCollectionProject"! + Невідомий токен в рядку %1. Очікувався "QtHelpCollectionProject"! + + + Missing output file name! + Відсутнє ім'я вихідного файлу! + + + Missing collection config file! + Відсутній файл налаштувань колекції! + + + +Usage: + +qcollectiongenerator <collection-config-file> [options] + + -o <collection-file> Generates a collection file + called <collection-file>. If + this option is not specified + a default name will be used. + -v Displays the version of + qcollectiongenerator. + + + +Використання: + +qcollectiongenerator <файл-налаштувань-колекції> [опції] + + -o <файл-колекції> Згенерувати файл колекції з іменем + <файл-колекції>. Якщо цю опцію не + вказано, то використовуватиметься + типове ім'я + -v Показати версію qcollectiongenerator. + + + + + + QHelp + + Untitled + Без назви + + + + QHelpCollectionHandler + + The collection file '%1' is not set up yet! + Файл колекції '%1' ще не встановлено! + + + Cannot load sqlite database driver! + Не можу завантажити драйвер бази даних SQLite! + + + Cannot open collection file: %1 + Неможливо відкрити файл колекції: %1 + + + Cannot create tables in file %1! + Неможливо створити таблиці в файлі %1! + + + The collection file '%1' already exists! + Файл колекції '%1' вже існує! + + + Cannot create directory: %1 + Неможливо створити теку: %1 + + + Cannot copy collection file: %1 + Неможливо скопіювати файл колекції: %1 + + + Unknown filter '%1'! + Невідомий фільтр '%1'! + + + Cannot register filter %1! + Неможливо зареєструвати фільтр %1! + + + Cannot open documentation file %1! + Неможливо відкрити файл документації %1! + + + Invalid documentation file '%1'! + Неправильний файл документації '%1'! + + + The namespace %1 was not registered! + Простір імен %1 не зареєстровано! + + + Namespace %1 already exists! + Простір імен %1 вже існує! + + + Cannot register namespace '%1'! + Неможливо зареєструвати простір імен '%1'! + + + Cannot open database '%1' to optimize! + Неможливо відкрити базу даних '%1' для оптимізації! + + + + QHelpDBReader + + Cannot open database '%1' '%2': %3 + 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 + Неможливо відкрити базу даних: '%1' '%2': %3 + + + + QHelpEngineCore + + Cannot open documentation file %1: %2! + Неможливо файл документації %1: %2! + + + The specified namespace does not exist! + Вказаний простір імен не існує! + + + + QHelpGenerator + + Invalid help data! + Неправильні дані довідки! + + + No output file name specified! + Не вказане ім'я вихідного файлу! + + + The file %1 cannot be overwritten! + Неможливо перезаписати файл %1! + + + Building up file structure... + Побудова структури файлу.... + + + Cannot open data base file %1! + Неможливо відкрити файл бази даних %1! + + + Cannot register namespace %1! + Неможливо зареєструвати простір імен %1! + + + Insert custom filters... + Вставка фільтрів користувача... + + + Insert help data for filter section (%1 of %2)... + Вставка даних довідки для розділу фільтра (%1 з %2)... + + + Documentation successfully generated. + Документацію успішно згенеровано. + + + Some tables already exist! + Деякі таблиці вже існують! + + + Cannot create tables! + Неможливо створити таблиці! + + + Cannot register virtual folder! + Неможливо зареєструвати віртуальну теку! + + + Insert files... + Вставка файлів... + + + The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. + Файл %1 має бути всередині підтеки (%2). Пропускаємо його. + + + The file %1 does not exist! Skipping it. + Файл %1 не існує! Пропускаємо його. + + + Cannot open file %1! Skipping it. + Неможливо відкрити файл %1! Пропускаємо його. + + + The filter %1 is already registered! + Фільтр %1 вже зареєстровано! + + + Cannot register filter %1! + Неможливо зареєструвати фільтр %1! + + + Insert indices... + Вставка індексів... + + + Insert contents... + Вставка змісту... + + + Cannot insert contents! + Неможливо вставити зміст! + + + Cannot register contents! + Неможливо зареєструвати зміст! + + + File '%1' does not exist. + Файл '%1' не існує. + + + File '%1' cannot be opened. + Неможливо відкрити файл '%1'. + + + File '%1' contains an invalid link to file '%2' + Файл '%1' містить неправильне посилання до файлу '%2' + + + Invalid links in HTML files. + Неправильні посилання в файлах HTML. + + + Missing output file name! + Відсутнє ім'я вихідного файлу! + + + Missing Qt help project file! + Відсутній файл проекту колекції довідки Qt! + + + +Usage: + +qhelpgenerator <help-project-file> [options] + + -o <compressed-file> Generates a Qt compressed help + file called <compressed-file>. + If this option is not specified + a default name will be used. + -c Checks whether all links in HTML files + point to files in this help project. + -v Displays the version of + qhelpgenerator. + + + +Використання: + +qhelpgenerator <файл-проекту-довідки> [опції] + + -o <стиснений-файл> Згенерувати стиснений файл довідки + з іменем <стиснений-файл>. Якщо цю + опцію не вказано, то буде використане + типове ім'я. + -c Перевірити, що усі посилання в файлах + HTML files вказують на файли в цьому + проекті довідки. + -v Показати версію qhelpgenerator. + + + + + + QHelpProject + + Unknown token. + Невідомий токен. + + + Unknown token. Expected "QtHelpProject"! + Невідомий токен. Очікувався "QtHelpProject"! + + + Error in line %1: %2 + Помилка в рядку %1: %2 + + + Virtual folder has invalid syntax. + Віртуальна тека має неправильний синтаксис. + + + Namespace has invalid syntax. + Простір імен має неправильний синтаксис. + + + Missing namespace in QtHelpProject. + Відсутній простір імен в QtHelpProject. + + + Missing virtual folder in QtHelpProject + Відсутня віртуальна тека в QtHelpProject + + + Missing attribute in keyword at line %1. + Відсутній атрибут в ключовому слові на рядку %1. + + + The input file %1 could not be opened! + Неможливо відкрити вхідний файл %1! + + + + QHelpSearchQueryWidget + + Search for: + Шукати: + + + Previous search + Попередній пошук + + + Next search + Наступний пошук + + + Search + Пошук + + + Advanced search + Розширений пошук + + + words <B>similar</B> to: + слова <B>схожі</B> на: + + + <B>without</B> the words: + <B>без</B> слів: + + + with <B>exact phrase</B>: + з <B>точною фразою</B>: + + + with <B>all</B> of the words: + з <B>усіма</B> словами: + + + with <B>at least one</B> of the words: + з <B>щонайменше одним</B> зі слів: + + + + QHelpSearchResultWidget + + %1 - %2 of %n Hits + + %1 - %2 з %n збігу + %1 - %2 з %n збігів + %1 - %2 з %n збігів + + + + 0 - 0 of 0 Hits + 0 - 0 of 0 збігів + + + RemoteControl Debugging Remote Control diff --git a/translations/designer_uk.ts b/translations/designer_uk.ts index 24b2a44..ae27e67 100644 --- a/translations/designer_uk.ts +++ b/translations/designer_uk.ts @@ -657,7 +657,7 @@ Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. - Будь-ласка, пропустіть його через <b>uic3&nbsp;-convert</b>, щоб сконвертувати до формату Qt-4. + Будь ласка, пропустіть його через <b>uic3&nbsp;-convert</b>, щоб сконвертувати до формату Qt-4. This file cannot be read because the extra info extension failed to load. @@ -725,15 +725,15 @@ The skin directory '%1' does not contain a configuration file. - Тека обкладинки '%1' не містить конфігураційного файлу. + Тека обкладинки '%1' не містить файлу налаштувань. The skin configuration file '%1' could not be opened. - Неможливо відкрити конфігураційний файл '%1'. + Неможливо відкрити файл налаштувань '%1'. The skin configuration file '%1' could not be read: %2 - Неможливо прочитати конфігураційний файл '%1': %2 + Неможливо прочитати файл налаштувань '%1': %2 Syntax error: %1 @@ -761,7 +761,7 @@ Mismatch in number of areas, expected %1, got %2. - Не співпадає кількість областей, очікувалось %1, отримано %2. + Не збігається кількість областей, очікувалось %1, отримано %2. @@ -1532,7 +1532,7 @@ Would you like to retry? Please close all forms to enable the loading of additional fonts. - Будь-ласка, закрийте усі форми, щоб дозволити завантаження додаткових шрифтів. + Будь ласка, закрийте усі форми, щоб дозволити завантаження додаткових шрифтів. Printed %1. @@ -1693,7 +1693,7 @@ Would you like to retry? The class attribute for the class %1 does not match the class name %2. - Атрибут "клас" для класу %1 не співпадає з іменем класу %2. + Атрибут "клас" для класу %1 не збігається з іменем класу %2. @@ -2736,7 +2736,7 @@ This could for example be a language extension like "_de". <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> - <p>Обраний файл</p><p>%1</p><p>знаходиться поза межами батьківської теки поточного файлу ресурсів.</p><p>%2</p>Будь-ласка, оберіть інший шлях всередині цієї теки.<p><p> + <p>Обраний файл</p><p>%1</p><p>знаходиться поза межами батьківської теки поточного файлу ресурсів.</p><p>%2</p>Будь ласка, оберіть інший шлях всередині цієї теки.<p><p> Could not overwrite %1. @@ -4480,13 +4480,13 @@ Do you want overwrite the template? The current object already has a property named '%1'. Please select another, unique one. Поточний об'єкт вже має властивість з іменем '%1'. -Будь-ласка, оберіть інше, унікальне ім'я. +Будь ласка, оберіть інше, унікальне ім'я. The '_q_' prefix is reserved for the Qt library. Please select another name. Префікс '_q_' зарезервовано для бібліотеки Qt. -Будь-ласка, оберіть інше ім'я. +Будь ласка, оберіть інше ім'я. @@ -5715,7 +5715,7 @@ Class: %2 qdesigner_internal::WidgetDataBase A custom widget plugin whose class name (%1) matches that of an existing class has been found. - Користувацький додаток віджета з іменем класу (%1) співпадає з існуючим класом. + Користувацький додаток віджета з іменем класу (%1) збігається з існуючим класом. @@ -5733,7 +5733,7 @@ Class: %2 A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. - Сталося неспівпадіння імені класу під час створення віджета, використовуючи користувацьку фабрику віджетів, що зареєстрована для класу %1. Вона повернула віджет класу %2. + Сталася розбіжність імені класу під час створення віджета, використовуючи користувацьку фабрику віджетів, що зареєстрована для класу %1. Вона повернула віджет класу %2. %1 Widget diff --git a/translations/linguist_uk.ts b/translations/linguist_uk.ts index 92d16dd..6e58be5 100644 --- a/translations/linguist_uk.ts +++ b/translations/linguist_uk.ts @@ -64,7 +64,7 @@ Searching, please wait... - Здійснюється пошук, будь-ласка, зачекайте... + Здійснюється пошук, будь ласка, зачекайте... &Cancel @@ -211,7 +211,7 @@ Will assume a single universal form. Click here to find the next occurrence of the text you typed in. - Клацніть тут, щоб знайти наступне співпадіння для введеного вами тексту. + Клацніть тут, щоб знайти наступний збіг для введеного вами тексту. Find Next @@ -294,6 +294,147 @@ Will assume a single universal form. + LUpdate + + lupdate warning: Codec for tr() '%1' disagrees with existing file's codec '%2'. Expect trouble. + + попередження lupdate: Кодек для tr() '%1' не узгоджується з існуючим кодеком файлу '%2'. Очікуйте неприємностей. + + + + lupdate warning: Specified target language '%1' disagrees with existing file's language '%2'. Ignoring. + + попередження lupdate: Вказана мова перекладу '%1' не узгоджується з існуючою мовою файлу '%2'. Ігнорую. + + + + lupdate warning: Specified source language '%1' disagrees with existing file's language '%2'. Ignoring. + + попередження lupdate: Вказана мова оригіналу '%1' не узгоджується з існуючою мовою файлу '%2'. Ігнорую. + + + + lupdate warning: Codec for source '%1' is invalid. Falling back to codec for tr(). + + попередження lupdate: Кодек для джерела '%1' неправильний. Повертаємось до використання кодеку для tr(). + + + + The option -target-language requires a parameter. + + Опція -target-language вимагає параметра. + + + + The option -source-language requires a parameter. + + Опція -source-language вимагає параметра. + + + + The option -disable-heuristic requires a parameter. + + Опція -disable-heuristic вимагає параметра. + + + + Invalid heuristic name passed to -disable-heuristic. + + Неправильна назва евристики для -disable-heuristic. + + + + The option -locations requires a parameter. + + Опція -locations вимагає параметра. + + + + Invalid parameter passed to -locations. + + Неправильний параметр для -locations. + + + + The -codecfortr option should be followed by a codec name. + + За опцією -codecfortr має слідувати назва кодека. + + + + The -extensions option should be followed by an extension list. + + За опцією -extensions має слідувати список розширень. + + + + The -pro option should be followed by a filename of .pro file. + + За опцією -pro має слідувати ім'я .pro файлу. + + + + The -I option should be followed by a path. + + За опцією -l має слідувати шлях. + + + + Unrecognized option '%1'. + + Нерозпізнана опція '%1'. + + + + lupdate error: List file '%1' is not readable. + + помилка lupdate: Неможливо прочитати файл списку '%1'. + + + + lupdate warning: For some reason, '%1' is not writable. + + попередження lupdate: З певних причин в '%1' не можливо записати. + + + + lupdate error: File '%1' has no recognized extension. + + помилка lupdate: Файл '%1' має невідоме розширення. + + + + lupdate error: File '%1' does not exist. + + помилка lupdate: Файл '%1' не існує. + + + + lupdate warning: -target-language usually only makes sense with exactly one TS file. + + попередження lupdate: Використання -target-language, зазвичай, має сенс лише з одним файлом TS. + + + + lupdate warning: -codecfortr has no effect without -ts. + + попередження lupdate: -codecfortr не дає ефекту без -ts. + + + + lupdate warning: no TS files specified. Only diagnostics will be produced. + + попередження lupdate: не вказано файлів TS. Здійснюватиметься лише діагностика. + + + + lupdate error: Both project and source files / include paths specified. + + помилка lupdate: Одночасно вказані файл проекту та вхідні файли / шляхи для включення. + + + + MainWindow MainWindow @@ -613,7 +754,7 @@ Will assume a single universal form. 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. - Перемикання перевірки акселераторів, тобто чи співпадає кількість амперсандів в оригінальному та перекладеному тексті. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + Перемикання перевірки акселераторів, тобто чи збігається кількість амперсандів в оригінальному та перекладеному тексті. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення. &Ending Punctuation @@ -625,11 +766,11 @@ Will assume a single universal form. Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. - Перемикання перевірки кінцевої пунктуації. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + Перемикання перевірки кінцевої пунктуації. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення. &Phrase matches - Співпадіння &фраз + Збіги &фраз Toggle checking that phrase suggestions are used @@ -637,11 +778,11 @@ Will assume a single universal form. Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. - Перемикання перевірки про використання запропонованих фраз. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + Перемикання перевірки про використання запропонованих фраз. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення. Place &Marker Matches - Співпадіння &маркерів положення + Збіги &маркерів положення Toggle the validity check of place markers @@ -649,7 +790,7 @@ Will assume a single universal form. 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. - Перемикання перевірки правильності маркерів розташування, тобто чи усі %1, %2, ... співпадають в оригінальному та перекладеному тексті. Якщо виявлено неспівпадіння, то у вікні попереджень буде показано повідомлення. + Перемикання перевірки правильності маркерів розташування, тобто чи усі %1, %2, ... збігаються в оригінальному та перекладеному тексті. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення. &New Phrase Book... @@ -741,7 +882,7 @@ Will assume a single universal form. Replace the translation on all entries that matches the search source text. - Замінити переклад усіх елементів, що співпадають з оригінальним текстом, що шукається. + Замінити переклад усіх елементів, що збігаються з оригінальним текстом, що шукається. &Batch Translation... @@ -998,7 +1139,7 @@ All files (*) No more occurrences of '%1'. Start over? - Більше співпадінь '%1' немає. Почати спочатку? + Більше збігів '%1' немає. Почати спочатку? Create New Phrase Book @@ -1417,6 +1558,83 @@ Line: %2 + QCoreApplication + + Usage: + lrelease [options] project-file + lrelease [options] ts-files [-qm qm-file] + +lrelease is part of Qt's Linguist tool chain. It can be used as a +stand-alone tool to convert XML-based translations files in the TS +format into the 'compiled' QM format used by QTranslator objects. + +Options: + -help Display this information and exit + -idbased + Use IDs instead of source strings for message keying + -compress + Compress the QM files + -nounfinished + Do not include unfinished translations + -removeidentical + If the translated text is the same as + the source text, do not include the message + -markuntranslated <prefix> + If a message has no real translation, use the source text + prefixed with the given string instead + -silent + Do not explain what is being done + -version + Display the version of lrelease and exit + + Використання: + lrelease [опції] файл-проект + lrelease [опції] файли-ts [-qm файл-qm] + +lrelease - це частина набору програм Qt Linguist. Вона може використовуватися +як окремий засіб для перетворення файлів перекладу на базі XML в форматі TS +до 'скомпільованого' формату QM, що використовується об'єктами QTranslator. + +Опції: + -help Показати цю інформацію та вийти + -idbased + Використовувати ID замість рядків оригіналу як ключі повідомлень + -compress + Стискати файли QM + -nounfinished + Не включати незавершені переклади + -removeidentical + Якщо перекладений текст однаковий з оригіналом, то + не включати повідомлення + -markuntranslated <prefix> + If a message has no real translation, use the source text + prefixed with the given string instead + -silent + Не пояснювати, що відбувається + -version + Показати версію lrelease та вийти + + + + Updating '%1'... + + Оновлюю '%1'... + + + + Removing translations equal to source text in '%1'... + + Видалення перекладів однакових з оригінальним текстом в '%1'... + + + + lrelease version %1 + + lrelease версії %1 + + + + QObject Translation files (%1);; @@ -1462,6 +1680,216 @@ Line: %2 XLIFF localization files Файли локалізації XLIFF + + Usage: + lupdate [options] [project-file]... + lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file + +lupdate is part of Qt's Linguist tool chain. It extracts translatable +messages from Qt UI files, C++, Java and JavaScript/QtScript source code. +Extracted messages are stored in textual translation source files (typically +Qt TS XML). New and modified messages can be merged into existing TS files. + +Options: + -help Display this information and exit. + -no-obsolete + Drop all obsolete strings. + -extensions <ext>[,<ext>]... + Process files with the given extensions only. + The extension list must be separated with commas, not with whitespace. + Default: '%1'. + -pluralonly + Only include plural form messages. + -silent + Do not explain what is being done. + -no-sort + Do not sort contexts in TS files. + -no-recursive + Do not recursively scan the following directories. + -recursive + Recursively scan the following directories (default). + -I <includepath> or -I<includepath> + Additional location to look for include files. + May be specified multiple times. + -locations {absolute|relative|none} + Specify/override how source code references are saved in TS files. + Default is absolute. + -no-ui-lines + Do not record line numbers in references to UI files. + -disable-heuristic {sametext|similartext|number} + Disable the named merge heuristic. Can be specified multiple times. + -pro <filename> + Name of a .pro file. Useful for files with .pro file syntax but + different file suffix. Projects are recursed into and merged. + -source-language <language>[_<region>] + Specify the language of the source strings for new files. + Defaults to POSIX if not specified. + -target-language <language>[_<region>] + Specify the language of the translations for new files. + Guessed from the file name if not specified. + -ts <ts-file>... + Specify the output file(s). This will override the TRANSLATIONS + and nullify the CODECFORTR from possibly specified project files. + -codecfortr <codec> + Specify the codec assumed for tr() calls. Effective only with -ts. + -version + Display the version of lupdate and exit. + @lst-file + Read additional file names (one per line) from lst-file. + + Використання: + lupdate [опції] [файл-проект]... + lupdate [опції] [вхідний-файл|шлях|@файл-список]... -ts ts-файли|@файл-список + +lupdate - це частина набору програм Qt Linguist. Вона It витягає придатні для перекладу +повідомлення з файлів Qt UI, коду C++, Java та JavaScript/QtScript. Витягнуті повідомлення +зберігаються в текстовому файлі перекладу (типово Qt TS XML). Нові та модифіковані +повідомлення можуть бути об'єднанні з існуючими файлами TS. + +Опції: + -help Показати цю інформацію та вийти. + -no-obsolete + Видалити всі застарілі рядки. + -extensions <розширення>[,<розширення>]... + Обробляти файли лише з вказаними розширеннями. + Список розширень має розділюватись комами, а не пропусками. + Типово: '%1'. + -pluralonly + Включати лише повідомлення з формою множини. + -silent + Не пояснювати, що відбувається. + -no-sort + Не сортувати контексти в файлах TS. + -no-recursive + Не сканувати рекурсивно наступні теки. + -recursive + Рекурсивно сканувати наступні теки (типово). + -I <шлях-включення> або -I<шлях-включення> + Додаткові місця для пошуку файлів включення. + Може бути вказано декілька разів. + -locations {absolute|relative|none} + Вказати/замістити як посилання на код зберігаються в файлі TS. + Типово - абсолютно. + -no-ui-lines + Не записувати номери рядків в посиланнях на файли UI. + -disable-heuristic {sametext|similartext|number} + Вимкнути вказану евристику об'єдання. Може бути вказано декілька разів. + -pro <ім'я-файлу> + Ім'я .pro файлу. Корисно для файлів із синтаксисом фалів .pro, але з + іншим розширенням. Projects are recursed into and merged. + -source-language <мова>[_<регіон>] + Вказати мову оригінальних рядків для нових файлів. + Типово, якщо не вказано - POSIX. + -target-language <мова>[_<регіон>] + Вказати мову перекладу для нових файлів. + Вгадується з імені файла, якщо не вказано. + -ts <файл-ts>... + Вказати вихідний файл(и). Це замістить TRANSLATIONS + та скине CODECFORTR з, можливо, вказаних файлів проекту. + -codecfortr <кодек> + Вказати кодек, що Specify the codec вживається для викликів tr(). Ефективно лише з -ts. + -version + Показати версію lupdate та вийти. + @файл-список + Читати додаткові імена файлів (одне на рядок) з файла-списку. + + + + Updating '%1'... + + Оновлюю '%1'... + + + + Stripping non plural forms in '%1'... + + Видалення не множинних форм в '%1'... + + + + lupdate version %1 + + lupdate версії %1 + + + + Scanning directory '%1'... + + Сканування теки '%1'... + + + + Found %n source text(s) (%1 new and %2 already existing) + + + Знайдено %n оригінальний текст (%1 новий та %2 вже існує) + + Знайдено %n оригінальних тексти (%1 нових та %2 вже існує) + + Знайдено %n оригінальних текстів (%1 нових та %2 вже існує) + + + + + Removed %n obsolete entries + + + Видалено %n застарілий елемент + + Видалено %n застарілих елементи + + Видалено %n застарілих елементів + + + + + Kept %n obsolete entries + + + Залишено %n застарілий елемент + + Залишено %n застарілих елементи + + Залишено %n застарілих елементів + + + + + Number heuristic provided %n translation(s) + + + Числова евристика надала %n переклад + + Числова евристика надала %n переклади + + Числова евристика надала %n перекладів + + + + + Same-text heuristic provided %n translation(s) + + + Евристика "однаковий текст" надала %n переклад + + Евристика "однаковий текст" надала %n переклади + + Евристика "однаковий текст" надала %n перекладів + + + + + Similar-text heuristic provided %n translation(s) + + + Евристика "схожий текст" надала %n переклад + + Евристика "схожий текст" надала %n переклади + + Евристика "схожий текст" надала %n перекладів + + + SourceCodeView @@ -1549,7 +1977,7 @@ Line: %2 Click here to find the next occurrence of the text you typed in. - Клацніть тут, щоб знайти наступне співпадіння для введеного вами тексту. + Клацніть тут, щоб знайти наступний збіг для введеного вами тексту. Find Next diff --git a/translations/qt_help_uk.ts b/translations/qt_help_uk.ts index 1687959..b8bc984 100644 --- a/translations/qt_help_uk.ts +++ b/translations/qt_help_uk.ts @@ -307,14 +307,14 @@ %1 - %2 of %n Hits - %1 - %2 з %n співпадіння - %1 - %2 з %n співпадінь - %1 - %2 з %n співпадінь + %1 - %2 з %n збіг + %1 - %2 з %n збіги + %1 - %2 з %n збігів 0 - 0 of 0 Hits - 0 - 0 з 0 співпадінь + 0 - 0 з 0 збігів diff --git a/translations/qt_uk.ts b/translations/qt_uk.ts index 5164521..7a223f4 100644 --- a/translations/qt_uk.ts +++ b/translations/qt_uk.ts @@ -2,610 +2,827 @@ - AudioOutput + CloseButton - - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> - + Close Tab + Закрити вкладку + + + FakeReply - - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> - + Fake error ! + Несправжня помилка ! - - Revert back to device '%1' - + Invalid URL + Неправильний URL - CloseButton + MAC_APPLICATION_MENU - - Close Tab - + Services + Служби - - - MainWindow - Print - Друкувати + Hide %1 + Сховати %1 - - - PPDOptionsModel - Name - Ім'я + Hide Others + Сховати інші - Value - Значення + Show All + Показати всі + + + Preferences... + Налаштування... + + + Quit %1 + Вийти з %1 + + + About %1 + Про %1 Phonon:: - Notifications - + Сповіщення - Music - + Музика - Video - + Відео - Communication - + Спілкування - Games - + Ігри - Accessibility - + Доступність + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>Пристрій відтворення звуку <b>%1</b> не працює.<br/>Буде використовуватись <b>%2</b>.</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Перемикання на пристрій відтворення звуку <b>%1</b><br/>, який став доступний та має вищий пріоритет.</html> + + + Revert back to device '%1' + Повернення до пристрою ’%1' + + + <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> + <html>Перемикання на пристрій відтворення звуку <b>%1</b><br/>, який має вищий пріоритет чи спеціально налаштований для цього потоку.</html> Phonon::Gstreamer::Backend - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. - + Попередження: Схоже, що у вас не встановлено пакунок gstreamer0.10-plugins-good. + Деякі можливості відео були вимкнені. - Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled - + Попередження: Схоже, що у вас не встановлено базові додатки Gstreamer. + Уся підтримка звуку та відео була вимкнена Phonon::Gstreamer::MediaObject - Cannot start playback. -Check your Gstreamer installation and make sure you +Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed. - + Неможливо почати відтворення. + +Перевірте ваше встановлення GStreamer та переконайтесь, +що у вас встановлено libgstreamer-plugins-base. + + + Missing codec helper script assistant. + Відсутній допоміжний скрипт встановлення кодека. + + + Plugin codec installation failed for codec: %0 + Збій встановлення додатку кодека: %0 - A required codec is missing. You need to install the following codec(s) to play this content: %0 - + Відсутній необхідний кодек. Вам потрібно встановити наступні кодеки для відтворення цього вмісту: %0 - - - - - - - - Could not open media source. - + Не вдалося відкрити джерело медіа-даних. - Invalid source type. - + Неправильний тип джерела. - Could not locate media source. - + Не вдалося знайти джерело медіа-даних. - Could not open audio device. The device is already in use. - + Не вдалося відкрити звуковий пристрій. Пристрій вже використовується. - Could not decode media source. - + Не вдалося декодувати джерело медіа-даних. + + + + Phonon::MMF + + Audio Output + Звуковий вихід + + + The audio output device + Пристрій виведення звуку + + + No error + Немає помилки + + + Not found + Не знайдено + + + Out of memory + Недостатньо пам’яті + + + Not supported + Не підтримується + + + Overflow + Переповнення + + + Underflow + Недостача + + + Already exists + Вже існує + + + Path not found + Шлях не знайдено + + + In use + Використовується + + + Not ready + Не готово + + + Access denied + Доступ заборонено + + + Could not connect + Не вдалося з’єднатись + + + Disconnected + Від’єднано + + + Permission denied + Доступ заборонено + + + Insufficient bandwidth + Недостатня пропускна здатність + + + Network unavailable + Мережа недоступна + + + Network communication error + Комунікаційна помилка мережі + + + Streaming not supported + Потокова передача не підтримується + + + Server alert + Сповіщення сервера + + + Invalid protocol + Неправильний протокол + + + Invalid URL + Неправильний URL + + + Multicast error + Помилка групової передачі + + + Proxy server error + Помилка проксі-сервера + + + Proxy server not supported + Проксі-сервер не підтримується + + + Audio output error + Помилка виведення звуку + + + Video output error + Помилка виведення відео + + + Decoder error + Помилка декодера + + + Audio or video components could not be played + Не вдалося відтворити аудіо- чи відео-компонент + + + DRM error + Помилка DRM + + + Unknown error (%1) + Невідома помилка (%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + Не готовий до відтворення + + + Error opening file + Помилка відкриття файлу + + + Error opening URL + Помилка відкриття URL + + + Error opening resource + Помилка відкриття ресурсу + + + Error opening source: resource not opened + Помилка відкриття джерела: ресурс не відкрито + + + Setting volume failed + Збій встановлення гучності + + + Loading clip failed + Збій завантаження кліпу + + + Playback complete + Відтворення завершене + + + + Phonon::MMF::AbstractVideoPlayer + + Pause failed + Збій паузи + + + Seek failed + Збій прокрутки + + + Getting position failed + Збій отримання позиції + + + Opening clip failed + Збій відкриття кліпу + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Гц + + + + Phonon::MMF::AudioPlayer + + Getting position failed + Збій отримання позиції + + + + Phonon::MMF::DsaVideoPlayer + + Video display error + Помилка відображення відео + + + + Phonon::MMF::EffectFactory + + Enabled + Увімкнено + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. + Коефіцієнт послаблення ВЧ (%) + + + Decay time (ms) + DecayTime: Time over which reverberation is diminished. + Час послаблення (мс) + + + Density (%) + 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. + Щільність (%) + + + Diffusion (%) + 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. + Розсіювання (%) + + + Reflections delay (ms) + ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. + Затримка відбиття (мс) + + + Reflections level (mB) + ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. + Рівень відбиття (мБ) + + + Reverb delay (ms) + ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. + Затримка луни (мс) + + + Reverb level (mB) + ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. + Рівень луни (мБ) + + + Room HF level + RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. + Рівень ВЧ відбиття + + + Room level (mB) + RoomLevel: Master volume control for all reflected sound. + Рівень відбиття (мБ) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + Помилка відкриття джерела: тип не підтримується + + + Error opening source: resource is compressed + Помилка відкриття джерела: ресурс стиснутий + + + Error opening source: resource not valid + Помилка відкриття джерела: ресурс неправильний + + + Error opening source: media type could not be determined + Помилка відкриття джерела: не вдалося визначити тип медіа-даних + + + + Phonon::MMF::StereoWidening + + Level (%) + Рівень (%) + + + + Phonon::MMF::SurfaceVideoPlayer + + Video display error + Помилка відображення відео Phonon::VolumeSlider - - Volume: %1% - + Гучність: %1% - - - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% - + Використовуйте цей повзунок для регулювання гучності. Крайня ліва позиція - 0%, крайня права - %1% + + + Muted + Без звуку Q3Accel - %1, %2 not defined %1, %2 не визначено - Ambiguous %1 not handled - Неоднозначний %1 не оброблюється + Неоднозначний %1 не оброблено Q3DataTable - True - Так + Істинно - False - Ні + Хибно - Insert Вставити - Update Оновити - Delete - Вилучити + Видалити Q3FileDialog - Copy or Move a File - Копіювати або пересунути файл + Копіювати або перемістити файл - Read: %1 Читання: %1 - - Write: %1 Запис: %1 - - Cancel Скасувати - - - - All Files (*) - Всі файли (*) + Усі файли (*) - Name Ім'я - Size Розмір - Type Тип - Date Дата - Attributes Атрибути - - &OK - &Гаразд + &OK - Look &in: - Перегляд &в: + Пере&гляд в: - - - File &name: &Ім'я файлу: - File &type: &Тип файлу: - Back Назад - One directory up - Один каталог угору + На теку вище - Create New Folder Створити нову теку - List View - Вигляд списком + Списком - Detail View - Вигляд з подробицями + Детально - Preview File Info - Перегляд відомостей про файл + Попередній перегляд інформації про файл - Preview File Contents - Перегляд вмісту файла + Попередній перегляд змісту файлу - Read-write - Читання-запис + Читання та запис - Read-only - Тільки для читання + Лише читання - Write-only - Тільки для запису + Лише запис - Inaccessible Недоступний - Symlink to File Символьне посилання на файл - Symlink to Directory - Символьне посилання на каталог + Символьне посилання на теку - Symlink to Special - Символьне посилання на спеціальний файл + Символьне посилання на спецфайл - File Файл - Dir - Каталог + Тека - Special - Спеціальний файл + Спецфайл - - - Open Відкрити - - Save As - Зберегти, як + Зберегти як - - - &Open &Відкрити - - &Save &Зберегти - &Rename &Перейменувати - &Delete - &Витерти + Ви&далити - R&eload - О&новити + &Оновити - Sort by &Name - Впорядкувати за &ім'ям + Сортувати по &імені - Sort by &Size - Впорядкувати за &розміром + Сортувати по &розміру - Sort by &Date - Впорядкувати за &датою + Сортувати по &даті - &Unsorted - &Невпорядковано + &Без сортування - Sort - Впорядкувати + Сортувати - Show &hidden files - Показати &приховані файли + Показувати при&ховані файли - the file файл - the directory - каталог + тека - the symlink символьне посилання - Delete %1 - Вилучити %1 + Видалити %1 - <qt>Are you sure you wish to delete %1 "%2"?</qt> - <qt>Ви дійсно хочете вилучити %1 "%2"?</qt> + <qt>Ви впевнені, що бажаєте видалити %1 "%2"?</qt> - &Yes - &Так + Т&ак - &No &Ні - New Folder 1 Нова тека 1 - New Folder Нова тека - New Folder %1 Нова тека %1 - Find Directory - Знайти каталог + Пошук теки - - Directories - Каталоги + Теки - Directory: - Каталог: + Тека: - - Error Помилка - %1 File not found. Check path and filename. %1 Файл не знайдено. -Перевірте шлях та ім'я файла. +Перевірте шлях та назву файлу. - All Files (*.*) - Всі файли (*.*) + Усі файли (*) - Open Відкрити - Select a Directory - Виберіть каталог + Оберіть теку Q3LocalFs - - Could not read directory %1 - Неможливо прочитати каталог + Не вдалося прочитати теку %1 - Could not create directory %1 - Неможливо створити каталог%1 + Не вдалося створити теку +%1 - Could not remove file or directory %1 - Неможливо вилучити файли або каталог + Не вдалося видалити файл або теку %1 - Could not rename %1 to %2 - Неможливо перейменувати + Не вдалося перейменувати %1 в %2 - Could not open %1 - Неможливо відкрити + Не вдалося відкрити %1 - Could not write %1 - Неможливо записати + Не вдалося записати %1 Q3MainWindow - Line up Вирівняти - Customize... - Підлаштувати... + Налаштувати... Q3NetworkProtocol - Operation stopped by the user - Дію зупинено користувачем + Операція зупинена користувачем Q3ProgressDialog - - Cancel Скасувати @@ -613,28 +830,22 @@ to Q3TabDialog - - OK - Гаразд + OK - Apply Застосувати - Help Довідка - Defaults - Типові значення + Типово - Cancel Скасувати @@ -642,166 +853,131 @@ to Q3TextEdit - &Undo &Повернути - &Redo П&овторити - Cu&t Ви&різати - &Copy &Копіювати - &Paste &Вставити - Clear Очистити - - Select All - Вибрати все + Виділити все Q3TitleBar - System Система - Restore up - Відновити вгору + Відновити - Minimize Мінімізувати - Restore down - Відновити додолу + Відновити - Maximize Максимізувати - Close Закрити - Contains commands to manipulate the window - Містить команди для дій над вікном + Містить команди для маніпуляцій з вікном - - Puts a minimized back to normal - Повертає мінімізоване в нормальний стан + Puts a minimized window back to normal + Повертає мінімізоване вікно назад до нормального - Moves the window out of the way - Відсуває вікно з дороги + Прибирає вікно з очей - Puts a maximized window back to normal - Повертає максимізоване в нормальний стан + Повертає максимізоване вікно назад до нормального - Makes the window full screen - Показує вікно на весь екран + Розгортає вікно на весь екран - Closes the window Закриває вікно - Displays the name of the window and contains controls to manipulate it - Показує ім'я вікна та містить елементи керування ним + Показує назву вікна та містить команди для маніпуляцій з ним Q3ToolBar - More... - Додатково... + Більше... Q3UrlOperator - - - The protocol `%1' is not supported - Протокол "%1" не підтримується + Протокол ’%1’ не підтримується - The protocol `%1' does not support listing directories - Протокол "%1" не підтримує перегляд списку каталогів + Протокол ’%1’ не підтримує перегляд тек - The protocol `%1' does not support creating new directories - Протокол "%1" не підтримує створення каталогів + Протокол ’%1’ не підтримує створення нових тек - The protocol `%1' does not support removing files or directories - Протокол "%1" не підтримує вилучення файлів або каталогів + Протокол ’%1’ не підтримує видалення файлів чи тек - The protocol `%1' does not support renaming files or directories - Протокол "%1" не підтримує перейменування файлів та каталогів + Протокол ’%1’ не підтримує перейменування файлів чи тек - The protocol `%1' does not support getting files - Протокол "%1" не підтримує отримання файлів + Протокол ’%1’ не підтримує отримання файлів - The protocol `%1' does not support putting files - Протокол "%1" не підтримує викладення файлів + Протокол ’%1’ не підтримує відправлення файлів - - The protocol `%1' does not support copying or moving files or directories - Протокол "%1" не підтримує копіювання або пересування файлів та каталогів + Протокол ’%1’ не підтримує копіювання або переміщення файлів чи тек - - (unknown) (невідомо) @@ -809,27 +985,22 @@ to Q3Wizard - &Cancel &Скасувати - < &Back < &Назад - &Next > - &Вперед > + &Далі > - &Finish - &Закінчити + &Завершити - &Help &Довідка @@ -837,274 +1008,233 @@ to QAbstractSocket - - - - - Host not found - Вузол не знайдено + Socket operation timed out + Час на операцію з сокетом вичерпано - - - - Connection refused - Відмовлено у зв'язку + Operation on socket is not supported + Непідтримувана для сокета операція - - Connection timed out - Перевищено термін очікування для з'єднання + Host not found + Вузол не знайдено - - - - Operation on socket is not supported - + Connection refused + У з'єднанні відмовлено - - Socket operation timed out - Дія з сокетом перевищила термін очікування + Connection timed out + Час на з’єднання вичерпано - Socket is not connected - Сокет не є під'єднаним + Сокет не під’єднано - Network unreachable - Мережа недосяжна + Мережа недоступна QAbstractSpinBox - + &Select All + &Виділити все + + &Step up - &Крок вгору + Крок в&гору - Step &down - Крок &додолу + Крок до&низу + + + QAccessibleButton - - &Select All - &Вибрати все + Press + Натисніть QApplication - Activate Активувати - + Activates the program's main window + Активує головне вікно програми + + Executable '%1' requires Qt %2, found Qt %3. - Програма "%1" потребує Qt %2, але знайдено Qt %3. + Виконуваний модуль '%1' вимагає Qt %2, знайдено Qt %3. - Incompatible Qt Library Error - Помилка несумісності бібліотеки Qt + Несумісна бібліотека Qt - QT_LAYOUT_DIRECTION 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. LTR - - - Activates the program's main window - Активує головне вікно програми - QAxSelect - Select ActiveX Control - Виберіть елемент ActiveX + Виберіть елемент керування ActiveX - OK - Гаразд + OK - &Cancel &Скасувати - COM &Object: - &Об'єкт COM: + COM-&об'єкт: QCheckBox - Uncheck - Зняти позначку + Зняти відмітку - Check - Поставити позначку + Відмітити - Toggle - Перемикнути + Перемкнути QColorDialog - Hu&e: - Від&тінок: + &Відтінок: - &Sat: &Насиченість: - &Val: - &Значення: + Зна&чення: - &Red: &Червоний: - &Green: &Зелений: - Bl&ue: - С&иній: + &Блакитний: - A&lpha channel: - Канал а&льфа: + &Альфа-канал: - Select Color - + Оберіть колір - &Basic colors - &Базові кольори + Баз&ові кольори - &Custom colors - &Нетипові кольори + &Кольори користувача - &Define Custom Colors >> - &Налаштувати нетипові кольори >> + &Add to Custom Colors + &Додати до кольорів користувача + + + QComboBox - OK - Гаразд + False + Хибно - Cancel - Скасувати + True + Істинно - - &Add to Custom Colors - &Додати до нетипових кольорів + Open + Відкрити - Select color - Виберіть колір + Close + Закрити - QComboBox + QCoreApplication - - - Open - Відкрити + %1: already exists + QSystemSemaphore + %1: вже існує - - False - Ні + %1: does not exist + QSystemSemaphore + %1: не існує - - True - Так + %1: out of resources + QSystemSemaphore + %1: недостатньо ресурсів - - Close - Закрити + %1: unknown error %2 + QSystemSemaphore + %1: невідома помилка %2 - - - QCoreApplication - %1: key is empty QSystemSemaphore - + %1: порожній ключ - %1: unable to make key QSystemSemaphore - + %1: неможливо створити ключ - %1: ftok failed QSystemSemaphore - + %1: помилка ftok QDB2Driver - Unable to connect - Неможливо з'єднатися + Неможливо з'єднатись - Unable to commit transaction Неможливо завершити транзакцію - Unable to rollback transaction Неможливо відкотити транзакцію - Unable to set autocommit Неможливо встановити автозавершення транзакцій @@ -1112,6882 +1242,8497 @@ to QDB2Result - - Unable to execute statement - Неможливо виконати оператор + Неможливо виконати вираз - Unable to prepare statement - Неможливо підготувати оператор + Неможливо підготувати вираз - Unable to bind variable Неможливо прив'язати змінну - Unable to fetch record %1 - Неможливо вибрати запис %1 + Неможливо отримати запис %1 - Unable to fetch next - Неможливо вибрати наступний + Неможливо отримати наступний запис - Unable to fetch first - Неможливо вибрати перший + Неможливо отримати перший запис QDateTimeEdit - AM AM - am am - PM PM - pm pm - QDial + QDeclarativeAbstractAnimation - - QDial - QDial + Cannot animate non-existent property "%1" + Неможливо анімувати неіснуючу властивість "%1" - - SpeedoMeter - Спідометр + Cannot animate read-only property "%1" + Неможливо анімувати властивість лише для читання "%1" - - SliderHandle - ДержакПовзунка + Animation is an abstract class + Animation - це абстрактний клас - QDialog - - - What's This? - Що це? - + QDeclarativeAnchorAnimation - - Done - Зроблено + Cannot set a duration of < 0 + Не можу встановити тривалість < 0 - QDialogButtonBox + QDeclarativeAnchors - - - - OK - Гаразд + Possible anchor loop detected on fill. + Виявлено імовірну циклічну прив'язку до fill. - - Save - Зберегти + Possible anchor loop detected on centerIn. + Виявлено імовірну циклічну прив'язку до centerIn. - - &Save - &Зберегти + Cannot anchor to an item that isn't a parent or sibling. + Неможливо прив'язати до елемента, що не є батьківським чи сусіднім. - - Open - Відкрити + Possible anchor loop detected on vertical anchor. + Виявлено імовірну циклічну прив'язку до вертикальної прив'язки. - - Cancel - Скасувати + Possible anchor loop detected on horizontal anchor. + Виявлено імовірну циклічну прив'язку до горизонтальної прив'язки. - - &Cancel - &Скасувати + Cannot specify left, right, and hcenter anchors. + Неможливо задати прив'язки зліва, справа та центру по горизонталі. - - Close - Закрити + Cannot anchor to a null item. + Неможливо прив'язати до нульового елемента. - - &Close - &Закрити + Cannot anchor a horizontal edge to a vertical edge. + Неможливо прив'язати горизонтальний край до вертикального. - - Apply - Застосувати + Cannot anchor item to self. + Неможливо прив'язати елемент до самого себе. - - Reset - Скинути + Cannot specify top, bottom, and vcenter anchors. + Неможливо задати прив'язки верху, низу та центру по вертикалі. - - Help - Довідка + Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. + Неможливо використати базову прив'язку разом з верхньої, нижньою чи центральною по вертикалі. - - Don't Save - Не зберігати + Cannot anchor a vertical edge to a horizontal edge. + Неможливо прив'язати вертикальний край до горизонтального. + + + QDeclarativeAnimatedImage - - Discard - Відкинути + Qt was built without support for QMovie + Бібліотека Qt була зібрана без підтримки QMovie + + + QDeclarativeBehavior - - &Yes - &Так + Cannot change the animation assigned to a Behavior. + Неможливо змінити анімацію, призначену до поведінки. + + + QDeclarativeBinding - - Yes to &All - Так для &всіх + Binding loop detected for property "%1" + Знайдено циклічну прив’язку для властивості "%1" + + + QDeclarativeCompiledBindings - - &No - &Ні + Binding loop detected for property "%1" + Знайдено циклічну прив’язку для властивості "%1" + + + QDeclarativeCompiler - - N&o to All - Н&і для всіх + Invalid property assignment: "%1" is a read-only property + Неправильне присвоєння властивості: властивість "%1" лише для читання - - Save All - Зберегти всі + Invalid property assignment: unknown enumeration + Неправильне присвоєння властивості: невідомий перелік - - Abort - Перервати + Invalid property assignment: string expected + Неправильне присвоєння властивості: очікувався рядок - - Retry - Повторна спроба + Invalid property assignment: url expected + Неправильне присвоєння властивості: очікувався URL - - Ignore - Пропустити + Invalid property assignment: unsigned int expected + Неправильне присвоєння властивості: очікувалось беззнакове ціле - - Restore Defaults - Відновити типові + Invalid property assignment: int expected + Неправильне присвоєння властивості: очікувалось ціле - - Close without Saving - Закрити без збереження + Invalid property assignment: number expected + Неправильне присвоєння властивості: очікувалось число - - &OK - &Гаразд + Invalid property assignment: color expected + Неправильне присвоєння властивості: очікувався колір - - - QDirModel - - Name - Ім'я + Invalid property assignment: date expected + Неправильне присвоєння властивості: очікувалась дата - - Size - Розмір + Invalid property assignment: time expected + Неправильне присвоєння властивості: очікувався час - - Kind - Match OS X Finder - Тип + Invalid property assignment: datetime expected + Неправильне присвоєння властивості: очікувались дата та час - - Type - All other platforms - Тип + Invalid property assignment: point expected + Неправильне присвоєння властивості: очікувалась точка - - Date Modified - Дата зміни + Invalid property assignment: size expected + Неправильне присвоєння властивості: очікувався розмір - - - QDockWidget - - Close - Закрити + Invalid property assignment: rect expected + Неправильне присвоєння властивості: очікувався прямокутник - - Dock - Пришвартувати + Invalid property assignment: boolean expected + Неправильне присвоєння властивості: очікувалось булеве - - Float - Відшвартувати + Invalid property assignment: 3D vector expected + Неправильне присвоєння властивості: очікувався тривимірний вектор - - - QDoubleSpinBox - - More - Більше + Invalid property assignment: unsupported type "%1" + Неправильне присвоєння властивості: непідтримуваний тип "%1" - - Less - Менше + Element is not creatable. + Елемент не є створюваним. - - - QErrorMessage - - Debug Message: - Повідомлення зневадження: + Component elements may not contain properties other than id + Елементи Component не можуть містити властивостей окрім id - - Warning: - Попередження: + Invalid component id specification + Неправильна специфікація ідентифікатора компоненти - - Fatal Error: - Фатальна помилка: + id is not unique + ідентифікатор не унікальний - - &Show this message again - &Показувати це повідомлення знову + Invalid component body specification + Неправильна специфікація тіла компоненти - - &OK - &Гаразд + Component objects cannot declare new properties. + Об'єкти Component не можуть оголошувати нові властивості. - - - QFile - - - Destination file exists - + Component objects cannot declare new signals. + Об'єкти Component не можуть оголошувати нові сигнали. - - Cannot remove source file - + Component objects cannot declare new functions. + Об'єкти Component не можуть оголошувати нові функції. - - Cannot open %1 for input - + Cannot create empty component specification + Неможливо створити порожню специфікацію компоненти - - Cannot open for output - + Incorrectly specified signal assignment + Неправильно вказане призначення сигналу - - Failure to write block - + Cannot assign a value to a signal (expecting a script to be run) + Неможливо призначити значення сигналу (очікується скрипт для виконання) - - Cannot create %1 for output - + Empty signal assignment + Порожнє призначення сигналу - - - QFileDialog - - - All Files (*) - Всі файли (*) + Empty property assignment + Порожнє призначення властивості - - Directories - Каталоги + Attached properties cannot be used here + Прикріплені властивості не можуть бути тут використані - - - - - &Open - &Відкрити + Non-existent attached object + Неіснуючий прикріплений об'єкт - - - &Save - &Зберегти + Invalid attached object assignment + Неправильне призначення прикріпленого об'єкта - - Open - Відкрити + Cannot assign to non-existent default property + Неможливо призначити до неіснуючої типової властивості - - %1 already exists. -Do you want to replace it? - %1 вже існує. -Перезаписати? + Cannot assign to non-existent property "%1" + Неможливо призначити неіснуючій властивості "%1" - - %1 -File not found. -Please verify the correct file name was given. - %1. -Файл не знайдено. -Переконайтеся, що введено правильне ім'я файлу. + Invalid use of namespace + Неправильне використання простору імен - - My Computer - Мій комп'ютер + Not an attached property name + Не є назвою прикріпленої властивості - - &Rename - &Перейменувати + Invalid use of id property + Неправильне використання властивості id - - &Delete - &Витерти + Property has already been assigned a value + Властивості вже призначено значення - - Show &hidden files - Показати &приховані файли + Invalid grouped property access + Неправильний доступ до згрупованої властивості - - - Back - Назад + Cannot assign a value directly to a grouped property + Неможливо призначити значення безпосередньо до згрупованої властивості - - - Parent Directory - Батьківський каталог + Invalid property use + Неправильне використання властивості - - - List View - Вигляд списком + Property assignment expected + Очікувалось призначення властивості - - - Detail View - Вигляд з подробицями + Single property assignment expected + Очікується одиночне призначення властивості - - - Files of type: - Тип файлів: + Unexpected object assignment + Неочікуване призначення об'єкта - - - Directory: - Каталог: + Cannot assign object to list + Неможливо призначити об'єкт списку - -File not found. -Please verify the correct file name was given - -Файл не знайдено. -Переконайтеся, що введено правильне ім'я файлу + Can only assign one binding to lists + Можна призначити лише один зв'язок до списків - - - %1 -Directory not found. -Please verify the correct directory name was given. - %1. -Каталог не знайдено. -Переконайтеся, що введено правильне ім'я каталогу. + Cannot assign primitives to lists + Неможливо призначити примітиви до списків - - '%1' is write protected. -Do you want to delete it anyway? - "%1" захищено від запису. -Дійсно вилучити? + Cannot assign multiple values to a script property + Неможливо призначити декілька значень властивості скрипту - - Are sure you want to delete '%1'? - Дійсно вилучити "%1"? + Invalid property assignment: script expected + Неправильне присвоєння властивості: очікувався скрипт - - Could not delete directory. - Неможливо вилучити каталог. + Cannot assign object to property + Неможливо призначити об'єкт властивості - - Recent Places - + "%1" cannot operate on "%2" + "%1" не може оперувати над "%2" - - All Files (*.*) - Всі файли (*.*) + Duplicate default property + Дубльована типова властивість - - Save As - Зберегти, як + Duplicate property name + Дубльована назва властивості - - Drive - Диск + Property names cannot begin with an upper case letter + Назви властивостей не можуть починатись з великої літери - - - File - Файл + Illegal property name + Неприпустима назва властивості - - Unknown - Невідомо + Duplicate signal name + Дубльована назва сигналу - - Find Directory - Знайти каталог + Signal names cannot begin with an upper case letter + Назви сигналів не можуть починатись з великої літери - Where: - Де: + Illegal signal name + Неприпустима назва сигналу - - Show - Показати + Duplicate method name + Дубльована назва методу - - - Forward - Вперед + Method names cannot begin with an upper case letter + Назви методів не можуть починатись з великої літери - - New Folder - Нова тека + Illegal method name + Неприпустима назва методу - - &New Folder - &Нова тека + Property value set multiple times + Значення властивості встановлено декілька разів - - - &Choose - &Вибрати + Invalid property nesting + Неправильне вкладення властивостей - Save &as: - Зберегти, &як: + Cannot override FINAL property + Неможливо перевизначити властивість FINAL - - Remove - Вилучити + Invalid property type + Неправильне тип властивості - - - File &name: - &Ім'я файлу: + Invalid empty ID + Неправильний порожній ID - - - Look in: - Пошук в: + IDs cannot start with an uppercase letter + Ідентифікатори не можуть починатись з великої літери - - - Create New Folder - Створити нову теку + IDs must start with a letter or underscore + Ідентифікатори повинні починатись з літери чи підкреслення - - - QFileSystemModel - - Invalid filename - Неправильне ім'я файлу + IDs must contain only letters, numbers, and underscores + Ідентифікатори повинні містити лише літери, цифри та підкреслення - - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. - <b>Неможливо використати ім'я "%1".</b><p>Спробуйте інше ім'я, меншої довжини або без знаків пунктуації. + ID illegally masks global JavaScript property + Ідентифікатор неправильно маскує глобальну властивість JavaScript - - Name - Ім'я + No property alias location + Відсутня позиція псевдоніма властивості - - Size - Розмір + Invalid alias location + Непраильна позиція псевдоніму - - Kind - Match OS X Finder - Тип + Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> + Неправильне посилання на псевдонім. Посилання на псевдонім має бути вказане, як <id> або <id>.<property> - - Type - All other platforms - Тип + Invalid alias reference. Unable to find id "%1" + Неправильне посилання на псевдонім. Неможливо знайти id "%1" + + + QDeclarativeComponent - - Date Modified - Дата зміни + Invalid empty URL + Неправильний порожній URL + + + QDeclarativeCompositeTypeManager - - My Computer - Мій комп'ютер + Resource %1 unavailable + Ресурс %1 недоступний - - Computer - Комп'ютер + Namespace %1 cannot be used as a type + Простір імен %1 не може бути використаний як тип - - %1 TB - %1 ТБ + %1 %2 + %1 %2 - - %1 GB - %1 ГБ + Type %1 unavailable + Тип %1 недоступний + + + QDeclarativeConnections - - %1 MB - %1 МБ + Cannot assign to non-existent property "%1" + Неможливо призначити неіснуючій властивості "%1" - - %1 KB - %1 КБ + Connections: nested objects not allowed + З’єднання: вкладені об’єкти не дозволяються - - %1 bytes - %1 байтів + Connections: syntax error + З’єднання: синтаксична помилка + + + Connections: script expected + З’єднання: очікувався скрипт - QFontDatabase + QDeclarativeEngine - - - Normal - + executeSql called outside transaction() + executeSql було викликано поза transaction() - - - - Bold - + Read-only Transaction + Транзакція лише для читання - - - Demi Bold - + Version mismatch: expected %1, found %2 + Розбіжність версій: очікувалась %1, знайдена %2 - - - - Black - + SQL transaction failed + Збій транзакції SQL - - Demi - + transaction: missing callback + транзакція: відсутній зворотній виклик - - - Light - + SQL: database version mismatch + SQL: розбіжність версій бази даних + + + QDeclarativeFlipable - - - Italic - + front is a write-once property + Властивість front лише для одноразового запису - - - Oblique - - - - - Any - - - - - Latin - + back is a write-once property + Властивість back лише для одноразового запису + + + QDeclarativeImportDatabase - - Greek - + module "%1" definition "%2" not readable + неможливо прочитати визначення "%2" модуля "%1" - - Cyrillic - + plugin cannot be loaded for module "%1": %2 + неможливо завантажити додаток для модуля "%1": %2 - - Armenian - + module "%1" plugin "%2" not found + не знайдено додаток "%2" модуля "%1" - - Hebrew - + module "%1" version %2.%3 is not installed + модуль "%1" версії %2.%3 не встановлено - - Arabic - + module "%1" is not installed + модуль "%1" не встановлено - - Syriac - + "%1": no such directory + "%1": тека не існує - - Thaana - + import "%1" has no qmldir and no namespace + import "%1" не має ні qmldir, ні namespace - - Devanagari - + - %1 is not a namespace + - %1 не є простором імен - - Bengali - + - nested namespaces not allowed + - вкладені простори імен не дозволяються - - Gurmukhi - + local directory + локальна тека - - Gujarati - + is ambiguous. Found in %1 and in %2 + є неоднозначним. Знайдено в %1 та в %2 - - Oriya - + is ambiguous. Found in %1 in version %2.%3 and %4.%5 + є неоднозначним. Знайдено в %1 версії %2.%3 та %4.%5 - - Tamil - + is instantiated recursively + інстанціюється рекурсивно - - Telugu - + is not a type + не є типом + + + QDeclarativeKeyNavigationAttached - - Kannada - + KeyNavigation is only available via attached properties + KeyNavigation доступна лише через прикріплені властивості + + + QDeclarativeKeysAttached - - Malayalam - + Keys is only available via attached properties + Keys доступні лише через прикріплені властивості + + + QDeclarativeListModel - - Sinhala - + remove: index %1 out of range + remove: індекс %1 поза межами діапазону - - Thai - + insert: value is not an object + insert: значення не є об’єктом - - Lao - + insert: index %1 out of range + insert: індекс %1 поза межами діапазону - - Tibetan - + move: out of range + move: поза межами діапазону - - Myanmar - + append: value is not an object + append: значення не є об’єктом - - Georgian - + set: value is not an object + set: значення не є об’єктом - - Khmer - + set: index %1 out of range + set: індекс %1 поза межами діапазону - - Simplified Chinese - + ListElement: cannot contain nested elements + ListElement: не може містити вкладені елементи - - Traditional Chinese - + ListElement: cannot use reserved "id" property + ListElement: не може використовувати зарезервовану властивість "id" - - Japanese - + ListElement: cannot use script for property value + ListElement: неможливо використовувати скрипт в якості значення властивості - - Korean - + ListModel: undefined property '%1' + ListModel: невизначена властивість '%1' + + + QDeclarativeLoader - - Vietnamese - + Loader does not support loading non-visual elements. + Завантажувач не підтримує завантаження невізуальних елементів. + + + QDeclarativeParentAnimation - - Symbol - + Unable to preserve appearance under complex transform + Неможливо зберегти зовнішній вигляд при складному перетворенні - - Ogham - + Unable to preserve appearance under non-uniform scale + Неможливо зберегти зовнішній вигляд при неоднорідному масштабі - - Runic - + Unable to preserve appearance under scale of 0 + Неможливо зберегти зовнішній вигляд при нульовому масштабі - QFontDialog + QDeclarativeParentChange - - &Font - &Шрифт + Unable to preserve appearance under complex transform + Неможливо зберегти зовнішній вигляд при складному перетворенні - - Font st&yle - Ст&иль шрифту + Unable to preserve appearance under non-uniform scale + Неможливо зберегти зовнішній вигляд при неоднорідному масштабі - - &Size - &Розмір + Unable to preserve appearance under scale of 0 + Неможливо зберегти зовнішній вигляд при нульовому масштабі + + + QDeclarativeParser - - Effects - Ефекти + Illegal unicode escape sequence + Неприпустима керуюча послідовність Unicode - - Stri&keout - Пере&креслити + Illegal character + Неприпустимий символ - - &Underline - &Підкреслити + Unclosed string at end of line + Незакритий рядок в кінці файлу - - Sample - Зразок + Illegal escape squence + Неприпустима керуюча послідовність - - Wr&iting System - Система з&апису + Unclosed comment at end of file + Незакритий коментар в кінці файлу - - - Select Font - Виберіть шрифт + Illegal syntax for exponential number + Неприпустимий синтаксис для експоненційного числа - - - QFtp - - - Not connected - Не з'єднано + Identifier cannot start with numeric literal + Ідентифікатор не може починатись за чисельного літералу - - - Host %1 not found - Вузол %1 не знайдено + Unterminated regular expression literal + Незавершений літерал регулярного виразу - - - Connection refused to host %1 - Відмовлено в з'єднанні до вузла %1 + Invalid regular expression flag '%0' + Неправильний прапорець регулярного виразу ’%0’ - - Connection timed out to host %1 - + Unterminated regular expression backslash sequence + Незавершена екранована послідовність регулярного виразу - - - - Connected to host %1 - З'єднано з вузлом %1 + Unterminated regular expression class + Незавершений клас регулярного виразу - - - Connection refused for data connection - Відмовлено в з'єднанні для каналу даних + Syntax error + Синтаксична помилка - - - - - Unknown error - Невідома помилка + Unexpected token `%1' + Неочікуваний токен `%1' - - - Connecting to host failed: -%1 - Помилка з'єднання до вузла: -%1 + Expected token `%1' + Очікувався токен `%1' - - - Login failed: -%1 - Помилка входження: -%1 + Property value set multiple times + Значення властивості встановлено декілька разів - - - Listing directory failed: -%1 - Помилка отримання списку каталогів:%1 + Expected type name + Очікувалась назва типу - - - Changing directory failed: -%1 - Помилка переходу в каталог: -%1 + Invalid import qualifier ID + Неправильний ID специфікатору імпорту - - - Downloading file failed: -%1 - Помилка звантаження файлу: -%1 + Reserved name "Qt" cannot be used as an qualifier + Зарезервоване ім’я "Qt" не може бути застосоване в якості специфікатора - - - Uploading file failed: -%1 - Помилка відвантаження файлу: -%1 + Script import qualifiers must be unique. + Специфікатори імпорту скрипту мають бути унікальними. - - - Removing file failed: -%1 - Помилка вилучення файлу:%1 + Script import requires a qualifier + Імпорт скрипту вимагає специфікатора - - - Creating directory failed: -%1 - Помилка створення каталогу:%1 + Library import requires a version + Імпорт бібліотеки вимагає версії - - - Removing directory failed: -%1 - Помилка вилучення каталогу: -%1 + Expected parameter type + Очікувався тип параметра - - - - Connection closed - З'єднання закрито + Invalid property type modifier + Неправильний модифікатор типу властивості - - Host %1 found - Знайдено вузол %1 + Unexpected property type modifier + Неочікуваний модифікатор типу властивості - - Connection to %1 closed - З'єднання з %1 закрито + Expected property type + Очікувався тип властивості - - Host found - Знайдено вузол + Readonly not yet supported + "Тільки для читання" ще не підтримується - - Connected to host - З'єднано з вузлом + JavaScript declaration outside Script element + Декларація JavaScript поза межами елемента Script - QHostInfo + QDeclarativePauseAnimation - - Unknown error - Невідома помилка + Cannot set a duration of < 0 + Не можу встановити тривалість < 0 - QHostInfoAgent + QDeclarativePixmap - - - - - - - - - Host not found - Вузол не знайдено + Error decoding: %1: %2 + Помилка декодування: %1: %2 - - - - - Unknown address type - Невідомий тип адреси + Failed to get image from provider: %1 + Збій отримання зображення від постачальника: %1 - - - - Unknown error - Невідома помилка + Cannot open: %1 + Неможливо відкрити: %1 - QHttp + QDeclarativePropertyAnimation - - HTTPS connection requested but SSL support not compiled in - + Cannot set a duration of < 0 + Не можу встановити тривалість < 0 + + + QDeclarativePropertyChanges - - - - - Unknown error - Невідома помилка + PropertyChanges does not support creating state-specific objects. + PropertyChanges не підтримує створення об’єктів специфічних до стану. - - - Request aborted - Запит перервано + Cannot assign to non-existent property "%1" + Неможливо призначити неіснуючій властивості "%1" - - - No server set to connect to - Не вказано сервер для з'єднання + Cannot assign to read-only property "%1" + Неможливо призначити властивості лише для читання "%1" + + + QDeclarativeTextInput - - - Wrong content length - Неправильна довжина вмісту + Could not load cursor delegate + Не вдалося завантажити делегат курсору - - - Server closed connection unexpectedly - Сервер несподівано закрив з'єднання + Could not instantiate cursor delegate + Не вдалося інстанціювати делегат курсору + + + QDeclarativeVME - - Unknown authentication method - + Unable to create object of type %1 + Неможливо створити об’єкт типу %1 - - Error writing response to device - + Cannot assign value %1 to property %2 + Неможливо призначити властивості %2 значення %1 - - - Connection refused - Відмовлено у зв'язку + Cannot assign object type %1 with no default method + Неможливо призначити об’єкт типу %1 без методу за замовчуванням - - - - Host %1 not found - Вузол %1 не знайдено + Cannot connect mismatched signal/slot %1 %vs. %2 + Неможливо з’єднати несумісний сигнал/слот (%1 проти %2) - - - - - HTTP request failed - Помилка запиту HTTP + Cannot assign an object to signal property %1 + Неможливо призначити об’єкт до властивості сигналу %1 - - - Invalid HTTP response header - Неправильний заголовок відповіді HTTP + Cannot assign object to list + Неможливо призначити об’єкт до списку - - - - - Invalid HTTP chunked body - Неправильно розділене тіло HTTP + Cannot assign object to interface property + Неможливо призначити об’єкт до властивості інтерфейсу - - Host %1 found - Знайдено вузол %1 + Unable to create attached object + Неможливо створити прикріплений об’єкт - - Connected to host %1 - З'єднано з вузлом %1 + Cannot set properties on %1 as it is null + Неможливо встановити властивості для %1, оскільки він нульовий + + + QDeclarativeVisualDataModel - - Connection to %1 closed - З'єднання з %1 закрито + Delegate component must be Item type. + Компонент делегату має бути типу Item. + + + QDeclarativeXmlListModel - - Host found - Знайдено вузол + Qt was built without support for xmlpatterns + Бібліотека Qt була зібрана без підтримки xmlpatterns + + + QDeclarativeXmlListModelRole - - Connected to host - З'єднано з вузлом + An XmlRole query must not start with '/' + Запит XmlRole не повинен починатись з '/' + + + QDeclarativeXmlRoleList - - - Connection closed - З'єднання закрито + An XmlListModel query must start with '/' or "//" + Запит XmlListModel не повинен починатись з '/' або "//" + + + QDial - - Proxy authentication required - Проксі потребує автентифікації + QDial + - - Authentication required - Автентифікація обов'язкова + SpeedoMeter + - - Connection refused (or timed out) - + SliderHandle + + + + QDialog - - Proxy requires authentication - + Done + Завершено - - Host requires authentication - + What's This? + Що це? + + + QDialogButtonBox - - Data corrupted - + OK + - - Unknown protocol specified - + &OK + &OK - - SSL handshake failed - + &Save + &Зберегти - - - QHttpSocketEngine - - Did not receive HTTP response from proxy - + Save + Зберегти - - Error parsing authentication request from proxy - + Open + Відкрити - - Authentication required - Автентифікація обов'язкова + &Cancel + &Скасувати - - Proxy denied connection - + Cancel + Скасувати - - Error communicating with HTTP proxy - + &Close + Закри&ти - - Proxy server not found - + Close + Закрити - - Proxy connection refused - + Apply + Застосувати - - Proxy server connection timed out - + Reset + Скинути - - Proxy connection closed prematurely - + Help + Довідка - - - QIBaseDriver - - Error opening database - Неможливо відкрити базу даних + Don't Save + Не зберігати - - Could not start transaction - Неможливо почати транзакцію + Close without Saving + Закрити без збереження - - Unable to commit transaction - Неможливо завершити транзакцію + Discard + Відхилити - - Unable to rollback transaction - Неможливо відкотити транзакцію + &Yes + Т&ак - - - QIBaseResult - - Unable to create BLOB - Неможливо створити BLOB + Yes to &All + Так &для всіх - - Unable to write BLOB - Неможливо записати BLOB + &No + &Ні - - Unable to open BLOB - Неможливо відкрити BLOB + N&o to All + Ні для вс&іх - - Unable to read BLOB - Неможливо прочитати BLOB + Save All + Зберегти все - - - Could not find array - Неможливо знайти масив + Abort + Перервати - - Could not get array data - Неможливо отримати дані масиву + Retry + Повторити - - Could not get query info - Неможливо отримати дані запиту + Ignore + Ігнорувати - - Could not start transaction - Неможливо почати транзакцію + Restore Defaults + Відновити типово + + + QDirModel - - Unable to commit transaction - Неможливо завершити транзакцію + Name + Назва - - Could not allocate statement - Неможливо розмістити оператор + Size + Розмір - - Could not prepare statement - Неможливо підготувати оператор + Kind + Match OS X Finder + Тип - - - Could not describe input statement - Неможливо описати вхідний оператор + Type + All other platforms + Тип - - Could not describe statement - Неможливо описати оператор + Date Modified + Дата зміни + + + QDockWidget - - Unable to close statement - Неможливо закрити оператор + Close + Закрити - - Unable to execute query - Неможливо виконати запит + Dock + Закріпити - - Could not fetch next item - Неможливо вибрати наступний елемент + Float + Відкріпити + + + QDoubleSpinBox - - Could not get statement info - Неможливо отримати дані оператора + More + Більше + + + Less + Менше - QIODevice + QErrorMessage - - Permission denied - Відмовлено у доступі + Debug Message: + Зневаджувальне повідомлення: - - Too many open files - Забагато відкритих файлів + Warning: + Попередження: - - No such file or directory - Немає такого файлу або каталогу + Fatal Error: + Фатальна помилка: - - No space left on device - На пристрої не лишилось місця + &Show this message again + &Показувати це повідомлення знову - - Unknown error - Невідома помилка + &OK + &OK - QInputContext + QFile - - XIM - XIM + Destination file exists + Файл-отримувач існує - - XIM input method - Метод введення XIM + Will not rename sequential file using block copy + Послідовний файл не буде перейменовано за допомогою блочного копіювання - - Windows input method - Метод введення Windows + Cannot remove source file + Неможливо видалити початковий файл - - Mac OS X input method - Метод введення Mac OS X + Cannot open %1 for input + Неможливо відкрити %1 для введення - - - QInputDialog - - Enter a value: - + Cannot open for output + Неможливо відкрити для виводу - - - QLibrary - QLibrary::load_sys: Cannot load %1 (%2) - QLibrary::load_sys: неможливо завантажити %1 (%2) + Failure to write block + Збій запису блока - QLibrary::unload_sys: Cannot unload %1 (%2) - QLibrary::unload_sys: неможливо вивантажити %1 (%2) + Cannot create %1 for output + Неможливо створити %1 для виводу + + + QFileDialog - QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) - QLibrary::resolve_sys: символ "%1" не є визначеним в %2 (%3) + Look in: + Перегляд в: - - Could not mmap '%1': %2 - Помилка виконання mmap "%1": %2 + Back + Назад - - Plugin verification data mismatch in '%1' - Дані перевірки додатку не збігаються в "%1" + Go back + Йти назад - - Could not unmap '%1': %2 - Помилка виконання unmap "%1": %2 + Forward + Вперед - - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] - Додаток "%1" використовує несумісну бібліотеку Qt. (%2.%3.%4) [%5] + Go forward + Йти вперед - - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" - Додаток "%1" використовує несумісну бібліотеку Qt. Очікувався ключ побудови "%2", отримано "%3" + Parent Directory + Батьківська тека - - Unknown error - Невідома помилка + Go to the parent directory + Перейти до батьківської теки - - - The shared library was not found. - Спільну бібліотеку не знайдено. + Create New Folder + Створити нову теку - - The file '%1' is not a valid Qt plugin. - Файл "%1" не є правильним додатком Qt. + Create a New Folder + Створити нову теку - - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) - Додаток "%1" використовує несумісну бібліотеку Qt. (Не дозволяється змішувати версію бібліотеки для зневадження і версію випуску.) + List View + Списком - - - Cannot load library %1: %2 - + Change to list view mode + Перейти до перегляду списком - - - Cannot unload library %1: %2 - + Detail View + Детально - - - Cannot resolve symbol "%1" in %2: %3 - + Change to detail view mode + Перейти до детального перегляду - - - QLineEdit - - &Undo - &Повернути + Files of type: + Тип файлів: - - &Redo - П&овторити + Find Directory + Пошук теки - - Cu&t - Ви&різати + Open + Відкрити - - &Copy - &Копіювати + Save As + Зберегти як - - &Paste - &Вставити + All Files (*) + Усі файли (*) - - Delete - Вилучити + Show + Показати - - Select All - Вибрати все + &Rename + &Перейменувати - - - QLocalServer - - - %1: Name error - + &Delete + &Видалити - - %1: Permission denied - + Show &hidden files + Показувати при&ховані файли - - %1: Address in use - + &New Folder + &Нова тека - - - %1: Unknown error %2 - + Directory: + Тека: - - - QLocalSocket - - - %1: Connection refused - + File &name: + &Ім'я файлу: - - - %1: Remote closed - + &Open + &Відкрити - - - - - %1: Invalid name - + &Save + &Зберегти - - - %1: Socket access error - + Directories + Теки - - - %1: Socket resource error - + &Choose + &Обрати - - - %1: Socket operation timed out - + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Тека не знайдена. +Будь ласка, перевірте, що вказане правильне ім'я теки. - - - %1: Datagram too large - + %1 already exists. +Do you want to replace it? + %1 вже існує. +Бажаєте перезаписати його? - - - - %1: Connection error - + %1 +File not found. +Please verify the correct file name was given. + %1 +Файл не знайдено. +Будь ласка, перевірте, що вказане правильне ім'я файлу. - - - %1: The socket operation is not supported - + New Folder + Нова тека - - %1: Unknown error - + '%1' is write protected. +Do you want to delete it anyway? + '%1' захищено від запису. +Бажаєте видалити незважаючи на це? - - - %1: Unknown error %2 - + Are sure you want to delete '%1'? + Ви впевнені, що хочете видалити '%1'? - - - QMYSQLDriver - - Unable to open database ' - Неможливо відкрити базу даних + Could not delete directory. + Не вдалося видалити теку. - - Unable to connect - Неможливо з'єднатися + Recent Places + Нещодавні місця - - Unable to begin transaction - Неможливо почати транзакцію + All Files (*.*) + Усі файли (*) - - Unable to commit transaction - Неможливо завершити транзакцію + Remove + Видалити - - Unable to rollback transaction - Неможливо відкотити транзакцію + My Computer + Мій комп'ютер - - - QMYSQLResult - - Unable to fetch data - Неможливо вибрати дані + Drive + Диск - - Unable to execute query - Неможливо виконати запит + File + Файл - - Unable to store result - Неможливо записати результат + File Folder + Match Windows Explorer + Тека - - - Unable to prepare statement - Неможливо підготувати оператор + Folder + All other platforms + Тека - - Unable to reset statement - Неможливо скинути оператор + Alias + Mac OS X Finder + Псевдонім - - Unable to bind value - Неможливо прив'язати значення + Shortcut + All other platforms + Скорочення - - Unable to execute statement - Неможливо виконати оператор + Unknown + Невідомо + + + QFileSystemModel - - - Unable to bind outvalues - Неможливо прив'язати вихідні значення + %1 TB + %1 Тб - - Unable to store statement results - Неможливо зберегти результати оператора + %1 GB + %1 Гб - - Unable to execute next query - + %1 MB + %1 Мб - - Unable to store next result - + %1 KB + %1 Кб - - - QMdiArea - - (Untitled) - + %1 bytes + %1 байт - - - QMdiSubWindow - - %1 - [%2] - %1 - [%2] + Invalid filename + Неправильне ім'я файлу - - Close - Закрити + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Ім'я "%1" не може бути використане.</b><p>Спробуйте використати інше ім'я, меншої довжини або без знаків пунктуації. - - Minimize - Мінімізувати + Name + Ім'я - - Restore Down - Відновити додолу + Size + Розмір - - &Restore - &Відновити + Kind + Match OS X Finder + Тип - - &Move - &Пересунути + Type + All other platforms + Тип - - &Size - &Розмір + Date Modified + Дата зміни - - Mi&nimize - Мі&німізувати + My Computer + Мій комп'ютер - - Ma&ximize - Ма&ксимізувати + Computer + Комп'ютер - - Stay on &Top - Лишатися над &іншими + %1 byte(s) + %1 байт + + + QFontDatabase - - &Close - &Закрити + Normal + Звичайний - - - [%1] - + Bold + Жирний - - Maximize - Максимізувати + Demi Bold + Напівжирний - - Unshade - + Black + Чорний - - Shade - + Demi + Середній - - Restore - + Light + Світлий - - Help - Довідка + Italic + Курсив - - Menu - Menu + Oblique + Нахилений - - - QMenu - - - Close - Закрити + Any + Будь-яка - - - Open - Відкрити + Latin + Латиниця - - - - Execute - Виконати + Greek + Грецька - - - QMenuBar - About - Про + Cyrillic + Кирилиця - Config - Конфігурація + Armenian + Вірменська - Preference - Вподобання + Hebrew + Іврит - Options - Опції + Arabic + Арабська - Setting - Параметри + Syriac + Сирійська - Setup - Встановлення + Thaana + Тана - Quit - Вийти + Devanagari + Деванагарі - Exit - Вийти + Bengali + Бенгальська - About %1 - Про %1 + Gurmukhi + Гурмукхі - About Qt - Про Qt + Gujarati + Гуджараті - Preferences - Вподобання + Oriya + Орія - Quit %1 - Вийти %1 + Tamil + Тамільська - - - QMessageBox - - Help - Довідка + Telugu + Телугу - - - - - OK - Гаразд + Kannada + Каннада - - About Qt - Про Qt + Malayalam + Малаялам - <p>This program uses Qt version %1.</p> - <p>Ця програма використовує Qt версії %1.</p> + Sinhala + Сингальська - <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://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - <h3>Про Qt</h3>%1<p>Qt - це інструментарій C++ для міжплатформової розробки.</p><p>Qt забезпечує мобільність єдиних джерельних текстів між MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux та всіма основними комерційними версіями Unix. Qt існує також для вбудованих пристроїв, таких, як Qtopia Core.</p><p>Qt - це продукт компанії Trolltech. Більше інформації можна знайти на <a href="http://qt.nokia.com/">qt.nokia.com</a>.</p> + Thai + Тайська - - Show Details... - Показати подробиці... + Lao + Лаоська - - Hide Details... - Сховати подробиці... + Tibetan + Тибетська - - <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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> - + Myanmar + М'янма - <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://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> for an overview of Qt licensing.</p> - <p>Ця програма використовує Qt Open Source Edition версії %1.</p><p>Qt Open Source Edition призначено для розробки відкритих програмних засобів. Для розробки власницьких (закритих) програм вам потрібна комерційна ліцензія для Qt.</p><p>Перегляньте <a href="http://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> щодо огляду ліцензій Qt.</p> + Georgian + Грузинська - - - QMultiInputContext - - Select IM - Вибрати метод вводу + Khmer + Кхмерська - - - QMultiInputContextPlugin - - Multiple input method switcher - Перемикач методів вводу + Simplified Chinese + Китайська спрощена - - Multiple input method switcher that uses the context menu of the text widgets - Перемикач методів вводу, що використовує контекстне меню текстових віджетів + Traditional Chinese + Китайська традиційна - - - QNativeSocketEngine - - The remote host closed the connection - Віддалений вузол закрив з'єднання + Japanese + Японська - - Network operation timed out - Перевищено термін очікування мережевої дії + Korean + Корейська - - Out of resources - Вичерпано всі ресурси + Vietnamese + В'єтнамська - - Unsupported socket operation - Непідтримувана дія сокетів + Symbol + Символьна - - Protocol type not supported - Тип протоколу не підтримується + Ogham + Огам - - Invalid socket descriptor - Неправильний опис сокету + Runic + Рунічна - - Network unreachable - Мережа недосяжна + N'Ko + Нко + + + QFontDialog - - Permission denied - Відмовлено у доступі + Select Font + Виберіть шрифт - - Connection timed out - Перевищено термін очікування для з'єднання + &Font + &Шрифт - - Connection refused - Відмовлено у зв'язку + Font st&yle + &Стиль шрифту - - The bound address is already in use - Прив'язана адреса вже використовується + &Size + &Розмір - - The address is not available - Адреса недоступна + Effects + Ефекти - - The address is protected - Адреса захищена + Stri&keout + П&ерекреслений - - Unable to send a message - Неможливо відіслати повідомлення + &Underline + П&ідкреслений - - Unable to receive a message - Неможливо отримати повідомлення + Sample + Зразок - - Unable to write - Неможливо записати + Wr&iting System + Система &писемності + + + QFtp - - Network error - Помилка мережі + Not connected + Не під'єднано - - Another socket is already listening on the same port - Інший сокет вже слухає цей порт + Host %1 not found + Вузол %1 не знайдено - - Unable to initialize non-blocking socket - Неможливо ініціалізувати неблокувальний сокет + Connection refused to host %1 + Відмова у з’єднанні з вузлом %1 - - Unable to initialize broadcast socket - Неможливо ініціалізувати широкомовний сокет + Connection timed out to host %1 + Час на з’єднання з вузлом %1 вичерпано - - Attempt to use IPv6 socket on a platform with no IPv6 support - Спроба використати сокет IPv6 на платформі без підтримки IPv6 + Connected to host %1 + З’єднано з вузлом %1 - - Host unreachable - Вузол недосяжний + Connection refused for data connection + Відмова у з’єднанні для передачі даних - - Datagram was too large to send - Дейтаграма є завеликою для відсилання - - - - Operation on non-socket - Дія на об'єкті, що не є сокетом - - - Unknown error Невідома помилка - - The proxy type is invalid for this operation - - - - - QNetworkAccessCacheBackend - - - Error opening %1 - + Connecting to host failed: +%1 + Відмова у з’єднанні з вузлом: +%1 - - - QNetworkAccessFileBackend - - Request for opening non-local file %1 - + Login failed: +%1 + Збій входу: +%1 - - Error opening %1: %2 - + Listing directory failed: +%1 + Збій перегляду теки: +%1 - - Write error writing to %1: %2 - + Changing directory failed: +%1 + Збій зміни теки: +%1 - - Cannot open %1: Path is a directory - + Downloading file failed: +%1 + Збій звантаження файлу: +%1 - - Read error reading from %1: %2 - + Uploading file failed: +%1 + Збій вивантаження файлу: +%1 - - - QNetworkAccessFtpBackend - - No suitable proxy found - + Removing file failed: +%1 + Збій видалення файлу: +%1 - - Cannot open %1: is a directory - + Creating directory failed: +%1 + Збій створення теки: +%1 - - Logging in to %1 failed: authentication required - + Removing directory failed: +%1 + Збій видалення теки: +%1 - - Error while downloading %1: %2 - + Connection closed + З'єднання закрито - - Error while uploading %1: %2 - + Host %1 found + Вузол %1 не знайдено - - - QNetworkAccessHttpBackend - - No suitable proxy found - + Connection to %1 closed + З'єднання з %1 закрито - - - QNetworkReply - - Error downloading %1 - server replied: %2 - + Host found + Вузол не знайдено - - Protocol "%1" is unknown - + Connected to host + З’єднано з вузлом - QNetworkReplyImpl + QHostInfo - - - Operation canceled - + No host name given + Ім'я вузла не задано + + + Unknown error + Невідома помилка - QOCIDriver + QHostInfoAgent - - Unable to logon - Неможливо зайти + No host name given + Ім'я вузла не задано - - Unable to initialize - QOCIDriver - Неможливо ініціалізуватиQOCIDriver + Invalid hostname + Неправильне ім'я вузла - - Unable to begin transaction - Неможливо почати транзакцію + Unknown address type + Невідомий тип адреси - - Unable to commit transaction - Неможливо завершити транзакцію + Host not found + Вузол не знайдено - - Unable to rollback transaction - Неможливо відкотити транзакцію + Unknown error + Невідома помилка - QOCIResult + QHttp - - - - Unable to bind column for batch execute - Неможливо прив'язати стовпчик для пакетного виконання + HTTPS connection requested but SSL support not compiled in + Запитане з’єднання HTTPS, але підтримка SSL не вкомпільована - - Unable to execute batch statement - Неможливо виконати пакетний оператор + Unknown error + Невідома помилка - - Unable to goto next - Неможливо перейти до наступного + Request aborted + Запит перервано - - Unable to alloc statement - Неможливо розмістити оператор + No server set to connect to + Не встановлено сервер для з’єднання - - Unable to prepare statement - Неможливо підготувати оператор + Wrong content length + Неправильна довжина вмісту - - Unable to bind value - Неможливо прив'язати значення + Server closed connection unexpectedly + Сервер несподівано закрив з’єднання - Unable to execute select statement - Неможливо виконати оператор вибирання + Connection refused (or timed out) + У з’єднанні відмовлено (або час очікування вичерпано) - - Unable to execute statement - Неможливо виконати оператор + Host %1 not found + Вузол %1 не знайдено - - - QODBCDriver - - Unable to connect - Неможливо з'єднатися + HTTP request failed + Збій запиту HTTP - - Unable to connect - Driver doesn't support all needed functionality - Неможливо з'єднатися - драйвер не підтримує всіх потрібних функцій + Invalid HTTP response header + Неправильний заголовок відповіді HTTP - - Unable to disable autocommit - Неможливо вимкнути автозавершення транзакцій + Unknown authentication method + Невідомий метод авторизації - - Unable to commit transaction - Неможливо завершити транзакцію + Proxy authentication required + Необхідна авторизація на проксі-сервері - - Unable to rollback transaction - Неможливо відкотити транзакцію + Authentication required + Необхідна авторизація - - Unable to enable autocommit - Неможливо ввімкнути автозавершення транзакцій + Invalid HTTP chunked body + Неправильно фрагментовані дані HTTP - - - QODBCResult - - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - QODBCResult::reset: неможливо встановити 'SQL_CURSOR_STATIC', як атрибут оператора. Будь ласка, перевірте налаштування драйвера ODBC + Error writing response to device + Помилка запису відповіді до пристрою - - - Unable to execute statement - Неможливо виконати оператор + Connection refused + У з'єднанні відмовлено - - Unable to fetch next - Неможливо вибрати наступний + Connection closed + З'єднання закрито - - Unable to prepare statement - Неможливо підготувати оператор + Proxy requires authentication + Необхідна авторизація на проксі-сервері - - Unable to bind variable - Неможливо прив'язати змінну + Host requires authentication + Необхідна авторизація на вузлі - - - - Unable to fetch last - + Data corrupted + Дані пошкоджено - - Unable to fetch - + Unknown protocol specified + Вказано невідомий протокол - - Unable to fetch first - Неможливо вибрати перший + SSL handshake failed + Збій рукостискання SSL - - Unable to fetch previous - + Host %1 found + Вузол %1 не знайдено - - - QObject - - Home - Home + Connected to host %1 + З’єднано з вузлом %1 - - Operation not supported on %1 - + Connection to %1 closed + З'єднання з %1 закрито - - Invalid URI: %1 - + Host found + Вузол не знайдено - - Write error writing to %1: %2 - + Connected to host + З’єднано з вузлом + + + QHttpSocketEngine - - Read error reading from %1: %2 - + Did not receive HTTP response from proxy + Не отримано HTTP-відповідь від проксі-сервера - - Socket error on %1: %2 - + Error parsing authentication request from proxy + Помилка розбору запиту авторизації від проксі-сервера - - Remote host closed the connection prematurely on %1 - + Authentication required + Необхідна авторизація - - Protocol error: packet of size 0 received - + Proxy denied connection + Проксі-сервер відмовив у з’єднанні - - - No host name given - + Error communicating with HTTP proxy + Помилка обміну даними з проксі-сервером HTTP - - - QPPDOptionsModel - - Name - Ім'я + Proxy server not found + Не знайдено проксі-сервер - - Value - Значення + Proxy connection refused + Проксі-сервер відмовив у з’єднанні + + + Proxy server connection timed out + Час на з’єднання з проксі-сервером вичерпано + + + Proxy connection closed prematurely + З’єднання з проксі-сервером було несподівано закрите - QPSQLDriver + QIBaseDriver - - Unable to connect - Неможливо з'єднатися + Error opening database + Помилка відкриття бази даних - - Could not begin transaction - Неможливо почати транзакцію + Could not start transaction + Не вдалося почати транзакцію - - Could not commit transaction + Unable to commit transaction Неможливо завершити транзакцію - - Could not rollback transaction + Unable to rollback transaction Неможливо відкотити транзакцію + + + QIBaseResult - - Unable to subscribe - + Unable to create BLOB + Неможливо створити BLOB - - Unable to unsubscribe - + Unable to write BLOB + Неможливо записати BLOB - - - QPSQLResult - - Unable to create query - Неможливо створити запит + Unable to open BLOB + Неможливо відкрити BLOB - - Unable to prepare statement - Неможливо підготувати оператор - - - - QPageSetupWidget - - - Centimeters (cm) - - - - - Millimeters (mm) - - - - - Inches (in) - + Unable to read BLOB + Неможливо прочитати BLOB - - Points (pt) - + Could not find array + Не вдалося знайти масив - - Form - + Could not get array data + Не вдалося отримати дані масиву - - Paper - + Could not get query info + Не вдалося отримати інформацію про запит - - Page size: - Розмір сторінки: + Could not start transaction + Не вдалося почати транзакцію - - Width: - + Unable to commit transaction + Неможливо завершити транзакцію - - Height: - + Could not allocate statement + Не вдалося виділити вираз - - Paper source: - Джерело паперу: + Could not prepare statement + Не вдалося підготувати вираз - - Orientation - + Could not describe input statement + Не вдалося описати вхідний вираз - - Portrait - Книжкове + Could not describe statement + Не вдалося описати вираз - - Landscape - Альбомне + Unable to close statement + Неможливо закрити вираз - - Reverse landscape - + Unable to execute query + Неможливо виконати запит - - Reverse portrait - + Could not fetch next item + Не вдалося отримати наступний елемент - - Margins - + Could not get statement info + Не вдалося отримати інформацію про вираз + + + QIODevice - - top margin - + Permission denied + Доступ заборонено - - left margin - + Too many open files + Забагато відкритих файлів - - right margin - + No such file or directory + Файл чи тека не існують - - bottom margin - + No space left on device + На пристрої немає вільного місця - - - QPluginLoader - Unknown error Невідома помилка - - - The plugin was not loaded. - Додаток не було завантажено. - - QPrintDialog + QInputContext - - locally connected - локальне з'єднання + XIM + XIM - - - Aliases: %1 - Псевдонім: %1 + FEP + FEP - - - unknown - невідомо + XIM input method + Метод введення XIM - Portrait - Книжкове + Windows input method + Метод введення Windows - Landscape - Альбомне + Mac OS X input method + Метод введення Mac OS X - - A0 (841 x 1189 mm) - A0 (841 x 1189 мм) + S60 FEP input method + Метод введення S60 FEP + + + QInputDialog - - A1 (594 x 841 mm) - A1 (594 x 841 мм) + Enter a value: + Введіть значення: + + + QLibrary - - A2 (420 x 594 mm) - A2 (420 x 594 мм) + Could not mmap '%1': %2 + Не вдалося виконати mmap '%1': %2 - - A3 (297 x 420 mm) - A3 (297 x 420 мм) + Plugin verification data mismatch in '%1' + Дані верифікації додатку не збігаються для ’%1’ - - A4 (210 x 297 mm, 8.26 x 11.7 inches) - A4 (210 x 297 мм, 8.26 x 11.7 дюймів) + Could not unmap '%1': %2 + Не вдалося виконати unmap '%1': %2 - - A5 (148 x 210 mm) - A5 (148 x 210 мм) + The shared library was not found. + Динамічна бібліотека не знайдена. - - A6 (105 x 148 mm) - A6 (105 x 148 мм) + The file '%1' is not a valid Qt plugin. + Файл '%1' не є правильний додатком Qt. - - A7 (74 x 105 mm) - A7 (74 x 105 мм) + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Додаток '%1' використовує несумісну версію бібліотеки Qt. (%2.%3.%4) [%5] - - A8 (52 x 74 mm) - A8 (52 x 74 мм) + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Додаток '%1' використовує несумісну версію бібліотеки Qt. Очікувався ключ збірки "%2", отримано "%3" - - A9 (37 x 52 mm) - A9 (37 x 52 мм) + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Додаток '%1' використовує несумісну версію бібліотеки Qt. (Неможливо змішувати зневаджувальні та релізні бібліотеки.) - - B0 (1000 x 1414 mm) - B0 (1000 x 1414 мм) + Unknown error + Невідома помилка - - B1 (707 x 1000 mm) - B1 (707 x 1000 мм) + Cannot load library %1: %2 + Неможливо завантажити бібліотеку %1: %2 - - B2 (500 x 707 mm) - B2 (500 x 707 мм) + Cannot unload library %1: %2 + Неможливо вивантажити бібліотеку %1: %2 - - B3 (353 x 500 mm) - B3 (353 x 500 мм) + Cannot resolve symbol "%1" in %2: %3 + Неможливо розв’язати символ "%1" в %2: %3 + + + QLineEdit - - B4 (250 x 353 mm) - B4 (250 x 353 мм) + &Undo + &Повернути - - B5 (176 x 250 mm, 6.93 x 9.84 inches) - B5 (176 x 250 мм, 6.93 x 9.84 дюймів) + &Redo + П&овторити - - B6 (125 x 176 mm) - B6 (125 x 176 мм) + Cu&t + Ви&різати - - B7 (88 x 125 mm) - B7 (88 x 125 мм) + &Copy + &Копіювати - - B8 (62 x 88 mm) - B8 (62 x 88 мм) + &Paste + &Вставити - - B9 (44 x 62 mm) - B9 (44 x 62 мм) + Delete + Видалити - - B10 (31 x 44 mm) - B10 (31 x 44 мм) + Select All + Виділити все + + + QLocalServer - - C5E (163 x 229 mm) - C5E (163 x 229 мм) + %1: Name error + %1: Помилка імені - - DLE (110 x 220 mm) - DLE (110 x 220 мм) + %1: Permission denied + %1: Доступ заборонено - - Executive (7.5 x 10 inches, 191 x 254 mm) - Executive (7.5 x 10 дюймів, 191 x 254 мм) + %1: Address in use + %1: Адреса використовується - - Folio (210 x 330 mm) - Folio (210 x 330 мм) + %1: Unknown error %2 + %1: Невідома помилка %2 + + + QLocalSocket - - Ledger (432 x 279 mm) - Ledger (432 x 279 мм) + %1: Connection refused + %1: У з'єднанні відмовлено - - Legal (8.5 x 14 inches, 216 x 356 mm) - Legal (8.5 x 14 inches, 216 x 356 мм) + %1: Remote closed + %1: Віддалений кінець закрито - - Letter (8.5 x 11 inches, 216 x 279 mm) - Letter (8.5 x 11 inches, 216 x 279 мм) + %1: Invalid name + %1: Неправильне ім'я - - Tabloid (279 x 432 mm) - Tabloid (279 x 432 мм) + %1: Socket access error + %1: Помилка доступу до сокета - - US Common #10 Envelope (105 x 241 mm) - US Common #10 Envelope (105 x 241 мм) + %1: Socket resource error + %1: Помилка ресурсу сокета - - OK - Гаразд + %1: Socket operation timed out + %1: Час на операцію з сокетом вичерпано - Cancel - Скасувати + %1: Datagram too large + %1: Завелика датаграма - Page size: - Розмір сторінки: + %1: Connection error + %1: Помилка з'єднання - Orientation: - Розташування: + %1: The socket operation is not supported + %1: Непідтримувана для сокета операція - Paper source: - Джерело паперу: + %1: Unknown error + %1: Невідома помилка - - - - Print - Друкувати + %1: Unknown error %2 + %1: Невідома помилка %2 + + + QMYSQLDriver - File - Файл + Unable to open database ' + Неможливо відкрити базу даних ' - Printer - Принтер + Unable to connect + Неможливо з'єднатись - - Print To File ... - Друкувати в файл... + Unable to begin transaction + Неможливо почати транзакцію - Print dialog - Діалог друку + Unable to commit transaction + Неможливо завершити транзакцію - Paper format - Формат паперу + Unable to rollback transaction + Неможливо відкотити транзакцію + + + QMYSQLResult - Size: - Розмір: + Unable to fetch data + Неможливо отримати дані - Properties - Властивості + Unable to execute query + Неможливо виконати запит - Printer info: - Дані про принтер: + Unable to store result + Неможливо зберегти результат - Browse - Навігація + Unable to execute next query + Неможливо виконати наступний запит - Print to file - Друкувати в файл + Unable to store next result + Неможливо зберегти наступний результат - - Print range - Діапазон друку + Unable to prepare statement + Неможливо підготувати вираз - - Print all - Друкувати все + Unable to reset statement + Неможливо скинути вираз - Pages from - Сторінки з + Unable to bind value + Неможливо прив'язати значення - to - по + Unable to execute statement + Неможливо виконати вираз - Selection - Вибрані + Unable to bind outvalues + Неможливо прив'язати вихідні значення - Copies - Копії + Unable to store statement results + Неможливо зберегти результати виразу + + + QMdiArea - Number of copies: - Кількість копій: - - - Collate - Сортувати - - - Print last page first - Друкувати останню сторінку першою + (Untitled) + (Без назви) + + + QMdiSubWindow - Other - Інше + - [%1] + - Print in color if available - Друкувати в кольорах, якщо можливо + %1 - [%2] + %1 - [%2] - Double side printing - Двосторонній друк + Minimize + Мінімізувати - - File %1 is not writable. -Please choose a different file name. - Файл %1 не дозволяє запис. -Будь ласка, виберіть інше ім'я файлу. + Maximize + Максимізувати - - %1 already exists. -Do you want to overwrite it? - %1 вже існує.Перезаписати? + Unshade + Розгорнути із заголовка - - File exists - Файл існує + Shade + Згорнути в заголовок - - <qt>Do you want to overwrite it?</qt> - <qt>Перезаписати?</qt> + Restore Down + Відновити - - Print selection - Друкувати вибране + Restore + Відновити - - %1 is a directory. -Please choose a different file name. - %1 є каталогом. -Введіть інше ім'я файлу. + Close + Закрити - - A0 - + Help + Довідка - - A1 - + Menu + Меню - - A2 - + &Restore + &Відновити - - A3 - + &Move + &Пересунути - - A4 - + &Size + &Розмір - - A5 - + Mi&nimize + М&інімізувати - - A6 - + Ma&ximize + М&аксимізувати - - A7 - + Stay on &Top + Залишатись на &горі - - A8 - + &Close + Закри&ти + + + QMenu - - A9 - + Close + Закрити - - B0 - + Open + Відкрити - - B1 - + Execute + Виконати + + + QMenuBar - - B2 - + Actions + Дії + + + QMessageBox - - B3 - + Show Details... + Показати деталі... - - B4 - + Hide Details... + Приховати деталі... - - B5 - + OK + OK - - B6 - + Help + Довідка - - B7 - + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>Про Qt</h3><p>Ця програма використовує Qt версії %1.</p> - - B8 - + <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> + <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 придатна для розробки програм на базі Qt (пропієтарних або з відкритим кодом) за умови, що ви можете погодитись з вимогами та умовами GNU LGPL версії 2.1.</p><p>Qt ліцензована на умовах GNU General Public License версії 3.0 придатна для розробки програм на базі Qt, коли ви бажаєте використовувати такі програми у поєднанні з програмним забезпеченням, що підпадає під вимоги 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> - - B9 - + About Qt + Про Qt + + + QMultiInputContext - - B10 - + Select IM + Виберіть метод введення + + + QMultiInputContextPlugin - - C5E - + Multiple input method switcher + Перемикач методів введення - - DLE - + Multiple input method switcher that uses the context menu of the text widgets + Перемикач методів введення, що використовує контекстне меню текстових віджетів + + + QNativeSocketEngine - - Executive - + Unable to initialize non-blocking socket + Неможливо ініціалізувати неблокувальний сокет - - Folio - + Unable to initialize broadcast socket + Неможливо ініціалізувати широкомовний сокет - - Ledger - + Attempt to use IPv6 socket on a platform with no IPv6 support + Спроба використати сокет IPv6 на платформі без підтримки IPv6 - - Legal - + The remote host closed the connection + Віддалений вузол закрив з’єднання - - Letter - + Network operation timed out + Час на мережеву операцію вичерпано - - Tabloid - + Out of resources + Недостатньо ресурсів - - US Common #10 Envelope - + Unsupported socket operation + Непідтримувана для сокета операція - - Custom - + Protocol type not supported + Тип протоколу не підтримується - - - &Options >> - + Invalid socket descriptor + Неправильний дескриптор сокета - - &Print - + Host unreachable + Вузол недоступний - - &Options << - + Network unreachable + Мережа недоступна - - Print to File (PDF) - + Permission denied + Доступ заборонено - - Print to File (Postscript) - + Connection timed out + Час на з’єднання вичерпано - - Local file - + Connection refused + У з'єднанні відмовлено - - Write %1 file - + The bound address is already in use + Адреса вже використовується - - The 'From' value cannot be greater than the 'To' value. - + The address is not available + Адреса не доступна - - - QPrintPreviewDialog - - - Page Setup - + The address is protected + Адреса захищена - - %1% - + Datagram was too large to send + Датаграма завелика, щоб надіслати - - Print Preview - + Unable to send a message + Неможливо надіслати повідомлення - - Next page - + Unable to receive a message + Неможливо отримати повідомлення - - Previous page - + Unable to write + Неможливо записати - - First page - + Network error + Помилка мережі - - Last page - + Another socket is already listening on the same port + Інший сокет вже слухає цей самий порт - - Fit width - + Operation on non-socket + Операція з не-сокетом - - Fit page - + The proxy type is invalid for this operation + Неправильний тип проксі-серверу для цієї операції - - Zoom in - + Unknown error + Невідома помилка + + + QNetworkAccessCacheBackend - - Zoom out - + Error opening %1 + Помилка відкриття %1 + + + QNetworkAccessDataBackend - - Portrait - Книжкове + Operation not supported on %1 + Непідтримувана для %1 операція - - Landscape - Альбомне + Invalid URI: %1 + Неправильний URI: %1 + + + QNetworkAccessDebugPipeBackend - - Show single page - + Write error writing to %1: %2 + Помилка запису в %1: %2 - - Show facing pages - + Socket error on %1: %2 + Помилка сокета для %1: %2 - - Show overview of all pages - + Remote host closed the connection prematurely on %1 + Віддалений вузол несподівано закрив з’єднання для %1 + + + QNetworkAccessFileBackend - - Print - Друкувати + Request for opening non-local file %1 + Запит на відкриття нелокального файлу %1 - - Page setup - + Cannot open %1: Path is a directory + Неможливо відкрити %1: Шлях є текою - - Close - Закрити + Error opening %1: %2 + Помилка відкриття %1: %2 - - Export to PDF - + Write error writing to %1: %2 + Помилка запису в %1: %2 - - Export to PostScript - + Read error reading from %1: %2 + Помилка читання з %1: %2 - QPrintPropertiesDialog + QNetworkAccessFtpBackend - PPD Properties - Властивості PPD + No suitable proxy found + Не знайдено придатного проксі-сервера - Save - Зберегти + Cannot open %1: is a directory + Неможливо відкрити %1: шлях є текою - OK - Гаразд + Logging in to %1 failed: authentication required + Збій входу до %1: необхідна авторизація + + + Error while downloading %1: %2 + Помилка звантаження %1: %2 + + + Error while uploading %1: %2 + Помилка вивантаження %1: %2 - QPrintPropertiesWidget + QNetworkAccessHttpBackend - - Form - + No suitable proxy found + Не знайдено придатного проксі-сервера + + + + QNetworkAccessManager + + Network access is disabled. + Доступ до мережі вимкнено. + + + QNetworkReply - - Page - + Error downloading %1 - server replied: %2 + Помилка звантаження %1 - сервер відповів: %2 - - Advanced - + Protocol "%1" is unknown + Невідомий протокол "%1" + + + Network session error. + Помилка мережевої сесії. + + + Temporary network failure. + Тимчасовий збій мережі. - QPrintSettingsOutput + QNetworkReplyImpl + + Operation canceled + Операція скасована + + + + QNetworkSession + + Invalid configuration. + Неправильні налаштування. + + + + QNetworkSessionPrivateImpl + + Roaming error + Помилка переміщення + + + Session aborted by user or system + Сесія перервана користувачем або системою + + + Unidentified Error + Невизначена помилка + + + Unknown session error. + Невідома помилка сесії. + + + The session was aborted by the user or system. + Сесія перервана користувачем або системою. + + + The requested operation is not supported by the system. + Операція, що запитується, не підтримується системою. + + + The specified configuration cannot be used. + Неможливо використати вказані налаштування. + + + Roaming was aborted or is not possible. + Переміщення було перерване або неможливе. + + + + QOCIDriver + + Unable to initialize + QOCIDriver + Неможливо ініціалізувати + + + Unable to logon + Неможливо авторизуватись + + + Unable to begin transaction + Неможливо почати транзакцію + + + Unable to commit transaction + Неможливо завершити транзакцію + + + Unable to rollback transaction + Неможливо відкотити транзакцію + + + + QOCIResult + + Unable to bind column for batch execute + Неможливо прив’язати стовпець для пакетного виконання + + + Unable to execute batch statement + Неможливо виконати пакетний вираз + + + Unable to goto next + Неможливо перейти до наступного + + + Unable to alloc statement + Неможливо виділити вираз + + + Unable to prepare statement + Неможливо підготувати вираз + + + Unable to get statement type + Неможливо визначити тип виразу + + + Unable to bind value + Неможливо прив'язати значення + + + Unable to execute statement + Неможливо виконати вираз + + + + QODBCDriver + + Unable to connect + Неможливо з'єднатись + + + Unable to connect - Driver doesn't support all functionality required + Неможливо з'єднатись - Драйвер не підтримує усю необхідну функціональність + + + Unable to disable autocommit + Неможливо вимкнути автозавершення транзакцій + + + Unable to commit transaction + Неможливо завершити транзакцію + + + Unable to rollback transaction + Неможливо відкотити транзакцію + + + Unable to enable autocommit + Неможливо увімкнути автозавершення транзакцій + + + + QODBCResult + + Unable to fetch last + Неможливо отримати останній запис + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Неможливо встановити 'SQL_CURSOR_STATIC', як атрибут виразу. Будь ласка, перевірте налаштування вашого драйверу ODBC + + + Unable to execute statement + Неможливо виконати вираз + + + Unable to fetch + Неможливо отримати + + + Unable to fetch next + Неможливо отримати наступний запис + + + Unable to fetch first + Неможливо отримати перший запис + + + Unable to fetch previous + Неможливо отримати попередній запис + + + Unable to prepare statement + Неможливо підготувати вираз + + + Unable to bind variable + Неможливо прив'язати змінну + + + + QObject + + PulseAudio Sound Server + Звуковий сервер PulseAudio + + + "%1" duplicates a previous role name and will be disabled. + "%1" повторює назву попередньої ролі та буде вимкнене. + + + invalid query: "%1" + неправильний запит "%1" + + + + QPPDOptionsModel + + Name + Назва + + + Value + Значення + + + + QPSQLDriver + + Unable to connect + Неможливо з'єднатись + + + Could not begin transaction + Не вдалося почати транзакцію + + + Could not commit transaction + Не вдалося завершити транзакцію + + + Could not rollback transaction + Не вдалося відкотити транзакцію + + + Unable to subscribe + Неможливо підписатись + + + Unable to unsubscribe + Неможливо відписатись + + + + QPSQLResult + + Unable to create query + Неможливо створити запит + + + Unable to prepare statement + Неможливо підготувати вираз + + + + QPageSetupWidget - Form - + Форма - - Copies - Копії + Paper + Папір - - Print range - Діапазон друку + Page size: + Розмір сторінки: + + + Width: + Ширина: + + + Height: + Висота: + + + Paper source: + Джерело паперу: + + + Orientation + Орієнтація + + + Portrait + Портрет + + + Landscape + Ландшафт + + + Reverse landscape + Обернений ландшафт + + + Reverse portrait + Обернений портрет + + + Margins + Поля + + + top margin + верхнє поле + + + left margin + ліве поле + + + right margin + праве поле + + + bottom margin + нижнє поле + + + Centimeters (cm) + Сантиметри (см) + + + Millimeters (mm) + Міліметри (мм) + + + Inches (in) + Дюйми (in) + + + Points (pt) + Точки (pt) + + + + QPluginLoader + + The plugin was not loaded. + Додаток не було завантажено. + + + Unknown error + Невідома помилка + + + + QPrintDialog + + Print + Друк + + + A0 + + + + A1 + + + + A2 + + + + A3 + + + + A4 + + + + A5 + + + + A6 + + + + A7 + + + + A8 + + + + A9 + + + + B0 + + + + B1 + + + + B2 + + + + B3 + + + + B4 + + + + B5 + + + + B6 + + + + B7 + + + + B8 + + + + B9 + + + + B10 + + + + C5E + + + + DLE + + + + Executive + Executive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + Legal + + + Letter + Letter + + + Tabloid + Tabloid + + + US Common #10 Envelope + US Common #10 Envelope + + + Custom + Користувацький + + + File exists + Файл існує + + + <qt>Do you want to overwrite it?</qt> + <qt>Бажаєте перезаписати його?</qt> + + + A0 (841 x 1189 mm) + A0 (841 x 1189 мм) + + + A1 (594 x 841 mm) + A1 (594 x 841 мм) + + + A2 (420 x 594 mm) + A2 (420 x 594 мм) + + + A3 (297 x 420 mm) + A3 (297 x 420 мм) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 мм, 8.26 x 11.7 дюймів) + + + A5 (148 x 210 mm) + A5 (148 x 210 мм) + + + A6 (105 x 148 mm) + A6 (105 x 148 мм) + + + A7 (74 x 105 mm) + A7 (74 x 105 мм) + + + A8 (52 x 74 mm) + A8 (52 x 74 мм) + + + A9 (37 x 52 mm) + A9 (37 x 52 мм) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 мм) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 мм) + + + B2 (500 x 707 mm) + B2 (500 x 707 мм) + + + B3 (353 x 500 mm) + B3 (353 x 500 мм) + + + B4 (250 x 353 mm) + B4 (250 x 353 мм) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 мм, 6.93 x 9.84 дюймів) + + + B6 (125 x 176 mm) + B6 (125 x 176 мм) + + + B7 (88 x 125 mm) + B7 (88 x 125 мм) + + + B8 (62 x 88 mm) + B8 (62 x 88 мм) + + + B9 (44 x 62 mm) + B9 (44 x 62 мм) + + + B10 (31 x 44 mm) + B10 (31 x 44 мм) + + + C5E (163 x 229 mm) + C5E (163 x 229 мм) + + + DLE (110 x 220 mm) + DLE (110 x 220 мм) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10 дюймів, 191 x 254 мм) + + + Folio (210 x 330 mm) + Folio (210 x 330 мм) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 мм) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 дюймів, 216 x 356 мм) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11 дюймів, 216 x 279 мм) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 мм) + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 мм) + + + Print all + Друкувати все + + + Print selection + Друкувати виділення + + + Print range + Діапазон друку + + + Print current page + Друкувати поточну сторінку + + + &Options >> + &Опції >> + + + &Print + &Друк + + + &Options << + &Опції << + + + Print to File (PDF) + Друкувати в файл (PDF) + + + Print to File (Postscript) + Друкувати в файл (Postscript) + + + Local file + Локальний файл + + + Write %1 file + Записати в файл %1 + + + Print To File ... + Друкувати в файл... + + + %1 is a directory. +Please choose a different file name. + %1 - тека. +Будь ласка, оберіть інше ім'я файлу. + + + File %1 is not writable. +Please choose a different file name. + До файлу %1 неможливо писати. +Будь ласка, оберіть інше ім'я файлу. + + + %1 already exists. +Do you want to overwrite it? + %1 вже існує. +Бажаєте перезаписати його? + + + The 'From' value cannot be greater than the 'To' value. + Значення поля 'З' не може бути більшим значення поля 'По'. + + + OK + OK + + + locally connected + локально з'єднано + + + Aliases: %1 + Псевдоніми: %1 + + + unknown + невідомо + + + + QPrintPreviewDialog + + Page Setup + Параметри сторінки + + + %1% + + + + Print Preview + Попередній перегляд друку + + + Next page + Наступна сторінка + + + Previous page + Попередня сторінка + + + First page + Перша сторінка + + + Last page + Остання сторінка + + + Fit width + По ширині + + + Fit page + Усю сторінку + + + Zoom in + Збільшити + + + Zoom out + Зменшити + + + Portrait + Портрет + + + Landscape + Ландшафт + + + Show single page + Показати одну сторінку + + + Show facing pages + Показати титульні сторінки + + + Show overview of all pages + Показати огляд усіх сторінок + + + Print + Друк + + + Page setup + Параметри сторінки + + + Close + Закрити + + + Export to PDF + Експорт в PDF + + + Export to PostScript + Експорт в PostScript + + + + QPrintPropertiesWidget + + Form + Форма + + + Page + Сторінка + + + Advanced + Розширені + + + + QPrintSettingsOutput + + Form + Форма + + + Copies + Копії + + + Print range + Діапазон друку + + + Print all + Друкувати все + + + Pages from + Сторінки з + + + to + до + + + Current Page + Поточну сторінку + + + Selection + Виділення + + + Output Settings + Налаштування виводу + + + Copies: + Копій: + + + Collate + Розібрати по копіях + + + Reverse + В зворотньому порядку + + + Options + Параметри + + + Color Mode + Режим кольору + + + Color + Колір + + + Grayscale + Відтінки сірого + + + Duplex Printing + Двосторонній друк + + + None + Відсутній + + + Long side + По довгій стороні + + + Short side + По короткій стороні + + + + QPrintWidget + + Form + Форма + + + Printer + Принтер + + + &Name: + &Назва: + + + P&roperties + &Властивості + + + Location: + Розташування: + + + Preview + Перегляд + + + Type: + Тип: + + + Output &file: + Вихідний &файл: + + + ... + ... + + + + QProcess + + Error reading from process + Помилка читання з процесу + + + Error writing to process + Помилка запису в процес + + + Process crashed + Процес аварійно завершився + + + No program defined + Програму не задано + + + Could not open input redirection for reading + Не вдалося відкрити перенаправлення введення для читання + + + Could not open output redirection for writing + Не вдалося відкрити перенаправлення виведення для запису + + + Resource error (fork failure): %1 + Помилка ресурсу (збій fork): %1 + + + Process operation timed out + Час на операцію з процесом вичерпано + + + Process failed to start: %1 + Збій запуску процесу: %1 + + + + QProgressDialog + + Cancel + Скасувати + + + + QPushButton + + Open + Відкрити + + + + QRadioButton + + Check + Відмітити + + + + QRegExp + + no error occurred + без помилок + + + disabled feature used + використана вимкнена можливість + + + bad char class syntax + неправильний синтаксис класу символів + + + bad lookahead syntax + неправильний синтаксис "lookahead" + + + bad repetition syntax + неправильний синтаксис повторення + + + invalid octal value + неправильне вісімкове значення + + + missing left delim + відсутній лівий розділювач + + + unexpected end + неочікуваний кінець + + + met internal limit + досягнуто внутрішнього обмеження + + + invalid interval + неправильний інтервал + + + invalid category + неправильна категорія + + + + QSQLite2Driver + + Error opening database + Помилка відкриття бази даних + + + Unable to begin transaction + Неможливо почати транзакцію + + + Unable to commit transaction + Неможливо завершити транзакцію + + + Unable to rollback transaction + Неможливо відкотити транзакцію + + + + QSQLite2Result + + Unable to fetch results + Неможливо отримати результати + + + Unable to execute statement + Неможливо виконати вираз + + + + QSQLiteDriver + + Error opening database + Помилка відкриття бази даних + + + Error closing database + Помилка закриття бази даних + + + Unable to begin transaction + Неможливо почати транзакцію + + + Unable to commit transaction + Неможливо завершити транзакцію + + + Unable to rollback transaction + Неможливо відкотити транзакцію + + + + QSQLiteResult + + Unable to fetch row + Неможливо отримати рядок + + + No query + Запит відсутній + + + Unable to execute statement + Неможливо виконати вираз + + + Unable to reset statement + Неможливо скинути вираз + + + Unable to bind parameters + Неможливо прив'язати параметри + + + Parameter count mismatch + Кількість параметрів не збігається + + + + QScriptBreakpointsModel + + ID + + + + Location + Позиція + + + Condition + Умова + + + Ignore-count + Пропущено + + + Single-shot + Один раз + + + Hit-count + Збігів + + + + QScriptBreakpointsWidget + + New + Новий + + + Delete + Видалити + + + + QScriptDebugger + + Go to Line + Перейти до рядка + + + Line: + Рядок: + + + Interrupt + Перервати + + + Shift+F5 + + + + Continue + Продовжити + + + F5 + + + + Step Into + Увійти в + + + F11 + + + + Step Over + Перейти через + + + F10 + + + + Step Out + Вийти з + + + Shift+F11 + + + + Run to Cursor + Виконати до курсору + + + Ctrl+F10 + + + + Run to New Script + Виконати до нового скрипту + + + Toggle Breakpoint + Перемкнути точку перепину + + + F9 + + + + Clear Debug Output + Очистити зневаджувальне виведення + + + Clear Error Log + Очистити журнал помилок + + + Clear Console + Очистити консоль + + + &Find in Script... + &Знайти в скрипті... + + + Ctrl+F + + + + Find &Next + Знайти &наступне + + + F3 + + + + Find &Previous + Знайти &попереднє + + + Shift+F3 + + + + Ctrl+G + + + + Debug + Зневадження + + + + QScriptDebuggerCodeFinderWidget + + Close + Закрити + + + Previous + Попередній + + + Next + Наступний + + + Case Sensitive + Враховувати регістр + + + Whole words + Цілі слова + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Пошук з початку + + + + QScriptDebuggerLocalsModel + + Name + Назва + + + Value + Значення + + + + QScriptDebuggerStackModel + + Level + Рівень + + + Name + Назва + + + Location + Позиція + + + + QScriptEdit + + Toggle Breakpoint + Перемкнути точку перепину + + + Disable Breakpoint + Вимкнути точку перепину + + + Enable Breakpoint + Увімкнути точку перепину + + + Breakpoint Condition: + Умова перепину: + + + + QScriptEngineDebugger + + Loaded Scripts + Завантажені скрипти + + + Breakpoints + Точки перепину + + + Stack + Стек + + + Locals + Локальні змінні + + + Console + Консоль + + + Debug Output + Зневаджувальне виведення + + + Error Log + Журнал помилок + + + Search + Пошук + + + View + Вид + + + Qt Script Debugger + Зневаджувач скриптів Qt + + + + QScriptNewBreakpointWidget + + Close + Закрити + + + + QScrollBar + + Scroll here + Прокрутити сюди + + + Left edge + До лівої границі + + + Top + Вгору + + + Right edge + До правої границі + + + Bottom + Донизу + + + Page left + На сторінку вліво + + + Page up + На сторінку вгору + + + Page right + На сторінку вправо + + + Page down + На сторінку вниз + + + Scroll left + Прокрутити вліво + + + Scroll up + Прокрутити вгору + + + Scroll right + Прокрутити вправо + + + Scroll down + Прокрутити донизу + + + Line up + На рядок вгору + + + Position + Положення + + + Line down + На рядок вниз + + + + QSharedMemory + + %1: unable to set key on lock + %1: неможливо встановити ключ для блокування + + + %1: create size is less then 0 + %1: розмір створення менший нуля + + + %1: unable to lock + %1: неможливо заблокувати + + + %1: unable to unlock + %1: неможливо розблокувати + + + %1: already exists + %1: вже існує + + + %1: doesn't exists + %1: не існує + + + %1: invalid size + %1: неправильний розмір + + + %1: out of resources + %1: недостатньо ресурсів + + + %1: permission denied + %1: доступ заборонено + + + %1: unknown error %2 + %1: невідома помилка %2 + + + %1: key error + %1: помилка ключа + + + %1: unable to make key + %1: неможливо створити ключ + + + %1: doesn't exist + %1: не існує + + + %1: key is empty + %1: пустий ключ + + + %1: UNIX key file doesn't exist + %1: файл ключа UNIX не існує + + + %1: ftok failed + %1: збій ftok + + + %1: system-imposed size restrictions + %1: обмеження розміру встановлені системою + + + %1: not attached + %1: не прикріплено + + + %1: size query failed + %1: збій запиту розміру + + + + QShortcut + + Space + 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. + Пропуск + + + Esc + Esc + + + Tab + Tab + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Return + + + Enter + Enter + + + Ins + Ins + + + Del + Del + + + Pause + Pause + + + Print + Print + + + SysReq + SysReq + + + Home + Home + + + End + End + + + Left + Вліво + + + Up + Вгору + + + Right + Вправо + + + Down + Вниз + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + CapsLock + + + NumLock + NumLock + + + ScrollLock + ScrollLock + + + Menu + Меню + + + Help + Довідка + + + Back + Назад + + + Forward + Вперед + + + Stop + Стоп + + + Refresh + Оновити + + + Volume Down + Тихіше + + + Volume Mute + Вимкнути звук + + + Volume Up + Гучніше + + + Bass Boost + Посилення басів + + + Bass Up + Баси гучніше + + + Bass Down + Баси тихіше + + + Treble Up + ВЧ гучніше + + + Treble Down + ВЧ тихіше + + + Media Play + Відтворення + + + Media Stop + Зупинити відтворення + + + Media Previous + Відтворити попереднє + + + Media Next + Відтворити наступне + + + Media Record + Запис + + + Media Pause + Media player pause button + Пауза + + + Toggle Media Play/Pause + Media player button to toggle between playing and paused + Грати/Пауза + + + Home Page + Домашня сторінка + + + Favorites + Обране + + + Search + Пошук + + + Standby + Режим очікування + + + Open URL + Відкрити URL + + + Launch Mail + Пошта + + + Launch Media + Програвач + + + Launch (0) + Запустити (0) + + + Launch (1) + Запустити (1) + + + Launch (2) + Запустити (2) + + + Launch (3) + Запустити (3) + + + Launch (4) + Запустити (4) + + + Launch (5) + Запустити (5) + + + Launch (6) + Запустити (6) + + + Launch (7) + Запустити (7) + + + Launch (8) + Запустити (8) + + + Launch (9) + Запустити (9) + + + Launch (A) + Запустити (A) + + + Launch (B) + Запустити (B) + + + Launch (C) + Запустити (C) + + + Launch (D) + Запустити (D) + + + Launch (E) + Запустити (E) + + + Launch (F) + Запустити (F) + + + Monitor Brightness Up + Збільшити яскравість монітору + + + Monitor Brightness Down + Зменшити яскравість монітору + + + Keyboard Light On/Off + Вімк./Вимк. підсвітку клавіатури + + + Keyboard Brightness Up + Збільшити яскравість підсвітки клавіатури + + + Keyboard Brightness Down + Зменшити яскравість підсвітки клавіатури + + + Power Off + Вимкнути живлення + + + Wake Up + Прокинутись + + + Eject + Витягнути + + + Screensaver + Зберігач екрана + + + WWW + WWW + + + Sleep + Сплячий режим + + + LightBulb + Лампочка + + + Shop + Крамниця + + + History + Історія + + + Add Favorite + Додати до обраного + + + Hot Links + Гарячі посилання + + + Adjust Brightness + Налаштування яскравості + + + Finance + Фінанси + + + Community + Спільнота + + + Audio Rewind + Перемотка звуку на початок + + + Back Forward + Назад Вперед + + + Application Left + Додаток вліво + + + Application Right + Додаток вправо + + + Book + Книга + + + CD + CD + + + Calculator + Калькулятор + + + Clear + Очистити + + + Clear Grab + + + + Close + Закрити + + + Copy + Копіювати + + + Cut + Вирізати + + + Display + Дисплей + + + DOS + DOS + + + Documents + Документи + + + Spreadsheet + Електронна таблиця + + + Browser + Навігатор + + + Game + Гра + + + Go + Йти + + + iTouch + iTouch + + + Logoff + Вийти з системи + + + Market + Ринок + + + Meeting + Зустріч + + + Keyboard Menu + Клавіатурне меню + + + Menu PB + Меню PB + + + My Sites + Мої сайти + + + News + Новини + + + Home Office + Домашній офіс + + + Option + Опція + + + Paste + Вставити + + + Phone + Телефон + + + Reply + Відповісти + + + Reload + Перезавантажити + + + Rotate Windows + Обертати вікна + + + Rotation PB + Обертання PB + + + Rotation KB + Обертання KB + + + Save + Зберегти + + + Send + Надіслати + + + Spellchecker + Перевірка правопису + + + Split Screen + Розділити екран + + + Support + Підтримка + + + Task Panel + Панель задач + + + Terminal + Термінал + + + Tools + Інструменти + + + Travel + Подорож + + + Video + Відео + + + Word Processor + Текстовий процесор + + + XFer + XFer + + + Zoom In + Збільшити + + + Zoom Out + Зменшити + + + Away + Пішов + + + Messenger + Програма миттєвого зв'язку + + + WebCam + Веб-камера + + + Mail Forward + Переслати лист + + + Pictures + Зображення + + + Music + Музика + + + Battery + Батарея + + + Bluetooth + Bluetooth + + + Wireless + Бездротова мережа + + + Ultra Wide Band + Ultra Wide Band + + + Audio Forward + Послідовно + + + Audio Repeat + Повторювати + + + Audio Random Play + Випадкове відтворення + + + Subtitle + Субтитри + + + Audio Cycle Track + Зациклити трек + + + Time + Час + + + Select + Обрати + + + View + Вид + + + Top Menu + Головне меню + + + Suspend + Призупинити + + + Hibernate + Приспати + + + Print Screen + Друк екрану + + + Page Up + На сторінку вгору + + + Page Down + На сторінку вниз + + + Caps Lock + Верхній регістр + + + Num Lock + Цифрові клавіші + + + Number Lock + Цифрові клавіші + + + Scroll Lock + Scroll Lock + + + Insert + Вставити + + + Delete + Видалити + + + Escape + Escape + + + System Request + Системний запит + + + Yes + Так + + + No + Ні + + + Context1 + Контекст 1 + + + Context2 + Контекст 2 + + + Context3 + Контекст 3 + + + Context4 + Контекст 4 + + + Call + Button to start a call (note: a separate button is used to end the call) + Дзвонити + + + Hangup + Button to end a call (note: a separate button is used to start the call) + Покласти слухавку + + + Toggle Call/Hangup + Button that will hang up if we're in call, or make a call if we're not. + Подзвонити/покласти слухавку + + + Flip + Фліп + + + Voice Dial + Button to trigger voice dialling + Голосовий набір + + + Last Number Redial + Button to redial the last number called + Повторний набір + + + Camera Shutter + Button to trigger the camera shutter (take a picture) + Спуск камери + + + Camera Focus + Button to focus the camera + Сфокусувати камеру + + + Kanji + Кандзі + + + Muhenkan + Muhenkan + + + Henkan + Henkan + + + Romaji + Ромадзі + + + Hiragana + Хірагана + + + Katakana + Катакана + + + Hiragana Katakana + Хірагана Катакана + + + Zenkaku + Zenkaku + + + Hankaku + Hankaku + + + Zenkaku Hankaku + Zenkaku Hankaku + + + Touroku + Touroku + + + Massyo + Massyo + + + Kana Lock + Замкнути кана + + + Kana Shift + Кана Shift + + + Eisu Shift + Eisu Shift + + + Eisu toggle + Eisu перемкнути + + + Code input + Ввести код + + + Multiple Candidate + Декілька кандидатів + + + Previous Candidate + Попередній кандидат + + + Hangul + Хангиль + + + Hangul Start + Початок хангиля + + + Hangul End + Кінець хангиля + + + Hangul Hanja + Хангиль Ханча + + + Hangul Jamo + Хангиль Чамо + + + Hangul Romaja + Хангиль Romaja + + + Hangul Jeonja + Хангиль Jeonja + + + Hangul Banja + Хангиль Banja + + + Hangul PreHanja + Хангиль преханча + + + Hangul PostHanja + Хангиль постханча + + + Hangul Special + Хангиль спеціальний + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + + QSlider + + Page left + На сторінку вліво + + + Page up + На сторінку вгору + + + Position + Позиція + + + Page right + На сторінку вправо + + + Page down + На сторінку вниз + + + + QSocks5SocketEngine + + Connection to proxy refused + Проксі-сервер відмовив у з’єднанні + + + Connection to proxy closed prematurely + З’єднання з проксі-сервером було несподівано закрите + + + Proxy host not found + Не знайдено вузол проксі-сервера + + + Connection to proxy timed out + Час на з’єднання з проксі-сервером вичерпано + + + Proxy authentication failed + Збій авторизації з проксі-сервером + + + Proxy authentication failed: %1 + Збій авторизації з проксі-сервером: %1 + + + SOCKS version 5 protocol error + Помилка протоколу SOCKS версії 5 + + + General SOCKSv5 server failure + Загальний збій сервера SOCKSv5 + + + Connection not allowed by SOCKSv5 server + З’єднання не дозволене сервером SOCKSv5 + + + TTL expired + TTL минув + + + SOCKSv5 command not supported + Команда SOCKSv5 не підтримується + + + Address type not supported + Тип адреси не підтримується + + + Unknown SOCKSv5 proxy error code 0x%1 + Невідомий код помилки проксі-серверу SOCKSv5 0x%1 + + + Network operation timed out + Час на мережеву операцію вичерпано + + + + QSoftKeyManager + + Ok + Ok + + + Select + Обрати + + + Done + Завершено + + + Options + Опції + + + Cancel + Скасувати + + + Exit + Вийти + + + + QSpinBox + + More + Більше + + + Less + Менше + + + + QSql + + Delete + Видалити + + + Delete this record? + Видалити цей запис? + + + Yes + Так + + + No + Ні + + + Insert + Вставити + + + Update + Оновити + + + Save edits? + Зберегти зміни? + + + Cancel + Скасувати + + + Confirm + Підтвердити + + + Cancel your edits? + Скасувати ваші зміни? + + + + QSslSocket + + No error + Немає помилки + + + The issuer certificate could not be found + Не вдалося знайти сертифікат видавця + + + The certificate signature could not be decrypted + Не вдалося дешифрувати підпис сертифіката + + + The public key in the certificate could not be read + Не вдалося прочитати відкритий ключ сертифіката + + + The signature of the certificate is invalid + Неправильний підпис сертифіката + + + The certificate is not yet valid + Сертифікати ще не є дійсним + + + The certificate has expired + Сертифікат застарів + + + The certificate's notBefore field contains an invalid time + Поле notBefore сертифіката містить неправильний час + + + The certificate's notAfter field contains an invalid time + Поле notAfter сертифіката містить неправильний час + + + The certificate is self-signed, and untrusted + Cертифікат самопідписаний та йому немає довіри + + + The root certificate of the certificate chain is self-signed, and untrusted + Кореневий сертифікат ланцюжка сертифікатів самопідписаний та йому немає довіри + + + The issuer certificate of a locally looked up certificate could not be found + Не вдалося знайти сертифікат видавця для сертифіката, що шукається локально + + + No certificates could be verified + Неможливо перевірити сертифікати + + + One of the CA certificates is invalid + Один з сертифікатів центру сертифікації неправильний + + + The basicConstraints path length parameter has been exceeded + Перевищено довжину шляху параметру basicConstraints + + + The supplied certificate is unsuitable for this purpose + Наданий сертифікат непридатний для даної мети + + + The root CA certificate is not trusted for this purpose + Кореневий сертифікат центру сертифікації не є надійним для даної мети + + + The root CA certificate is marked to reject the specified purpose + Кореневий сертифікат центру сертифікації помічений на відхилення для даної мети + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + Сертифікат поточного кандидата видавця було відхилено, оскільки назва теми не збігається з іменем видавця поточного сертифіката + + + 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 + Сертифікат поточного кандидата видавця було відхилено, оскільки представлені ім'я видавця та серійний номер не збігаються з ідентифікатором ключа сертифікаційного органу поточного сертифіката + + + The peer did not present any certificate + Інша сторона не надала жодного сертифіката + + + The host name did not match any of the valid hosts for this certificate + Назва вузла не збігається з жодною з припустимих назв вузлів для цього сертифіката + + + Unknown error + Невідома помилка + + + Error creating SSL context (%1) + Помилка створення контексту SSL (%1) + + + Invalid or empty cipher list (%1) + Неправильний або порожній список шифрів (%1) + + + Cannot provide a certificate with no key, %1 + Неможливо надати сертифікат без ключа, %1 + + + Error loading local certificate, %1 + Помилка завантаження локального сертифіката, %1 + + + Error loading private key, %1 + Помилка завантаження закритого ключа, %1 + + + Private key does not certify public key, %1 + Закритий ключ не сертифікує відкритий, %1 + + + Error creating SSL session, %1 + Помилка створення сесії SSL, %1 + + + Error creating SSL session: %1 + Помилка створення сесії SSL: %1 + + + Unable to write data: %1 + Неможливо записати дані: %1 + + + Unable to decrypt data: %1 + Неможливо дешифрувати дані, %1 + + + Error while reading: %1 + Помилка читання: %1 + + + Error during SSL handshake: %1 + Помилка рукостискання SSL: %1 + + + + QStateMachine + + Missing initial state in compound state '%1' + Відсутній початковий стан в складеному стані ’%1’ + + + Missing default state in history state '%1' + Відсутній типовий стан в історичному стані ’%1’ + + + No common ancestor for targets and source of transition from state '%1' + Немає спільного предка для цілей та джерел переходу зі стану '%1' + + + Unknown error + Невідома помилка + + + + QSystemSemaphore + + %1: permission denied + %1: доступ заборонено + + + %1: already exists + %1: вже існує + + + %1: does not exist + %1: не існує + + + %1: out of resources + %1: недостатньо ресурсів + + + %1: unknown error %2 + %1: невідома помилка %2 + + + + QTDSDriver + + Unable to open connection + Неможливо відкрити з'єднання + + + Unable to use database + Неможливо використати базу даних + + + + QTabBar + + Scroll Left + Прокрутити вліво + + + Scroll Right + Прокрутити вправо + + + + QTcpServer + + Operation on socket is not supported + Непідтримувана для сокета операція + + + + QTextControl + + &Undo + &Повернути + + + &Redo + П&овторити + + + Cu&t + Ви&різати + + + &Copy + &Копіювати + + + Copy &Link Location + Копіювати &адресу посилання + + + &Paste + &Вставити + + + Delete + Видалити + + + Select All + Виділити все + + + + QToolButton + + Press + Натисніть + + + Open + Відкрити + + + + QUdpSocket + + This platform does not support IPv6 + Ця платформа не підтримує IPv6 + + + + QUndoGroup + + Undo + Повернути + + + Redo + Повторити + + + + QUndoModel + + <empty> + <порожньо> + + + + QUndoStack + + Undo + Повернути + + + Redo + Повторити + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM Ознака зліва направо + + + RLM Right-to-left mark + RLM Ознака справа наліво + + + ZWJ Zero width joiner + ZWJ Об’єднувач нульової ширини + + + ZWNJ Zero width non-joiner + ZWNJ Необ’єднувач нульової довжини + + + ZWSP Zero width space + ZWSP Пропуск нульової ширини + + + LRE Start of left-to-right embedding + LRE Початок вбудованого напису зліва направо + + + RLE Start of right-to-left embedding + RLE Початок вбудованого напису справа наліво + + + LRO Start of left-to-right override + LRO Початок заміни напису зліва направо + + + RLO Start of right-to-left override + RLO Початок заміни напису справа наліво + + + PDF Pop directional formatting + PDF Забрати направлене форматування + + + Insert Unicode control character + Вставити керуючий символ Unicode + + + + QWebFrame + + Request cancelled + Запит скасовано + + + Request blocked + Запит блоковано + + + Cannot show URL + Неможливо показати URL + + + Frame load interrupted by policy change + Завантаження фрейму було перерване зміною політики + + + Cannot show mimetype + Неможливо показати тип MIME + + + File does not exist + Файл не існує + + + + QWebPage + + Redirection limit reached + Ліміт перенаправлень вичерпано + + + Bad HTTP request + Поганий запит HTTP + + + %n file(s) + number of chosen file + + %n файл + %n файли + %n файлів + + + + Submit + default label for Submit buttons in forms on web pages + Надіслати + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Надіслати + + + Reset + default label for Reset buttons in forms on web pages + Скинути + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Це пошуковий покажчик. Введіть ключові слова пошуку: + + + Choose File + title for file button used in HTML forms + Оберіть файл + + + No file selected + text to display in file button used in HTML forms when no file is selected + Файл не обрано + + + Open in New Window + Open in New Window context menu item + Відкрити в новому вікні + + + Save Link... + Download Linked File context menu item + Зберегти посилання... + + + Copy Link + Copy Link context menu item + Копіювати посилання + + + Open Image + Open Image in New Window context menu item + Відкрити зображення + + + Save Image + Download Image context menu item + Зберегти зображення + + + Copy Image + Copy Link context menu item + Копіювати зображення + + + Open Frame + Open Frame in New Window context menu item + Відкрити фрейм + + + Copy + Copy context menu item + Копіювати + + + Go Back + Back context menu item + Йти назад + + + Go Forward + Forward context menu item + Йти вперед + + + Stop + Stop context menu item + Зупинити + + + Reload + Reload context menu item + Перезавантажити + + + Cut + Cut context menu item + Вирізати + + + Paste + Paste context menu item + Вставити + + + No Guesses Found + No Guesses Found context menu item + Підказок не знайдено + + + Ignore + Ignore Spelling context menu item + Ігнорувати + + + Add To Dictionary + Learn Spelling context menu item + Додати до словника + + + Search The Web + Search The Web context menu item + Пошук в мережі + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Шукати в словнику - - Print all - Друкувати все + Open Link + Open Link context menu item + Відкрити посилання - - Pages from - Сторінки з + Ignore + Ignore Grammar context menu item + Ігнорувати - - to - по + Spelling + Spelling and Grammar context sub-menu item + Правопис - - Selection - Вибрані + Show Spelling and Grammar + menu item title + Показати правопис та граматику - - Output Settings - + Hide Spelling and Grammar + menu item title + Сховати правопис та граматику - - Copies: - + Check Spelling + Check spelling context menu item + Перевірка правопису - - Collate - Сортувати + Check Spelling While Typing + Check spelling while typing context menu item + Перевіряти правопис під час набору - - Reverse - + Check Grammar With Spelling + Check grammar with spelling context menu item + Перевіряти граматику разом з правописом - - Options - Опції + Fonts + Font context sub-menu item + Шрифти - - Color Mode - + Bold + Bold context menu item + Жирний - - Color - + Italic + Italic context menu item + Курсив - - Grayscale - + Underline + Underline context menu item + Підкреслений - - Duplex Printing - + Outline + Outline context menu item + Контур - - None - + Direction + Writing direction context sub-menu item + Напрямок - - Long side - + Text Direction + Text direction context sub-menu item + Напрямок тексту - - Short side - + Default + Default writing direction context menu item + Типово - - - QPrintWidget - - Form - + Left to Right + Left to Right context menu item + Зліва направо - - Printer - Принтер + Right to Left + Right to Left context menu item + Справа наліво - - &Name: - + Inspect + Inspect Element context menu item + Інспектувати - - P&roperties - + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + Немає нещодавніх пошуків - - Location: - + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Нещодавні пошуки - - Preview - + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Очистити нещодавні пошуки - - Type: - + Missing Plug-in + Label text to be used when a plug-in is missing + Додаток відсутній - - Output &file: - + Unknown + Unknown filesize FTP directory listing item + Невідомо - - ... - + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 пікселів) - - - QProcess - - - Could not open input redirection for reading - + Loading... + Media controller status message when the media is loading + Завантаження... - - - Could not open output redirection for writing - + Live Broadcast + Media controller status message when watching a live broadcast + Мовлення наживо - - Resource error (fork failure): %1 - + Audio Element + Media controller element + Аудіо-елемент - - - - - - - - - - Process operation timed out - + Video Element + Media controller element + Відео-елемент - - - - - Error reading from process - + Mute Button + Media controller element + Кнопка вимикання звуку - - - - Error writing to process - + Unmute Button + Media controller element + Кнопка вмикання звуку - - Process crashed - + Play Button + Media controller element + Кнопка відтворення - - No program defined - + Pause Button + Media controller element + Кнопка паузи - - Process failed to start - + Slider + Media controller element + Повзунок - - - QProgressDialog - - Cancel - Скасувати + Slider Thumb + Media controller element + Держак повзунка - - - QPushButton - - Open - Відкрити + Rewind Button + Media controller element + Кнопка перемотки на початок - - - QRadioButton - - Check - Поставити позначку + Return to Real-time Button + Media controller element + Кнопка повернення в реальний час - - - QRegExp - - no error occurred - без помилок + Elapsed Time + Media controller element + Пройшло часу - - disabled feature used - вжито вимкнену можливість + Remaining Time + Media controller element + Залишилось часу - - bad char class syntax - неправильний синтаксис класу символу + Status Display + Media controller element + Відображення стану - - bad lookahead syntax - неправильний синтаксис перегляду вперед + Fullscreen Button + Media controller element + Кнопка повноекранного режиму - - bad repetition syntax - неправильний синтаксис повторення + Seek Forward Button + Media controller element + Кнопка перемотки вперед - - invalid octal value - неправильне вісімкове значення + Seek Back Button + Media controller element + Кнопка перемотки назад - - missing left delim - відсутній лівий розділювач + Audio element playback controls and status display + Media controller element + Елементи керування відтворенням звуку та відображення стану - - unexpected end - неочікуваний кінець + Video element playback controls and status display + Media controller element + Елементи керування відтворенням відео та відображення стану - - met internal limit - досягнуто внутрішній ліміт + Mute audio tracks + Media controller element + Вимкнути звукові доріжки - - - QSQLite2Driver - - Error to open database - Помилка відкривання бази даних + Unmute audio tracks + Media controller element + Увімкнути звукові доріжки - - Unable to begin transaction - Неможливо почати транзакцію + Begin playback + Media controller element + Почати відтворення - - Unable to commit transaction - Неможливо завершити транзакцію + Pause playback + Media controller element + Призупинити відтворення - - Unable to rollback Transaction - Неможливо відкотити транзакцію + Movie time scrubber + Media controller element + Повзунок часу фільму - - - QSQLite2Result - - Unable to fetch results - Неможливо витягнути результат + Movie time scrubber thumb + Media controller element + Держак повзунка часу фільму - - Unable to execute statement - Неможливо виконати оператор + Rewind movie + Media controller element + Перемотка фільму на початок - - - QSQLiteDriver - - Error opening database - Неможливо відкрити базу даних + Return streaming movie to real-time + Media controller element + Повернути потокове відео до реального часу - - Error closing database - Помилка закривання бази даних + Current movie time + Media controller element + Поточний час фільму - - Unable to begin transaction - Неможливо почати транзакцію + Remaining movie time + Media controller element + Час до кінця фільму - - Unable to commit transaction - Неможливо завершити транзакцію + Current movie status + Media controller element + Поточний стан фільму - Unable to roll back transaction - Неможливо відкотити транзакцію + Play movie in full-screen mode + Media controller element + Відтворити фільм в повноекранному режимі - - Unable to rollback transaction - Неможливо відкотити транзакцію + Seek quickly back + Media controller element + Швидка перемотка назад - - - QSQLiteResult - - - - Unable to fetch row - Неможливо вибрати рядок + Seek quickly forward + Media controller element + Швидка перемотка вперед - - Unable to execute statement - Неможливо виконати оператор + Indefinite time + Media time description + Невизначений час - - Unable to reset statement - Неможливо скинути оператор + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 днів %2 годин %3 хвилин %4 секунд - - Unable to bind parameters - Неможливо прив'язати параметри + %1 hours %2 minutes %3 seconds + Media time description + %1 годин %2 хвилин %3 секунд - - Parameter count mismatch - Кількість параметрів не збігається + %1 minutes %2 seconds + Media time description + %1 хвилин %2 секунд - - No query - + %1 seconds + Media time description + %1 секунд - - - QScrollBar - Scroll here Прокрутити сюди - Left edge - Лівий край + До лівої границі - Top - Верх + Вгору - Right edge - Правий край + До правої границі - Bottom - Низ + Донизу - Page left - Сторінка ліворуч + На сторінку вліво - - Page up - Сторінка вгору + На сторінку вгору - Page right - Сторінка праворуч + На сторінку вправо - - Page down - Сторінка додолу + На сторінку вниз - Scroll left - Прокрутити ліворуч + Прокрутити вліво - Scroll up Прокрутити вгору - Scroll right - Прокрутити праворуч + Прокрутити вправо - Scroll down - Прокрутити додолу - - - - Line up - Вирівняти - - - - Position - Позиція - - - - Line down - Рядок униз - - - - QSharedMemory - - - %1: unable to set key on lock - + Прокрутити донизу - - %1: create size is less then 0 - + JavaScript Alert - %1 + Попередження JavaScript - %1 - - - %1: unable to lock - + JavaScript Confirm - %1 + Підтвердження JavaScript - %1 - - %1: unable to unlock - + JavaScript Prompt - %1 + Запит JavaScript - %1 - - - %1: permission denied - + JavaScript Problem - %1 + Проблема JavaScript - %1 - - - %1: already exists - + The script on this page appears to have a problem. Do you want to stop the script? + Здається є проблема зі скриптом на цій сторінці. Бажаєте зупинити скрипт? - - - %1: doesn't exists - + Move the cursor to the next character + Пересунути курсор до наступного символу - - - %1: out of resources - + Move the cursor to the previous character + Пересунути курсор до попереднього символу - - - %1: unknown error %2 - + Move the cursor to the next word + Пересунути курсор до наступного слова - - %1: key is empty - + Move the cursor to the previous word + Пересунути курсор до попереднього слова - - %1: unix key file doesn't exists - + Move the cursor to the next line + Пересунути курсор до наступного рядка - - %1: ftok failed - + Move the cursor to the previous line + Пересунути курсор до попереднього рядка - - - %1: unable to make key - + Move the cursor to the start of the line + Пересунути курсор до початку рядка - - %1: system-imposed size restrictions - + Move the cursor to the end of the line + Пересунути курсор в кінець рядка - - %1: not attached - + Move the cursor to the start of the block + Пересунути курсор до початку блока - - %1: invalid size - + Move the cursor to the end of the block + Пересунути курсор в кінець блока - - %1: key error - + Move the cursor to the start of the document + Пересунути курсор до початку документа - - %1: size query failed - + Move the cursor to the end of the document + Пересунути курсор в кінець документа - - - QShortcut - - Space - Прогалина + Select all + Виділити все - - Esc - Esc + Select to the next character + Виділити до наступного символу - - Tab - Tab + Select to the previous character + Виділити до попереднього символу - - Backtab - Backtab + Select to the next word + Виділити до наступного слова - - Backspace - Backspace + Select to the previous word + Виділити до попереднього слова - - Return - + Select to the next line + Виділити до наступного рядка - - Enter - Enter + Select to the previous line + Виділити до попереднього рядка - - Ins - Ins + Select to the start of the line + Виділити до початку рядка - - Del - Del + Select to the end of the line + Виділити до кінця рядка - - Pause - Pause + Select to the start of the block + Виділити до початку блока - - Print - Друкувати + Select to the end of the block + Виділити до кінця блока - - SysReq - SysReq + Select to the start of the document + Виділити до початку документа - - Home - Home + Select to the end of the document + Виділити до кінця документа - - End - End + Delete to the start of the word + Видалити до початку слова - - Left - Ліворуч + Delete to the end of the word + Видалити до кінця слова - - Up - Вгору + Insert a new paragraph + Вставити новий параграф - - Right - Праворуч + Insert a new line + Вставити новий рядок - - Down - Додолу + Paste and Match Style + Вставити та зберегти стиль - - PgUp - PgUp + Remove formatting + Видалити форматування - - PgDown - PgDown + Strikethrough + Перекреслений - - CapsLock - CapsLock + Subscript + Нижній індекс - - NumLock - NumLock + Superscript + Верхній індекс - - ScrollLock - ScrollLock + Insert Bulleted List + Вставити маркований список - - Menu - Menu + Insert Numbered List + Вставити нумерований список - - Help - Довідка + Indent + Збільшити відступ - - Back - Назад + Outdent + Зменшити відступ - - Forward - Forward + Center + По центру - - Stop - Stop + Justify + По ширині - - Refresh - Refresh + Align Left + Вирівняти вліво - - Volume Down - Тихіше + Align Right + Вирівняти вправо - - Volume Mute - Приглушити + Web Inspector - %2 + Web-інспектор - %2 + + + QWhatsThisAction - - Volume Up - Голосніше + What's This? + Що це? + + + QWidget - - Bass Boost - Супербас + * + * + + + QWizard - - Bass Up - Низькі частоти голосніше + Go Back + Йти назад - - Bass Down - Низькі частоти тихіше + < &Back + < &Назад - - Treble Up - Високі частоти голосніше + Continue + Продовжити - - Treble Down - Високі частоти тихіше + &Next + &Далі - - Media Play - Запустити програвання + &Next > + &Далі > - - Media Stop - Зупинити програвання + Commit + Виконати - - Media Previous - Програти попередній + Done + Завершено - - Media Next - Програти наступний + &Finish + &Завершити - - Media Record - Запис + Cancel + Скасувати - - Favorites - Улюблені + Help + Довідка - - Search - Пошук + &Help + &Довідка + + + QWorkspace - - Standby - В режим чергування + Close + Закрити - - Open URL - Відкрити URL + Minimize + Мінімізувати - - Launch Mail - Запустити пошту + Restore Down + Відновити - - Launch Media - Запустити медіа + &Restore + &Відновити - - Launch (0) - Запустити (0) + &Move + &Пересунути - - Launch (1) - Запустити (1) + &Size + &Розмір - - Launch (2) - Запустити (2) + Mi&nimize + М&інімізувати - - Launch (3) - Запустити (3) + Ma&ximize + М&аксимізувати - - Launch (4) - Запустити (4) + &Close + Закри&ти - - Launch (5) - Запустити (5) + Stay on &Top + Залишатись на &горі - - Launch (6) - Запустити (6) + Sh&ade + &Згорнути в заголовок - - Launch (7) - Запустити (7) + %1 - [%2] + %1 - [%2] - - Launch (8) - Запустити (8) + &Unshade + Р&озгорнути із заголовка + + + QXml - - Launch (9) - Запустити (9) + no error occurred + без помилок - - Launch (A) - Запустити (A) + error triggered by consumer + помилка, викликана користувачем - - Launch (B) - Запустити (B) + unexpected end of file + несподіваний кінець файлу - - Launch (C) - Запустити (C) + more than one document type definition + більш ніж одне визначення типу документу - - Launch (D) - Запустити (D) + error occurred while parsing element + під час розбору елемента трапилась помилка - - Launch (E) - Запустити (E) + tag mismatch + тег не збігається - - Launch (F) - Запустити (F) + error occurred while parsing content + під час розбору вмісту трапилась помилка - - Print Screen - Друк екрану + unexpected character + несподіваний символ - - Page Up - Сторінка вгору + invalid name for processing instruction + неправильна назва для інструкції обробки - - Page Down - Сторінка додолу + version expected while reading the XML declaration + під час читання оголошення XML очікувалась версія - - Caps Lock - Caps Lock + wrong value for standalone declaration + неправильне значення для самостійного оголошення - - Num Lock - Num Lock + encoding declaration or standalone declaration expected while reading the XML declaration + під час читання оголошення XML очікувалось оголошення кодування або самостійне оголошення - - Number Lock - Number Lock + standalone declaration expected while reading the XML declaration + під час читання оголошення XML очікувалось самостійне оголошення - - Scroll Lock - Scroll Lock + error occurred while parsing document type definition + під час розбору визначення типу документа трапилась помилка - - Insert - Вставити + letter is expected + очікувалась літера - - Delete - Вилучити + error occurred while parsing comment + під час розбору коментаря трапилась помилка - - Escape - Escape + error occurred while parsing reference + під час розбору посилання трапилась помилка - - System Request - System Request + internal general entity reference not allowed in DTD + внутрішнє посилання на загальну сутність не дозволене в DTD - - Select - Select + external parsed general entity reference not allowed in attribute value + зовнішнє розібране посилання на загальну сутність не дозволене в значенні атрибуту - - Yes - Так + external parsed general entity reference not allowed in DTD + зовнішнє розібране посилання на загальну сутність не дозволене в DTD - - No - Ні + unparsed entity reference in wrong context + нерозібране посилання на сутність в неправильному контексті - - Context1 - Контекст1 + recursive entities + рекурсивні сутності - - Context2 - Контекст2 + error in the text declaration of an external entity + помилка в тексті оголошення зовнішньої сутності + + + QXmlPatternistCLI - - Context3 - Контекст3 + Warning in %1, at line %2, column %3: %4 + Попередження в %1, рядок %2, позиція %3: %4 - - Context4 - Контекст4 + Warning in %1: %2 + Попередження в %1: %2 - - Call - Виклик + Unknown location + Невідома позиція - - Hangup - Покласти + Error %1 in %2, at line %3, column %4: %5 + Помилка %1 в %2, рядок %3, позиція %4: %5 - - Flip - Flip + Error %1 in %2: %3 + Помилка %1 в %2: %3 + + + QXmlStream - - - Ctrl - Ctrl + Extra content at end of document. + Зайві дані в кінці документу. - - - Shift - Shift + Invalid entity value. + Неправильне значення сутності. - - - Alt - Alt + Invalid XML character. + Неправильний символ XML. - - - Meta - Meta + Sequence ']]>' not allowed in content. + Послідовність ']]>' не дозволена в змісті. - - + - + + Encountered incorrectly encoded content. + Виявлено неправильно закодований вміст. - - F%1 - F%1 + Namespace prefix '%1' not declared + Префікс простору імен '%1' не оголошено - - Home Page - Домашня сторінка + Illegal namespace declaration. + Неприпустиме оголошення простору імен. + + + Attribute redefined. + Атрибути перевизначено. - - - QSlider - - Page left - Сторінка ліворуч + Unexpected character '%1' in public id literal. + Неочікуваний символ '%1' в публічному літералі id. - - Page up - Сторінка вгору + Invalid XML version string. + Неправильний рядок версії XML. - - Position - Позиція + Unsupported XML version. + Непідтримувана версія XML. - - Page right - Сторінка праворуч + The standalone pseudo attribute must appear after the encoding. + Самостійний псевдоатрибут має знаходитсь після кодування. - - Page down - Сторінка додолу + %1 is an invalid encoding name. + %1 - неправильна назва кодування. - - - QSocks5SocketEngine - - Connection to proxy refused - + Encoding %1 is unsupported + Кодування %1 не підтримується - - Connection to proxy closed prematurely - + Standalone accepts only yes or no. + Самостійний приймає лише так чи ні. - - Proxy host not found - + Invalid attribute in XML declaration. + Неправильний атрибут в оголошенні XML. - - Connection to proxy timed out - + Premature end of document. + Несподіваний кінець документу. - - Proxy authentication failed - + Invalid document. + Неправильний документ. - - Proxy authentication failed: %1 - + Expected + Очікувалось - - SOCKS version 5 protocol error - + , but got ' + , але отримано ' - - General SOCKSv5 server failure - + Unexpected ' + Неочікуване ' - - Connection not allowed by SOCKSv5 server - + Expected character data. + Очікувались символьні дані. - - TTL expired - + Recursive entity detected. + Знайдено рекурсивну сутність. - - SOCKSv5 command not supported - + Start tag expected. + Очікувався відкриваючий тег. - - Address type not supported - + NDATA in parameter entity declaration. + NDATA в параметрі оголошення сутності. - - Unknown SOCKSv5 proxy error code 0x%1 - + XML declaration not at start of document. + Оголошення XML не знаходиться на початку документу. - Socks5 timeout error connecting to socks server - Перевищено час очікування Socks5 для з'єднання до сервера socks + %1 is an invalid processing instruction name. + %1 не є правильна назвою для інструкції обробки. - - Network operation timed out - Перевищено термін очікування мережевої дії + Invalid processing instruction name. + Неправильна назва для інструкції обробки. - - - QSpinBox - - More - Більше + %1 is an invalid PUBLIC identifier. + %1 не є правильним ідентифікатором PUBLIC. - - Less - Менше + Invalid XML name. + Неправильна назва XML. - - - QSql - - Delete - Вилучити + Opening and ending tag mismatch. + Відкриваючий та закриваючий теги не збігаються. - - Delete this record? - Вилучити цей запис? + Entity '%1' not declared. + Сутність '%1' не оголошена. - - - - Yes - Так + Reference to unparsed entity '%1'. + Посилання на нерозібрану сутність '%1'. - - - - No - Ні + Reference to external entity '%1' in attribute value. + Посилання на зовнішню сутність '%1' в значені атрибута. - - Insert - Вставити + Invalid character reference. + Неправильне символьне посилання. + + + QtXmlPatterns - - Update - Поновити + %1 is an unsupported encoding. + - - Save edits? - Зберегти правлення? + %1 contains octets which are disallowed in the requested encoding %2. + - - Cancel - Скасувати + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + - - Confirm - Підтвердити + Network timeout. + - - Cancel your edits? - Скасувати правлення? + Element %1 can't be serialized because it appears outside the document element. + - - - QSslSocket - - Unable to write data: %1 - Неможливо записати дані: %1 + Attribute %1 can't be serialized because it appears at the top level. + - - Error while reading: %1 - Помилка читання: %1 + Year %1 is invalid because it begins with %2. + - - Error during SSL handshake: %1 - Помилка квитування SSL: %1 + Day %1 is outside the range %2..%3. + - - Error creating SSL context (%1) - Помилка створення контексту SSL (%1) + Month %1 is outside the range %2..%3. + - - Invalid or empty cipher list (%1) - Неправильний або порожній список шифрів (%1) + Overflow: Can't represent date %1. + - - Error creating SSL session, %1 - Помилка створення сеансу SSL, %1 + Day %1 is invalid for month %2. + - - Error creating SSL session: %1 - Помилка створення сеансу SSL: %1 + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + - - Cannot provide a certificate with no key, %1 - Неможливо надати сертифікат без ключа, %1 + Time %1:%2:%3.%4 is invalid. + - - Error loading local certificate, %1 - Помилка завантаження локального сертифіката, %1 + Overflow: Date can't be represented. + - - Error loading private key, %1 - Помилка завантаження приватного ключа, %1 + At least one component must be present. + - Private key do not certificate public key, %1 - Приватний ключ не засвідчує публічний ключ, %1 + At least one time component must appear after the %1-delimiter. + - - Private key does not certificate public key, %1 + %1 is not a valid value of type %2. - - - QSystemSemaphore - - - %1: out of resources + When casting to %1 from %2, the source value cannot be %3. - - - %1: permission denied + Integer division (%1) by zero (%2) is undefined. - - %1: already exists + Division (%1) by zero (%2) is undefined. - - %1: does not exist + Modulus division (%1) by zero (%2) is undefined. - - - %1: unknown error %2 + Dividing a value of type %1 by %2 (not-a-number) is not allowed. - - - QTDSDriver - - Unable to open connection - Неможливо відкрити з'єднання + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + - - Unable to use database - Неможливо використати базу даних + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + - - - QTabBar - - Scroll Left - Прокрутити ліворуч + A value of type %1 cannot have an Effective Boolean Value. + - - Scroll Right - Прокрутити праворуч + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + - - - QTcpServer - Socket operation unsupported - Дії з сокетами не підтримуються + Value %1 of type %2 exceeds maximum (%3). + - - Operation on socket is not supported + Value %1 of type %2 is below minimum (%3). - - - QTextControl - - &Undo - &Повернути + A value of type %1 must contain an even number of digits. The value %2 does not. + - - &Redo - П&овторити + %1 is not valid as a value of type %2. + - - Cu&t - Ви&різати + Ambiguous rule match. + - - &Copy - &Копіювати + Operator %1 cannot be used on type %2. + - - Copy &Link Location - Копіювати адресу &посилання + Operator %1 cannot be used on atomic values of type %2 and %3. + - - &Paste - &Вставити + The namespace URI in the name for a computed attribute cannot be %1. + - - Delete - Вилучити + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + - - Select All - Вибрати все + Type error in cast, expected %1, received %2. + - - - QToolButton - - - Press - Натиснути + 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. + - - - Open - Відкрити + A comment cannot contain %1 + - - - QUdpSocket - - This platform does not support IPv6 - Ця платформа не підтримує IPv6 + A comment cannot end with a %1. + - - - QUndoGroup - - Undo - Повернути + In a namespace constructor, the value for a namespace cannot be an empty string. + - - Redo - Повторити + The prefix must be a valid %1, which %2 is not. + + + + The prefix %1 cannot be bound. + - - - QUndoModel - - <empty> - <порожньо> + Only the prefix %1 can be bound to %2 and vice versa. + - - - QUndoStack - - Undo - Повернути + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + - - Redo - Повторити + A library module cannot be evaluated directly. It must be imported from a main module. + - - - QUnicodeControlCharacterMenu - - LRM Left-to-right mark - LRM позначка зліва направо + No template by name %1 exists. + - - RLM Right-to-left mark - RLM позначка справа наліво + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + - - ZWJ Zero width joiner - ZWJ з'єднувач нульової ширини + A positional predicate must evaluate to a single numeric value. + - - ZWNJ Zero width non-joiner - ZWNJ нез'єднувач нульової ширини + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + - - ZWSP Zero width space - ZWSP прогалина нульової ширини + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + - - LRE Start of left-to-right embedding - LRE початок вбудовування зліва направо + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + - - RLE Start of right-to-left embedding - RLE початок вбудовування справа наліво + The data of a processing instruction cannot contain the string %1 + - - LRO Start of left-to-right override - LRO початок заміщення зліва направо + No namespace binding exists for the prefix %1 + - - RLO Start of right-to-left override - RLO початок заміщення справа наліво + No namespace binding exists for the prefix %1 in %2 + - - PDF Pop directional formatting - PDF Pop напрямне форматування + %1 is an invalid %2 + - - Insert Unicode control character - Вставити контрольний символ Unicode + The parameter %1 is passed, but no corresponding %2 exists. + - - - QWebFrame - - Request cancelled + The parameter %1 is required, but no corresponding %2 is supplied. + + %1 takes at most %n argument(s). %2 is therefore invalid. + + + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + + + - - Request blocked + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. - - Cannot show URL + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - - Frame load interruped by policy change + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - - Cannot show mimetype + %1 is not a valid XML 1.0 character. - - File does not exist + The root node of the second argument to function %1 must be a document node. %2 is not a document node. - - - QWebPage - - Bad HTTP request + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. - - Submit - default label for Submit buttons in forms on web pages + %1 was called. - - Submit - Submit (input element) alt text for <input> elements with no alt, title, or value + %1 must be followed by %2 or %3, not at the end of the replacement string. - - Reset - default label for Reset buttons in forms on web pages - Скинути + In the replacement string, %1 must be followed by at least one digit when not escaped. + - - This is a searchable index. Enter search keywords: - text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + In the replacement string, %1 can only be used to escape itself or %2, not %3 - - Choose File - title for file button used in HTML forms + %1 matches newline characters - - No file selected - text to display in file button used in HTML forms when no file is selected + %1 and %2 match the start and end of a line. - - Open in New Window - Open in New Window context menu item + Matches are case insensitive - - Save Link... - Download Linked File context menu item + Whitespace characters are removed, except when they appear in character classes - - Copy Link - Copy Link context menu item + %1 is an invalid regular expression pattern: %2 - - Open Image - Open Image in New Window context menu item + %1 is an invalid flag for regular expressions. Valid flags are: - - Save Image - Download Image context menu item + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. - - Copy Image - Copy Link context menu item + It will not be possible to retrieve %1. - - Open Frame - Open Frame in New Window context menu item + The default collection is undefined - - Copy - Copy context menu item + %1 cannot be retrieved - - Go Back - Back context menu item - Піти назад + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + - - Go Forward - Forward context menu item + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - - Stop - Stop context menu item - Stop + %1 is not a whole number of minutes. + - - Reload - Reload context menu item + The URI cannot have a fragment - - Cut - Cut context menu item + Required cardinality is %1; got cardinality %2. - - Paste - Paste context menu item + The item %1 did not match the required type %2. - - No Guesses Found - No Guesses Found context menu item + The variable %1 is unused - - Ignore - Ignore Spelling context menu item - Пропустити + W3C XML Schema identity constraint selector + - - Add To Dictionary - Learn Spelling context menu item + W3C XML Schema identity constraint field - - Search The Web - Search The Web context menu item + A construct was encountered which is disallowed in the current language(%1). - - Look Up In Dictionary - Look Up in Dictionary context menu item + %1 is an unknown schema type. - - Open Link - Open Link context menu item + A template with name %1 has already been declared. - - Ignore - Ignore Grammar context menu item - Пропустити + %1 is not a valid numeric literal. + - - Spelling - Spelling and Grammar context sub-menu item + Only one %1 declaration can occur in the query prolog. - - Show Spelling and Grammar - menu item title + The initialization of variable %1 depends on itself - - Hide Spelling and Grammar - menu item title + No variable with name %1 exists - - Check Spelling - Check spelling context menu item + Version %1 is not supported. The supported XQuery version is 1.0. - - Check Spelling While Typing - Check spelling while typing context menu item + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. - - Check Grammar With Spelling - Check grammar with spelling context menu item + No function with signature %1 is available - - Fonts - Font context sub-menu item + A default namespace declaration must occur before function, variable, and option declarations. - - Bold - Bold context menu item + Namespace declarations must occur before function, variable, and option declarations. - - Italic - Italic context menu item + Module imports must occur before function, variable, and option declarations. - - Underline - Underline context menu item + The keyword %1 cannot occur with any other mode name. - - Outline - Outline context menu item + The value of attribute %1 must be of type %2, which %3 isn't. - - Direction - Writing direction context sub-menu item + It is not possible to redeclare prefix %1. - - Text Direction - Text direction context sub-menu item + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. - - Default - Default writing direction context menu item + Prefix %1 is already declared in the prolog. - - LTR - Left to Right context menu item + The name of an option must have a prefix. There is no default namespace for options. - - RTL - Right to Left context menu item + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - - Inspect - Inspect Element context menu item + The target namespace of a %1 cannot be empty. - - No recent searches - Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + The module import feature is not supported - - Recent searches - label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + A variable with name %1 has already been declared. - - Clear recent searches - menu item in Recent Searches menu that empties menu's contents + No value is available for the external variable with name %1. - - Unknown - Unknown filesize FTP directory listing item - Невідомо + A stylesheet function must have a prefixed name. + - - %1 (%2x%3 pixels) - Title string for images + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) - - Web Inspector - %2 + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. - - Scroll here - Прокрутити сюди + 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 + - - Left edge - Лівий край + A function already exists with the signature %1. + - - Top - Верх + No external functions are supported. All supported functions can be used directly, without first declaring them as external + - - Right edge - Правий край + An argument with name %1 has already been declared. Every argument name must be unique. + - - Bottom - Низ + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + - - Page left - Сторінка ліворуч + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + - - Page up - Сторінка вгору + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + - - Page right - Сторінка праворуч + In an XSL-T pattern, function %1 cannot have a third argument. + - - Page down - Сторінка додолу + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + - - Scroll left - Прокрутити ліворуч + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + - - Scroll up - Прокрутити вгору + %1 is an invalid template mode name. + - - Scroll right - Прокрутити праворуч + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + - - Scroll down - Прокрутити додолу + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + - - - %n file(s) - number of chosen file - - - - - + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + - - JavaScript Alert - %1 + Each name of a template parameter must be unique; %1 is duplicated. - - JavaScript Confirm - %1 + The %1-axis is unsupported in XQuery - - JavaScript Prompt - %1 + No function with name %1 is available. - - Move the cursor to the next character + The namespace URI cannot be the empty string when binding to a prefix, %1. - - Move the cursor to the previous character + %1 is an invalid namespace URI. - - Move the cursor to the next word + It is not possible to bind to the prefix %1 - - Move the cursor to the previous word + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). - - Move the cursor to the next line + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). - - Move the cursor to the previous line + Two namespace declaration attributes have the same name: %1. - - Move the cursor to the start of the line + The namespace URI must be a constant and cannot use enclosed expressions. - - Move the cursor to the end of the line + An attribute with name %1 has already appeared on this element. - - Move the cursor to the start of the block + A direct element constructor is not well-formed. %1 is ended with %2. - - Move the cursor to the end of the block + The name %1 does not refer to any schema type. - - Move the cursor to the start of the document + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - - Move the cursor to the end of the document + %1 is not an atomic type. Casting is only possible to atomic types. - - Select all + %1 is not a valid name for a processing-instruction. - - Select to the next character + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - - Select to the previous character + The name of an extension expression must be in a namespace. - - Select to the next word + Element %1 is not allowed at this location. - - Select to the previous word + Text nodes are not allowed at this location. - - Select to the next line + Parse error: %1 - - Select to the previous line + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. - - Select to the start of the line + Running an XSL-T 1.0 stylesheet with a 2.0 processor. - - Select to the end of the line + Unknown XSL-T attribute %1. - - Select to the start of the block + Attribute %1 and %2 are mutually exclusive. - - Select to the end of the block + In a simplified stylesheet module, attribute %1 must be present. - - Select to the start of the document + If element %1 has no attribute %2, it cannot have attribute %3 or %4. - - Select to the end of the document + Element %1 must have at least one of the attributes %2 or %3. - - Delete to the start of the word + At least one mode must be specified in the %1-attribute on element %2. - - Delete to the end of the word + Element %1 must come last. - - Insert a new paragraph + At least one %1-element must occur before %2. - - Insert a new line + Only one %1-element can appear. - - - QWhatsThisAction - - What's This? - Що це? + At least one %1-element must occur inside %2. + - - - QWidget - - * - * + When attribute %1 is present on %2, a sequence constructor cannot be used. + - - - QWizard - - Go Back - Піти назад + Element %1 must have either a %2-attribute or a sequence constructor. + - - Continue - Продовжити + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + - - Commit - Зафіксувати + Element %1 cannot have children. + - - Done - Зроблено + Element %1 cannot have a sequence constructor. + - Quit - Вийти + The attribute %1 cannot appear on %2, when it is a child of %3. + - - Help - Довідка + A parameter in a function cannot be declared to be a tunnel. + - - < &Back - < &Назад + This processor is not Schema-aware and therefore %1 cannot be used. + - - &Finish - &Закінчити + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + - - Cancel - Скасувати + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + - - &Help - &Довідка + Attribute %1 cannot have the value %2. + - - &Next + The attribute %1 can only appear on the first %2 element. - - &Next > - &Вперед > + At least one %1 element must appear as child of %2. + - - - QWorkspace - - &Restore - &Відновити + Empty particle cannot be derived from non-empty particle. + - - &Move - &Пересунути + Derived particle is missing element %1. + - - &Size - &Розмір + Derived element %1 is missing value constraint as defined in base particle. + - - Mi&nimize - Мі&німізувати + Derived element %1 has weaker value constraint than base particle. + - - Ma&ximize - Ма&ксимізувати + Fixed value constraint of element %1 differs from value constraint in base particle. + - - &Close - &Закрити + Derived element %1 cannot be nillable as base element is not nillable. + - - Stay on &Top - Лишатися над &іншими + Block constraints of derived element %1 must not be more weaker than in the base element. + - - - Sh&ade - Зг&орнути + Simple type of derived element %1 cannot be validly derived from base element. + - - - %1 - [%2] - %1 - [%2] + Complex type of derived element %1 cannot be validly derived from base element. + - - Minimize - Мінімізувати + Element %1 is missing in derived particle. + - - Restore Down - Відновити додолу + Element %1 does not match namespace constraint of wildcard in base particle. + - - Close - Закрити + Wildcard in derived particle is not a valid subset of wildcard in base particle. + - - &Unshade - &Розгорнути + processContent of wildcard in derived particle is weaker than wildcard in base particle. + - - - QXml - - no error occurred - без помилок + Derived particle allows content that is not allowed in the base particle. + - - error triggered by consumer - помилка викликана споживачем + %1 has inheritance loop in its base type %2. + - - unexpected end of file - неочікуваний кінець файлу + Circular inheritance of base type %1. + - - more than one document type definition - більше одного визначення типу документу (DTD) + Circular inheritance of union %1. + - - error occurred while parsing element - помилка аналізу елемента + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + - - tag mismatch - теґи не збігаються + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + - - error occurred while parsing content - помилка аналізу вмісту + Base type of simple type %1 cannot be complex type %2. + - - unexpected character - неочікуваний символ + Simple type %1 cannot have direct base type %2. + - - invalid name for processing instruction - неправильне ім'я для обробної команди + Simple type %1 is not allowed to have base type %2. + - - version expected while reading the XML declaration - при читанні оголошення XML очікувалася версія + Simple type %1 can only have simple atomic type as base type. + - - wrong value for standalone declaration - неправильне значення для окремого оголошення + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + - - encoding declaration or standalone declaration expected while reading the XML declaration - при читанні оголошень XML очікувалось оголошення кодування або окреме оголошення + Variety of item type of %1 must be either atomic or union. + - - standalone declaration expected while reading the XML declaration - при читанні оголошень XML очікувалось окреме оголошення + Variety of member types of %1 must be atomic. + - - error occurred while parsing document type definition - помилка при аналізі визначення типу документу (DTD) + %1 is not allowed to derive from %2 by list as the latter defines it as final. + - - letter is expected - очікувалась літера + Simple type %1 is only allowed to have %2 facet. + - - error occurred while parsing comment - помилка аналізу коментаря + Base type of simple type %1 must have variety of type list. + - - error occurred while parsing reference - помилка аналізу посилання + Base type of simple type %1 has defined derivation by restriction as final. + - - internal general entity reference not allowed in DTD - посилання на внутрішній загальний елемент не дозволено в DTD + Item type of base type does not match item type of %1. + - - external parsed general entity reference not allowed in attribute value - посилання на зовнішній розібраний загальний елемент не дозволено в значенні атрибута + Simple type %1 contains not allowed facet type %2. + - - external parsed general entity reference not allowed in DTD - посилання на зовнішній розібраний загальний елемент не дозволено в DTD + %1 is not allowed to derive from %2 by union as the latter defines it as final. + - - unparsed entity reference in wrong context - посилання на нерозібраний елемент у неправильному контексті + %1 is not allowed to have any facets. + - - recursive entities - рекурсивні елементи + Base type %1 of simple type %2 must have variety of union. + - - error in the text declaration of an external entity - помилка в оголошенні тексту зовнішнього елемента + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + - - - QXmlStream - - - Extra content at end of document. - Надлишковий вміст в кінці документу. + Member type %1 cannot be derived from member type %2 of %3's base type %4. + - - Invalid entity value. - Неправильне значення елементу. + Derivation method of %1 must be extension because the base type %2 is a simple type. + - - Invalid XML character. - Неправильний символ XML. + Complex type %1 has duplicated element %2 in its content model. + - - Sequence ']]>' not allowed in content. - Послідовність "]]>" в вмісті є недозволеною. + Complex type %1 has non-deterministic content. + - - Namespace prefix '%1' not declared - Префікс простору імен "%1" не оголошено + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + - - Attribute redefined. - Нове оголошення атрибуту. + Content model of complex type %1 is not a valid extension of content model of %2. + - - Unexpected character '%1' in public id literal. - Неочікуваний символ "%1" в ідентифікаторі публічного літерала. + Complex type %1 must have simple content. + - - Invalid XML version string. - Неправильний рядок версії XML. + Complex type %1 must have the same simple type as its base class %2. + - - Unsupported XML version. - Непідтримувана версія XML. + Complex type %1 cannot be derived from base type %2%3. + - - %1 is an invalid encoding name. - %1 є неправильним ім'ям кодування. + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + - - Encoding %1 is unsupported - Кодування %1 не підтримується + Complex type %1 with simple content cannot be derived from complex base type %2. + - Invalid XML encoding name. - Неправильне ім'я кодування XML. + Item type of simple type %1 cannot be a complex type. + - - Standalone accepts only yes or no. - Автономний приймає лише "так" чи "ні". + Member type of simple type %1 cannot be a complex type. + - - Invalid attribute in XML declaration. - Неправильний атрибут в оголошенні XML. + %1 is not allowed to have a member type with the same name as itself. + - - Premature end of document. - Передчасний кінець документа. + %1 facet collides with %2 facet. + - - Invalid document. - Неправильно сформований документ. + %1 facet must have the same value as %2 facet of base type. + - - Expected - Очікувався + %1 facet must be equal or greater than %2 facet of base type. + - - , but got ' - , але отримано " + %1 facet must be less than or equal to %2 facet of base type. + - - Unexpected ' - Неочікуваний " + %1 facet contains invalid regular expression + - - Expected character data. - Очікувались символьні дані. + Unknown notation %1 used in %2 facet. + - - Recursive entity detected. - Знайдено рекурсивний елемент. + %1 facet contains invalid value %2: %3. + - - Start tag expected. - Очікувався початковий теґ. + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + - - XML declaration not at start of document. - Оголошення XML не на початку документа. + %1 facet cannot be %2 if %3 facet of base type is %4. + - - NDATA in parameter entity declaration. - NDATA в оголошенні порожнього параметра. + %1 facet must be less than or equal to %2 facet. + - xml is an invalid processing instruction name. - xml не є дозволеною назвою інструкції обробляння. + %1 facet must be less than %2 facet of base type. + - - %1 is an invalid processing instruction name. - %1 не є дозволеною назвою інструкції обробляння. + %1 facet and %2 facet cannot appear together. + - - Invalid processing instruction name. - Неправильне ім'я команди обробляння. + %1 facet must be greater than %2 facet of base type. + - - - - - Illegal namespace declaration. - Неправильне оголошення простору імен. + %1 facet must be less than %2 facet. + - - Invalid XML name. - Неправильне ім'я XML. + %1 facet must be greater than or equal to %2 facet of base type. + - - Opening and ending tag mismatch. - Не збігаються відкривні й закривні теґи. + Simple type contains not allowed facet %1. + - - Reference to unparsed entity '%1'. - Посилання на необроблений елемент "%1". + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + - - - - Entity '%1' not declared. - Відсутнє оголошення елемента "%1". + Only %1 and %2 facets are allowed when derived by union. + - - Reference to external entity '%1' in attribute value. - Посилання на зовнішній елемент "%1" в значенні атрибута. + %1 contains %2 facet with invalid data: %3. + - - Invalid character reference. - Неправильне символьне посилання. + Attribute group %1 contains attribute %2 twice. + - - - Encountered incorrectly encoded content. - Знайдено невірно закодований вміст. + Attribute group %1 contains two different attributes that both have types derived from %2. + - - The standalone pseudo attribute must appear after the encoding. - Окремий псевдо-атрибут має бути присутній після кодування. + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + - - %1 is an invalid PUBLIC identifier. - %1 є неприпустимим публічним іденифікатором. + Complex type %1 contains attribute %2 twice. + - - - QtXmlPatterns - - An %1-attribute with value %2 has already been declared. + Complex type %1 contains two different attributes that both have types derived from %2. - - An %1-attribute must have a valid %2 as value, which %3 isn't. + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. - - Network timeout. + Element %1 is not allowed to have a value constraint if its base type is complex. - - Element %1 can't be serialized because it appears outside the document element. + Element %1 is not allowed to have a value constraint if its type is derived from %2. - - Attribute %1 can't be serialized because it appears at the top level. + Value constraint of element %1 is not of elements type: %2. - - Year %1 is invalid because it begins with %2. + Element %1 is not allowed to have substitution group affiliation as it is no global element. - - Day %1 is outside the range %2..%3. + Type of element %1 cannot be derived from type of substitution group affiliation. - - Month %1 is outside the range %2..%3. + Value constraint of attribute %1 is not of attributes type: %2. - - Overflow: Can't represent date %1. + Attribute %1 has value constraint but has type derived from %2. - - Day %1 is invalid for month %2. + %1 attribute in derived complex type must be %2 like in base type. - - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + Attribute %1 in derived complex type must have %2 value constraint like in base type. - - Time %1:%2:%3.%4 is invalid. + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. - - Overflow: Date can't be represented. + Attribute %1 in derived complex type must have %2 value constraint. - - - At least one component must be present. + processContent of base wildcard must be weaker than derived wildcard. - - At least one time component must appear after the %1-delimiter. + Element %1 exists twice with different types. - - No operand in an integer division, %1, can be %2. + Particle contains non-deterministic wildcards. - - The first operand in an integer division, %1, cannot be infinity (%2). + Base attribute %1 is required but derived attribute is not. - - The second operand in a division, %1, cannot be zero (%2). + Type of derived attribute %1 cannot be validly derived from type of base attribute. - - %1 is not a valid value of type %2. + Value constraint of derived attribute %1 does not match value constraint of base attribute. - - When casting to %1 from %2, the source value cannot be %3. + Derived attribute %1 does not exist in the base definition. - - Integer division (%1) by zero (%2) is undefined. + Derived attribute %1 does not match the wildcard in the base definition. - - Division (%1) by zero (%2) is undefined. + Base attribute %1 is required but missing in derived definition. - - Modulus division (%1) by zero (%2) is undefined. + Derived definition contains an %1 element that does not exists in the base definition - - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Derived wildcard is not a subset of the base wildcard. - - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + %1 of derived wildcard is not a valid restriction of %2 of base wildcard - - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + Attribute %1 from base type is missing in derived type. - - A value of type %1 cannot have an Effective Boolean Value. + Type of derived attribute %1 differs from type of base attribute. - - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Base definition contains an %1 element that is missing in the derived definition - - Value %1 of type %2 exceeds maximum (%3). + Can not process unknown element %1, expected elements are: %2. - - Value %1 of type %2 is below minimum (%3). + Element %1 is not allowed in this scope, possible elements are: %2. - - A value of type %1 must contain an even number of digits. The value %2 does not. + Child element is missing in that scope, possible child elements are: %1. - - %1 is not valid as a value of type %2. + Document is not a XML schema. - - Operator %1 cannot be used on type %2. + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. - - Operator %1 cannot be used on atomic values of type %2 and %3. + %1 attribute of %2 element contains invalid content: {%3}. - - The namespace URI in the name for a computed attribute cannot be %1. + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. - - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. - - Type error in cast, expected %1, received %2. + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. - - 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. + %1 element without %2 attribute is not allowed inside schema without target namespace. - - No casting is possible with %1 as the target type. + %1 element is not allowed inside %2 element if %3 attribute is present. - - It is not possible to cast from %1 to %2. + %1 element has neither %2 attribute nor %3 child element. - - Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + %1 element with %2 child element must not have a %3 attribute. - - It's not possible to cast the value %1 of type %2 to %3 + %1 attribute of %2 element must be %3 or %4. - - Failure when casting from %1 to %2: %3 + %1 attribute of %2 element must have a value of %3. - - A comment cannot contain %1 + %1 attribute of %2 element must have a value of %3 or %4. - - A comment cannot end with a %1. + %1 element must not have %2 and %3 attribute together. - - No comparisons can be done involving the type %1. + Content of %1 attribute of %2 element must not be from namespace %3. - - Operator %1 is not available between atomic values of type %2 and %3. + %1 attribute of %2 element must not be %3. - - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. - - A library module cannot be evaluated directly. It must be imported from a main module. + Specifying use='prohibited' inside an attribute group has no effect. - - No template by name %1 exists. + %1 element must have either %2 or %3 attribute. - - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + %1 element must have either %2 attribute or %3 or %4 as child element. - - A positional predicate must evaluate to a single numeric value. + %1 element requires either %2 or %3 attribute. - - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + Text or entity references not allowed inside %1 element - - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 attribute of %2 element must contain %3, %4 or a list of URIs. - - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + %1 element is not allowed in this context. - - The data of a processing instruction cannot contain the string %1 + %1 attribute of %2 element has larger value than %3 attribute. - - No namespace binding exists for the prefix %1 + Prefix of qualified name %1 is not defined. - - No namespace binding exists for the prefix %1 in %2 + %1 attribute of %2 element must either contain %3 or the other values. - - - %1 is an invalid %2 + Component with ID %1 has been defined previously. - - - %1 takes at most %n argument(s). %2 is therefore invalid. - - - - - - - - - %1 requires at least %n argument(s). %2 is therefore invalid. - - - - - + + Element %1 already defined. + - - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Attribute %1 already defined. - - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Type %1 already defined. - - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Attribute group %1 already defined. - - %1 is not a valid XML 1.0 character. + Element group %1 already defined. - - The first argument to %1 cannot be of type %2. + Notation %1 already defined. - - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Identity constraint %1 already defined. - - %1 was called. + Duplicated facets in simple type %1. - - %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 references unknown %2 or %3 element %4. - - In the replacement string, %1 must be followed by at least one digit when not escaped. + %1 references identity constraint %2 that is no %3 or %4 element. - - In the replacement string, %1 can only be used to escape itself or %2, not %3 + %1 has a different number of fields from the identity constraint %2 that it references. - - %1 matches newline characters + Base type %1 of %2 element cannot be resolved. - - %1 and %2 match the start and end of a line. + Item type %1 of %2 element cannot be resolved. - - Matches are case insensitive + Member type %1 of %2 element cannot be resolved. - - Whitespace characters are removed, except when they appear in character classes + Type %1 of %2 element cannot be resolved. - - %1 is an invalid regular expression pattern: %2 + Base type %1 of complex type cannot be resolved. - - %1 is an invalid flag for regular expressions. Valid flags are: + %1 cannot have complex base type that has a %2. - - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. - - It will not be possible to retrieve %1. + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. - - The root node of the second argument to function %1 must be a document node. %2 is not a document node. + Type of %1 element must be a simple type, %2 is not. - - The default collection is undefined + Substitution group %1 of %2 element cannot be resolved. - - %1 cannot be retrieved + Substitution group %1 has circular definition. - - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + Duplicated element names %1 in %2 element. - - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + Reference %1 of %2 element cannot be resolved. - - %1 is not a whole number of minutes. + Circular group reference for %1. - - Required cardinality is %1; got cardinality %2. + %1 element is not allowed in this scope - - The item %1 did not match the required type %2. + %1 element cannot have %2 attribute with value other than %3. - - - %1 is an unknown schema type. + %1 element cannot have %2 attribute with value other than %3 or %4. - - Only one %1 declaration can occur in the query prolog. + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. - - The initialization of variable %1 depends on itself + Attribute group %1 has circular reference. - - No variable by name %1 exists + %1 attribute in %2 must have %3 use like in base type %4. - - The variable %1 is unused + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. - - Version %1 is not supported. The supported XQuery version is 1.0. + %1 has attribute wildcard but its base type %2 has not. - - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. - - No function with signature %1 is available + Enumeration facet contains invalid content: {%1} is not a value of type %2. - - - A default namespace declaration must occur before function, variable, and option declarations. + Namespace prefix of qualified name %1 is not defined. - - Namespace declarations must occur before function, variable, and option declarations. + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. - - Module imports must occur before function, variable, and option declarations. + %1 is not valid according to %2. - - It is not possible to redeclare prefix %1. + String content does not match the length facet. - - Prefix %1 is already declared in the prolog. + String content does not match the minLength facet. - - The name of an option must have a prefix. There is no default namespace for options. + String content does not match the maxLength facet. - - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + String content does not match pattern facet. - - The target namespace of a %1 cannot be empty. + String content is not listed in the enumeration facet. - - The module import feature is not supported + Signed integer content does not match the maxInclusive facet. - - No value is available for the external variable by name %1. + Signed integer content does not match the maxExclusive facet. - - A construct was encountered which only is allowed in XQuery. + Signed integer content does not match the minInclusive facet. - - A template by name %1 has already been declared. + Signed integer content does not match the minExclusive facet. - - The keyword %1 cannot occur with any other mode name. + Signed integer content is not listed in the enumeration facet. - - The value of attribute %1 must of type %2, which %3 isn't. + Signed integer content does not match pattern facet. - - The prefix %1 can not be bound. By default, it is already bound to the namespace %2. + Signed integer content does not match in the totalDigits facet. - - A variable by name %1 has already been declared. + Unsigned integer content does not match the maxInclusive facet. - - A stylesheet function must have a prefixed name. + Unsigned integer content does not match the maxExclusive facet. - - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + Unsigned integer content does not match the minInclusive facet. - - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Unsigned integer content does not match the minExclusive facet. - - 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 + Unsigned integer content is not listed in the enumeration facet. - - A function already exists with the signature %1. + Unsigned integer content does not match pattern facet. - - No external functions are supported. All supported functions can be used directly, without first declaring them as external + Unsigned integer content does not match in the totalDigits facet. - - An argument by name %1 has already been declared. Every argument name must be unique. + Double content does not match the maxInclusive facet. - - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + Double content does not match the maxExclusive facet. - - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + Double content does not match the minInclusive facet. - - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + Double content does not match the minExclusive facet. - - In an XSL-T pattern, function %1 cannot have a third argument. + Double content is not listed in the enumeration facet. - - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + Double content does not match pattern facet. - - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + Decimal content does not match in the fractionDigits facet. - - %1 is an invalid template mode name. + Decimal content does not match in the totalDigits facet. - - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Date time content does not match the maxInclusive facet. - - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + Date time content does not match the maxExclusive facet. - - None of the pragma expressions are supported. Therefore, a fallback expression must be present + Date time content does not match the minInclusive facet. - - Each name of a template parameter must be unique; %1 is duplicated. + Date time content does not match the minExclusive facet. - - The %1-axis is unsupported in XQuery + Date time content is not listed in the enumeration facet. - - %1 is not a valid name for a processing-instruction. + Date time content does not match pattern facet. - - %1 is not a valid numeric literal. + Duration content does not match the maxInclusive facet. - - No function by name %1 is available. + Duration content does not match the maxExclusive facet. - - The namespace URI cannot be the empty string when binding to a prefix, %1. + Duration content does not match the minInclusive facet. - - %1 is an invalid namespace URI. + Duration content does not match the minExclusive facet. - - It is not possible to bind to the prefix %1 + Duration content is not listed in the enumeration facet. - - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Duration content does not match pattern facet. - - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Boolean content does not match pattern facet. - - Two namespace declaration attributes have the same name: %1. + Binary content does not match the length facet. - - The namespace URI must be a constant and cannot use enclosed expressions. + Binary content does not match the minLength facet. - - An attribute by name %1 has already appeared on this element. + Binary content does not match the maxLength facet. - - A direct element constructor is not well-formed. %1 is ended with %2. + Binary content is not listed in the enumeration facet. - - The name %1 does not refer to any schema type. + Invalid QName content: %1. - - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + QName content is not listed in the enumeration facet. - - %1 is not an atomic type. Casting is only possible to atomic types. + QName content does not match pattern facet. - - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + Notation content is not listed in the enumeration facet. - - The name of an extension expression must be in a namespace. + List content does not match length facet. - - empty + List content does not match minLength facet. - - zero or one + List content does not match maxLength facet. - - exactly one + List content is not listed in the enumeration facet. - - one or more + List content does not match pattern facet. - - zero or more + Union content is not listed in the enumeration facet. - - Required type is %1, but %2 was found. + Union content does not match pattern facet. - - Promoting %1 to %2 may cause loss of precision. + Data of type %1 are not allowed to be empty. - - The focus is undefined. + Element %1 is missing child element. - - It's not possible to add attributes after any other kind of node. + There is one IDREF value with no corresponding ID: %1. - - An attribute by name %1 has already been created. + Loaded schema file is invalid. - - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + %1 contains invalid data. - - %1 is an unsupported encoding. + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. - - %1 contains octets which are disallowed in the requested encoding %2. + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. - - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + No schema defined for validation. - - Ambiguous rule match. + No definition for element %1 available. - - In a namespace constructor, the value for a namespace cannot be an empty string. + Specified type %1 is not known to the schema. - - The prefix must be a valid %1, which %2 is not. + Element %1 is not defined in this scope. - - The prefix %1 cannot be bound. + Declaration for element %1 does not exist. - - Only the prefix %1 can be bound to %2 and vice versa. + Element %1 contains invalid content. - - Circularity detected + Element %1 is declared as abstract. - - The parameter %1 is required, but no corresponding %2 is supplied. + Element %1 is not nillable. - - The parameter %1 is passed, but no corresponding %2 exists. + Attribute %1 contains invalid data: %2 - - The URI cannot have a fragment + Element contains content although it is nillable. - - Element %1 is not allowed at this location. + Fixed value constraint not allowed if element is nillable. - - Text nodes are not allowed at this location. + Specified type %1 is not validly substitutable with element type %2. - - Parse error: %1 + Complex type %1 is not allowed to be abstract. - - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + Element %1 contains not allowed attributes. - - Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Element %1 contains not allowed child element. - - Unknown XSL-T attribute %1. + Content of element %1 does not match its type definition: %2. - - Attribute %1 and %2 are mutually exclusive. + Content of element %1 does not match defined value constraint. - - In a simplified stylesheet module, attribute %1 must be present. + Element %1 contains not allowed child content. - - If element %1 has no attribute %2, it cannot have attribute %3 or %4. + Element %1 contains not allowed text content. - - Element %1 must have at least one of the attributes %2 or %3. + Element %1 cannot contain other elements, as it has a fixed content. - - At least one mode must be specified in the %1-attribute on element %2. + Element %1 is missing required attribute %2. - - Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. + Attribute %1 does not match the attribute wildcard. - - Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. + Declaration for attribute %1 does not exist. - - Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. + Element %1 contains two attributes of type %2. - - Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. + Attribute %1 contains invalid content. - - XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. + Element %1 contains unknown attribute %2. - - The attribute %1 must appear on element %2. + Content of attribute %1 does not match its type definition: %2. - - The element with local name %1 does not exist in XSL-T. + Content of attribute %1 does not match defined value constraint. - - Element %1 must come last. + Non-unique value found for constraint %1. - - At least one %1-element must occur before %2. + Key constraint %1 contains absent fields. - - Only one %1-element can appear. + Key constraint %1 contains references nillable element %2. - - At least one %1-element must occur inside %2. + No referenced value found for key reference %1. - - When attribute %1 is present on %2, a sequence constructor cannot be used. + More than one value found for field %1. - - Element %1 must have either a %2-attribute or a sequence constructor. + Field %1 has no simple type. - - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + ID value '%1' is not unique. - - Element %1 cannot have children. + '%1' attribute contains invalid QName content: %2. - - Element %1 cannot have a sequence constructor. + empty - - - The attribute %1 cannot appear on %2, when it is a child of %3. + zero or one - - A parameter in a function cannot be declared to be a tunnel. + exactly one - - This processor is not Schema-aware and therefore %1 cannot be used. + one or more - - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + zero or more - - The value for attribute %1 on element %2 must either be %3 or %4, not %5. + Required type is %1, but %2 was found. - - Attribute %1 cannot have the value %2. + Promoting %1 to %2 may cause loss of precision. - - The attribute %1 can only appear on the first %2 element. + The focus is undefined. - - At least one %1 element must appear as child of %2. + It's not possible to add attributes after any other kind of node. - - - VolumeSlider - - Muted + An attribute by name %1 has already been created. - - - Volume: %1% + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. diff --git a/translations/qtconfig_uk.ts b/translations/qtconfig_uk.ts index 9d5b0a7..b1cd0c3 100644 --- a/translations/qtconfig_uk.ts +++ b/translations/qtconfig_uk.ts @@ -93,7 +93,7 @@ Qt Configuration - Конфігурація Qt + Налаштування Qt Save Changes @@ -120,7 +120,7 @@ MainWindowBase Qt Configuration - Конфігурація Qt + Налаштування Qt Appearance @@ -172,7 +172,7 @@ Please use the KDE Control Center to set the palette. - Будь-ласка, використовуйте Системні параметри KDE, щоб встановити палітру. + Будь ласка, використовуйте Системні параметри KDE, щоб встановити палітру. Fonts @@ -527,7 +527,7 @@ p, li { white-space: pre-wrap; } <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> - <b>Вибір кольорової ролі.</b><p>Доступні наступні головні ролі: <ul> <li>Вікно - загальний колір фону.</li> <li>Текст вікна - загальний колір переднього плану. </li> <li>Базовий - використовується як колір фону, наприклад, для віджетів для введення тексту, зазвичай білий або інший світлий колір. </li> <li>Текст - колір переднього плану, що використовується разом з базовим. Зазвичай співпадає з "Текст вікна", і в цьому випадку має забезпечувати гарний контраст і з "Вікном", і з "Базовим". </li> <li>Кнопка - загальний колір фону кнопки, там де кнопки потребуються інший від "Вікна" фон, як в стилі Macintosh. </li> <li>Текст кнопки - колір переднього плану, що застосовується разом з кольором "Кнопки". </li> <li>Підсвічений - колір для індикації виділеного чи підсвіченого елементу. </li> <li>Підсвічений текст - колір тексту, що контрастує з "Підсвіченим". </li> <li>Яскравий текст - колір тексту, що суттєво відрізняється від "Тексту вікна" та добре контрастує з чорним, наприклад. </li> </ul> </p> + <b>Вибір кольорової ролі.</b><p>Доступні наступні головні ролі: <ul> <li>Вікно - загальний колір фону.</li> <li>Текст вікна - загальний колір переднього плану. </li> <li>Базовий - використовується як колір фону, наприклад, для віджетів для введення тексту, зазвичай білий або інший світлий колір. </li> <li>Текст - колір переднього плану, що використовується разом з базовим. Зазвичай збігається з "Текст вікна", і в цьому випадку має забезпечувати гарний контраст і з "Вікном", і з "Базовим". </li> <li>Кнопка - загальний колір фону кнопки, там де кнопки потребуються інший від "Вікна" фон, як в стилі Macintosh. </li> <li>Текст кнопки - колір переднього плану, що застосовується разом з кольором "Кнопки". </li> <li>Підсвічений - колір для індикації виділеного чи підсвіченого елементу. </li> <li>Підсвічений текст - колір тексту, що контрастує з "Підсвіченим". </li> <li>Яскравий текст - колір тексту, що суттєво відрізняється від "Тексту вікна" та добре контрастує з чорним, наприклад. </li> </ul> </p> Window diff --git a/translations/qvfb_uk.ts b/translations/qvfb_uk.ts index 142863b..0e0c5da6 100644 --- a/translations/qvfb_uk.ts +++ b/translations/qvfb_uk.ts @@ -60,7 +60,7 @@ Config Configure - Конфігурування + Налаштувати Size @@ -219,15 +219,15 @@ The skin directory '%1' does not contain a configuration file. - Тека обкладинки '%1' не містить конфігураційного файлу. + Тека обкладинки '%1' не містить файлу налаштувань. The skin configuration file '%1' could not be opened. - Неможливо відкрити конфігураційний файл '%1'. + Неможливо відкрити файл налаштувань '%1'. The skin configuration file '%1' could not be read: %2 - Неможливо прочитати конфігураційний файл '%1': %2 + Неможливо прочитати файл налаштувань '%1': %2 Syntax error: %1 @@ -255,7 +255,7 @@ Mismatch in number of areas, expected %1, got %2. - Не співпадає кількість областей, очікувалось %1, отримано %2. + Не збігається кількість областей, очікувалось %1, отримано %2. -- cgit v0.12 From f13c060a187149a03b4115b1f62d9690d69fcbda Mon Sep 17 00:00:00 2001 From: Takumi ASAKI Date: Fri, 20 Aug 2010 12:39:27 +0200 Subject: Update Japanese translations Merge-request: 767 Reviewed-by: Oswald Buddenhagen --- translations/assistant_ja.ts | 576 ++- translations/designer_ja.ts | 5484 +++++---------------- translations/linguist_ja.ts | 1385 +----- translations/qt_help_ja.ts | 313 +- translations/qt_ja.ts | 10930 ++++++++++++++++++++++++----------------- translations/qtconfig_ja.ts | 919 ++++ translations/qvfb_ja.ts | 525 ++ 7 files changed, 9489 insertions(+), 10643 deletions(-) create mode 100644 translations/qtconfig_ja.ts create mode 100644 translations/qvfb_ja.ts diff --git a/translations/assistant_ja.ts b/translations/assistant_ja.ts index 5e4d2c9..afebc9a 100644 --- a/translations/assistant_ja.ts +++ b/translations/assistant_ja.ts @@ -4,7 +4,6 @@ AboutDialog - &Close 閉じる(&C) @@ -12,66 +11,110 @@ AboutLabel - Warning 警告 - Unable to launch external application. 外部アプリケーションを起動できません。 - OK OK + Assistant + + Error registering documentation file '%1': %2 + ドキュメントファイル '%1' の登録中にエラーが発生しました: %2 + + + Error: %1 + エラー: %1 + + + Could not register documentation file +%1 + +Reason: +%2 + ドキュメントファイルを登録できませんでした。 +%1 + +原因: +%2 + + + Documentation successfully registered. + ドキュメントの登録に成功しました。 + + + Could not unregister documentation file +%1 + +Reason: +%2 + ドキュメントファイルの登録を解除できませんでした。 +%1 + +原因: +%2 + + + Documentation successfully unregistered. + ドキュメントの登録解除に成功しました。 + + + Error reading collection file '%1': %2. + コレクションファイル '%1' の読み込み中にエラーが発生しました: %2 + + + Error creating collection file '%1': %2. + コレクションファイル '%1' の作成中にエラーが発生しました: %2 + + + Error reading collection file '%1': %2 + コレクションファイル '%1' の読み込み中にエラーが発生しました: %2 + + + Cannot load sqlite database driver! + SQLite データベース ドライバーをロードできません! + + + BookmarkDialog - - - - - Bookmarks - ブックマーク + ブックマーク - Add Bookmark ブックマークの追加 - Bookmark: ブックマーク: - Add in Folder: 追加先フォルダ: - + + - New Folder 新しいフォルダ - Delete Folder - フォルダを削除 + フォルダを削除 - Rename Folder フォルダの名前変更 @@ -79,133 +122,296 @@ BookmarkManager - Bookmarks - ブックマーク + ブックマーク + + + Untitled + タイトルなし - Remove 削除 - You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue? フォルダを削除すると中身も削除されますが、続けてよろしいですか? - - + Manage Bookmarks... + ブックマークを管理... + + + Add Bookmark... + ブックマークの追加... + + + Ctrl+D + Ctrl+D + + + Delete Folder + フォルダを削除 + + + Rename Folder + フォルダの名前変更 + + + Show Bookmark + ブックマークを開く + + + Show Bookmark in New Tab + ブックマークを新しいタブで開く + + + Delete Bookmark + ブックマークを削除 + + + Rename Bookmark + ブックマークの名前変更 + + New Folder - 新しいフォルダ + 新しいフォルダ - BookmarkWidget + BookmarkManagerWidget - - Filter: - フィルタ: + Manage Bookmarks + ブックマークを管理 + + + Search: + 検索: - Remove 削除 - + Import and Backup + インポートとバックアップ + + + OK + OK + + + Import... + インポート... + + + Export... + エクスポート... + + + Open File + ファイルを開く + + + Files (*.xbel) + ファイル (*.xbel) + + + Save File + ファイルを保存 + + + Qt Assistant + Qt Assistant + + + Unable to save bookmarks. + ブックマークを保存できません。 + + + You are goingto delete a Folder, this will also<br> remove it's content. Are you sure to continue? + フォルダを削除するとその中身も削除されますが、続けてよろしいですか? + + Delete Folder フォルダを削除 - Rename Folder フォルダの名前変更 - Show Bookmark ブックマークを開く - Show Bookmark in New Tab ブックマークを新しいタブで開く - Delete Bookmark ブックマークを削除 - Rename Bookmark ブックマークの名前変更 + + + BookmarkModel + + Name + 名前 + + + Address + アドレス + + + Bookmarks Menu + ブックマークメニュー + + + + BookmarkWidget + + Filter: + フィルタ: + + + Remove + 削除 + + + Delete Folder + フォルダを削除 + + + Rename Folder + フォルダの名前変更 + + + Show Bookmark + ブックマークを開く + + + Show Bookmark in New Tab + ブックマークを新しいタブで開く + + + Delete Bookmark + ブックマークを削除 + + + Rename Bookmark + ブックマークの名前変更 + - Add 追加 + + Bookmarks + ブックマーク + CentralWidget - Add new page 新しいページの追加 - Close current page 現在のページを閉じる - Print Document ドキュメントを印刷 - - unknown 不明 - Add New Page 新しいページの追加 - Close This Page このページを閉じる - Close Other Pages 他のページを閉じる - Add Bookmark for this Page... このページをブックマークに追加... - Search 検索 + CmdLineParser + + Unknown option: %1 + 不明なオプション: %1 + + + The collection file '%1' does not exist. + コレクションファイル '%1' が存在しません。 + + + Missing collection file. + コレクションファイルが見つかりません。 + + + Invalid URL '%1'. + 不正なURL '%1' です。 + + + Missing URL. + URLが見つかりません。 + + + Unknown widget: %1 + 不明なウィジェット: %1 + + + Missing widget. + ウィジェットが見つかりません。 + + + The Qt help file '%1' does not exist. + Qt のヘルプファイル '%1' が存在しません。 + + + Missing help file. + ヘルプファイルが見つかりません。 + + + Missing filter argument. + フィルタ引数が不足しています。 + + + Error + エラー + + + Notice + 注意 + + + ContentWindow - Open Link リンクを開く - Open Link in New Tab リンクを新しいタブで開く @@ -213,12 +419,10 @@ FilterNameDialogClass - Add Filter Name フィルタ名を追加 - Filter Name: フィルタ名: @@ -226,27 +430,22 @@ FindWidget - Previous 戻る - Next 進む - Case Sensitive 大文字/小文字を区別する - Whole words - 単語単位で検索する + 単語単位で検索する - <img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped <img src=":/trolltech/assistant/images/wrap.png">&nbsp;見つからなければ先頭から検索する @@ -254,27 +453,22 @@ FontPanel - Font フォント - &Writing system 文字セット(&W) - &Family フォント名(&F) - &Style スタイル(&S) - &Point size サイズ(&P) @@ -282,57 +476,51 @@ HelpViewer - Help - ヘルプ + ヘルプ - OK - OK + OK + + + <title>about:blank</title> + - <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> <title>Error 404...</title><div align="center"><br><br><h1>ページが見つかりませんでした</h1><br><h3>'%1'</h3></div> - Copy &Link Location リンクのURLをコピー(&L) - Open Link in New Tab Ctrl+LMB リンクを新しいタブで開く Ctrl+LMB - Open Link in New Tab リンクを新しいタブで開く - Unable to launch external application. - 外部アプリケーションを起動できません。 + 外部アプリケーションを起動できません。 IndexWindow - &Look for: 検索文字列(&L): - Open Link リンクを開く - Open Link in New Tab リンクを新しいタブで開く @@ -340,99 +528,76 @@ InstallDialog - - Install Documentation ドキュメントのインストール - Downloading documentation info... ドキュメント情報をダウンロード中... - Download canceled. ダウンロードを中止しました。 - - - Done. 完了. - The file %1 already exists. Do you want to overwrite it? %1 は既に存在します。上書きしますか? - Unable to save the file %1: %2. ファイルを保存できません。%1: %2. - Downloading %1... %1 をダウンロード中... - - - Download failed: %1. ダウンロード失敗: %1. - Documentation info file is corrupt! ドキュメント情報ファイルが不正です! - Download failed: Downloaded file is corrupted. ダウンロード失敗: ダウンロードしたファイルが不正です。 - Installing documentation %1... %1 のドキュメントをインストール中... - Error while installing documentation: %1 ドキュメントのインストール中にエラーが発生しました: %1 - Available Documentation: 使用可能なドキュメント: - Install インストール - Cancel キャンセル - Close 閉じる - Installation Path: インストール先のパス: - ... ... @@ -440,349 +605,289 @@ MainWindow - - Index インデックス - - Contents コンテンツ - - Bookmarks ブックマーク - - Search 検索 - - - Qt Assistant Qt Assistant - - Unfiltered - フィルタなし + フィルタなし - Page Set&up... ページ設定(&U)... - Print Preview... 印刷プレビュー... - &Print... 印刷(&P)... - New &Tab 新しいタブ(&T) - &Close Tab タブを閉じる(&C) - &Quit 終了(&Q) - CTRL+Q CTRL+Q - &Copy selected Text 選択中の文字をコピー(&C) - &Find in Text... 検索(&F)... - + &Find + 検索(&F) + + Find &Next 次を検索(&N) - Find &Previous 前を検索(&P) - Preferences... 設定... - Zoom &in 拡大(&I) - Zoom &out 縮小(&O) - Normal &Size 普通の大きさ(&S) - Ctrl+0 Ctrl+0 - ALT+C ALT+C - ALT+I ALT+I - ALT+S ALT+S - &Home ホーム(&H) - + Could not register file '%1': %2 + ファイル '%1' を登録できませんでした: %2 + + Ctrl+Home - Ctrl+Home + Ctrl+Home - &Back 戻る(&B) - &Forward 進む(&F) - Sync with Table of Contents 内容と目次を同期する - Next Page 次のページ - Ctrl+Alt+Right Ctrl+Alt+Right - Previous Page 前のページ - Ctrl+Alt+Left Ctrl+Alt+Left - Add Bookmark... - ブックマークの追加... + ブックマークの追加... - About... Qt Assistant について... - Navigation Toolbar ナビゲーション ツールバー - Toolbars ツールバー - Filter Toolbar フィルター ツールバー - Filtered by: フィルタ条件: - Address Toolbar アドレス ツールバー - Address: アドレス: - Could not find the associated content item. 関連付いた内容が見つかりません。 - About %1 %1 について - Updating search index 検索インデックスを更新中 - Looking for Qt Documentation... Qt ドキュメントを探しています... - &Window ウィンドウ(&W) - Minimize 最小化 - Ctrl+M Ctrl+M - Zoom ズーム - &File ファイル(&F) - &Edit 編集(&E) - &View 表示(&V) - &Go ジャンプ(&G) - + ALT+Home + ALT+Home + + + Sync + 同期 + + &Bookmarks ブックマーク(&B) - &Help ヘルプ(&H) - ALT+O ALT+O - CTRL+D - CTRL+D + CTRL+D PreferencesDialog - - - Add Documentation ドキュメントの追加 - Qt Compressed Help Files (*.qch) 圧縮済み Qt ヘルプファイル (*.qch) - The specified file is not a valid Qt Help File! 指定されたファイルは有効な Qt ヘルプ ファイルではありません! - The namespace %1 is already registered! ネームスペース %1 は既に登録済みです! - Remove Documentation ドキュメントの除去 - Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents. 除去しようとしているいくつかのドキュメントは Assistant 上で参照されています。除去すると、これらのドキュメントは閉じられます。 - Cancel キャンセル - OK OK - Use custom settings 独自設定を使用する @@ -790,222 +895,196 @@ PreferencesDialogClass - Preferences 設定 - Fonts フォント - Font settings: フォント設定: - Browser ブラウザー - Application アプリケーション - Filters フィルタ - Filter: フィルタ: - Attributes: 属性: - 1 1 - Add 追加 - Remove 削除 - Documentation ドキュメント - Registered Documentation: 登録済みドキュメント: - Add... 追加... - Options オプション - Current Page 現在のページ - Restore to default デフォルト設定に戻す - Homepage ホームページ + + On help start: + ヘルプの起動時: + + + Show my home page + ホームページを表示する + + + Show a blank page + 空白ページを表示する + + + Show my tabs from last session + 前回のセッションのタブを表示する + + + Blank Page + 空白ページ + QObject - The specified collection file does not exist! - 指定されたコレクションファイルは存在しません! + 指定されたコレクションファイルは存在しません! - Missing collection file! - コレクションファイルが見つかりません! + コレクションファイルが見つかりません! - Invalid URL! - 不正なURLです! + 不正なURLです! - Missing URL! - URLが見つかりません! + URLが見つかりません! - - - Unknown widget: %1 - 不明なウィジェット: %1 + 不明なウィジェット: %1 - - - Missing widget! - ウィジェットが見つかりません! + ウィジェットが見つかりません! - - The specified Qt help file does not exist! - 指定された Qt ヘルプ ファイルが存在しません! + 指定された Qt ヘルプ ファイルが存在しません! - - Missing help file! - ヘルプファイルが見つかりません! + ヘルプファイルが見つかりません! - Missing filter argument! - フィルタ引数が不足しています! + フィルタ引数が不足しています! - Unknown option: %1 - 不明なオプション: %1 + 不明なオプション: %1 - - Qt Assistant - Qt Assistant + Qt Assistant - Could not register documentation file %1 Reason: %2 - ドキュメントファイルを登録できませんでした。 + ドキュメントファイルを登録できませんでした。 %1 原因: %2 - Documentation successfully registered. - ドキュメントの登録に成功しました。 + ドキュメントの登録に成功しました。 - Could not unregister documentation file %1 Reason: %2 - ドキュメントファイルを解除できませんでした。 + ドキュメントファイルを解除できませんでした。 %1 原因: %2 - Documentation successfully unregistered. - ドキュメントの解放に成功しました。 + ドキュメントの解放に成功しました。 - Cannot load sqlite database driver! - SQLite データベース ドライバーをロードできません! + SQLite データベース ドライバーをロードできません! - The specified collection file could not be read! - 指定されたコレクションファイルは読み込めません! + 指定されたコレクションファイルは読み込めません! - - Bookmark - ブックマーク + ブックマーク RemoteControl - Debugging Remote Control リモート コントロールをデバッグ中 - Received Command: %1 %2 受信したコマンド: %1 %2 @@ -1013,56 +1092,45 @@ Reason: SearchWidget - &Copy コピー(&C) - Copy &Link Location リンクのURLをコピー(&L) - - Open Link in New Tab リンクを新しいタブで開く - Select All すべてを選択 - Open Link - リンクを開く + リンクを開く TopicChooser - Choose a topic for <b>%1</b>: <b>%1</b> の検索先トピックを選択してください: - Choose Topic トピックを選択 - &Topics トピック(&T) - &Display 表示(&D) - &Close 閉じる(&C) diff --git a/translations/designer_ja.ts b/translations/designer_ja.ts index 40f5ad6..7e1696f 100644 --- a/translations/designer_ja.ts +++ b/translations/designer_ja.ts @@ -2,1199 +2,800 @@ - - - - The moose in the noose -ate the goose who was loose. - 坊主が屏風に上手に坊主の絵を描いた。 - - - - <object> - <オブジェクト> - - - - <signal> - <シグナル> - - - - <slot> - <スロット> - - - - @default - - The moose in the noose -ate the goose who was loose. - 坊主が屏風に上手に坊主の絵を描いた。 - - - <object> - <オブジェクト> - - - <signal> - <シグナル> - - - <slot> - <スロット> - - - Solid - 塗りつぶし - - - Horizontal - - - - Vertical - - - - Cross - 格子 - - - Texture - テクスチャ - - - Dense 1 - 密度 1 - - - Dense 2 - 密度 2 - - - Dense 3 - 密度 3 - - - Dense 4 - 密度 4 - - - Dense 5 - 密度 5 - - - Dense 6 - 密度 6 - - - Dense 7 - 密度 7 - - - AbstractFindWidget - &Previous - + 前を検索(&P) - &Next - + 次を検索(&N) - &Case sensitive - + 大文字/小文字を区別する(&C) - Whole &words - + 単語単位で検索する(&W) - <img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped - + <img src=":/trolltech/shared/images/wrap.png">&nbsp;先頭から再び検索します AddLinkDialog - Insert Link - + リンクを挿入 - Title: - + タイトル: - URL: - + URL: AppFontDialog - Additional Fonts - + フォントの追加 AppFontManager - '%1' is not a file. - + '%1' はファイルではありません。 - The font file '%1' does not have read permissions. - + フォントファイル '%1' を読む権限がありません。 - The font file '%1' is already loaded. - + フォントファイル '%1' は既にロードされています。 - The font file '%1' could not be loaded. - + フォントファイル '%1' をロードできませんでした。 - '%1' is not a valid font id. - + '%1' は無効なフォント ID です。 - There is no loaded font matching the id '%1'. - + フォント ID '%1' に合致するフォントはロードされていません。 - The font '%1' (%2) could not be unloaded. - + フォント '%1' (%2) をアンロードできませんでした。 AppFontWidget - Fonts - + フォント - Add font files - + フォントファイルを追加 - Remove current font file - + 現在のフォントファイルを削除 - Remove all font files - + すべてのフォントファイルを削除 - Add Font Files - + フォントファイルを追加 - Font files (*.ttf) - + フォントファイル (*.ttf) - Error Adding Fonts - + フォントの追加エラー - Error Removing Fonts - + フォントの削除エラー - Remove Fonts - + フォントを削除 - Would you like to remove all fonts? - + 全てのフォントを削除しますか? AppearanceOptionsWidget - Form - フォーム + フォーム - User Interface Mode - ユーザインターフェースモード + ユーザインターフェースモード AssistantClient - Unable to send request: Assistant is not responding. - + リクエストを送信できません: Assistant が応答しません。 - The binary '%1' does not exist. - + バイナリファイル '%1' が存在しません。 - Unable to launch assistant (%1). - - - - - BrushManagerProxy - - - The element '%1' is missing the required attribute '%2'. - - - - - Empty brush name encountered. - - - - - An unexpected element '%1' was encountered. - - - - - An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 - - - - - An error occurred when reading the resource file '%1' at line %2, column %3: %4 - + assistant (%1) を起動できませんでした。 BrushPropertyManager - No brush - + 透明 - Solid - 塗りつぶし + 塗りつぶし - Dense 1 - 密度 1 + 密度 1 - Dense 2 - 密度 2 + 密度 2 - Dense 3 - 密度 3 + 密度 3 - Dense 4 - 密度 4 + 密度 4 - Dense 5 - 密度 5 + 密度 5 - Dense 6 - 密度 6 + 密度 6 - Dense 7 - 密度 7 + 密度 7 - Horizontal - + 横線 - Vertical - + 縦線 - Cross - 格子 + 格子 - Backward diagonal - + 斜線(右上がり) - Forward diagonal - + 斜線(右下がり) - Crossing diagonal - - - - Texture - テクスチャ + 交差する斜線 - Style - + スタイル - Color - + - [%1, %2] - + [%1, %2] Command - - Change signal シグナルを変更 - - Change slot スロットを変更 - Change signal-slot connection - + シグナル/スロット接続を変更 - Change sender 発信者を変更 - Change receiver 受信者を変更 - Add connection シグナル/スロット接続を追加 - Adjust connection シグナル/スロット接続を調整 - Delete connections シグナル/スロット接続を削除 - Change source ソースを変更 - Change target ターゲットを変更 - Insert '%1' '%1' を挿入 - Change Z-order of '%1' - + '%1' の Z オーダーを変更 - Raise '%1' '%1' を前面に移動 - Lower '%1' '%1' を背面に移動 - Delete '%1' '%1' を削除 - Reparent '%1' '%1' の親をつけかえ - Promote to custom widget カスタムウィジェットに格上げ - Demote from custom widget カスタムウィジェットから格下げ - Lay out using grid 格子状にレイアウト - Lay out vertically - 垂直にレイアウト + 垂直に並べる - Lay out horizontally - 水平にレイアウト + 水平に並べる - Break layout レイアウトを破棄する - Simplify Grid Layout - + 格子状のレイアウトを正規化する - - - Move Page ページを移動 - - - - Delete Page ページを削除 - - Page ページ - - - page ページ - - - - Insert Page ページを挿入 - - tab - タブ - - - Change Tab order タブ順を変更 - Create Menu Bar メニューバーを作成 - Delete Menu Bar メニューバーを削除 - Create Status Bar ステータスバーを作成 - Delete Status Bar ステータスバーを削除 - Add Tool Bar ツールバーを追加 - Set Dock Window Widget - ドックウィンドウウィジェットの設定 - - - Add Dock Window ドックウィンドウを追加 - Adjust Size of '%1' '%1' のサイズを調整 - Change Form Layout Item Geometry - + フォームレイアウトのアイテムの座標を変更 - Change Layout Item Geometry - レイアウトアイテムの座標を変更 - - - Insert Row - 行を挿入 + レイアウトのアイテムの座標を変更 - Change Table Contents テーブルの内容を変更 - Change Tree Contents ツリーの内容を変更 - - Add action アクションを追加 - - Remove action - アクションを消去 + アクションを削除 - Add menu メニューを追加 - Remove menu - メニューを消去 + メニューを削除 - Create submenu サブメニューを作成 - Delete Tool Bar ツールバーを削除 - Set action text アクションのテキストを設定 - Insert action アクションを挿入 - - Move action アクションを移動 - Change Title タイトルを変更 - Insert Menu メニューを挿入 - changed '%1' of '%2' - '%2' の '%1' を変更 - - - changed '%1' of %2 objects - - '%2' オブジェクトの '%1' を変更 - - - - reset '%1' of '%2' - '%2' の '%1' をリセット - - - reset '%1' of %2 objects - - '%2' オブジェクトの '%1' をリセット - - - - add dynamic property '%1' to '%2' - ダイナミックプロパティ '%1' を '%2' に追加 - - - add dynamic property '%1' to %2 objects - - ダイナミックプロパティ '%1' を '%2' オブジェクトに追加 - - - - remove dynamic property '%1' from '%2' - ダイナミックプロパティ '%1' を '%2' から削除 - - - remove dynamic property '%1' from %2 objects - - ダイナミックプロパティ '%1' を '%2' オブジェクトから削除 - - - - changed comment of '%1' of '%2' - '%2' の '%1' のコメントを変更 - - - changed comment of '%1' of %2 objects - - '%2' オブジェクトの '%1' のコメントを変更 - - - - Change signals/slots - + シグナル/スロットを変更 - Delete Subwindow - + サブウィンドウを削除 - Insert Subwindow - + サブウィンドウを挿入 - subwindow - + サブウィンドウ - Subwindow - + サブウィンドウ - Create button group - + ボタングループを作成 - Break button group - + ボタングループを破棄する - Break button group '%1' - + ボタングループ '%1' を破棄する - Add buttons to group - + グループにボタンを追加 - - Add '%1' to '%2' Command description for adding buttons to a QButtonGroup - + '%2' に '%1' を追加 - Remove buttons from group - + グループからボタンを削除 - Remove '%1' from '%2' Command description for removing buttons from a QButtonGroup - + '%2' から '%1' を削除 - Morph %1/'%2' into %3 MorphWidgetCommand description - + %1/'%2' を %3 へ変更 - Change layout of '%1' from %2 to %3 - + '%1' のレイアウトを %2 から %3 に変更 - Change script - スクリプトを変更 + スクリプトを変更 - Changed '%1' of '%2' - + '%2' の '%1' を変更しました - Changed '%1' of %n objects - - + + %n 個のオブジェクトの '%1' を変更 - Reset '%1' of '%2' - + '%2' の '%1' をリセット - Reset '%1' of %n objects - - + + %n 個のオブジェクトの '%1' をリセット - Add dynamic property '%1' to '%2' - + '%2' にダイナミックプロパティ '%1' を追加 - Add dynamic property '%1' to %n objects - - + + %n 個のオブジェクトにダイナミックプロパティ '%1' を追加 - Remove dynamic property '%1' from '%2' - + '%2' からダイナミックプロパティ '%1' を削除 - Remove dynamic property '%1' from %n objects - - + + %n 個のオブジェクトからダイナミックプロパティ '%1' を削除 ConnectDialog - Configure Connection - シグナル/スロット接続を設定 + シグナル/スロット接続を設定 - GroupBox - + グループボックス - Edit... - 編集... + 編集... - Show signals and slots inherited from QWidget - + QWidget から継承したシグナルとスロットを表示する + + + + ConnectionDelegate + + <object> + <オブジェクト> + + + <signal> + <シグナル> + + + <slot> + <スロット> DPI_Chooser - Standard (96 x 96) Embedded device standard screen resolution - + 標準 (96 × 96) - Greenphone (179 x 185) Embedded device screen resolution - + グリーンフォン (179 × 185) - High (192 x 192) Embedded device high definition screen resolution - + 高解像度 (192 × 192) Designer - Qt Designer Qt Designer - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form.<br>Perhaps you forgot to create a layout? - このファイルには、トップレベルのスペーサが含まれています。<br>これらはフォームに保存されて<b>いませんでした</b>。<br>もしや、レイアウトの指定を忘れていませんか? - - - This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form. - + このファイルには、トップレベルのスペーサが含まれています。<br>これらはフォームに保存されて<b>いませんでした</b>。 - Perhaps you forgot to create a layout? - - - - - Invalid ui file: The root element <ui> is missing. - + もしや、レイアウトの指定を忘れていませんか? - - An error has occurred while reading the ui file at line %1, column %2: %3 - - - - This file cannot be read because it was created using %1. このファイルは読めません。%1 を使って作成されたからです。 - This file was created using Designer from Qt-%1 and cannot be read. このファイルは Qt-%1 の Designer で作成されたので、読めません。 - This file cannot be read because the extra info extension failed to load. このファイルは読めません。追加情報の拡張のロードに失敗したからです。 - The converted file could not be read. 変換されたファイルを読めませんでした。 - + Invalid UI file: The root element <ui> is missing. + 無効な UI ファイル: ルート要素 <ui> が見つかりません。 + + + An error has occurred while reading the UI file at line %1, column %2: %3 + UI ファイルの読み込み中にエラーが発生しました(%1 行、%2 列): %3 + + This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. - + このファイルは Qt-%1 の Designer で作成されたため、Qt Designer の新しいフォームに更新できません。 - The old form has not been touched, but you will have to save the form under a new name. - + 古いフォームは変更していません。新しい名前でフォームをセーブしてください。 - This file was created using Designer from Qt-%1 and could not be read: %2 - + このファイルは Qt-%1 の Designer で作成されたため、読み込めません: +%2 - Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format. - + <b>uic3&nbsp;-convert</b>コマンドを実行して、Qt-4 の ui ファイルの形式に更新してください。 - This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer. -The old form has been untouched, but you will have to save this form under a new name. - このファイルは Qt-%1 の Designer で作成されたものですが、Qt Designer によって新しいフォームに変換されます。 -古いフォームは放置されてきましたが、新しい名前で保存する必要があります。 - - - This file was created using Designer from Qt-%1 and could not be read:<br>%2<br>Please run it through <b>uic3 -convert</b> to convert it to Qt-4's ui format. - このファイルは Qt-%1 の Designer で作成されたものですが、読めませんでした:<br>%2<br><b>uic3 -convert</b> を実行して、Qt 4 の UI フォーマットに変換してください。 - - - Custom Widgets カスタムウィジェット - Promoted Widgets 格上げされたウィジェット - Unable to launch %1. %1 を起動できませんでした。 - %1 timed out. %1 はタイムアウトしました。 - - Error opening resource file - リソースファイルのオープンエラー - - - Failed to open "%1": -%2 - "%1" のオープンに失敗: %2 - - - file name is empty - ファイル名が空です - - - XML error on line %1, col %2: %3 - %1 行目 %2 カラム目にXMLエラー: %3 - - - no <RCC> root element - <RCC> ルートエレメントがありません - DesignerMetaEnum - %1 is not a valid enumeration value of '%2'. - + %1 は無効な列挙型 ’%2' の値です。 - '%1' could not be converted to an enumeration value of type '%2'. - + '%1' は列挙型 '%2' の値に変換できませんでした。 DesignerMetaFlags - '%1' could not be converted to a flag value of type '%2'. - + '%1' はフラグ '%2' の値に変換できませんでした。 DeviceProfile - '%1' is not a number. Reading a number for an embedded device profile - + '%1' は数字ではありません。 - An invalid tag <%1> was encountered. - + 無効なタグ <%1> に遭遇しました。 DeviceProfileDialog - &Family - ファミリー(&F) + ファミリー(&F) - &Point Size - + ポイントサイズ(&P) - Style - + スタイル - Device DPI - + デバイスのDPI - Name - 名前 + 名前 DeviceSkin - The image file '%1' could not be loaded. - + 画像ファイル '%1' をロードできませんでした。 - The skin directory '%1' does not contain a configuration file. - + スキンのディレクトリ '%1' に設定ファイルが見つかりません。 - The skin configuration file '%1' could not be opened. - + スキンの設定ファイル '%1' がオープンできませんでした。 - Syntax error: %1 - + 構文エラー: %1 - The skin cursor image file '%1' does not exist. - + スキンのカーソル画像 '%1' が存在しません。 - Syntax error in area definition: %1 - + 領域定義の構文エラー: %1 - Mismatch in number of areas, expected %1, got %2. - + 領域の数が異なります(想定 %1、取得 %2)。 - The skin configuration file '%1' could not be read: %2 - + スキンの設定ファイル '%1' が読めませんでした: %2 - The skin "up" image file '%1' does not exist. - + スキンの"up"画像ファイル '%1' が存在しません。 - The skin "down" image file '%1' does not exist. - + スキンの"down"画像ファイル '%1' が存在しません。 - The skin "closed" image file '%1' does not exist. - + スキンの"closed"画像ファイル '%1' が存在しません。 EmbeddedOptionsControl - <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> Format embedded device profile description - + <html><table><tr><td><b>フォント</b></td><td>%1, %2</td></tr><tr><td><b>スタイル</b></td><td>%3</td></tr><tr><td><b>解像度</b></td><td>%4 × %5</td></tr></table></html> EmbeddedOptionsPage - Embedded Design Tab in preferences dialog - + デザインプロファイル - Device Profiles EmbeddedOptionsControl group box" - + デバイスプロファイル FontPanel - Font フォント - &Writing system ライティングシステム(&W) - &Family ファミリー(&F) - &Style スタイル(&S) - &Point size ポイントサイズ(&P) @@ -1202,180 +803,156 @@ The old form has been untouched, but you will have to save this form under a new FontPropertyManager - PreferDefault - + デフォルト優先 - NoAntialias - + アンチエイリアスなし - PreferAntialias - + アンチエイリアス優先 - Antialiasing - + アンチエイリアス FormBuilder - Invalid stretch value for '%1': '%2' - Parsing layout stretch values - + Parsing layout stretch values +---------- +Parsing layout stretch values +---------- +Parsing layout stretch values + '%1' のストレッチ値が無効です: '%2' - Invalid minimum size for '%1': '%2' - Parsing grid layout minimum size values - + Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values +---------- +Parsing grid layout minimum size values + '%1' の最小サイズが無効です: '%2' FormEditorOptionsPage - %1 % - + %1 % - Preview Zoom - + プレビューの拡大表示 - Default Zoom - + デフォルトの拡大率 - Forms Tab in preferences dialog - + フォーム - Default Grid - デフォルトグリッド + デフォルトのグリッド表示 FormLayoutRowDialog - Add Form Layout Row - + フォームレイアウトに行を追加 - &Label text: - + ラベルの文字列(&L): - Field &type: - + フィールドの型(&T): - &Field name: - + フィールドの名前(&F): - &Buddy: - + &Buddy: - &Row: - + 行(&R): - Label &name: - + ラベルの名前(&N): FormWindow - Unexpected element <%1> - + 予期せぬ要素 <%1> - Error while pasting clipboard contents at line %1, column %2: %3 - + クリップボードの内容の貼り付け中にエラーが発生しました(行 %1, 列 %2): %3 FormWindowSettings - Form Settings フォーム設定 - Layout &Default デフォルトのレイアウト(&D) - &Spacing: 空白(&S): - &Margin: 余白(&M): - &Layout Function レイアウト関数(&L) - Ma&rgin: 余白(&R): - Spa&cing: 空白(&C): - Embedded Design - + デザインプロファイル - &Author 作者(&A) - &Include Hints フォームからインクルードするヘッダ(&I) - &Pixmap Function ピックスマップロード関数(&P) - Grid グリッド @@ -1383,344 +960,175 @@ The old form has been untouched, but you will have to save this form under a new IconSelector - All Pixmaps ( - 全てのピックスマップ ( + すべてのピックスマップ ( ItemPropertyBrowser - XX Icon Selected off Sample string to determinate the width for the first column of the list item property browser - LanguageResourceDialog - - - Choose Resource - - - - - LayoutPropertySheet - - Layout - レイアウト - - - MainWindowBase - Main Not currently used (main tool bar) - + メイン - File - ファイル + ファイル - Edit - 編集 + 編集 - Tools - ツール + ツール - Form - フォーム + フォーム - Qt Designer - Qt Designer + Qt Designer NewForm - C&reate 作成(&R) - Recent - 最近 + 最近使用したフォーム - &Close 閉じる(&C) - &Open... オープン(&O)... - &Recent Forms 最近使用したフォーム(&R) - Error loading form - フォームのロードエラー - - - Choose a template for a preview - プレビューのためテンプレートを選択 - - - Read error 読み込みエラー - New Form 新しいフォーム - 0 - 0 - - - Show this Dialog on Startup 起動時にこのダイアログを表示 - Custom Widgets - カスタムウィジェット - - - A temporary form file could not be created in %1. - + 一時フォームファイルを %1に作成できませんでした。 - The temporary form file %1 could not be written. - - - - - NewFormWidget - - - Unable to open the form template file '%1': %2 - + 一時フォームファイル %1 に書き込めませんでした。 ObjectInspectorModel - Object - オブジェクト + オブジェクト - Class - クラス + クラス - separator - セパレータ + セパレータ - <noname> - <名前なし> + <名前なし> ObjectNameDialog - Change Object Name - オブジェクト名を変更 + オブジェクト名を変更 - Object Name - オブジェクト名 - - - - Oubliette - - Inventory - 棚卸し - - - You have <B>No</B> Items - アイテムが<B>ありません</B> - - - You have %1 of %2 items - - %2 アイテムのうちの %1 個を持っています - - - - OK - OK - - - Easter Egg Found - イースターエッグが見つかりました - - - Welcome to the Trolltech Business Card Hunt -Use the direction keys to move around and find the business cards for all the trolls. - Trolltech の名刺捜しゲームへようこそ矢印キーを使って移動し、Trolltech の全社員の名刺を見つけてください。 - - - You Did It! - よくできました! - - - You've collected all the Trolltech cards. It took you %1 steps. -There's nothing more here. You should get back to work. - あなたは Trolltech の全ての名刺を集めました。%1 回かかりました。これで終わりです。仕事に戻りましょう。 - - - That's rather anti-climatic - それは社会の風潮に反することです - - - Quit - 終了 + オブジェクト名 PluginDialog - Plugin Information - プラグイン情報 + プラグイン情報 - 1 - 1 + 1 PreferencesDialog - Docked Window - ドックウィンドウ - - - Multiple Top-Level Windows - 複数のトップレベルウィンドウ - - - Toolwindow Font - ツールウィンドウフォント - - - Default Grid - デフォルトグリッド - - - Pick a directory to save templates in - テンプレートを保存するディレクトリを選択してください - - - Preferences 設定 - - User Interface Mode - ユーザインターフェースモード - - - Additional Template Paths - 追加のテンプレートパス - - - ... - ... - PreviewConfigurationWidget - - Default - - - - - None - - - - - Browse... - - - - Form - フォーム + フォーム - Print/Preview Configuration - + 印刷/プレビューの設定 - Style - + スタイル - Style sheet - + スタイルシート - ... - ... + ... - Device skin - + デバイススキン PromotionModel - Not used Usage of promoted widgets - 使用されません + 使用されていません Q3WizardContainer - - Page ページ @@ -1728,720 +1136,472 @@ There's nothing more here. You should get back to work. QAbstractFormBuilder - Unexpected element <%1> - + 予期せぬ要素 <%1> - - An error has occurred while reading the ui file at line %1, column %2: %3 - + An error has occurred while reading the UI file at line %1, column %2: %3 + UI ファイルの読み込み中にエラーが発生しました(%1 行、%2 列): %3 - - Invalid ui file: The root element <ui> is missing. - + Invalid UI file: The root element <ui> is missing. + 無効な UI ファイル: ルート要素 <ui> が見つかりません。 - The creation of a widget of the class '%1' failed. - クラス '%1' のウィジェットの作成に失敗しました。 + クラス '%1' のウィジェットの作成に失敗しました。 - Attempt to add child that is not of class QWizardPage to QWizard. - + QWizardPage クラスを継承していないクラスは QWizard に追加できません。 - 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. - + ウィジェット '%1' (%2) は既にBOXタイプではないレイアウト %3 を所持しているため、レイアウトを追加できません。 +UI ファイルの記述が矛盾しています。 - Empty widget item in %1 '%2'. - + %1 '%2' は空のウィジェット要素です。 - Flags property are not supported yet. - フラグのプロパティはサポートされていません。 + フラグのプロパティはサポートされていません。 - While applying tab stops: The widget '%1' could not be found. - タブストップの適用中: ウィジェット '%1' が見つかりません。 + タブストップの適用中: ウィジェット '%1' が見つかりません。 - Invalid QButtonGroup reference '%1' referenced by '%2'. - + '%2' から参照された '%1' は無効な QButtonGroup です。 - This version of the uitools library is linked without script support. - このバージョンの uitools は、スクリプトがサポートされていないライブラリがリンクされています。 - - - - QActiveXPlugin - - ActiveX control - ActiveX コントロール - - - ActiveX control widget - ActiveX コントロールウィジェット - - - - QActiveXPluginObject - - Control loaded - コントロールがロードされました - - - - QActiveXTaskMenu - - Set Control - コントロールを設定 - - - Licensed Control - ライセンスされたコントロール - - - The control requires a design-time license - このコントロールを使用するには、開発時ライセンスが必要です + このバージョンの uitools は、スクリプトがサポートされていないライブラリがリンクされています。 QAxWidgetPlugin - ActiveX control - ActiveX コントロール + ActiveX コントロール - ActiveX control widget - ActiveX コントロールウィジェット + ActiveX コントロールウィジェット QAxWidgetTaskMenu - Set Control - コントロールを設定 + コントロールを設定 - Reset Control - + コントロールをリセット - Licensed Control - ライセンスされたコントロール + ライセンスされたコントロール - The control requires a design-time license - このコントロールを使用するには、開発時ライセンスが必要です + このコントロールの利用には、開発時ライセンスが必要です QCoreApplication - %1 is not a promoted class. %1 は格上げされたクラスではありません。 - The base class %1 is invalid. - ベースクラス %1 は無効です。 + 基底クラス %1 は無効です。 - The class %1 already exists. - %1 というクラスはすでに存在します。 + クラス %1 は既に存在します。 - Promoted Widgets - 格上げされたウィジェット + 格上げされたウィジェット - The class %1 cannot be removed - %1 というクラスを削除できません + クラス %1 を削除できません - The class %1 cannot be removed because it is still referenced. - %1 というクラスは、参照されているので、削除できません。 + クラス %1 は、参照されているため削除できません。 - The class %1 cannot be renamed - %1 というクラスをリネームできません + クラス %1 をリネームできません - The class %1 cannot be renamed to an empty name. - %1 というクラスを空の名前にリネームすることはできません。 + クラス %1 を空の名前にリネームすることはできません。 - There is already a class named %1. - %1 というクラスは存在します。 + クラス %1 は既に存在します。 - Cannot set an empty include file. - 空のインクルードファイルを設定できません。 + 空のインクルードファイルを設定できません。 - Exception at line %1: %2 - %1 行目で例外が発生: %2 + %1 行目で例外が発生: %2 - Unknown error - 不明なエラー + 不明なエラー - An error occurred while running the script for %1: %2 Script: %3 - %1 のためにスクリプトを実行していてエラーが発生しました: %2 + %1 でスクリプトを実行中にエラーが発生しました: %2 スクリプト: %3 QDesigner - %1 - warning - %1 - 警告 + %1 - 警告 - Qt Designer Qt Designer - This application cannot be used for the Console edition of Qt このアプリケーションは、Qt コンソール版では使えません - QDesignerActionEditor - - Action Editor - アクションエディタ - - - QDesignerActions - Edit Widgets ウィジェットを編集 - &New Form... - 新しいフォーム(&N)... - - - &Open Form... - フォームを開く(&O)... - - - &Save Form - フォームを保存(&S) - - - Save Form &As... - 名前をつけてフォームを保存(&A)... - - - Save A&ll Forms - すべてのフォームを保存(&L) - - - Save Form As &Template... - フォームをテンプレートとして保存(&T)... - - - &Close Form - フォームを閉じる(&C) - - - &Quit 終了(&Q) - &Preview - プレビュー(&P) - - - Form &Settings... - フォームの設定(&S)... - - - &Minimize 最小化(&M) - Bring All to Front - 全てのウィンドウを前面に + すべてのウィンドウを前面に - Preferences... 設定... - CTRL+N - CTRL+N - - - CTRL+O - CTRL+O - - - Clear &Menu メニューをクリア(&M) - CTRL+S - CTRL+S - - - CTRL+SHIFT+S CTRL+SHIFT+S - CTRL+W - CTRL+W - - - - CTRL+Q - CTRL+Q - - - CTRL+Z - CTRL+Z - - - CTRL+SHIFT+Z - CTRL+SHIFT+Z - - - CTRL+R CTRL+R - %1 Style - %1 スタイル - - - CTRL+M CTRL+M - Qt Designer &Help Qt Designer ヘルプ(&H) - Current Widget Help 現在のウィジェットのヘルプ - What's New in Qt Designer? Qt Designer の新機能 - About Plugins プラグインについて - - About Qt Designer Qt Designer について - About Qt Qt について - - Open Form フォームを開く - - - Designer UI files (*.%1);;All Files (*) Designer UI ファイル(*.%1);;すべてのファイル (*) - Save form as - 名前を付けてフォームを保存 - - - Save - 保存 - - - %1 already exists. Do you want to replace it? - %1 はすでに存在します。上書きしますか? + %1 は既に存在します。上書きしますか? - Saved %1. - フォーム %1 は無事保存できました... + フォーム %1 を保存しました。 - Additional Fonts... - + フォントの追加... - ALT+CTRL+S - + ALT+CTRL+S - &Recent Forms - 最近使用したフォーム(&R) + 最近使用したフォーム(&R) - Designer Designer - Feature not implemented yet! 機能がまだ実装されていません! - Read error 読み込みエラー - %1 Do you want to update the file location or generate a new form? %1 ファイルの位置を更新しますか、それとも新しいフォームを生成しますか? - &Update 更新(&U) - &New Form 新しいフォーム(&N) - - Save Form? フォームを保存しますか? - Could not open file ファイルをオープンできませんでした - Saved image %1. - + 画像 %1 を保存しました。 - Please close all forms to enable the loading of additional fonts. - + 追加したフォントをロードするにはすべてのフォームを閉じてください。 - Printed %1. - + %1 を印刷しました。 - The file, %1, could not be opened -Reason: %2 -Would you like to retry or change your file? - ファイル %1 はオープンできませんでした -理由: %2 -リトライしますか、それともファイルを変更しますか? - - - Select New File 新しいファイルを選択 - Could not write file ファイルに書き込むことができませんでした - It was not possible to write the entire file, %1, to disk. -Reason:%2 -Would you like to retry? - ファイル %1 の全体をディスクに書き込むことができませんでした。 -理由: %2 -リトライしますか? - - - &Close Preview プレビューを閉じる(&C) - Form Settings - %1 - フォーム設定 - %1 - - - &New... - + 新規(&N)... - &Open... - オープン(&O)... + 開く(&O)... - &Save - + 保存(&S) - Save &As... - + 名前をつけて保存(&A)... - Save A&ll - + すべて保存(&L) - Save As &Template... - + テンプレートとして保存(&T)... - - &Close - 閉じる(&C) + 閉じる(&C) - Save &Image... - + 画像を保存(&I)... - &Print... - + 印刷(&P)... - View &Code... - + コードを表示(&C)... - - Save Form As - + 名前を付けてフォームを保存 - The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file? - + ファイル %1 はオープンできませんでした。 +原因: %2 +リトライしますか、それとも他のファイルを選択しますか? - It was not possible to write the entire file %1 to disk. Reason:%2 Would you like to retry? - + ファイル %1 の全体をディスクに書き込むことができませんでした。 +原因: %2 +リトライしますか? - - The backup file %1 could not be written. - バックアップファイル %1 に書き込めませんでした。 + バックアップファイル %1 に書き込めませんでした。 - The backup directory %1 could not be created. - バックアップディレクトリ %1 を作成できませんでした。 + バックアップディレクトリ %1 を作成できませんでした。 - The temporary backup directory %1 could not be created. - バックアップ用の一時ディレクトリ %1 を作成できませんでした。 + バックアップ用の一時ディレクトリ %1 を作成できませんでした。 - Preview failed - + プレビューできませんでした - Code generation failed - + コード生成に失敗しました - Image files (*.%1) - + 画像ファイル (*.%1) - - Save Image - + 画像を保存 - The file %1 could not be written. - + ファイル %1 に書き込めませんでした。 - - Assistant - + Assistant QDesignerAppearanceOptionsPage - Appearance Tab in preferences dialog - + 外観 QDesignerAppearanceOptionsWidget - Docked Window - ドックウィンドウ + ドックウィンドウ - Multiple Top-Level Windows - 複数のトップレベルウィンドウ + 複数のトップレベルウィンドウ - Toolwindow Font - ツールウィンドウフォント + ツールウィンドウのフォント QDesignerAxWidget - Reset control - + コントロールをリセット - Set control - + コントロールを設定 - Control loaded - コントロールがロードされました + コントロールがロードされました - A COM exception occurred when executing a meta call of type %1, index %2 of "%3". - + 型 %1, インデックス %2("%3")のメタコールの実行時に COM 例外が発生しました。 QDesignerFormBuilder - Script errors occurred: - スクリプトエラーが発生しました: + スクリプトエラーが発生しました: - The preview failed to build. - プレビューのビルドに失敗しました。 + プレビューのビルドに失敗しました。 - Designer - Designer + Designer QDesignerFormWindow - %1 - %2[*] %1 - %2[*] - Save Form? フォームを保存しますか? - Do you want to save the changes to this document before closing? 閉じる前に、このドキュメントの変更を保存しますか? - If you don't save, your changes will be lost. 保存しない場合は、行った変更は失われます。 @@ -2449,38 +1609,30 @@ Would you like to retry? QDesignerMenu - Type Here ここに入力 - Add Separator セパレータを追加 - Insert separator セパレータを挿入 - Remove separator - セパレータを消去 + セパレータを削除 - Remove action '%1' - アクション '%1' を消去 + アクション '%1' を削除 - - Add separator セパレータを追加 - Insert action アクションを挿入 @@ -2488,75 +1640,56 @@ Would you like to retry? QDesignerMenuBar - Type Here ここに入力 - Remove Menu '%1' - メニュー '%1' を消去 + メニュー '%1' を削除 - Remove Menu Bar - メニューバーを消去 + メニューバーを削除 - Menu メニュー - QDesignerObjectInspector - - Object Inspector - オブジェクトインスペクタ - - - QDesignerPluginManager - An XML error was encountered when parsing the XML of the custom widget %1: %2 - + カスタムウィジェット %1 の XML のパース中に XML エラーが発生しました: %2 + + + A required attribute ('%1') is missing. + 必須な属性('%1')がありません。 + + + An invalid property specification ('%1') was encountered. Supported types: %2 + 無効なプロパティの定義('%1')に遭遇しました。サポートする型: %2 + + + '%1' is not a valid string property specification. + '%1' は無効な文字列プロパティの定義です。 - The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>. - + カスタムウィジェット %1 の XML に <widget> と <ui> のどちらの要素もありません。 - The class attribute for the class %1 is missing. - %1 というクラスのクラス属性がありません。 + クラス %1 にクラス属性がありません。 - The class attribute for the class %1 does not match the class name %2. - %1 というクラスのクラス属性は %2 というクラス名と一致しません。 + クラス %1 のクラス属性はクラス名 %2 と一致しません。 - QDesignerPropertyEditor + QDesignerPropertySheet - Property Editor - プロパティエディタ - - - Ctrl+I - Ctrl+I - - - - QDesignerPropertySheet - - Layout - レイアウト - - - Dynamic Properties ダイナミックプロパティ @@ -2564,2112 +1697,1366 @@ Would you like to retry? QDesignerResource - The layout type '%1' is not supported, defaulting to grid. - + レイアウト '%1' はサポートされていません。格子状のレイアウトを使用します。 - 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. - + ウィジェット '%1' (%2) のコンテナ拡張は %5 ページに Designer では利用できないウィジェット '%3' (%4) を使用しています。 +コンテナのページはカスタムウィジェットの domXml() メソッドが返す XML でのみ定義されている必要があります。 - Unexpected element <%1> Parsing clipboard contents - + 予期せぬ要素 <%1> - Error while pasting clipboard contents at line %1, column %2: %3 Parsing clipboard contents - + クリップボードの内容の貼り付け中にエラーが発生しました(行 %1, 列 %2): %3 - Error while pasting clipboard contents: The root element <ui> is missing. Parsing clipboard contents - - - - - QDesignerResourceEditor - - Resource Editor - リソースエディタ + クリップボードの内容の貼り付け中にエラーが発生しました: ルート要素 <ui> が見つかりません。 QDesignerSharedSettings - The template path %1 could not be created. - テンプレートのパス %1 を作成できませんでした。 + テンプレートのパス %1 を作成できませんでした。 - An error has been encountered while parsing device profile XML: %1 - - - - - QDesignerSignalSlotEditor - - Signal/Slot Editor - シグナル/スロットエディタ - - - - QDesignerStackedWidget - - Previous Page - 前のページ - - - Next Page - 次のページ - - - Delete - 削除 - - - Before Current Page - このページの前 - - - After Current Page - このページの後 - - - Change Page Order... - ページの順序を変更... - - - Change Page Order - ページの順序を変更 - - - Page %1 of %2 - %2 ページのうちの %1 ページ - - - Insert Page - ページを挿入 - - - - QDesignerTabWidget - - Delete - 削除 - - - Before Current Page - このページの前 - - - After Current Page - このページの後 - - - Page %1 of %2 - %2 ページのうちの %1 ページ - - - Insert Page - ページを挿入 - - - - QDesignerTaskMenu - - Change objectName... - オブジェクト名を変更... - - - Change toolTip... - ツールチップを変更... - - - Change whatsThis... - ヒントを変更... - - - Change styleSheet... - スタイルシートを変更... - - - Create Menu Bar - メニューバーを作成 - - - Add Tool Bar - ツールバーを追加 - - - Create Status Bar - ステータスバーを作成 - - - Remove Status Bar - ステータスバーを消去 - - - Change script... - スクリプトを変更... - - - - QDesignerToolBox - - Delete Page - ページを削除 - - - Before Current Page - このページの前 - - - After Current Page - このページの後 - - - Change Page Order... - ページの順序を変更... - - - Change Page Order - ページの順序を変更 - - - Page %1 of %2 - %2 ページのうちの %1 ページ - - - Insert Page - ページを挿入 + デバイスプロファイルの XML のパース中にエラーが発生しました: %1 QDesignerToolWindow - Property Editor - プロパティエディタ + プロパティエディタ - Action Editor - アクションエディタ + アクションエディタ - Object Inspector - オブジェクトインスペクタ + オブジェクトインスペクタ - Resource Browser - + リソースブラウザ - Signal/Slot Editor - シグナル/スロットエディタ - - - - Widget Box - ウィジェットボックス + シグナル/スロットエディタ - - - QDesignerWidgetBox Widget Box - ウィジェットボックス - - - - An error has been encountered at line %1 of %2: %3 - - - - - Unexpected element <%1> encountered when parsing for <widget> or <ui> - - - - - Unexpected end of file encountered when parsing widgets. - - - - - A widget element could not be found. - + ウィジェットボックス QDesignerWorkbench - &File ファイル(&F) - &Recent Forms - 最近使用したフォーム(&R) - - - &Edit - 編集(&E) - - - F&orm フォーム(&O) - Preview in スタイルを指定してプレビュー - &Tools - ツール(&T) - - - &Window ウィンドウ(&W) - &Help ヘルプ(&H) - File - ファイル - - - Edit 編集 - Tools - ツール - - - Form - フォーム - - - Toolbars ツールバー Widget Box - ウィジェットボックス - - - Qt Designer - Qt Designer + ウィジェットボックス - Save Forms? フォームを保存しますか? - There are %1 forms with unsaved changes. Do you want to review these changes before quitting? - 変更分を保存されていないフォームが %1 個あります。終了する前に変更を確認しますか? - - - If you don't review your documents, all your changes will be lost. - ドキュメントを確認しない場合は、行ったすべての変更は失われます。 - - - &View - + 表示(&V) - &Settings - + 設定(&S) - If you do not review your documents, all your changes will be lost. - + ドキュメントを確認しない場合、行ったすべての変更は失われます。 - Discard Changes 変更を破棄 - Review Changes 変更内容を確認 - Backup Information バックアップ情報 - The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them? - + 前回使用したときに Designer は正しく終了されませんでした。バックアップファイルが存在します。ロードしますか? - Designer was not correctly terminated during your last session.There are existing Backup files, do you want to load them? - 前回使用したときに Designer は正しく終了されませんでした。バックアップファイルが存在します。ロードしますか? + The file <b>%1</b> is not a valid Designer UI file. + ファイル <b>%1</b> は、無効な Designer の UI ファイルです。 - The file <b>%1</b> could not be opened. ファイル <b>%1</b> はオープンできませんでした。 - - - The file <b>%1</b> is not a valid Designer ui file. - ファイル <b>%1</b> は、有効な Designer の UI ファイルではありません。 - - There are %n forms with unsaved changes. Do you want to review these changes before quitting? - - + + 変更分を保存されていないフォームが %n 個あります。終了する前に変更を確認しますか? QFormBuilder - An empty class name was passed on to %1 (object name: '%2'). - Empty class name passed to widget factory method - + Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method +---------- +Empty class name passed to widget factory method + %1 (オブジェクト名: %2)に空のクラス名が渡されました。 - QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'. - + QFormBuilder はクラス '%1' のカスタムウィジェットを作成できませんでした。クラス '%2' で作成します。 - QFormBuilder was unable to create a widget of the class '%1'. - QFormBuilder は、クラス '%1' のウィジェットを作成できませんでした。 + QFormBuilder は、クラス '%1' のウィジェットを作成できませんでした。 - The layout type `%1' is not supported. - レイアウトタイプ '%1' は、サポートされていません。 + レイアウトタイプ '%1' はサポートされていません。 - The set-type property %1 could not be read. - Set型のプロパティ %1 を読めませんでした。 + Set 型のプロパティ %1 を読めませんでした。 - The enumeration-type property %1 could not be read. - Enum 型のプロパティ %1 を読めませんでした。 + Enum 型のプロパティ %1 を読めませんでした。 - Reading properties of the type %1 is not supported yet. - %1 という型のプロパティの読み込みは、サポートされていません。 + %1 という型のプロパティの読み込みはサポートされていません。 - The property %1 could not be written. The type %2 is not supported yet. - プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。 + プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。 - The enumeration-value '%1' is invalid. The default value '%2' will be used instead. - + 列挙型の値 '%1' は無効です。デフォルト値の '%2' を代わりに使用します。 - The flag-value '%1' is invalid. Zero will be used instead. - + フラグの値 '%1' は無効です。代わりに 0 を使用します。 - QFormInternal::QCoreApplication - - Syntax error. - 構文エラー。 - + QStackedWidgetEventFilter - Exception at line %1: %2 - %1 行目で例外が発生: %2 + Previous Page + 前のページ - Unknown error - 不明なエラー + Next Page + 次のページ - An error occurred while running the script for %1: %2 -Script: %3 - %1 のためにスクリプトを実行していてエラーが発生しました: %2 -スクリプト: %3 + Delete + 削除 - - - QFormInternal::QObject - QFormBuilder was unable to create a widget of the class '%1'. - QFormBuilder は、クラス '%1' のウィジェットを作成できませんでした。 + Before Current Page + このページの前 - The layout type `%1' is not supported. - レイアウトタイプ '%1' は、サポートされていません。 + After Current Page + このページの後 - The set-type property %1 could not be read. - Set型のプロパティ %1 を読めませんでした。 + Change Page Order... + ページの順序を変更... - The enumeration-type property %1 could not be read. - Enum 型のプロパティ %1 を読めませんでした。 + Change Page Order + ページの順序を変更 - Reading properties of the type %1 is not supported yet. - %1 という型のプロパティの読み込みは、サポートされていません。 + Page %1 of %2 + %2 ページ中の %1 ページ目 - The property %1 could not be written. The type %2 is not supported yet. - プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。 + Insert Page + ページを挿入 - QObject + QStackedWidgetPreviewEventFilter - Show all signals and slots - 全てのシグナルとスロットを表示 + Go to previous page of %1 '%2' (%3/%4). + %1 '%2' の前のページに移動(%3/%4)。 - Configure Connection - シグナル/スロット接続を設定 + Go to next page of %1 '%2' (%3/%4). + %1 '%2' の次のページに移動(%3/%4)。 + + + QTabWidgetEventFilter - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 -%5 - ウィジェット %3 のために指定された XML コードの %1 行目の %2 カラム目でパースエラーが発生しました: %4 -%5 + Delete + 削除 - The XML code specified for the widget %1 contains an invalid root element %2. -%3 - ウィジェット %1 のために指定された XML コードは、無効なルートエレメント %2 を含んでいます。 -%3 + Before Current Page + このページの前 - %1 - warning - %1 - 警告 + After Current Page + このページの後 - The backup file %1 could not be written. - バックアップファイル %1 に書き込めませんでした。 + Page %1 of %2 + %2 ページ中の %1 ページ目 - The backup directory %1 could not be created. - バックアップディレクトリ %1 を作成できませんでした。 + Insert Page + ページを挿入 + + + QToolBoxHelper - The temporary backup directory %1 could not be created. - バックアップ用の一時ディレクトリ %1 を作成できませんでした。 + Delete Page + ページを削除 - The template path %1 could not be created. - テンプレートのパス %1 を作成できませんでした。 + Before Current Page + このページの前 - The plugin '%1' failed to load: %2 - プラグイン '%1' をロードできませんでした: %2 + After Current Page + このページの後 - Not used - 使用されません + Change Page Order... + ページの順序を変更... - Script errors occurred: - スクリプトエラーが発生しました: + Change Page Order + ページの順序を変更 - Change Object Name - オブジェクト名を変更 + Page %1 of %2 + %2 ページ中の %1 ページ目 - Object Name - オブジェクト名 + Insert Page + ページを挿入 + + + QtBoolEdit - An error occurred while running the scripts for "%1": - - "%1" のためにスクリプトを実行していてエラーが発生しました: - + True + - The creation of a widget of the class '%1' failed. - クラス '%1' のウィジェットの作成に失敗しました。 - - - Flags property are not supported yet. - フラグのプロパティはサポートされていません。 - - - While applying tab stops: The widget '%1' could not be found. - タブストップの適用中: ウィジェット '%1' が見つかりません。 - - - This version of the uitools library is linked without script support. - このバージョンの uitools は、スクリプトがサポートされていないライブラリがリンクされています。 - - - The icon specified by %1 could not be opened: %2 - %1 で指定されたアイコンをオープンできませんでした: %2 - - - separator - セパレータ - - - Object - オブジェクト - - - Class - クラス - - - <noname> - <名前なし> - - - The widgetbox could not load the file %1. - ウィジェットボックスは %1 というファイルをロードできませんでした。 - - - The widgetbox could not parse the file %1. An error occurred at line %2: %3 - ウィジェットボックスは、%1 というファイルをパースできません。%2 行目でエラーが発生しました: %3 - - - The file %1 does not appear to be a widgetbox file. - %1 というファイルは、ウィジェットボックスのファイルではないようです。 - - - An error occurred while parsing the file %1: %2 is not a valid child of the root element. - %1 というファイルのパース中にエラーが発生しました: %2 はルートエレメントの有効な子供ではありません。 - - - The class attribute for the class %1 does not match the class name %2. - %1 というクラスのクラス属性は %2 というクラス名と一致しません。 - - - The class attribute for the class %1 is missing. - %1 というクラスのクラス属性がありません。 - - - The style %1 could not be loaded. - %1 というスタイルをロードできませんでした。 - - - The preview failed to build. - プレビューのビルドに失敗しました。 - - - %1 - [Preview] - %1 - [プレビュー] - - - Designer - Designer - - - Change script - スクリプトを変更 - - - A custom widget plugin whose class name (%1) matches that of an existing class has been found. - クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。 - - - The custom widget factory registered for widgets of class %1 returned 0. - %1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。 - - - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. - %1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。 - - - QFormBuilder was unable to create a widget of the class '%1'. - QFormBuilder は、クラス '%1' のウィジェットを作成できませんでした。 - - - The layout type `%1' is not supported. - レイアウトタイプ '%1' は、サポートされていません。 - - - The set-type property %1 could not be read. - Set型のプロパティ %1 を読めませんでした。 - - - The enumeration-type property %1 could not be read. - Enum 型のプロパティ %1 を読めませんでした。 - - - Reading properties of the type %1 is not supported yet. - %1 という型のプロパティの読み込みは、サポートされていません。 - - - The property %1 could not be written. The type %2 is not supported yet. - プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。 - - - Color - - - - - QStackedWidgetEventFilter - - - Previous Page - 前のページ - - - - Next Page - 次のページ - - - - Delete - 削除 - - - - Before Current Page - このページの前 - - - - After Current Page - このページの後 - - - - Change Page Order... - ページの順序を変更... - - - - Change Page Order - ページの順序を変更 - - - - Page %1 of %2 - %2 ページのうちの %1 ページ - - - - Insert Page - ページを挿入 - - - - QStackedWidgetPreviewEventFilter - - - Go to previous page of %1 '%2' (%3/%4). - - - - - Go to next page of %1 '%2' (%3/%4). - - - - - QTabWidgetEventFilter - - - Delete - 削除 - - - - Before Current Page - このページの前 - - - - After Current Page - このページの後 - - - - Page %1 of %2 - %2 ページのうちの %1 ページ - - - - Insert Page - ページを挿入 - - - - QToolBoxHelper - - - Delete Page - ページを削除 - - - - Before Current Page - このページの前 - - - - After Current Page - このページの後 - - - - Change Page Order... - ページの順序を変更... - - - - Change Page Order - ページの順序を変更 - - - - Page %1 of %2 - %2 ページのうちの %1 ページ - - - - Insert Page - ページを挿入 - - - - QtBoolEdit - - - - - True - - - - - - False - + False + QtBoolPropertyManager - True - + - False - + QtCharEdit - Clear Char - + 文字をクリア QtColorEditWidget - ... - ... + ... QtColorPropertyManager - Red - + - Green - + - Blue - + - Alpha - アルファ + アルファ QtCursorDatabase - Cross - 格子 + 十字型 - Arrow - + 矢印 - Up Arrow - + 上向き矢印 - Wait - + 待機 - IBeam - + I ビーム - Size Vertical - + サイズ変更(縦方向) - Size Horizontal - + サイズ変更(横方向) - Size Backslash - + サイズ変更(バックスラッシュ) - Size Slash - + サイズ変更(スラッシュ) - Size All - + サイズ変更(4方向) - Blank - + なし - Split Vertical - + 分割(縦方向) - Split Horizontal - + 分割(横方向) - Pointing Hand - + ハンド(指差し) - Forbidden - + 禁止 - Open Hand - + ハンド(オープン) - Closed Hand - + ハンド(クローズ) - What's This - + ヘルプ - Busy - + ビジー QtFontEditWidget - ... - ... + ... - Select Font - + フォントを選択 QtFontPropertyManager - Bold - ボールド + ボールド - Italic - イタリック + イタリック - Underline - 下線 + 下線 - Family - + ファミリー - Point Size - + ポイントサイズ - Strikeout - + 取消線 - Kerning - + カーニング QtGradientDialog - Edit Gradient - グラデーションを編集 + グラデーションを編集 QtGradientEditor - Start X - 始点の X 座標 + 始点の X 座標 - Start Y - 始点の Y 座標 + 始点の Y 座標 - Final X - 終点の X 座標 + 終点の X 座標 - Final Y - 終点の Y 座標 + 終点の Y 座標 - - Central X - 中心の X 座標 + 中心の X 座標 - - Central Y - 中心の Y 座標 + 中心の Y 座標 - Focal X - 焦点の X 座標 + 焦点の X 座標 - Focal Y - 焦点の Y 座標 + 焦点の Y 座標 - Radius - 半径 + 半径 - Angle - 角度 + 角度 + + + Linear + 線状 + + + Radial + 放射状 + + + Conical + 円錐状 + + + Pad + 区切りの色で補充 + + + Repeat + グラデーションの繰り返し + + + Reflect + グラデーションの反射 - Form - フォーム + フォーム - Gradient Editor - + グラデーションエディタ - 1 - 1 + 1 - 2 - 2 + 2 - 3 - 3 + 3 - 4 - 4 + 4 - 5 - 5 + 5 - Gradient Stops Editor - + グラデーション制御点エディタ - 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. - + このよう息でグラデーションの制御点を編集できます。配置済みの制御点をダブルクリックすると制御点を複製します。制御点以外の場所をダブルクリックすると新しい制御点を作成します。ドラッグ & ドロップで制御点の位置を調整します。マウスの右ボタンで表示されるポップアップメニューでそれ以外の操作を行います。 - Zoom - ズーム + ズーム - Zoom All - すべてズーム - - - Position - 位置 + 位置 - Hue - 色相 + 色相 - H - + H - Saturation - 彩度 + 彩度 - S - + S - Sat - + 彩度 - Value - + 明度 - V - + V - Val - + 明度 - Alpha - アルファ + アルファ - A - + A - Type - グラデーションのタイプ + グラデーションのタイプ - Spread - 広がり方 + 広がり方 - Color - + - Current stop's color - + 現在の制御点の色 - HSV - HSV + HSV - RGB - RGB + RGB - Current stop's position - + 現在の制御点の位置 - % - % + % - Zoom In - 拡大 + 拡大 - Zoom Out - 縮小 + 縮小 - Toggle details extension - + 詳細表示のオン/オフ - > - + > - Linear Type - + 線形 - ... - ... + ... - Radial Type - + 放射形 - Conical Type - + 円錐形 - Pad Spread - + 区切りの色で補充 - Repeat Spread - + グラデーションの繰り返し - Reflect Spread - + グラデーションの反射 - 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. - + この領域には編集中のグラデーションのプレビューを表示します。始点や終点、半径などのグラデーションを定義する各種のパラメータはドラッグ & ドロップで編集できます。 - Show HSV specification - + HSV 色空間で表示 - Show RGB specification - + RGB 色空間で表示 - Reset Zoom - + ズームをリセット QtGradientStopsWidget - New Stop - 新しい終点 + 新しい制御点 - Delete - 削除 + 削除 - Flip All - + すべて反転 - Select All - すべてを選択 + すべてを選択 - Zoom In - 拡大 + 拡大 - Zoom Out - 縮小 - - - Zoom All - すべてズーム + 縮小 - Reset Zoom - + ズームをリセット QtGradientView - Grad - + グラデーション - Remove Gradient - + グラデーションを削除 - Are you sure you want to remove the selected gradient? - + 選択されたグラデーションを削除しますか? - - New... - 新規... + 新規... - - Edit... - 編集... + 編集... - - Rename - 名前の変更 + 名前の変更 - - Remove - 消去 + 削除 - Gradient View - + グラデーションビュー QtGradientViewDialog - Edit Gradient - グラデーションを編集 - - - - Select Gradient - + グラデーションを選択 QtKeySequenceEdit - Clear Shortcut - ショートカットをクリア + ショートカットをクリア QtLocalePropertyManager - %1, %2 - + %1, %2 - Language - + 言語 - Country - + QtPointFPropertyManager - (%1, %2) - + (%1, %2) - X - + X - Y - + Y QtPointPropertyManager - (%1, %2) - + (%1, %2) - X - + X - Y - + Y QtPropertyBrowserUtils - [%1, %2, %3] (%4) - + [%1, %2, %3] (%4) - [%1, %2] - + [%1, %2] QtRectFPropertyManager - [(%1, %2), %3 x %4] - + [(%1, %2), %3 × %4] - X - + X - Y - + Y - Width - + - Height - + 高さ QtRectPropertyManager - [(%1, %2), %3 x %4] - + [(%1, %2), %3 × %4] - X - + X - Y - + Y - Width - + - Height - + 高さ QtResourceEditorDialog - %1 already exists. Do you want to replace it? - %1 はすでに存在します。上書きしますか? + %1 は既に存在します。 +上書きしますか? - The file does not appear to be a resource file; element '%1' was found where '%2' was expected. - + このファイルはリソースファイルではありません。要素 '%2' があるべき場所に要素 '%1' が存在します。 - %1 [read-only] - + %1 [読込専用] - - %1 [missing] - + %1 [見つかりません] - <no prefix> - + <プレフィックスなし> - - New Resource File - + 新しいリソースファイル - - Resource files (*.qrc) - リソースファイル (*.qrc) + リソースファイル (*.qrc) - Import Resource File - + リソースファイルをインポート - newPrefix - + newPrefix - Add Files - + ファイルを追加 - Incorrect Path - + 不正なパス - - - - Copy - + コピー - Copy As... - + 名前を指定してコピー... - Keep - + キープ - Skip - + スキップ - Clone Prefix - + プレフィックスを複製 - 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". - + 複製されたファイルの名前に追加する後置詞を入力してください。 +この指定はたとえば言語を示す "_ja" の様に使用されます。 - - Copy As - + 名前を指定してコピー - <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> - + <p>選択したファイル:</p><p>%1</p><p>は現在のリソースファイルのあるディレクトリにありません:</p><p>%2</p>このディレクトリにある他のパスを選択してください。</p> - Could not overwrite %1. - + %1 を上書きできません。 - Save Resource File - + リソースファイルを保存 - Edit Resources - + リソースを編集 - New... - 新規... + 新規... - Open... - 開く... + 開く... - <p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p> - + <p><b>警告:</b> ファイル</p><p>%1</p><p>は現在のリソースファイルのあるディレクトリ以下とは別のディレクトリツリーにあります。</p> - <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> - + <p>この問題の解決には下記のいずれかのボタンを押してください:</p><table><tr><th align="left">コピー</th><td>ファイルをリソースファイルのあるディレクトリにコピーします。</td></tr><tr><th align="left">名前を指定してコピー...</th><td>ファイルをリソースファイルのあるディレクトリもしくはそのサブディレクトリに名前を指定してコピーします。</td></tr><tr><th align="left">キープ</th><td>現在のパスをそのまま使用します。</td></tr></table> - Could not copy %1 to %2 - + コピーできません: +%1 +から +%2 +へのコピー - A parse error occurred at line %1, column %2 of %3: %4 - + %3 の %1 行 %2 列のパース中にエラーが発生しました: +%4 - Could not write %1: %2 - + %1 に書き込むことが出来ませんでした: %2 - Open Resource File - + リソースファイルを開く - - Remove - 消去 + 削除 - - Move Up - + 上へ移動 - - Move Down - + 下へ移動 - - Add Prefix - + プレフィックスを追加 - Add Files... - + ファイルを追加... - Change Prefix - + プレフィックスを変更 - Change Language - + 言語を変更 - Change Alias - + エイリアスを変更 - Clone Prefix... - + プレフィックスを複製... - Prefix / Path - + プレフィックス / パス - Language / Alias - + 言語 / エイリアス - <html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html> - + <html><p><b>警告:</b> リソースのリロード中に問題が発生しました:</p><pre>%1</pre></html> - Resource Warning - + リソースの警告 - Dialog - ダイアログ + ダイアログ - New File - + 新しいファイル - N - + N - Remove File - + ファイルを削除 - R - R + R - I - + I - New Resource - + 新しいリソース - A - + A - Remove Resource or File - + リソースもしくはファイルの削除 QtResourceView - Size: %1 x %2 %3 - + サイズ: %1 × %2 +%3 - Edit Resources... - + リソースを編集... - Reload - + 再読込 - Copy Path - + パスをコピー QtResourceViewDialog - Select Resource - + リソースを選択 QtSizeFPropertyManager - %1 x %2 - + %1 × %2 - Width - + - Height - + 高さ QtSizePolicyPropertyManager - - <Invalid> - + <無効> - [%1, %2, %3, %4] - + [%1, %2, %3, %4] - Horizontal Policy - + 横方向のポリシー - Vertical Policy - + 縦方向のポリシー - Horizontal Stretch - + 横方向のストレッチ - Vertical Stretch - + 縦方向のストレッチ QtSizePropertyManager - %1 x %2 - + %1 × %2 - Width - + - Height - + 高さ QtToolBarDialog - < S E P A R A T O R > - + < セ パ レ ー タ ー > - Customize Toolbars - + ツールバーのカスタマイズ - 1 - 1 + 1 - Actions - アクション + アクション - Toolbars - ツールバー + ツールバー - Add new toolbar - + ツールバーを追加 - New - 新規 + 新規 - Remove selected toolbar - + 選択したツールバーを削除 - Remove - 消去 + 削除 - Rename toolbar - + ツールバーの名前の変更 - Rename - 名前の変更 + 名前の変更 - Move action up - + アクションを上に移動 - Up - 上へ + 上へ - Remove action from toolbar - + アクションをツールバーから削除 - <- - + - Add action to toolbar - + アクションをツールバーに追加 - -> - + - Move action down - + アクションを下に移動 - Down - 下へ + 下へ - Current Toolbar Actions - + 現在のツールバーのアクション - Custom Toolbar - + カスタムツールバー QtTreePropertyBrowser - Property - プロパティ + プロパティ - Value - + SaveFormAsTemplate - Add path... パスを追加... - Template Exists テンプレートが存在します - A template with the name %1 already exists. Do you want overwrite the template? - %1 という名前のテンプレートがすでに存在します。 + %1 という名前のテンプレートが既に存在します。 上書きしますか? - Overwrite Template テンプレートを上書き - Open Error オープンエラー - There was an error opening template %1 for writing. Reason: %2 %1 というテンプレートを書き込み用にオープンしようとしてエラーになりました。理由: %2 - Write Error 書き込みエラー - There was an error writing the template %1 to disk. Reason: %2 %1 というテンプレートをディスクに書き込もうとしてエラーになりました。理由: %2 - Pick a directory to save templates in - テンプレートを保存するディレクトリを選択してください + テンプレートを保存するディレクトリを選択してください - Save Form As Template フォームをテンプレートとして保存 - &Category: カテゴリ(&C): - &Name: 名前(&N): @@ -4677,347 +3064,343 @@ Do you want overwrite the template? ScriptErrorDialog - An error occurred while running the scripts for "%1": - "%1" のためにスクリプトを実行していてエラーが発生しました: + "%1" でスクリプトの実行中にエラーが発生しました: SelectSignalDialog - Go to slot - + スロットへ移動 - Select signal - + シグナルを選択 - signal - + シグナル - class - + クラス SignalSlotConnection - SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) - + 送信者(%1), シグナル(%2), 受信者(%3), スロット(%4) SignalSlotDialogClass - Signals and slots - + シグナルとスロット - Slots - + スロット - ... - ... + ... - Signals - + シグナル - Add - 追加 + 追加 - Delete - 削除 + 削除 Spacer - Horizontal Spacer '%1', %2 x %3 - + 横方向のスペーサー '%1', %2 × %3 - Vertical Spacer '%1', %2 x %3 - + 縦方向のスペーサー '%1', %2 × %3 TemplateOptionsPage - Template Paths Tab in preferences dialog - + テンプレートのパス ToolBarManager - Configure Toolbars... - + ツールバーの設定... - Window - + ウィンドウ - Help - + ヘルプ - Style - + スタイル - Dock views - + ドックビュー + + + File + ファイル + + + Edit + 編集 + + + Tools + ツール + + + Form + フォーム - Toolbars - ツールバー + ツールバー VersionDialog - <h3>%1</h3><br/><br/>Version %2 <h3>%1</h3><br/><br/>バージョン %2 - Open Source Edition - オープンソース版 - - - Qt Designer Qt Designer - <br/>Qt Designer is a graphical user interface designer for Qt applications.<br/> <br/>Qt Designer は、Qt アプリケーションをデザインするための GUI ツールです。<br/> - This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.<br/><br/>You need a commercial Qt license for development of proprietary (closed source) applications. Please see <a href="http://qt.nokia.com/company/model.html">http://qt.nokia.com/company/model.html</a> for an overview of Qt licensing.<br/> - このバージョンの Qt Designer は、オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。<br/><br/>独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については <a href="http://qt.nokia.com/company/model.html">http://qt.nokia.com/company/model.html</a> をご覧ください。<br/> + %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + %1<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + + + + VideoPlayerTaskMenu + + Available Mime Types + 利用可能な MIME タイプ + + + Display supported mime types... + サポートしている MIME タイプの表示... + + + Load... + ロード... + + + Play + 再生 + + + Pause + 一時停止 + + + Stop + 停止 + + + Choose Video Player Media Source + ビデオプレイヤーで再生するメディアのソースを選択 - This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.<br/> - このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。<br/> + An error has occurred in '%1': %2 + '%1' でエラーが発生しました: %2 - - %1<br/>%2<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - %1<br/>%2<br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。<br/><br/>プログラムは「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。<br/> + Video Player Error + ビデオプレイヤーエラー WidgetDataBase - 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. - + ファイルに含まれるカスタムウィジェット '%1' の基底クラス(%2)が現在のウィジェットデータベースの基底クラス(%3)と異なります。ウィジェットデータベースは変更していません。 qdesigner_internal::ActionEditor - Actions アクション - New... 新規... - Delete 削除 - New action 新しいアクション - Edit action アクションを編集 - Designer - Designer - - - Feature not implemented! - その機能は実装されていません! - - - Edit... - 編集... + 編集... - Go to slot... - + スロットへ移動... - Copy - + コピー - Cut - + 切り取り - Paste - 貼り付け + 貼り付け - Select all - + すべてを選択 - Configure Action Editor - + アクションエディタの設定 - Icon View - + アイコン表示 - Detailed View - + 詳細表示 - Remove actions - + アクションの削除 - Remove action '%1' - アクション '%1' を消去 + アクション '%1' を削除 - Used In - - - - - qdesigner_internal::ActionFilterWidget - - Filter: - フィルタ: + 使用元 qdesigner_internal::ActionModel - Name - 名前 + 名前 - Used - + 使用中 - Text - + テキスト - Shortcut - + ショートカット - Checkable - + チェック可 - ToolTip - + ツールチップ + + + + qdesigner_internal::BrushManagerProxy + + The element '%1' is missing the required attribute '%2'. + 要素 '%1' に必須な属性 '%2' がありません。 + + + Empty brush name encountered. + ブラシの名前が空です。 + + + An unexpected element '%1' was encountered. + 予期せぬ要素 <%1> に遭遇しました。 + + + An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4 + ブラシの定義ファイル '%1' の読み込み中にエラーが発生しました(%2 行, %3 列): %4 + + + An error occurred when reading the resource file '%1' at line %2, column %3: %4 + リソースファイル '%1' の読み込み中にエラーが発生しました(%2 行, %3 列): %4 qdesigner_internal::BuddyEditor - Add buddy buddy を追加 - Remove buddies - buddy を消去 + buddy を削除 - Remove %n buddies - - + + %n 個の buddy を削除 - Add %n buddies - - + + %n 個の buddy を追加 - Set automatically - + 自動的にセット qdesigner_internal::BuddyEditorPlugin - Edit Buddies buddy を編集 @@ -5025,7 +3408,6 @@ Do you want overwrite the template? qdesigner_internal::BuddyEditorTool - Edit Buddies buddy を編集 @@ -5033,124 +3415,102 @@ Do you want overwrite the template? qdesigner_internal::ButtonGroupMenu - Select members - + メンバーを選択 - Break - + ボタングループを破棄 qdesigner_internal::ButtonTaskMenu - Assign to button group - + ボタングループに割り当て - Button group - + ボタングループ - New button group - + 新しいボタングループ - Change text... テキストを変更... - None - + なし - Button group '%1' - + ボタングループ '%1' qdesigner_internal::CodeDialog - Save... - + 保存... - Copy All - + すべてコピー - &Find in Text... - + テキストを検索(&F)... - A temporary form file could not be created in %1. - + 一時フォームファイルを %1に作成できませんでした。 - The temporary form file %1 could not be written. - + 一時フォームファイル %1 に書き込めませんでした。 - %1 - [Code] - + %1 - [コード] - Save Code - + コードを保存 - Header Files (*.%1) - + ヘッダファイル (*.%1) - The file %1 could not be opened: %2 - + ファイル %1 はオープンできませんでした: %2 - The file %1 could not be written: %2 - + ファイル %1 に書き込めませんでした: %2 - %1 - Error - %1 - エラー + %1 - エラー qdesigner_internal::ColorAction - Text Color - + テキストの色 qdesigner_internal::ComboBoxTaskMenu - Edit Items... アイテムを編集... - Change Combobox Contents コンボボックスの内容を変更 @@ -5158,928 +3518,663 @@ Do you want overwrite the template? qdesigner_internal::CommandLinkButtonTaskMenu - Change description... - - - - - qdesigner_internal::ConnectionDelegate - - <object> - <オブジェクト> - - - <signal> - <シグナル> - - - <slot> - <スロット> + 記述を変更... qdesigner_internal::ConnectionEdit - Select All - すべてを選択 + すべてを選択 - Deselect All - + すべてを選択解除 - Delete - 削除 + 削除 qdesigner_internal::ConnectionModel - Sender 発信者 - Signal シグナル - Receiver 受信者 - Slot スロット - <sender> <発信者> - <signal> <シグナル> - <receiver> <受信者> - <slot> <スロット> - The connection already exists!<br>%1 - + その接続は既に存在します!<br>%1 - Signal and Slot Editor シグナルスロットエディタ - - The connection already exists!<br>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4) - すでに接続が存在します!<br>送信者(%1)、シグナル(%2)、受信者(%3)、スロット(%4) - qdesigner_internal::ContainerWidgetTaskMenu - Delete Page - ページを削除 - - - Insert Page Before Current Page このページの前にページを挿入 - Insert Page After Current Page このページの後にページを挿入 - Add Subwindow - + 新しいサブウィンドウ - Delete - 削除 + 削除 - Insert - + 挿入 - Subwindow - + サブウィンドウ - Page - ページ + ページ - Page %1 of %2 - %2 ページのうちの %1 ページ + %2 ページ中の %1 ページ目 qdesigner_internal::DPI_Chooser - System (%1 x %2) System resolution - + システム (%1 × %2) - User defined - + ユーザ定義 - x DPI X/Y separator - + × qdesigner_internal::DesignerPropertyManager - - AlignLeft - + 左端揃え - AlignHCenter - + 中央揃え(横方向) - AlignRight - + 右端揃え - AlignJustify - + 両端揃え - AlignTop - + 上端揃え - - AlignVCenter - + 中央揃え(縦方向) - AlignBottom - + 下端揃え - %1, %2 - + %1, %2 - Customized (%n roles) - - + + カスタムパレット (%n ロール) - Inherited - + 親から継承 - Horizontal - + 横方向 - Vertical - + 縦方向 - Normal Off - + 通常 オフ - Normal On - + 通常 オン - Disabled Off - + 無効化 オフ - Disabled On - + 無効化 オン - Active Off - + アクティブ オフ - Active On - + アクティブ オン - Selected Off - + 選択済み オフ - Selected On - + 選択済み オン - - translatable - + 翻訳可能 - - disambiguation - + あいまいさ回避 - - comment - + コメント qdesigner_internal::DeviceProfileDialog - Device Profiles (*.%1) - + デバイスプロファイル (*.%1) - Default - + デフォルト - Save Profile - + プロファイルを保存 - Save Profile - Error - + プロファイルを保存 - エラー - Unable to open the file '%1' for writing: %2 - + ファイル '%1' を書き込み用にオープンできませんでした: %2 - Open profile - + プロファイルをオープン - - Open Profile - Error - + プロファイルをオープン - Error - Unable to open the file '%1' for reading: %2 - + ファイル '%1' を読み込み用にオープンできませんでした: %2 - '%1' is not a valid profile: %2 - + '%1' は無効なプロファイルです: %2 qdesigner_internal::Dialog - Dialog ダイアログ - StringList 文字列リスト - New String 新しい文字列 - &New 新規(&N) - Delete String 文字列を削除 - &Delete 削除(&D) - &Value: 値(&V): - Move String Up 文字列を上へ - Up 上へ - Move String Down 文字列を下へ - Down 下へ - qdesigner_internal::EditableResourceModel - - Invalid files - 無効なファイル - - - Files referenced in a qrc must be in the qrc's directory or one of its subdirectories:<p><b>%1</b><p>Some of the selected files do not comply with this. - qrc から参照されているファイルは、qrc のディレクトリもしくはサブディレクトリのいずれかにある必要があります:<p><b>%1</b><p>選択されたファイルの中には、この条件に従わないものがあります。 - - - Only insert files which comply - 条件に従うファイルだけを挿入する - - - Files referenced in a qrc must be in the qrc's directory or one of its subdirectories:<p><b>%1</b><p>The selected files do not comply with this. - qrc から参照されているファイルは、qrc のディレクトリもしくはサブディレクトリのいずれかにある必要があります:<p><b>%1</b><p>選択されたファイルは、この条件に従っていません。 - - - Error loading resource file - リソースファイルのロードエラー - - - Failed to open "%1": -%2 - "%1" のオープンに失敗: %2 - - - Error saving resource file - リソースファイルの保存エラー - - - Failed to save "%1": -%2 - "%1" の保存に失敗: -%2 - - - qdesigner_internal::EmbeddedOptionsControl - None - + なし - Add a profile - + プロファイルを追加 - Edit the selected profile - + 選択したプロファイルを編集 - Delete the selected profile - + 選択したプロファイルを削除 - Add Profile - + プロファイルを追加 - New profile - + 新しいプロファイル - Edit Profile - + プロファイルを編集 - Delete Profile - + プロファイルを削除 - Would you like to delete the profile '%1'? - + プロファイル '%1' を削除しますか? - Default - + デフォルト qdesigner_internal::FilterWidget - - <Filter> - - - - - qdesigner_internal::FindIconDialog - - Find Icon - アイコン検索 - - - Specify resource - リソースを指定 - - - Specify image file - イメージファイルを指定 + Filter + フィルタ - Parent directory - 親ディレクトリ + Clear text + テキストをクリア qdesigner_internal::FormEditor - Resource File Changed - + リソースファイルが変更されました - The file "%1" has changed outside Designer. Do you want to reload it? - + ファイル "%1" は Designer 以外で変更されました。リロードしますか? qdesigner_internal::FormLayoutMenu - Add form layout row... - + フォームレイアウトに行を追加... qdesigner_internal::FormWindow - Edit contents 内容を編集 - F2 F2 - Insert widget '%1 - ウィジェット '%1 を挿入 - - - Resize サイズ変更 - - Key Move - キーの移動 + 移動キー - Paste - 貼り付け - - - Paste error 貼り付けエラー - Can't paste widgets. Designer couldn't find a container -to paste into which does not contain a layout. Break the layout -of the container you want to paste into and select this container -and then paste again. - ウィジェットを貼り付けられません。Designer は、ウィジェットを貼り付けることができる、レイアウトを含まないコンテナを見つけることができませんでした。貼り付け先のコンテナのレイアウトを破棄し、もう一度そのコンテナを選んで貼り付けてください。 - - - Break layout - レイアウトを破棄する - - - Lay out レイアウト - - Drop widget ウィジェットの貼り付け - Paste %n action(s) - - + + %n 個のアクションの貼り付け - Insert widget '%1' - + ウィジェット '%1' を挿入 + + + Key Resize + リサイズキー - Paste %n widget(s) - - + + %n 個のウィジェットの貼り付け - Paste (%1 widgets, %2 actions) - + %1 個のウィジェットと %2 個のアクションの貼り付け - Cannot paste widgets. Designer could not find a container without a layout to paste into. - + ウィジェットを貼り付けできません。Designer は貼り付け先となるレイアウトを持たないコンテナを見つけられません。 - Break the layout of the container you want to paste into, select this container and then paste again. - + 貼り付け先となるコンテナのレイアウトを破棄して、改めてそのコンテナを選択して貼り付けてください。 - Raise widgets - + ウィジェットを前面に移動 - Lower widgets - + ウィジェットを後方に移動 - Select Ancestor - + Ancestor を選択 - A QMainWindow-based form does not contain a central widget. - + QMainWindow ベースのフォームにセントラルウィジェットが含まれていません。 qdesigner_internal::FormWindowBase - Delete 削除 - Delete '%1' - '%1' を削除 + '%1' を削除 qdesigner_internal::FormWindowManager - Cu&t 切り取り(&T) - Cuts the selected widgets and puts them on the clipboard 選択されたウィジェットを切り取ってクリップボードに出力 - &Copy コピー(&C) - Copies the selected widgets to the clipboard 選択されたウィジェットをクリップボードにコピー - &Paste 貼り付け(&P) - Pastes the clipboard's contents クリップボードの中身をペースト - &Delete 削除(&D) - Deletes the selected widgets 選択したウィジェットを削除 - Select &All すべてを選択(&A) - Selects all widgets すべてのウィジェットを選択 - Bring to &Front 前面へ移動(&F) - - Raises the selected widgets 選択したウィジェットを前へ移動 - Send to &Back 背面へ移動(&B) - - Lowers the selected widgets 選択したウィジェットを後へ移動 - Adjust &Size サイズ調整(&S) - Adjusts the size of the selected widget 選択されたウィジィトのサイズを調整 - Lay Out &Horizontally 水平に並べる(&H) - Lays out the selected widgets horizontally 選択したウィジェットを水平に並べる - Lay Out &Vertically 垂直に並べる(&V) - Lays out the selected widgets vertically 選択したウィジェットを垂直に並べる - Lay Out in a &Form Layout - + フォームレイアウトで並べる(&F) - Lays out the selected widgets in a form layout - + 選択したウィジェットをフォームレイアウトに配置 - Lay Out in a &Grid 格子状に並べる(&G) - Lays out the selected widgets in a grid 選択したウィジェットを格子状に並べる - Lay Out Horizontally in S&plitter 水平にスプリッタの中に並べる(&P) - Lays out the selected widgets horizontally in a splitter 選択されたウィジェットをスプリッタの中で水平方向に配置 - Lay Out Vertically in Sp&litter 垂直にスプリッタの中に並べる(&L) - Lays out the selected widgets vertically in a splitter 選択されたウィジェットをスプリッタの中で垂直方向に配置 - &Break Layout レイアウトを破棄(&B) - Breaks the selected layout 選択されたレイアウトを破棄 - Si&mplify Grid Layout - + 格子状のレイアウトを正規化する(&M) - &Preview... - + プレビュー(&P)... - Preview current form - + 現在のフォームをプレビュー - Form &Settings... - フォームの設定(&S)... + フォームの設定(&S)... - Break Layout レイアウトを破棄する - Adjust Size サイズ調整 - Could not create form preview Title of warning message box - + フォームがプレビューできません - Form Settings - %1 - フォーム設定 - %1 + フォーム設定 - %1 - Removes empty columns and rows - + 空の列と行を削除 qdesigner_internal::FormWindowSettings - None - + なし - Device Profile: %1 - - - - - qdesigner_internal::GraphicsPropertyEditor - - <no icon> - <アイコンなし> - - - <no pixmap> - <ピックスマップなし> - - - ... - ... + デバイスプロファイル: %1 qdesigner_internal::GridPanel - Form フォーム - Grid グリッド - Visible グリッドを表示 - Grid &X X軸のグリッド間隔(&X) - Snap 補正 - Reset リセット - Grid &Y Y軸のグリッド間隔(&Y) @@ -6087,7 +4182,6 @@ and then paste again. qdesigner_internal::GroupBoxTaskMenu - Change title... タイトルを変更... @@ -6095,180 +4189,153 @@ and then paste again. qdesigner_internal::HtmlTextEdit - Insert HTML entity - + HTML エンティティを挿入 qdesigner_internal::IconSelector - The pixmap file '%1' cannot be read. - + ピクスマップファイル '%1' を読めません。 - The file '%1' does not appear to be a valid pixmap file: %2 - + ファイル '%1' は無効な画像ファイルです: %2 - The file '%1' could not be read: %2 - + ファイル '%1' は読めませんでした: %2 - Choose a Pixmap - + ピクスマップの選択 - Pixmap Read Error - + ピクスマップの読み込みエラー - ... - ... + ... - Normal Off - + 通常 オフ - Normal On - + 通常 オン - Disabled Off - + 無効化 オフ - Disabled On - + 無効化 オン - Active Off - + アクティブ オフ - Active On - + アクティブ オン - Selected Off - + 選択済み オフ - Selected On - + 選択済み オン - Choose Resource... - + リソースを選択... - Choose File... - + ファイルを選択... - Reset - リセット + リセット - Reset All - + すべてリセット qdesigner_internal::ItemListEditor - Properties &<< - + プロパティ &<< - - Properties &>> - + プロパティ &>> - Items List - アイテム一覧 + アイテム一覧 - New Item - 新しいアイテム + 新しいアイテム - &New - 新規(&N) + 新規(&N) - Delete Item - アイテムを削除 + アイテムを削除 - &Delete - 削除(&D) + 削除(&D) - Move Item Up - このアイテムを上へ + このアイテムを上へ - U - U + U - Move Item Down - このアイテムを下へ + このアイテムを下へ - D - D + D qdesigner_internal::LabelTaskMenu - Change rich text... リッチテキストを変更... - Change plain text... プレインテキストを変更... + qdesigner_internal::LanguageResourceDialog + + Choose Resource + リソースを選択 + + + qdesigner_internal::LineEditTaskMenu - Change text... テキストを変更... @@ -6276,90 +4343,25 @@ and then paste again. qdesigner_internal::ListWidgetEditor - Edit List Widget リストウィジェットを編集 - Edit Combobox コンボボックスを編集 - New Item 新しいアイテム - - Dialog - ダイアログ - - - Items List - アイテム一覧 - - - Move Item Down - このアイテムを下へ - - - D - D - - - &Pixmap - ピックスマップ(&P) - - - Set Item Pixmap - このアイテムのピックスマップを設定 - - - ... - ... - - - Reset Item Pixmap - このアイテムのピックスマップをリセット - - - &Text - テキスト(&T) - - - Set Item Text - このアイテムのテキストを設定 - - - Move Item Up - このアイテムを上へ - - - U - U - - - &New Item - 新しいアイテム(&N) - - - Delete Item - アイテムを削除 - - - &Delete Item - アイテムを削除(&D) - qdesigner_internal::ListWidgetTaskMenu - Edit Items... アイテムを編集... - Change List Contents リストの内容を変更 @@ -6367,81 +4369,67 @@ and then paste again. qdesigner_internal::MdiContainerWidgetTaskMenu - Next Subwindow - + 次のサブウィンドウ - Previous Subwindow - + 前のサブウィンドウ - Tile - + タイル表示 - Cascade - + カスケード表示 qdesigner_internal::MenuTaskMenu - Remove - 消去 + 削除 qdesigner_internal::MorphMenu - Morph into - + 他のクラスへ変更 qdesigner_internal::NewActionDialog - New Action... 新しいアクション... - &Text: テキスト(&T): - Shortcut: - + ショートカット: - Checkable: - + チェック可: - ToolTip: - + ツールチップ: - ... - ... + ... - &Icon: アイコン(&I): - Object &name: オブジェクト名(&N): @@ -6449,163 +4437,133 @@ and then paste again. qdesigner_internal::NewDynamicPropertyDialog - Set Property Name プロパティ名を設定 - The current object already has a property named '%1'. Please select another, unique one. - 現在のオブジェクトには、すでに '%1' という名前のプロパティが存在します。 + 現在のオブジェクトには、既に '%1' という名前のプロパティが存在します。 別のユニークな名前を選んでください。 - The '_q_' prefix is reserved for Qt library. -Please select another name. - '_q_' というプリフィックスは Qt ライブラリのために予約されています。 -別の名前を選んでください。 - - - Create Dynamic Property ダイナミックプロパティを作成 - Property Name プロパティ名 - Property Type プロパティ型 - The '_q_' prefix is reserved for the Qt library. Please select another name. - + 前置詞 '_q_' は Qt ライブラリのために予約されています。 +別の名前を選んでください。 - horizontalSpacer - + 横方向のスペーサー qdesigner_internal::NewFormWidget - Default size - + デフォルトのサイズ - QVGA portrait (240x320) - + QVGA ポートレイト (240×320) - QVGA landscape (320x240) - + QVGA ランドスケープ (320×240) - VGA portrait (480x640) - + VGA ポートレイト (480×640) - VGA landscape (640x480) - + VGA ランドスケープ (640×480) - Widgets New Form Dialog Categories - + ウィジェット - Custom Widgets - カスタムウィジェット + カスタムウィジェット - None - + なし - Error loading form - フォームのロードエラー + フォームのロードエラー + + + Unable to open the form template file '%1': %2 + フォームのテンプレートファイル '%1' をオープンできません: %2 - Internal error: No template selected. - + 内部エラー: テンプレートが選択されていません。 - 0 - 0 + 0 - Choose a template for a preview - プレビューのためテンプレートを選択 + プレビュー用のテンプレートを選択 - Embedded Design - + デザインプロファイル - Device: - + デバイス: - Screen Size: - + 画面サイズ: qdesigner_internal::NewPromotedClassPanel - Add 追加 - New Promoted Class 新しい格上げされたクラス - Base class name: ベースクラス名: - Promoted class name: 格上げされたクラス名: - Header file: ヘッダファイル: - Global include グローバルにインクルードする - Reset リセット @@ -6613,120 +4571,76 @@ Please select another name. qdesigner_internal::ObjectInspector - Object - オブジェクト - - - Class - クラス - - - <noname> - <名前なし> - - - separator - セパレータ + Change Current Page + 現在のページを変更 - &Find in Text... - - - - - qdesigner_internal::ObjectInspector::ObjectInspectorPrivate - - - Change Current Page - + テキストを検索(&F)... qdesigner_internal::OrderDialog - Index %1 (%2) インデックス %1 (%2) - %1 %2 - + %1 %2 - Change Page Order ページの順序を変更 - Page Order ページの順序 - Up - 上へ - - - Down - 下へ - - - Move page up - + このページを上へ - Move page down - + このページを下へ qdesigner_internal::PaletteEditor - Edit Palette パレットを編集 - Tune Palette パレットを調整 - Show Details - 全てのパレットを設定 + すべてのパレットを設定 - Compute Details アクティブパレットを設定 - Quick 簡易設定 - Preview プレビュー - Disabled 無効化 - Inactive 非アクティブ - Active アクティブ @@ -6734,7 +4648,6 @@ Please select another name. qdesigner_internal::PaletteEditorButton - Change Palette パレットを変更 @@ -6742,22 +4655,18 @@ Please select another name. qdesigner_internal::PaletteModel - Color Role 色役割 - Active アクティブ - Inactive 非アクティブ - Disabled 無効化 @@ -6765,202 +4674,193 @@ Please select another name. qdesigner_internal::PixmapEditor - Copy Path - + パスをコピー - Paste Path - + パスを貼り付け - Choose Resource... - + リソースを選択... - Choose File... - + ファイルを選択... - - ... - ... + ... qdesigner_internal::PlainTextEditorDialog - Edit text - テキストを編集 + テキストを編集 qdesigner_internal::PluginDialog - Components コンポーネント - Plugin Information プラグイン情報 - Refresh リフレッシュ - Scan for newly installed custom widget plugins. 新しくインストールされたカスタムウィジェットプラグインをスキャンします。 - Qt Designer couldn't find any plugins プラグインは見つかりませんでした - Qt Designer found the following plugins 以下のプラグインが見つかりました - New custom widget plugins have been found. 新しいカスタムウィジェットのプラグインが見つかりました。 - - TextLabel - テキストラベル - - - 1 - 1 - qdesigner_internal::PreviewActionGroup - %1 Style - %1 スタイル + %1 スタイル - qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate + qdesigner_internal::PreviewConfigurationWidget + + Default + デフォルト + + + None + なし + + + Browse... + 参照... + - Load Custom Device Skin - + カスタムデバイススキンのロード - All QVFB Skins (*.%1) - + すべての QVFB スキン (*.%1) - %1 - Duplicate Skin - + %1 - 重複したスキン - The skin '%1' already exists. - + スキン '%1' は既に存在します。 - %1 - Error - %1 - エラー + %1 - エラー - %1 is not a valid skin directory: %2 - + %1 は無効なスキンディレクトリです: +%2 qdesigner_internal::PreviewDeviceSkin - + &Portrait + ポートレイト(&P) + + + Landscape (&CCW) + Rotate form preview counter-clockwise + ランドスケープ (&CCW) + + + &Landscape (CW) + Rotate form preview clockwise + ランドスケープ(&L) (CW) + + &Close - 閉じる(&C) + 閉じる(&C) qdesigner_internal::PreviewManager - %1 - [Preview] - %1 - [プレビュー] + %1 - [プレビュー] + + + qdesigner_internal::PreviewMdiArea - %1 Style - %1 スタイル + The moose in the noose +ate the goose who was loose. + Palette editor background + 坊主が屏風に上手に +坊主の絵を描いた。 qdesigner_internal::PreviewWidget - Preview Window プレビューウィンドウ - LineEdit 行編集 - ComboBox コンボボックス - PushButton プッシュボタン - ButtonGroup2 ボタングループ2 - CheckBox1 チェックボックス1 - CheckBox2 チェックボックス2 - ButtonGroup ボタングループ - RadioButton1 ラジオボタン1 - RadioButton2 ラジオボタン2 - RadioButton3 ラジオボタン3 @@ -6968,22 +4868,18 @@ Please select another name. qdesigner_internal::PromotionModel - Name 名前 - Header file ヘッダファイル - Global include グローバルにインクルードする - Usage 使い方 @@ -6991,184 +4887,120 @@ Please select another name. qdesigner_internal::PromotionTaskMenu - Promoted widgets... 格上げされたウィジェット... - Promote to ... 格上げ先を指定... - Promote to 格上げ先 - Demote to %1 %1 へ格下げ - Change signals/slots... - + シグナル/スロットを変更... qdesigner_internal::PropertyEditor - Add Dynamic Property... ダイナミックプロパティを追加... - Remove Dynamic Property ダイナミックプロパティを削除 - Sorting - + ソート - Color Groups - + カラーグループ - Tree View - + ツリー表示 - Drop Down Button View - + ドロップダウンボタン表示 - Configure Property Editor - + プロパティエディタの設定 - Object: %1 Class: %2 - + オブジェクト: %1 +クラス: %2 - String... - + 文字列... - Bool... - + ブーリアン... - Other... - + その他... qdesigner_internal::PropertyLineEdit - Insert line break 改行を挿入 - qdesigner_internal::QCoreApplication - - The base class %1 is invalid. - ベースクラス %1 は無効です。 - - - The class %1 already exists. - %1 というクラスはすでに存在します。 - - - Promoted Widgets - 格上げされたウィジェット - - - The class %1 cannot be removed - %1 というクラスを削除できません - - - The class %1 cannot be removed because it is still referenced. - %1 というクラスは、参照されているので、削除できません。 - - - The class %1 cannot be renamed - %1 というクラスをリネームできません - - - The class %1 cannot be renamed to an empty name. - %1 というクラスを空の名前にリネームすることはできません。 - - - There is already a class named %1. - %1 というクラスは存在します。 - - - Cannot set an empty include file. - 空のインクルードファイルを設定できません。 - - - qdesigner_internal::QDesignerPromotionDialog - Promoted Widgets 格上げされたウィジェット - Promoted Classes 格上げされたクラス - Promote 格上げ - %1 - Error %1 - エラー - Change signals/slots... - + シグナル/スロットを変更... qdesigner_internal::QDesignerResource - Loading qrc file qrc ファイルをロードしています - The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p> 指定された qrc ファイル <p><b>%1</b></p><p>が見つかりません。ファイルの置き場所を変更したいですか?</p> - New location for %1 %1 の新しい場所 - Resource files (*.qrc) リソースファイル (*.qrc) @@ -7176,876 +5008,283 @@ Class: %2 qdesigner_internal::QDesignerTaskMenu - Change objectName... - オブジェクト名を変更... + オブジェクト名を変更... - Change toolTip... - ツールチップを変更... + ツールチップを変更... - Change whatsThis... - ヒントを変更... + ヒントを変更... - Change styleSheet... - スタイルシートを変更... + スタイルシートを変更... - Create Menu Bar - メニューバーを作成 + メニューバーを作成 - Add Tool Bar - ツールバーを追加 + ツールバーを追加 - Create Status Bar - ステータスバーを作成 + ステータスバーを作成 - Remove Status Bar - ステータスバーを消去 + ステータスバーを削除 - Change script... - スクリプトを変更... + スクリプトを変更... - Go to slot... - + スロットへ移動... - Edit ToolTip - + ツールチップを編集 - Edit WhatsThis - + ヒントを編集 - no signals available - + シグナルがありません - Set size constraint on %n widget(s) - - + + %n 個のウィジェットで限界サイズを設定 - Change signals/slots... - + シグナル/スロットを変更... - Size Constraints - + 限界サイズ - Set Minimum Width - + 幅の最小値を設定 - Set Minimum Height - + 高さの最小値を設定 - Set Minimum Size - + サイズの最小値を設定 - Set Maximum Width - + 幅の最大値を設定 - Set Maximum Height - + 高さの最大値を設定 - Set Maximum Size - - - - - qdesigner_internal::QDesignerWidgetBox - - - - Unexpected element <%1> - - - - - A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 -%5 - ウィジェット %3 のために指定された XML コードの %1 行目の %2 カラム目でパースエラーが発生しました: %4 -%5 - - - - The XML code specified for the widget %1 does not contain any widget elements. -%2 - - - - - qdesigner_internal::QObject - - The icon specified by %1 could not be opened: %2 - %1 で指定されたアイコンをオープンできませんでした: %2 - - - The widgetbox could not load the file %1. - ウィジェットボックスは %1 というファイルをロードできませんでした。 - - - The widgetbox could not parse the file %1. An error occurred at line %2: %3 - ウィジェットボックスは、%1 というファイルをパースできません。%2 行目でエラーが発生しました: %3 - - - The file %1 does not appear to be a widgetbox file. - %1 というファイルは、ウィジェットボックスのファイルではないようです。 - - - An error occurred while parsing the file %1: %2 is not a valid child of the root element. - %1 というファイルのパース中にエラーが発生しました: %2 はルートエレメントの有効な子供ではありません。 - - - The class attribute for the class %1 does not match the class name %2. - %1 というクラスのクラス属性は %2 というクラス名と一致しません。 - - - The class attribute for the class %1 is missing. - %1 というクラスのクラス属性がありません。 - - - The style %1 could not be loaded. - %1 というスタイルをロードできませんでした。 - - - The preview failed to build. - プレビューのビルドに失敗しました。 - - - %1 - [Preview] - %1 - [プレビュー] - - - Designer - Designer - - - Change script - スクリプトを変更 - - - A custom widget plugin whose class name (%1) matches that of an existing class has been found. - クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。 - - - The custom widget factory registered for widgets of class %1 returned 0. - %1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。 - - - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. - %1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。 - - - - qdesigner_internal::QPropertyEditorModel - - <noname> - <名前なし> - - - Property - プロパティ - - - Value - + サイズの最大値を設定 - qdesigner_internal::QtBrushDialog - - Edit Brush - ブラシを編集 - - - - qdesigner_internal::QtBrushEditor - - New Brush - 新しいブラシ - - - Gradient - グラデーション - - - Texture - テクスチャ - - - Color Pattern - カラーパターン - - - Rename F2 - 名前の変更 F2 - - - Form - フォーム - - - Edit... - 編集... - - - Edit Gradient - グラデーションを編集 - - - Gradient... - グラデーション... - - - Edit Color Pattern - カラーパターンを編集 - - - Color Pattern... - カラーパターン... - - - Edit Texture - テクスチャを編集 - - - Texture... - テクスチャ... - - - Remove From Custom - カスタムカラーから除く - - - Add To Custom - カスタムカラーに追加 - - - Apply Custom - カスタムカラーに適用 - - - Apply - 適用 - - - - qdesigner_internal::QtBrushPatternDialog - - Edit Color Pattern - カラーパターンを編集 - - - - qdesigner_internal::QtBrushPatternEditor - - Hue - 色相 - - - Saturation - 彩度 - - - Value - 明度 - - - Red - - - - Green - - - - Blue - - - - No Brush - 透明 - - - Solid - 塗りつぶし - - - Dense 1 - 密度 1 - - - Dense 2 - 密度 2 - - - Dense 3 - 密度 3 - - - Dense 4 - 密度 4 - - - Dense 5 - 密度 5 - - - Dense 6 - 密度 6 - - - Dense 7 - 密度 7 - - - Horizontal - - - - Vertical - - - - Cross - 格子 - - - Backward Diagonal - 左下から右上の斜線 - - - Forward Diagonal - 左上から右下への斜線 - - - Crossing Diagonal - 交差する斜線 - - - Form - フォーム - - - Pattern - パターン - - - Alpha - アルファ - - - Color - - - - Preview - プレビュー - - - HSV - HSV - - - RGB - RGB - - - - qdesigner_internal::QtGradientDialog - - Edit Gradient - グラデーションを編集 - - - - qdesigner_internal::QtGradientEditor - - - Linear - 線状 - - - - Radial - 放射状 - - - - Conical - 円錐状 - - - - Pad - 区切りの色で補充 - - - - Repeat - グラデーションの繰り返し - - - - Reflect - グラデーションの反射 - - - Form - フォーム - - - Start X - 始点の X 座標 - - - Start Y - 始点の Y 座標 - - - Final X - 終点の X 座標 - - - Final Y - 終点の Y 座標 - - - Spread - 広がり方 - - - Central Y - 中心の Y 座標 - - - Focal X - 焦点の X 座標 - - - Focal Y - 焦点の Y 座標 - - - Radius - 半径 - - - Central X - 中心の X 座標 - - - Angle - 角度 - - - Type - グラデーションのタイプ - - - - qdesigner_internal::QtGradientStopsController - - - H - - - - - S - - - - - V - - - - - - Hue - 色相 - - - - Sat - - - - - Val - - - - - Saturation - 彩度 - - - - Value - - - - - R - R - - - - G - - - - - B - - - - - Red - - - - - Green - - - - - Blue - - - - - qdesigner_internal::QtGradientStopsEditor - - Hue - 色相 - - - Saturation - 彩度 - - - Value - 明度 - - - Red - - - - Green - - - - Blue - - - - Form - フォーム - - - % - % - - - Position - 位置 - - - Zoom - ズーム - - - Color - - - - Zoom All - すべてズーム - - - Alpha - アルファ - - - Zoom Out - 縮小 - - - Zoom In - 拡大 - - - HSV - HSV - - - RGB - RGB - - - - qdesigner_internal::QtGradientStopsWidget - - New Stop - 新しい終点 - - - Delete - 削除 - - - Select All - すべてを選択 - + qdesigner_internal::QDesignerWidgetBox - Zoom In - 拡大 + Unexpected element <%1> + 予期せぬ要素 <%1> - Zoom Out - 縮小 + A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 +%5 + ウィジェット %3 のために指定された XML コードの %1 行目の %2 カラム目でパースエラーが発生しました: %4 +%5 - Zoom All - すべてズーム + The XML code specified for the widget %1 does not contain any widget elements. +%2 + ウィジェット %1 を定義する XML のコードにどのウィジェットの要素もありません。 +%2 - - - qdesigner_internal::ResourceEditor - <no resource files> - <リソースファイルなし> + An error has been encountered at line %1 of %2: %3 + %2 の %1 行目でエラーが発生しました: %3 - Open file - ファイルをオープン + Unexpected element <%1> encountered when parsing for <widget> or <ui> + <widget> もしくは <ui> のパース中に予期せぬ要素 <%1> が現れました - All files (*) - すべてのファイル(*) + Unexpected end of file encountered when parsing widgets. + ウィジェットのパース中に予期せずファイルが途中で終了しました。 - Resource Editor - リソースエディタ + A widget element could not be found. + ウィジェット要素が見つかりません。 + + + qdesigner_internal::QtGradientStopsController - Resource Editor: %1 - リソースエディタ: %1 + H + H - New... - 新規... + S + S - Open... - 開く... + V + V - Untitled - タイトルなし + Hue + 色相 - Save resource file - リソースファイルを保存 + Sat + 彩度 - Resource files (*.qrc) - リソースファイル (*.qrc) + Val + 明度 - New resource file - 新しいリソースファイル + Saturation + 彩度 - Open resource file - リソースファイルを開く + Value + 明度 - Resource editor - リソースエディタ + R + R - Current Resource: - 現在のリソース: + G + G - ... - ... + B + B - + - + + Red + - - - - + Green + - &Add Files... - ファイルを追加(&A)... + Blue + qdesigner_internal::RichTextEditorDialog - Edit text テキストを編集 - &OK OK(&O) - &Cancel キャンセル(&C) - Rich Text - + リッチテキスト - Source - + ソース qdesigner_internal::RichTextEditorToolBar - Insert &Image - + 画像を挿入(&I) - Bold ボールド - CTRL+B CTRL+B - Italic イタリック - CTRL+I Ctrl+I - Underline 下線 - CTRL+U CTRL+U - Left Align - + 左端揃え - Center - + 中央揃え - Right Align - + 右端揃え - Justify - + 両端揃え - Superscript - + 上付き文字 - Subscript - + 下付き文字 - Insert &Link - - - - Color - + リンクを挿入(&L) qdesigner_internal::ScriptDialog - Edit script スクリプトを編集 - <html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively. <html>フォームをロードしているときに実行する Qt スクリプトの断片を入力してください。<br>ウィジェットとその子ウィジェットは、それぞれ <i>widget</i>、<i>childWidgets</i> という変数でアクセスできます。 - Syntax error 構文エラー @@ -8053,51 +5292,36 @@ Class: %2 qdesigner_internal::ScriptErrorDialog - Script errors スクリプトのエラー - qdesigner_internal::Sentinel - - New Tool Bar - 新しいツールバー - - - qdesigner_internal::SignalSlotDialog - There is already a slot with the signature '%1'. - + シグネイチャが '%1' であるスロットは既に存在します。 - There is already a signal with the signature '%1'. - + シグネイチャが '%1' であるシグナルは既に存在します。 - %1 - Duplicate Signature - + %1 - 重複したシグネイチャ - - Signals/Slots of %1 - + %1 のシグナル/スロット qdesigner_internal::SignalSlotEditorPlugin - Edit Signals/Slots シグナル/スロットを編集 - F4 F4 @@ -8105,7 +5329,6 @@ Class: %2 qdesigner_internal::SignalSlotEditorTool - Edit Signals/Slots シグナル/スロットを編集 @@ -8113,114 +5336,74 @@ Class: %2 qdesigner_internal::StatusBarTaskMenu - Remove - 消去 + 削除 qdesigner_internal::StringListEditorButton - Change StringList - 文字列リストを変更 - - - Change String List - + 文字列のリストを変更 qdesigner_internal::StyleSheetEditorDialog - Edit Style Sheet スタイルシートを変更 - - Valid Style Sheet 有効なスタイルシート - Add Color... - + 色を追加... - Add Font... - + フォントを追加... - Invalid Style Sheet - 無効なスタイルシート + 無効なスタイルシート - Add Resource... - + リソースを追加... - Add Gradient... - - - - - qdesigner_internal::StyledButton - - All Pixmaps ( - 全てのピックスマップ ( - - - %1-Pixmaps (%2) - - %1-ピックスマップ(%2) - - - All Files (*.*) - すべてのファイル(*.*) - - - Open Image - イメージを開く + グラデーションを追加... qdesigner_internal::TabOrderEditor - Start from Here - + この番号から設定 - Restart - + 1番から設定 - Tab Order List... - + タブ順のリスト... - Tab Order List - + タブ順のリスト - Tab Order - + タブ順 qdesigner_internal::TabOrderEditorPlugin - Edit Tab Order タブ順を編集 @@ -8228,7 +5411,6 @@ Class: %2 qdesigner_internal::TabOrderEditorTool - Edit Tab Order タブ順を編集 @@ -8236,168 +5418,45 @@ Class: %2 qdesigner_internal::TableWidgetEditor - New Column 新しい列 - New Row 新しい行 - &Columns - + 列(&C) - &Rows - + 行(&R) - Properties &<< - + プロパティ &<< - - Properties &>> - + プロパティ &>> - Edit Table Widget テーブルウィジェットを編集 - &Items - - - - Rows - - - - Move Row Down - この行を下へ - - - D - D + アイテム(&I) - Move Row Up - この行を上へ - - - U - U - - - Table Rows - テーブルの行 - - - New - 新規 - - - Rename Row - 行の名前を変更 - - - Rename - 名前の変更 - - - Delete Row - 行を削除 - - - Delete - 削除 - - - Pixmap - ピックスマップ - - - Set Row Pixmap - この行のピックスマップを設定 - - - ... - ... - - - Reset Row Pixmap - この行のピックスマップをリセット - - - Table Items テーブルのアイテム - - &Text - テキスト(&T) - - - Set Item Text - このアイテムのテキストを設定 - - - Reset Item Pixmap - このアイテムのピックスマップをリセット - - - Set Item Pixmap - このアイテムのピックスマップを設定 - - - &Pixmap - ピックスマップ(&P) - - - Columns - - - - Rename Column - 列の名前を変更 - - - Delete Column - 列を削除 - - - Move Column Up - この列を上へ - - - Move Column Down - この列を下へ - - - Table Columns - テーブルの列 - - - Set Column Pixmap - この列のピックスマップを設定 - - - Reset Column Pixmap - この列のピックスマップをリセット - qdesigner_internal::TableWidgetTaskMenu - Edit Items... アイテムを編集... @@ -8405,321 +5464,185 @@ Class: %2 qdesigner_internal::TemplateOptionsWidget - Pick a directory to save templates in - テンプレートを保存するディレクトリを選択してください + テンプレートを保存するディレクトリを選択してください - Form - フォーム + フォーム - Additional Template Paths - 追加のテンプレートパス + 追加のテンプレートパス - ... - ... + ... qdesigner_internal::TextEditTaskMenu - Edit HTML - + HTML を編集 - Change HTML... HTML を変更... - Edit Text - + テキストを編集 - Change Plain Text... - + プレインテキストを変更... qdesigner_internal::TextEditor - Choose Resource... - + リソースを選択... - Choose File... - + ファイルを選択... - Choose a File - + ファイルを選択 - ... - ... + ... qdesigner_internal::ToolBarEventFilter - Insert Separator セパレータを挿入 - Remove action '%1' - アクション '%1' を消去 + アクション '%1' を削除 - Remove Toolbar '%1' - ツールバー '%1' を消去 + ツールバー '%1' を削除 - Insert Separator before '%1' - + '%1' の前にセパレータを挿入 - Append Separator - - - - - qdesigner_internal::ToolBarTaskMenu - - Customize... - カスタマイズ... + セパレータを追加 qdesigner_internal::TreeWidgetEditor - &Columns - + 列(&C) - Per column properties - + 各列毎のプロパティ - Common properties - + 共通するプロパティ - - New Item 新しいアイテム - Properties &<< - + プロパティ &<< - - Properties &>> - + プロパティ &>> - New Sub Item - 新しいサブアイテム - - - New Column 新しい列 - Edit Tree Widget ツリーウィジェットを編集 - &Items - + アイテム(&I) - Tree Items ツリーのアイテム - &Pixmap - ピックスマップ(&P) - - - Set Item Pixmap - このアイテムのピックスマップを設定 - - - ... - ... - - - Reset Item Pixmap - このアイテムのピックスマップをリセット - - - &Text - テキスト(&T) - - - Set Item Text - このアイテムのテキストを設定 - - - &New Item - 新しいアイテム(&N) - - - - New Subitem 新しいサブアイテム - New &Subitem 新しいサブアイテム(&S) - Delete Item アイテムを削除 - &Delete Item - アイテムを削除(&D) - - - &New - 新規(&N) + 新規(&N) - &Delete - 削除(&D) + 削除(&D) - Move Item Left (before Parent Item) このアイテムを左へ(親アイテムの前に) - L L - Move Item Right (as a First Subitem of the Next Sibling Item) このアイテムを右へ(すぐ後の兄弟アイテムの最初のサブアイテム) - R R - Move Item Up このアイテムを上へ - U U - Move Item Down このアイテムを下へ - D D - Columns - - - - Pixmap - ピックスマップ - - - Set Column Pixmap - この列のピックスマップを設定 - - - Reset Column Pixmap - この列のピックスマップをリセット - - - New - 新規 - - - Rename Column - 列の名前を変更 - - - Rename - 名前の変更 - - - Delete Column - 列を削除 - - - Delete - 削除 - - - Move Column Up - この列を上へ - - - Move Column Down - この列を下へ - - - Tree Columns - ツリーの列 - - - 1 - 1 + 1 qdesigner_internal::TreeWidgetTaskMenu - Edit Items... アイテムを編集... @@ -8727,93 +5650,55 @@ Class: %2 qdesigner_internal::WidgetBox - Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML. - - - - - qdesigner_internal::WidgetBoxTreeView - - Scratchpad - スクラッチパッド - - - Custom Widgets - カスタムウィジェット - - - Expand all - すべて展開する - - - Collapse all - すべて折りたたむ - - - Remove - 消去 - - - Edit name - 名前を編集 + 警告: ウィジェットボックス内にウィジェットを作成できません。カスタムウィジェットの XML が無効です。 qdesigner_internal::WidgetBoxTreeWidget - Scratchpad - スクラッチパッド + スクラッチパッド - Custom Widgets - カスタムウィジェット + カスタムウィジェット - Expand all - すべて展開する + すべて展開する - Collapse all - すべて折りたたむ + すべて折りたたむ - List View - + リスト表示 - Icon View - + アイコン表示 - Remove - 消去 + 削除 - Edit name - 名前を編集 + 名前を編集 qdesigner_internal::WidgetDataBase - A custom widget plugin whose class name (%1) matches that of an existing class has been found. - クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。 + クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。 qdesigner_internal::WidgetEditorTool - Edit Widgets ウィジェットを編集 @@ -8821,57 +5706,56 @@ Class: %2 qdesigner_internal::WidgetFactory - The custom widget factory registered for widgets of class %1 returned 0. - %1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。 + クラス %1 のウィジェット用に登録されたカスタムウィジェットファクトリーが 0 を返しました。 - A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2. - %1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。 + クラス %1 のウィジェット用に登録されたカスタムウィジェットファクトリーを用いてウィジェットを作成中に、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。 - %1 Widget %1 ウィジェット - The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget. - + コンテナ '%1' (%2) の現在のページにレイアウトが作成できません。UI ファイルに矛盾が発生しています。レイアウトがコンテナウィジェット上に作成されている可能性があります。 - Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. This indicates an inconsistency in the ui-file. - + ウィジェット '%1' (%2) にレイアウトを追加できません。既に %3 型のレイアウトが存在します。 +UI ファイルに矛盾が発生しています。 - Cannot create style '%1'. - + スタイル '%1' を作成できません。 qdesigner_internal::WizardContainerWidgetTaskMenu - Next - + 進む - Back - + 戻る qdesigner_internal::ZoomMenu - %1 % Zoom factor - + %1 % + + + + qdesigner_internal::ZoomablePreviewDeviceSkin + + &Zoom + ズーム(&Z) diff --git a/translations/linguist_ja.ts b/translations/linguist_ja.ts index 8951c7a..abd32a0 100644 --- a/translations/linguist_ja.ts +++ b/translations/linguist_ja.ts @@ -2,24 +2,8 @@ - - - - (New Entry) - (新しい項目) - - - - @default - - (New Phrase) - (新しいフレーズ) - - - AboutDialog - Qt Linguist Qt Linguist @@ -27,209 +11,140 @@ BatchTranslationDialog - Batch translated %1 entries - %1 項目が一括翻訳されました - - - &Cancel キャンセル(&C) - Linguist batch translator Linguist の一括翻訳 - Searching, please wait... 検索しています、お待ちください... - Batch Translation of '%1' - Qt Linguist '%1' の一括翻訳 - Qt Linguist - Batch translated %n entries %n 項目が一括翻訳されました - Qt Linguist - Batch Translation Qt Linguist - 一括翻訳 - Options オプション - Set translated entries to finished 翻訳された項目を完了にする - Retranslate entries with existing translation 訳語がある項目を再度翻訳する - - Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked. - 注意:'翻訳された項目を完了にする'にチェックがついていない場合、翻訳された項目は未完了になります. - - - Translate also finished entries 完了している項目も翻訳する - Phrase book preference フレーズブックの設定 - Move up 上に移動 - Move down 下に移動 - - The batch translator will search through the selected phrase books in the order given above. - 一括翻訳機能は、上記で選択された順にフレーズブックを検索します。 - - - &Run 実行(&R) - Cancel キャンセル - - - ContextModel - - Context - コンテキスト - - Done - 完了 + Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked + 注意:「翻訳された項目を完了にする」にチェックがついていない場合、翻訳された項目は未完了になります - Items - 項目数 + The batch translator will search through the selected phrase books in the order given above + 一括翻訳機能は、上記で選択された順にフレーズブックを検索します DataModel - <qt>Duplicate messages found in '%1': <qt>'%1' に重複したメッセージが見つかりました: - <p>[more duplicates omitted] <p>[さらに重複している部分は省略されました] - + <p>* ID: %1 + <p> *.ID: %1 + + <p>* Context: %1<br>* Source: %2 <p>* コンテキスト: %1<br>* ソーステキスト: %2 - <br>* Comment: %3 <br>* コメント: %3 - Linguist does not know the plural rules for '%1'. Will assume a single universal form. Linguist は'%1'の複数のルールを知りません。 単一の共通形式とみなします。 - Cannot create '%2': %1 '%2' を作成できません: %1 - Universal Form 共通形式 - EditorPage - - Source text - ソーステキスト - - - Translation (%1) - 訳 (%1) - - - This area shows the source text. - この領域はソーステキストを表示します。 - - - This area shows a comment that may guide you, and the context in which the text occurs. - この領域は、手助けとなるコメントと、テキストが出てくるコンテキストを表示します。 - - - This is where you can enter or modify the translation of some source text. - ソーステキストの訳を入力したり変更したりできるところです。 - - - ErrorsView - Accelerator possibly superfluous in translation. 訳に余分なアクセラレータがついています。 - Accelerator possibly missing in translation. 訳にアクセラレータが欠けています。 - Translation does not end with the same punctuation as the source text. 訳がソーステキストと同じ句読点で終わっていません。 - A phrase book suggestion for '%1' was ignored. '%1' についてのフレーズブックの示唆を無視しています。 - Translation does not refer to the same place markers as in the source text. 訳語にはソーステキストと同じ数の "%" がありません。 - Translation does not contain the necessary %n place marker. - 訳語に必要な %n 個のプレースマーカー "%" がありません。 + 訳語に必要なプレースマーカー "%" が %n 個足りません。 - Unknown error 未知のエラー @@ -237,691 +152,473 @@ Will assume a single universal form. FindDialog - Cancel キャンセル - Click here to close this window. このウィンドウを閉じるにはここをクリックします。 - Find 検索 - &Find what: 検索する文字列(&F): - &Source texts ソーステキスト(&S) - &Translations 訳語(&T) - &Match case 大/小文字の区別(&M) - &Comments コメント(&C) - Ignore &accelerators アクセラレータを無視(&A) - Click here to find the next occurrence of the text you typed in. 入力したテキストが次に出てくる箇所を見つけるにはここをクリックします。 - Comments - コメント - - - Comments and contexts are searched when checked. 選択するとコメントとコンテキストが検索されます。 - Find Next 次を検索 - Find what: - 検索対象: - - - Match case - 大文字・小文字の区別 - - - Options オプション - Qt Linguist - Qt Linguist - - - Source texts - ソーステキスト - - - Source texts are searched when checked. 選択するとソーステキストが検索されます。 - Texts such as 'TeX' and 'tex' are considered as different when checked. 選択すると、たとえば 'TeX' と 'tex' は異なるものと見なされます。 - This window allows you to search for some text in the translation source file. このウィンドウで翻訳ソースファイル内のテキストを検索できます。 - Translations - - - - Translations are searched when checked. 選択すると訳が検索されます。 - Type in the text to search for. 検索するテキストを入力してください。 - Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog - FormHolder + FormMultiWidget - Preview Form - フォームをプレビュー + Alt+Delete + translate, but don't change + Alt+Delete - - - FormatTextEdit - &Copy - コピー(&C) + Shift+Alt+Insert + translate, but don't change + Shift+Alt+Insert - Ctrl+C - Ctrl+C + Alt+Insert + translate, but don't change + Alt+Insert - Select &All - すべてを選択(&A) + Confirmation - Qt Linguist + 確認 - Qt Linguist - Ctrl+A - Ctrl+A + Delete non-empty length variant? + 空ではない単数形・複数形を削除しますか? LRelease - - Generated %n translation(s) (%1 finished and %2 unfinished) - + Dropped %n message(s) which had no ID. - %n 件の訳語 (%1 件が完了、 %2 件が未完了) を生成しました - + ID のない %n 件のメッセージを無視しました。 - - Ignored %n untranslated source text(s) - + Excess context/disambiguation dropped from %n message(s). - %n 件の未翻訳のソーステキストを無視しました - + 不要な文脈やあいまいさ回避のコメントを %n 件のメッセージで無視しました。 - - - LanguagesDialog - - File - ファイル + + Generated %n translation(s) (%1 finished and %2 unfinished) + + %n 件のメッセージを翻訳しました(完了 %1 件、未完了 %2 件) + + + + Ignored %n untranslated source text(s) + + %n 件の未翻訳のソーステキストを無視しました + MainWindow - About Qt Qt について - About Qt Linguist Qt Linguist について - &Accelerators アクセラレータの確認(&A) - Batch translate all entries using the information in the phrase books. フレーズブックにある情報を用いて、全項目を一括翻訳します。 - &Batch Translation - 一括翻訳(&B) - - - &Begin from source - ソーステキストを元に翻訳(&B) - - - &Close Phrase Book フレーズブックを閉じる(&C) - Close this window and exit. このウィンドウを閉じて終了します。 - Continue the search where it was left. 残りの部分の検索を続けます。 - Copies the source text into the translation field. ソーステキストを訳の欄へコピーします。 - &Copy コピー(&C) - Copy the selected translation text to the clipboard and deletes it. 選択された訳のテキストをクリップボードにコピーして削除します。 - Copy the selected translation text to the clipboard. 選択された訳のテキストをクリップボードにコピーします。 - Create a new phrase book. 新しいフレーズブックを作成します。 - Create a Qt message file suitable for released applications from the current message file. リリースされたアプリケーションに合う Qt メッセージファイルを、現在のメッセージファイルから作成します。 - - 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. - リリースされたアプリケーションにふさわしい Qt メッセージファイルを現在のメッセージファイルから作成します。ファイル名は、.ts ファイルの名前から自動的に決められます。 - - - Ctrl+A Ctrl+A - Ctrl+B Ctrl+B - Ctrl+C Ctrl+C - Ctrl+F Ctrl+F - Ctrl+H Ctrl+H - Ctrl+K Ctrl+K - Ctrl+L - Ctrl+L - - - Ctrl+N Ctrl+N - Ctrl+O Ctrl+O - Ctrl+P Ctrl+P - Ctrl+Q Ctrl+Q - Open Read-O&nly... 読取専用で開く(&N)... - &Save All 全て保存(&S) - Ctrl+S Ctrl+S - Ctrl+Shift+K Ctrl+Shift+K - Ctrl+Shift+L - Ctrl+Shift+L - - - Ctrl+V Ctrl+V - Ctrl+X Ctrl+X - Ctrl+Y Ctrl+Y - Recently Opened &Files 最近使ったファイル(&F) - Ctrl+Z Ctrl+Z - Cu&t 切り取り(&T) - &Display guesses 推測を表示(&D) - - Display information about the Qt toolkit by Trolltech. - Trolltech の Qt ツールキットについての情報を表示します。 - - - &Done and Next 完了にして次へ(&N) - &Edit 編集(&E) - - Edit 編集 - &Edit Phrase Book フレーズブックを編集(&E) - &Ending Punctuation 末尾の句読点(&E) - Enter What's This? mode. ヒントモードに入ります。 - E&xit 終了(&X) - F1 F1 - F3 F3 - F5 F5 - &File ファイル(&F) - - File ファイル - &Find - 検索(&F)... - - - Find &Next 次を検索(&N) - Form Preview Tool フォームプレビューツール - - Help ヘルプ - &Help ヘルプ(&H) - MainWindow MainWindow - &Manual マニュアル(&M) - Marks this item as done and moves to the next unfinished item. - この項目に完了のマークをつけ、次の未訳の項目へ移動します。 - - - Moves to the next item. - 次の項目へ移動します。 - - - Moves to the next unfinished item. - 次の未訳の項目へ移動します。 - - - Moves to the previous item. - 前の項目へ移動します。 - - - Moves to the previous unfinished item. - 前の未訳の項目へ移動します。 - - - &New - 新規(&N) - - - &New Phrase Book - 新しいフレーズブック(&N) - - - Ne&xt 次へ(&X) - &Next Unfinished - 次の未訳へ(&N) - - - &Open - オープン(&O)... + 次の未完了へ(&N) - Open a phrase book to assist translation. 翻訳の参考にするためにフレーズブックを開きます。 - Open a Qt translation source file (TS file) for editing Qt 翻訳ソースファイル (TS ファイル) を編集用に開きます - &Open Phrase Book - フレーズブックを開く(&O)... - - - Open/Refresh Form &Preview フォームプレビューを開く/更新する(&P) - &Paste 貼り付け(&P) - Paste the clipboard text into the translation. クリップボードのテキストを訳に貼り付けます。 - &Phrase matches フレーズの一致(&P) - &Phrases フレーズ(&P) - Place &Marker Matches "%" の数や数字の一致(&M) - P&rev 前へ(&R) - &Prev Unfinished 前の未訳へ(&P) - &Print - 印刷(&P)... - - - Print a list of all the phrases in the current Qt translation source file. - 現在の Qt 翻訳ソースファイルの全てのフレーズ一覧を印刷します。 - - - &Print Phrase Book フレーズブックを印刷(&P) - Re&cently opened files - 最近開いたファイル(&C) - - - &Redo やり直す(&R) - Redo an undone editing operation performed on the translation. 取り消された編集操作をやり直します。 - &Release リリース(&R) - - - Release As... 名前を付けてリリース... - Replace the translation on all entries that matches the search source text. 検索対象のソーステキストに該当する全項目の訳語を置換します。 - &Revert Sorting - ソート順序を初期状態に(&R) - - - This is the application's main window. - Source text ソーステキスト - - Index インデックス - - Context コンテキスト - Items 項目数 - This panel lists the source contexts. このパネルではソースのコンテキストを一覧表示しています。 - Strings 文字列 - Phrases and guesses フレーズと推測 - Sources and Forms ソースとフォーム - Warnings 警告 - MOD status bar: file(s) modified MOD - Loading... ロードしています... - - Loading File - Qt Linguist ロードしています - Qt Linguist - The file '%1' does not seem to be related to the currently open file(s) '%2'. Close the open file(s) first? @@ -930,7 +627,6 @@ Close the open file(s) first? 先に開いたファイルを閉じますか? - 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? @@ -939,873 +635,616 @@ Skip loading the first named file? ファイルのロードをスキップしますか? - %n translation unit(s) loaded. %n 件の翻訳項目をロードしました。 - Related files (%1);; %1 に関連したファイル;; - Open Translation Files 翻訳ファイルを開く - - File saved. ファイルが保存されました。 - - - + <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). + <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist は、Qt アプリケーションの翻訳を行うツールです。</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + + Release リリース - Qt message files for released applications (*.qm) All files (*) リリースされたアプリケーション用の Qt メッセージファイル (*.qm) すべてのファイル (*) - - File created. ファイルが作成されました。 - - Printing... 印刷中... - Context: %1 コンテキスト: %1 - finished 完了 - unresolved 未解決 - obsolete このバージョンでは使われていない - - Printing... (page %1) 印刷中... (%1 ページ) - - Printing completed 印刷完了 - - Printing aborted 印刷中止 - Search wrapped. 検索が一通り終わりました。 - - - - - - - - - - Qt Linguist Qt Linguist - - Cannot find the string '%1'. 文字列 '%1' が見つかりません。 - Translate - 翻訳 - - - Translated %n entries to '%1' - - %n 項目を '%1' に翻訳しました - - - - Search And Translate in '%1' - Qt Linguist '%1' 内で検索して翻訳 - Qt Linguist - - - Translate - Qt Linguist 翻訳 - Qt Linguist - Translated %n entry(s) %n 項目が翻訳済みです - No more occurrences of '%1'. Start over? '%1' は、これ以上見つかりません。先頭に戻りますか? - Create New Phrase Book 新しいフレーズブックを作成 - Qt phrase books (*.qph) All files (*) Qt フレーズブック (*.qph) 全てのファイル (*) - Phrase book created. フレーズブックが作成されました。 - Open Phrase Book フレーズブックを開く - Qt phrase books (*.qph);;All files (*) Qt フレーズブック (*.qph);;すべてのファイル (*) - %n phrase(s) loaded. %n 項目のフレーズがロードされました。 - - - Add to phrase book フレーズブックに追加 - No appropriate phrasebook found. 適切なフレーズブックが見つかりません。 - Adding entry to phrasebook %1 フレーズブック %1 に項目を追加 - Select phrase book to add to 追加先のフレーズブックを選択してください - Unable to launch Qt Assistant (%1) Qt Assistant (%1) を起動できません - Version %1 バージョン %1 - Open Source Edition - オープンソース版 - - - This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.<br/><br/>You need a commercial Qt license for development of proprietary (closed source) applications. Please see <tt>http://qt.nokia.com/company/model.html</tt> for an overview of Qt licensing. - このバージョンの Qt Linguist は、 オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。<br/><br/>独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については <tt>http://qt.nokia.com/company/model.html</tt> をご覧ください。 - - - This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution. - このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。 - - - - <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) 2010 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> - <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist は、Qt アプリケーションの翻訳を行うツールです。</p><p>%2</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。</p><p>このプログラムは、「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。</p> - - - Do you want to save the modified files? 変更されたファイルを保存しますか? - Do you want to save '%1'? '%1' を保存しますか? - Qt Linguist[*] Qt Linguist[*] - %1[*] - Qt Linguist %1[*] - Qt Linguist - - No untranslated translation units left. 未訳項目は残っていません。 - &Window ウィンドウ(&W) - Minimize 最小化 - Ctrl+M Ctrl+M - Display the manual for %1. %1 のマニュアルを表示します。 - Display information about %1. %1 についての情報を表示します。 - &Save '%1' '%1' を保存する(&S) - Save '%1' &As... '%1' を名前を付けて保存(&A)... - Release '%1' '%1' をリリース - Release '%1' As... '%1' を名前を付けてリリース... - &Close '%1' '%1' を閉じる(&C) - - &Save 保存(&S) - - - Save &As... 名前を付けて保存(&A)... - - &Close 閉じる(&C) - Save All 全て保存 - - &Release All 全てリリース(&R) - Close All すべて閉じる - Translation File &Settings for '%1'... '%1' の翻訳ファイルの設定(&S)... - &Batch Translation of '%1'... '%1' の一括翻訳(&B)... - Search And &Translate in '%1'... '%1' 内を検索して翻訳(&T)... - Search And &Translate... 検索して訳語を置換(&T)... - Cannot read from phrase book '%1'. フレーズブック '%1' から読み出せません。 - Close this phrase book. このフレーズブックを閉じます。 - Enables you to add, modify, or delete entries in this phrase book. このフレーズブックで項目の追加、変更、削除ができます。 - Print the entries in this phrase book. このフレーズブックの項目を印刷します。 - Cannot create phrase book '%1'. フレーズブック '%1' を作成できません。 - Do you want to save phrase book '%1'? フレーズブック '%1' を保存しますか? - All すべて - Save As... 名前を付けて保存... - Save changes made to this Qt translation source file この Qt 翻訳ソースファイルに対して行われた変更を保存します。 - Save changes made to this Qt translation source file into a new file. Qt の翻訳ソースファイルで行われた変更を新しいファイルに保存します。 - &Search And Translate - 検索して訳語を置換(&S) - - - Search for some text in the translation source file. 翻訳ソースファイルからテキストを検索します。 - Select &All すべてを選択(&A) - Select the whole translation text. 訳のテキスト全部を選択します。 - Set whether or not to display translation guesses. 訳の推測を表示するかどうかを設定します。 - Set whether or not to display translation statistics. - 翻訳の統計を表示します。 - - - Shift+F1 Shift+F1 - Sort the items back in the same order as in the message file. 項目のソートの順序をメッセージファイルと同じものに戻します。 - &Statistics 統計(&S) - - Toggle checking that phrase suggestions are used. - フレーズの示唆を使うかどうかのチェックを切り替えます。 - - - Toggle validity checks of accelerators. - アクセラレータのチェックを有効にするかどうかを切り替えます。 - - - Toggle validity checks of ending punctuation. - 末尾の句読点のチェックを有効にするかどうかを切り替えます。 - - - Toggle validity checks of place markers. - "%" の数や番号のチェックを行うかどうかを切り替えます。 - - - &Toolbars ツールバー(&T) - Too&ls - ツール(&L) - - - - Translation 翻訳 - &Translation 翻訳(&T) - Translation File &Settings - 翻訳ファイルの設定(&S) - - - &Undo 元に戻す(&U) - Undo the last editing operation performed on the translation. - 最後に行った編集操作を取り消します。 - - - - Validation 検証 - V&alidation 検証(&A) - &View 表示(&V) - Vie&ws 表示(&W) - &What's This? ヒント(&W) - What's This? ヒント - &Open... 開く(&O)... - Save 保存 - &Print... 印刷(&P)... - Print a list of all the translation units in the current translation source file. 現在の Qt 翻訳ソースファイルの全ての訳語の一覧を印刷します。 - Undo the last editing operation performed on the current translation. 現在の翻訳ファイルで最後に行った編集操作を取り消します。 - &Find... 検索(&F)... - - Previous unfinished item. - 前の未訳の項目へ移動します。 - - - Move to the previous unfinished item. 前の未完了の項目へ移動します。 - - Next unfinished item. - 次の未訳の項目へ移動します。 - - - Move to the next unfinished item. 次の未完了の項目へ移動します。 - - Move to previous item. - 前の項目へ移動します。 - - - Move to the previous item. 前の項目へ移動します。 - - Next item. - 次の項目へ移動します。 - - - Move to the next item. 次の項目へ移動します。 - - Mark item as done and move to the next unfinished item. - この項目に完了のマークをつけ、次の未完了の項目へ移動します。 - - - Mark this item as done and move to the next unfinished item. この項目に完了のマークをつけ、次の未完了の項目へ移動します。 - Copy from source text ソーステキストからコピー - - Toggle the validity check of accelerators. - アクセラレータのチェックを有効にするかどうかを切り替えます。 - - - 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. ソーステキストと訳語のアクセラレータの個数が同じか否かのチェックを有効にするかどうかを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージは表示されます。 - - Toggle the validity check of ending punctuation. - 末尾の句読点のチェックを有効にするかどうかを切り替えます。 - - - Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window. 末尾の句読点のチェックを有効にするかどうかを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージが表示されます。 - Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window. フレーズの示唆を使うかどうかのチェックを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージが表示されます。 - - Toggle the validity check of place markers. - "%" の数や番号のチェックを行うかどうかを切り替えます。 - - - 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. ソーステキストと訳語の"%1"や"%2"等のプレースマーカーの整合が取れているか否かのチェックを行うかどうかを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージは表示されます。 - &New Phrase Book... 新しいフレーズブック(&N)... - &Open Phrase Book... フレーズブックを開く(&O)... - &Reset Sorting ソート順序をリセット(&R) - Display translation statistics. 翻訳の統計を表示します。 - &Search And Translate... 検索して訳語を置換(&S)... - Close 閉じる - &Close All 全て閉じる(&C) - Ctrl+W Ctrl+W - - &Batch Translation... 一括翻訳(&B)... - - Translation File &Settings... 翻訳ファイルの設定(&S)... - &Add to Phrase Book フレーズブックに追加(&A) - Ctrl+T Ctrl+T - Ctrl+J Ctrl+J - Ctrl+Shift+J Ctrl+Shift+J - - - MessageEditor - backspace - バックスペース + Previous unfinished item + 前の未完了の項目 - bell - ベル + Next unfinished item + 次の未訳の項目 - carriage return - 行頭復帰 + Move to previous item + 前の項目へ移動 - Guess - 推測 + Next item + 次の項目 - Guess (%1) - 推測(%1) + Mark item as done and move to the next unfinished item + この項目に完了のマークをつけ、次の未訳の項目へ移動します + + + Copies the source text into the translation field + ソーステキストを訳の欄へコピーします + + + Toggle the validity check of accelerators + アクセラレータのチェックを有効にするかどうかを切り替えます + + + Toggle the validity check of ending punctuation + 末尾の句読点のチェックを有効にするかどうかを切り替えます + + + Toggle checking that phrase suggestions are used + フレーズの示唆を使うかどうかのチェックを切り替えます - new line - 改行 + Toggle the validity check of place markers + "%" の数や番号のチェックを行うかどうかを切り替えます - new page - 改ページ + Display information about the Qt toolkit by Nokia. + Nokia の Qt ツールキットについての情報を表示します。 - Phrases - フレーズ + 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. + リリースされたアプリケーションにふさわしい Qt メッセージファイルを現在のメッセージファイルから作成します。ファイル名は、TS ファイルの名前から自動的に決められます。 - Phrases and guesses: - フレーズと推測: + Length Variants + 単数形・複数形 + + + MessageEditor - sp) - スペース) + + This is the right panel of the main window. + - tab - タブ + Russian + ロシア語 - German - German + ドイツ語 - Japanese - Japanese + 日本語 - French - French + フランス語 - Polish - Polish + ポーランド語 - Chinese - Chinese + 中国語 - Source text ソーステキスト - Source text (Plural) ソーステキスト(複数) - This area shows the plural form of the source text. この領域は複数のソーステキストを表示します。 - Developer comments 開発者のコメント - This area shows a comment that may guide you, and the context in which the text occurs. この領域は、手助けとなるコメントと、テキストが出てくるコンテキストを表示します。 - Here you can enter comments for your own use. They have no effect on the translated applications. ここはあなたが自分自身の為にコメントを入力できます。翻訳されたアプリケーションには何の影響も与えません。 - %1 translation (%2) %1 翻訳 (%2) - This is where you can enter or modify the translation of the above source text. ソーステキストの訳を入力したり変更したりできるところです。 - %1 translation %1 訳 - %1 translator comments %1 翻訳者のコメント - This area shows the source text. この領域はソーステキストを表示します。 - This is where you can enter or modify the translation of some source text. - ソーステキストの訳を入力したり変更したりできるところです。 - - - This whole panel allows you to view and edit the translation of some source text. このパネル全体でソーステキストの訳を見たり編集したりすることができます。 - Translation (%1) - 訳 (%1) - - - '%1' Line: %2 '%1' @@ -1815,185 +1254,117 @@ Line: %2 MessageModel - Context - コンテキスト - - - Done - 完了 - - - Items - 項目数 - - - Completion status for %1 %1 の翻訳完了状況 - <file header> <ファイル ヘッダー> - <context comment> <コンテキスト コメント> - <unnamed context> <無名のコンテキスト> - MessagesTreeView - - Done - 完了 - - - MsgEdit - This is the right panel of the main window. - PageCurl - - Next unfinished phrase - 次の未訳のフレーズ - + PhraseBookBox - Previous unfinished phrase - 前の未訳のフレーズ + (New Entry) + (新しい項目) - - - PhraseBookBox - %1[*] - Qt Linguist %1[*] - Qt Linguist - Cannot save phrase book '%1'. フレーズブック '%1' を保存できません。 - Click here to add the phrase to the phrase book. フレーズブックにフレーズを追加するにはここをクリックしてください。 - &New Entry 新しい項目(&N) - Click here to remove the entry from the phrase book. フレーズブックからフレーズを消去するにはここをクリックしてください。 - &Remove Entry 項目を削除(&R) - Settin&gs... 設定(&G)... - Click here to close this window. このウィンドウを閉じるにはここをクリックします。 - Click here to remove the phrase from the phrase book. - フレーズブックからフレーズを消去するにはここをクリックしてください。 - - - Click here to save the changes made. 変更を保存するにはここをクリックしてください。 - Close 閉じる - &Definition: 定義(&D): - Edit Phrase Book フレーズブックを編集 - &New Phrase - 新しいフレーズ(&N) - - - Qt Linguist Qt Linguist - &Remove Phrase - フレーズを消去(&R) - - - &Save 保存(&S) - S&ource phrase: ソースフレーズ(&S): - This window allows you to add, modify, or delete entries in a phrase book. このウィンドウでフレーズブックにフレーズを追加、変更、削除できます。 - This is a definition for the source phrase. ソースフレーズの定義です。 - This is the phrase in the source language. ソースの言語のフレーズです。 - This is the phrase in the target language corresponding to the source phrase. ソースフレーズに対応する翻訳先言語のフレーズです。 - This window allows you to add, modify, or delete phrases in a phrase book. - このウィンドウでフレーズブックにフレーズを追加、変更、削除できます。 - - - &Translation: 訳(&T): - Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox. @@ -2002,17 +1373,14 @@ Line: %2 PhraseModel - Definition 定義 - Source phrase ソースフレーズ - Translation 翻訳 @@ -2020,22 +1388,18 @@ Line: %2 PhraseView - Insert 挿入 - Edit 編集 - Guess (%1) 推測(%1) - Guess 推測 @@ -2043,573 +1407,103 @@ Line: %2 QObject - Compiled Qt translations コンパイル済み Qt 翻訳ファイル - Translation files (%1);; 翻訳ファイル (%1);; - All files (*) すべてのファイル (*) - - - - - - - Qt Linguist Qt Linguist - - C++ source files - C++ ソースファイル - - - - Java source files - Java ソースファイル - - - GNU Gettext localization files GNU Gettext 日本語化ファイル - - Qt Script source files - Qt スクリプト ソースファイル + GNU Gettext localization template files + GNU Gettext 日本語化テンプレートファイル - Qt translation sources (format 1.1) Qt 翻訳ソース (1.1形式) - Qt translation sources (format 2.0) Qt 翻訳ソース (2.0形式) - Qt translation sources (latest format) Qt 翻訳ソース (最新の形式) - - Qt Designer form files - Qt デザイナ フォームファイル - - - - Qt Jambi form files - Qt Jambi フォームファイル - - - XLIFF localization files XLIFF 日本語化ファイル - Qt Linguist 'Phrase Book' Qt Linguist 'フレーズ ブック' - QtWindowListMenu - - Cascade - カスケード - - - Close - 閉じる - - - Close All - すべて閉じる - - - Tile - タイル - - - - SortedMessagesModel - - Source text - ソーステキスト - - - SourceCodeView - <i>Source code not available</i> <i>ソース コードは使用できません</i> - <i>File %1 not available</i> <i>ファイル %1 が使用できません</i> - <i>File %1 not readable</i> <i>ファイル %1 が読み込めません</i> - SourceTextEdit - - &Copy - コピー(&C) - - - Ctrl+A - Ctrl+A - - - Ctrl+C - Ctrl+C - - - Select &All - すべてを選択(&A) - - - Statistics - 0 0 - Characters (with spaces): 文字(スペースつき): - Characters: 文字: - &Close - 閉じる(&C) - - - Source ソース - Statistics 統計 - Translation 翻訳 - Words: 語: - Close 閉じる - TrPreviewTool + TrWindow - <No Translation> - <翻訳ファイルなし> - - - About - について - - - Could not load form file(s): - - フォームファイルをロードできませんでした: - - - - Could not load translation file: - - 翻訳ファイルをロードできませんでした: - - - - Could not reload translation file(s): - - 翻訳ファイルをリロードできませんでした: - - - - File - ファイル - - - Load Translation - 翻訳ファイルをロード - - - Open Forms - フォームを開く - - - Qt Translation Preview Tool: Warning - Qt 翻訳プレビューツール: 警告 - - - Translation files (*.qm);;All files (*.*) - 翻訳ファイル (*.qm);;全てのファイル (*.*) - - - User interface form files (*.ui);;All files (*.*) - ユーザインタフェースファイル (*.ui);;全てのファイル (*.*) - - - Windows - ウィンドウ - - - - TrPreviewToolClass - - About - について - - - About Qt - Qt について - - - &Close - 閉じる(&C) - - - F5 - F5 - - - &File - ファイル(&F) - - - Forms - フォーム - - - &Help - ヘルプ(&H) - - - &Load Translation... - 翻訳ファイルをロード(&L)... - - - &Open Form... - フォームを開く(&O)... - - - Qt Translation Preview Tool - Qt 翻訳プレビューツール - - - &Reload Translations - 翻訳ファイルをリロード(&R) - - - &View - 表示(&V) - - - &Views - 表示(&V) - - - - TrWindow - - Open Source Edition - オープンソース版 - - - %1 - %2 - %1 - %2 - - - %1 - %2%3 - %1 - %2%3 - - - %n phrase(s) loaded. - - %n 項目のフレーズがロードされました。 - - - - %n source phrase(s) loaded. - - %n 個のソースフレーズがロードされました。 - - - - <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) 2010 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> - <center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist は、Qt アプリケーションの翻訳を行うツールです。</p><p>%2</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。</p><p>このプログラムは、「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。</p> - - - A file called '%1' already exists. Please choose another name. - '%1' というファイルはすでに存在します。別の名前を選んでください。 - - - A phrase book suggestion for '%1' was ignored. - '%1' についてのフレーズブックの示唆を無視しています。 - - - Accelerator possibly missing in translation. - 訳にアクセラレータが欠けています。 - - - Accelerator possibly superfluous in translation. - 訳に余分なアクセラレータがついています。 - - - Allow you to add, modify, or delete phrases of this phrase book. - フレーズブックにフレーズを追加、変更、削除できます。 - - - Cannot create phrase book '%1'. - フレーズブック '%1' を作成できません。 - - - Cannot find the string '%1'. - 文字列 '%1' が見つかりません。 - - - Cannot open '%1'. - '%1' をオープンできません。 - - - Cannot read from phrase book '%1'. - フレーズブック '%1' から読み出せません。 - - - Cannot save '%1'. - '%1' を保存できません。 - - - Close this phrase book. - このフレーズブックを閉じます。 - - - Context - コンテキスト - - - Context: %1 - コンテキスト: %1 - - - Create New Phrase Book - 新しいフレーズブックを作成 - - - Ctrl+M - Ctrl+M - - - Display information about %1. - %1 についての情報を表示します。 - - - Display the manual for %1. - %1 のマニュアルを表示します。 - - - Do you want to save '%1'? - '%1' を保存しますか? - - - Edit - 編集 - - - File - ファイル - - - File created. - ファイルが作成されました。 - - - File saved. - ファイルが保存されました。 - - - finished - 完了 - - - Help - ヘルプ - - - Loading... - ロードしています... - - - Minimize - 最小化 - - - MOD - 変更されています - - - No untranslated phrases left. - 未訳のフレーズは残っていません。 - - - obsolete - このバージョンでは使われていない - - - Open Phrase Book - フレーズブックを開く - - - Phrase book created. - フレーズブックが作成されました。 - - - Print the entries of the phrase book. - フレーズブックの見出し語を印刷します。 - - - Printing aborted - 印刷中止 - - - Printing completed - 印刷完了 - - - Printing... - 印刷中... - - - Printing... (page %1) - 印刷中... (%1 ページ) - - - Qt Linguist - Qt Linguist - - - Qt Linguist by Trolltech - Trolltech の Qt Linguist - - - Qt message files for released applications (*.qm) -All files (*) - リリースされたアプリケーション用の Qt メッセージファイル (*.qm) -すべてのファイル (*) - - - Qt phrase books (*.qph) -All files (*) - Qt フレーズブック (*.qph) -すべてのファイル (*) - - - Qt translation source (*.ts) -All files (*) - Qt 翻訳ソースファイル (*.ts) -すべてのファイル (*) - - - Release - リリース - - - Search wrapped. - 検索が一通り終わりました。 - - - There was a problem in the preparation of form preview. - フォームのプレビューの準備中に問題が発生しました。 - - - This panel lists the source contexts. - このパネルではソースのコンテキストを一覧表示しています。 - - - This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution. - このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。 - - - This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.<br/><br/>You need a commercial Qt license for development of proprietary (closed source) applications. Please see <tt>http://qt.nokia.com/company/model.html</tt> for an overview of Qt licensing. - このバージョンの Qt Linguist は、 オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。<br/><br/>独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については <tt>http://qt.nokia.com/company/model.html</tt> をご覧ください。 - - - Translate - 翻訳 - - - Translated %n entries to '%1' - - %n 項目を '%1' に翻訳しました - - - - Translation - - - - Translation does not end with the same punctuation as the source text. - 訳がソーステキストと同じ句読点で終わっていません。 - - - Translation does not refer to the same place markers as in the source text. - 訳語にはソーステキストと同じ数の "%" がありません。 - - - unresolved - 未解決 - - - Validation - 検証 - - - Version %1 - バージョン %1 - - - &Window - ウィンドウ(&W) - - - This is the application's main window. @@ -2618,174 +1512,87 @@ All files (*) TranslateDialog - Cancel キャンセル - Click here to close this window. このウィンドウを閉じるにはここをクリックします。 - Click here to find the next occurrence of the text you typed in. 入力したテキストが次に出てくる箇所を見つけるにはここをクリックします。 - Find Next 次を検索 - Find &source text: ソーステキストを検索(&S): - Mark new translation as &finished 新しく翻訳した項目を完了にする(&F) - Match &case 大文字・小文字の区別(&C) - Qt Linguist - Qt Linguist - - - Search options 検索オプション - Texts such as 'TeX' and 'tex' are considered as different when checked. 選択すると、たとえば 'TeX' と 'tex' は異なるものと見なされます。 - This window allows you to search for some text in the translation source file. このウィンドウで翻訳ソースファイル内のテキストを検索できます。 - Translate 翻訳 - Translate All すべて翻訳 - &Translate to: 訳語(&T): - Type in the text to search for. 検索するテキストを入力してください。 - TranslationSettings - - Country - - - - Language - 言語 - - - Qt Linguist - Translation file settings - Qt Linguist - 翻訳ファイルの設定 - - - Target language - 翻訳先の言語 - - - TranslationSettingsDialog - Any Country 指定しない - - Settings for '%1' - Qt Linguist '%1' の設定 - Qt Linguist - Source language 翻訳元の言語 - Language 言語 - Country/Region 国/地域 - Target language 翻訳先の言語 - - databaseTranslationDialog - - &Cancel - キャンセル(&C) - - - Move down - 下に移動 - - - Move up - 上に移動 - - - Only translate entries with no translation - 訳語がない項目だけを翻訳する - - - Options - オプション - - - Phrase book preference - フレーズブックの優先度 - - - Qt Linguist - Batch Translation - Qt Linguist - 一括翻訳 - - - &Run - 実行(&R) - - - Set translated entries to finished - 翻訳された項目を完了にする - - - The batch translator will search through the selected phrasebooks in the order given above. - 一括翻訳機能は、上記で指定された順にフレーズブックを検索します。 - - diff --git a/translations/qt_help_ja.ts b/translations/qt_help_ja.ts index 5702cfd..2a725ca 100644 --- a/translations/qt_help_ja.ts +++ b/translations/qt_help_ja.ts @@ -1,355 +1,318 @@ - + QCLuceneResultWidget - Search Results - + 検索結果 - Note: - + 注: - The search results may not be complete since the documentation is still being indexed! - + ドキュメントの索引の作成が終了していないため、検索結果は不完全な可能性があります! - Your search did not match any documents. - + その語句はどのドキュメントにも見つかりません。 - (The reason for this might be that the documentation is still being indexed.) - + (ドキュメントの索引の作成が終了していないためかもしれません。) + + + + QHelp + + Untitled + タイトルなし QHelpCollectionHandler - - The collection file is not set up yet! - + The collection file '%1' is not set up yet! + コレクションファイル '%1' がまだ設定されていません! - Cannot load sqlite database driver! - + SQLite データベースドライバがロードできません! - - Cannot open collection file: %1 - + コレクションファイルをオープンできません: %1 - Cannot create tables in file %1! - + ファイル %1 にテーブルを作成できません! - - The specified collection file already exists! - + The collection file '%1' already exists! + コレクションファイル '%1' が既に存在します! - - Cannot create directory: %1 - + Unknown filter '%1'! + 不明なフィルタ '%1'! - - Cannot copy collection file: %1 - + Invalid documentation file '%1'! + 無効なドキュメントファイル '%1'! - - Unknown filter! - + Cannot register namespace '%1'! + ネームスペース '%1' を登録できません! - - Cannot register filter %1! - + Cannot open database '%1' to optimize! + 最適化用にデータベース '%1' をオープンできません! - - Cannot open documentation file %1! - + Cannot create directory: %1 + ディレクトリを作成できません: %1 - - Invalid documentation file! - + Cannot copy collection file: %1 + コレクションファイルをコピーできません: %1 - - The namespace %1 was not registered! - + Cannot register filter %1! + フィルタ %1 を登録できません! - - Namespace %1 already exists! - + Cannot open documentation file %1! + ドキュメントファイル %1 をオープンできません! - - Cannot register namespace! - + The namespace %1 was not registered! + ネームスペース %1 は登録されていません! - - Cannot open database to optimize! - + Namespace %1 already exists! + ネームスペース %1 は既に存在します! QHelpDBReader - Cannot open database '%1' '%2': %3 - + 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 + データベース '%1' '%2' がオープンできません: %3 QHelpEngineCore - - The specified namespace does not exist! - + Cannot open documentation file %1: %2! + ドキュメントファイル %1 をオープンできません: %2! - - - QHelpEngineCorePrivate - - Cannot open documentation file %1: %2! - + The specified namespace does not exist! + そのネームスペースは存在しません! QHelpGenerator - Invalid help data! - + 無効なヘルプデータ! - No output file name specified! - + 出力ファイル名が指定されていません! - Building up file structure... - + ファイル構造の構築中... - The file %1 cannot be overwritten! - + ファイル %1 は上書きできません! - Cannot open data base file %1! - + データベースファイル %1 をオープンできません! - Cannot register namespace %1! - + ネームスペース %1 を登録できません! - Insert custom filters... - + カスタムフィルターの登録中... - Insert help data for filter section (%1 of %2)... - + フィルターにヘルプデータを登録中 (%1 / %2)... - Documentation successfully generated. - + ドキュメントの作成に成功しました。 - Some tables already exist! - + テーブルが既に存在します! - Cannot create tables! - + テーブルが作成できません! - Cannot register virtual folder! - + 仮装フォルダを登録できません! - Insert files... - + ファイルの挿入... + + + The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it. + 参照されるファイル %1 は (%2) のサブディレクトリに存在する必要があります。スキップします。 - The file %1 does not exist! Skipping it. - + ファイル %1 が存在しません! スキップします。 - Cannot open file %1! Skipping it. - + ファイル %1 をオープンできません! スキップします。 - The filter %1 is already registered! - + フィルタ %1 は既に登録されています! - Cannot register filter %1! - + フィルタ %1 を登録できません! - Insert indices... - + 索引の挿入... - Insert contents... - + コンテンツの挿入... - Cannot insert contents! - + コンテンツを挿入できません! - Cannot register contents! - + コンテンツを登録できません! + + + File '%1' does not exist. + ファイル '%1' が存在しません。 + + + File '%1' cannot be opened. + ファイル '%1' をオープンできません。 + + + File '%1' contains an invalid link to file '%2' + ファイル '%1' にファイル '%2' への無効なリンクが見つかりました + + + Invalid links in HTML files. + HTML に無効なリンクが見つかりました。 - QHelpSearchQueryWidget + QHelpProject - - Search for: - + Unknown token. + 不明なトークン。 - - Search - + Unknown token. Expected "QtHelpProject"! + "QtHelpProject" があるべき場所に不明なトークン! - - Advanced search - + Error in line %1: %2 + %1 行でエラー: %2 - - words <B>similar</B> to: - + Virtual folder has invalid syntax. + 仮装フォルダに無効な構文があります。 - - <B>without</B> the words: - + Namespace has invalid syntax. + ネームスペースに無効な構文があります。 - - with <B>exact phrase</B>: - + Missing namespace in QtHelpProject. + QtHelpProject にネームスペースがありません。 - - with <B>all</B> of the words: - + Missing virtual folder in QtHelpProject + QtHelpProject に仮装フォルダがありません - - with <B>at least one</B> of the words: - + Missing attribute in keyword at line %1. + %1 行目のキーワードに属性がありません。 - - - QHelpSearchResultWidget - - 0 - 0 of 0 Hits - + The input file %1 could not be opened! + 入力ファイル %1 がオープンできません! - QHelpSearchResultWidgetPrivate + QHelpSearchQueryWidget - - %1 - %2 of %3 Hits - + Search for: + 検索キーワード: - - - QObject - - Untitled - + Previous search + 前の検索結果 - - Unknown token. - + Next search + 次の検索結果 - - Unknown token. Expected "QtHelpProject"! - + Search + 検索 - - Error in line %1: %2 - + Advanced search + 詳細な検索 - - A virtual folder must not contain a '/' character! - + words <B>similar</B> to: + <b>類似語</b>: - - A namespace must not contain a '/' character! - + <B>without</B> the words: + キーワードを<b>含めない</b>: - - Missing namespace in QtHelpProject. - + with <B>exact phrase</B>: + <b>フレーズ</b>を含む: - - Missing virtual folder in QtHelpProject - + with <B>all</B> of the words: + <b>すべての</b>キーワードを含む: - - Missing attribute in keyword at line %1. - + with <B>at least one</B> of the words: + <b>いずれか</b>のキーワードを含む: + + + + QHelpSearchResultWidget + + %1 - %2 of %n Hits + + %1 - %2 / %n 件 + - - The input file %1 could not be opened! - + 0 - 0 of 0 Hits + 0 - 0 / 0 件 diff --git a/translations/qt_ja.ts b/translations/qt_ja.ts index e6f92b7..0812a64 100644 --- a/translations/qt_ja.ts +++ b/translations/qt_ja.ts @@ -2,92 +2,78 @@ + CloseButton + + Close Tab + ToolTip + タブを閉じる + + + + FakeReply + + Fake error ! + 疑似エラー! + + + Invalid URL + 無効なURL + + + MAC_APPLICATION_MENU - Services サービス - Hide %1 %1を隠す - Hide Others ほかを隠す - Show All すべてを表示 - Preferences... 環境設定... - Quit %1 %1 を終了 - About %1 %1 について - CloseButton - - - Close Tab - ToolTip - タブを閉じる - - - - PPDOptionsModel - - Name - 名前 - - - Value - - - - Phonon:: - Notifications 通知 - Music 音楽 - Video 動画 - Communication コミュニケーション - Games ゲーム - Accessibility アクセシビリティ @@ -95,31 +81,30 @@ Phonon::AudioOutput - <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> <html>オーディオ再生デバイス<b>%1</b>が動作しません。<br/><b>%2</b>を使用します。</html> - <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> <html>より高いパフォーマンスを得られるオーディオデバイス <b>%1</b> が使用可能となったので、使用します。</html> - Revert back to device '%1' デバイス '%1' に戻す + + <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> + <html>より高いパフォーマンスを得られるかこのストリーム用に指定されているオーディオデバイス <b>%1</b> を使用します。</html> + Phonon::Gstreamer::Backend - Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled. 警告: gstreamer0.10-plugins-good がインストールされていません。幾つかの動画機能は使用できません。 - Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled 警告: GStreamer plugin がインストールされていません。すべての音声、動画機能は使用できません @@ -128,72 +113,358 @@ Phonon::Gstreamer::MediaObject - Cannot start playback. -Check your Gstreamer installation and make sure you +Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed. 再生できません。 -Gstreamer と libgstreamer-plugins-base が正しくインストールされているか確認してください。 +Gstreamer がインストールされているか確認してください。 +libgstreamer-plugins-base はインストールされていますか。 + + + Missing codec helper script assistant. + コーデックヘルパースクリプトによる支援が受けられません。 + + + Plugin codec installation failed for codec: %0 + コーデックプラグインのインストールに失敗しました: %0 - A required codec is missing. You need to install the following codec(s) to play this content: %0 必要なコーデックがみつかりません。このコンテンツを再生するためには、以下のコーデックをインストールする必要があります: %0 - - - - - - - - Could not open media source. メディアソースを開くことができません。 - Invalid source type. 無効なソースの形式です。 - Could not locate media source. メディアソースがみつかりません。 - Could not open audio device. The device is already in use. オーディオデバイスを開くことができません。デバイスは既に他のプロセスにより使用されています。 - Could not decode media source. メディアソースを開くことができません。見つからないか、未知の形式です。 + Phonon::MMF + + Audio Output + オーディオ出力 + + + The audio output device + オーディオ出力デバイス + + + No error + エラーはありません + + + Not found + 見つかりませんでした + + + Out of memory + メモリが足りません + + + Not supported + サポートされていません + + + Overflow + オーバーフロー + + + Underflow + アンダーフロー + + + Already exists + 既に存在します + + + Path not found + パスが見つかりません + + + In use + 使用中 + + + Not ready + 準備不足 + + + Access denied + アクセスできません + + + Could not connect + 接続できませんでした + + + Disconnected + 切断されました + + + Permission denied + 許可されていません + + + Insufficient bandwidth + 帯域幅が足りません + + + Network unavailable + ネットワークが見つかりません + + + Network communication error + ネットワークの通信エラー + + + Streaming not supported + ストリーミングはサポートされていません + + + Server alert + サーバの警告 + + + Invalid protocol + 無効なプロトコル + + + Invalid URL + 無効なURL + + + Multicast error + マルチキャストエラー + + + Proxy server error + プロキシーサーバのエラー + + + Proxy server not supported + プロキシーサーバはサポートされていません + + + Audio output error + オーディオ出力エラー + + + Video output error + ビデオ出力エラー + + + Decoder error + デコーダエラー + + + Audio or video components could not be played + オーディオもしくはビデオコンポーネントが再生できませんでした + + + DRM error + DRMエラー + + + Unknown error (%1) + 未知のエラー (%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + 再生の準備ができていません + + + Error opening file + ファイルのオープン時にエラーが発生しました + + + Error opening URL + URL のオープン時にエラーが発生しました + + + Error opening resource + リソースのオープン時にエラーが発生しました + + + Error opening source: resource not opened + ソースのオープン時にエラーが発生しました: リソースがオープンされていません + + + Setting volume failed + ボリュームの設定に失敗しました + + + Loading clip failed + クリップのロードに失敗しました + + + Playback complete + 再生が終了しました + + + + Phonon::MMF::AbstractVideoPlayer + + Pause failed + 一時停止に失敗しました + + + Seek failed + シークに失敗しました + + + Getting position failed + 再生位置の取得に失敗しました + + + Opening clip failed + クリップのオープンに失敗しました + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Hz + + + + Phonon::MMF::AudioPlayer + + Getting position failed + 再生位置の取得に失敗しました + + + + Phonon::MMF::DsaVideoPlayer + + Video display error + ビデオ表示のエラー + + + + Phonon::MMF::EffectFactory + + Enabled + 許可 + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime. + + + + Decay time (ms) + DecayTime: Time over which reverberation is diminished. + + + + Density (%) + 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. + + + + Diffusion (%) + 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. + + + + Reflections delay (ms) + ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection. + + + + Reflections level (mB) + ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude. + + + + Reverb delay (ms) + ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation. + + + + Reverb level (mB) + ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude. + + + + Room HF level + RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound. + + + + Room level (mB) + RoomLevel: Master volume control for all reflected sound. + + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + ソースのオープン時にエラーが発生しました: ソースはサポートされていないタイプです + + + Error opening source: resource is compressed + ソースのオープン時にエラーが発生しました: リソースが圧縮されています + + + Error opening source: resource not valid + ソースのオープン時にエラーが発生しました: 不正なリソースです + + + Error opening source: media type could not be determined + ソースのオープン時にエラーが発生しました: メディアのタイプが不明です + + + + Phonon::MMF::StereoWidening + + Level (%) + レベル (%) + + + + Phonon::MMF::SurfaceVideoPlayer + + Video display error + ビデオ表示のエラー + + + Phonon::VolumeSlider - - - - Volume: %1% 音量: %1% - - - Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% スライダを用いて音量を指定してください。左端が0%、右端が%1%になります - Muted ミュート @@ -201,12 +472,10 @@ Gstreamer と libgstreamer-plugins-base が正しくインストールされて Q3Accel - %1, %2 not defined %1, %2 は定義されていません - Ambiguous %1 not handled 曖昧な %1 は扱えません @@ -214,27 +483,22 @@ Gstreamer と libgstreamer-plugins-base が正しくインストールされて Q3DataTable - True - False - Insert 挿入 - Update アップデート - Delete 削除 @@ -242,328 +506,250 @@ Gstreamer と libgstreamer-plugins-base が正しくインストールされて Q3FileDialog - All Files (*.*) すべてのファイル(*.*) - Open オープン - Select a Directory ディレクトリを選択 - Copy or Move a File ファイルをコピーまたは移動 - Read: %1 読み込み: %1 - - Write: %1 書き込み: %1 - - Cancel キャンセル - - - - All Files (*) すべてのファイル(*) - Name 名前 - Size サイズ - Type タイプ - Date 日付 - Attributes 属性 - - &OK OK(&O) - Look &in: 検索する場所(&I): - - - File &name: ファイル名(&N): - File &type: ファイルタイプ(&T): - Back 戻る - One directory up 1つ上のディレクトリへ移動 - Create New Folder 新しいフォルダの作成 - List View 一覧表示 - Detail View 詳細表示 - Preview File Info ファイル情報のプレビュー - Preview File Contents ファイルの内容のプレビュー - Read-write 読み込み/書き込み - Read-only 読み込み専用 - Write-only 書き込み専用 - Inaccessible アクセス不可 - Symlink to File ファイルへのシンボリックリンク - Symlink to Directory ディレクトリへのシンボリックリンク - Symlink to Special スペシャルファイルへのシンボリックリンク - File ファイル - Dir ディレクトリ - Special スペシャル - - - Open オープン - - Save As 名前を付けて保存 - - - &Open オープン(&O) - - &Save 保存(&S) - &Rename 名前の変更(&R) - &Delete 削除(&D) - R&eload リロード(&E) - Sort by &Name 名前順にソート(&N) - Sort by &Size サイズ順にソート(&S) - Sort by &Date 日付順にソート(&D) - &Unsorted ソート解除(&U) - Sort ソート - Show &hidden files 隠しファイルの表示(&H) - the file ファイル - the directory ディレクトリ - the symlink シンボリックリンク - Delete %1 %1 の削除 - <qt>Are you sure you wish to delete %1 "%2"?</qt> <qt>%1 "%2" を削除しますか?</qt> - &Yes はい(&Y) - &No いいえ(&N) - New Folder 1 新しいフォルダ1 - New Folder 新しいフォルダ - New Folder %1 新しいフォルダ %1 - Find Directory ディレクトリの検索 - - Directories ディレクトリ - Directory: ディレクトリ: - - Error エラー - %1 File not found. Check path and filename. @@ -575,29 +761,24 @@ Check path and filename. Q3LocalFs - - Could not read directory %1 ディレクトリを読み込めませんでした %1 - Could not create directory %1 ディレクトリを作成できませんでした %1 - Could not remove file or directory %1 ファイルまたはディレクトリを削除できませんでした %1 - Could not rename %1 to @@ -609,14 +790,12 @@ to へ - Could not open %1 開けませんでした %1 - Could not write %1 書き込めませんでした @@ -626,12 +805,10 @@ to Q3MainWindow - Line up 整列 - Customize... カスタマイズ... @@ -639,7 +816,6 @@ to Q3NetworkProtocol - Operation stopped by the user 操作がユーザによって停止されました @@ -647,8 +823,6 @@ to Q3ProgressDialog - - Cancel キャンセル @@ -656,28 +830,22 @@ to Q3TabDialog - - OK OK - Apply 適用 - Help ヘルプ - Defaults デフォルト - Cancel キャンセル @@ -685,38 +853,30 @@ to Q3TextEdit - &Undo 元に戻す(&U) - &Redo やり直す(&R) - Cu&t 切り取り(&T) - &Copy コピー(&C) - &Paste 貼り付け(&P) - Clear 消去 - - Select All すべてを選択 @@ -724,67 +884,54 @@ to Q3TitleBar - System システム - Restore up 元に戻す - Minimize 最小化 - Restore down 元に戻す - Maximize 最大化 - Close 閉じる - Contains commands to manipulate the window ウィンドウを操作するコマンドを含みます - - Puts a minimized back to normal + Puts a minimized window back to normal 最小化されたウィンドウを元のサイズに戻します - Moves the window out of the way ウィンドウを隠します - Puts a maximized window back to normal 最大化されたウィンドウを元のサイズに戻します - Makes the window full screen ウィンドウをフルスクリーンにします - Closes the window ウィンドウを閉じます - Displays the name of the window and contains controls to manipulate it ウィンドウの名前と、ウィンドウを操作するコントロールを表示します @@ -792,7 +939,6 @@ to Q3ToolBar - More... その他... @@ -800,51 +946,38 @@ to Q3UrlOperator - - - The protocol `%1' is not supported プロトコル '%1' はサポートされていません - The protocol `%1' does not support listing directories プロトコル '%1' はディレクトリのリスティングをサポートしていません - The protocol `%1' does not support creating new directories プロトコル '%1' は新しいディレクトリの作成をサポートしていません - The protocol `%1' does not support removing files or directories プロトコル '%1' はファイルまたはディレクトリの削除をサポートしていません - The protocol `%1' does not support renaming files or directories プロトコル '%1' はファイルまたはディレクトリの名前の変更をサポートしていません - The protocol `%1' does not support getting files プロトコル '%1' はファイルの取得をサポートしていません - The protocol `%1' does not support putting files プロトコル '%1' はファイルの送信をサポートしていません - - The protocol `%1' does not support copying or moving files or directories プロトコル '%1' はファイルまたはディレクトリのコピーまたは移動をサポートしていません - - (unknown) (不明) @@ -852,27 +985,22 @@ to Q3Wizard - &Cancel キャンセル(&C) - < &Back < 戻る(&B) - &Next > 次へ(&N) > - &Finish 完了(&F) - &Help ヘルプ(&H) @@ -880,45 +1008,31 @@ to QAbstractSocket - - - - Host not found ホストが見つかりませんでした - - - Connection refused 接続が拒否されました - Connection timed out 接続がタイムアウトしました - - - Operation on socket is not supported 抽象ソケットクラスでのソケットのエラー このソケットへのこの操作はサポートされていません - Socket operation timed out ソケット操作がタイムアウトしました - Socket is not connected ソケットが接続されていません - Network unreachable ネットワークへ到達できません @@ -926,45 +1040,44 @@ to QAbstractSpinBox - &Step up 上(&S) - Step &down 下(&D) - &Select All すべてを選択(&S) + QAccessibleButton + + Press + 押す + + + QApplication - Activate アクティブに - Activates the program's main window メインウィンドウをアクティブにする - Executable '%1' requires Qt %2, found Qt %3. 実行可能ファイル '%1' には Qt %2 が必要です。Qt %3 が見つかりました。 - Incompatible Qt Library Error 互換性のないQtライブラリエラー - QT_LAYOUT_DIRECTION 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. LTR @@ -973,22 +1086,18 @@ to QAxSelect - Select ActiveX Control ActiveX Control を選択 - OK OK - &Cancel キャンセル(&C) - COM &Object: COM オブジェクト(&O): @@ -996,17 +1105,14 @@ to QCheckBox - Uncheck 選択解除 - Check 選択 - Toggle 反転 @@ -1014,97 +1120,65 @@ to QColorDialog - Hu&e: 色相(&E): - &Sat: 彩度(&S): - &Val: 明度(&V): - &Red: 赤(&R): - &Green: 緑(&G): - Bl&ue: 青(&U): - A&lpha channel: アルファチャネル(&L): - Select Color - &Basic colors 基本的なカラー(&B) - &Custom colors カスタムカラー(&C) - &Define Custom Colors >> - カスタムカラーの定義(&D) >> - - - OK - OK - - - Cancel - キャンセル - - - &Add to Custom Colors カスタムカラーに追加(&A) - - Select color - カラーの選択 - QComboBox - - Open オープン - False - True - Close 閉じる @@ -1112,43 +1186,56 @@ to QCoreApplication - %1: key is empty QSystemSemaphore %1: キーが空です - %1: unable to make key QSystemSemaphore %1: キーを作成できません - %1: ftok failed QSystemSemaphore %1: fork に失敗しました + + %1: already exists + QSystemSemaphore + %1: 既に存在します + + + %1: does not exist + QSystemSemaphore + %1: 存在しません + + + %1: out of resources + QSystemSemaphore + %1: リソース不足です + + + %1: unknown error %2 + QSystemSemaphore + %1: 未知のエラー %2 + QDB2Driver - Unable to connect 接続できません - Unable to commit transaction トランザクションをコミットできません - Unable to rollback transaction トランザクションをロールバックできません - Unable to set autocommit オートコミットを設定できません @@ -1156,33 +1243,26 @@ to QDB2Result - - Unable to execute statement ステートメントを実行できません - Unable to prepare statement プリペアステートメントを使えません - Unable to bind variable 変数をバインドできません - Unable to fetch record %1 レコード %1 をフェッチできません - Unable to fetch next 次のレコードをフェッチできません - Unable to fetch first 最初のレコードをフェッチできません @@ -1190,6881 +1270,8481 @@ to QDateTimeEdit - AM AM - am am - PM PM - pm pm - QDial + QDeclarativeAbstractAnimation - - QDial - ダイヤル + Cannot animate non-existent property "%1" + 存在しないプロパティ "%1" はアニメーション出来ません - - SpeedoMeter - スピードメータ + Cannot animate read-only property "%1" + 読込専用のプロパティ "%1" はアニメーション出来ません - - SliderHandle - スライダハンドル + Animation is an abstract class + Animation は抽象クラスです - QDialog + QDeclarativeAnchorAnimation - - What's This? - ヒント? - - - - Done - 終了 + Cannot set a duration of < 0 + 負の値はアニメーション時間として設定できません - QDialogButtonBox + QDeclarativeAnchors - - - - OK - OK + Possible anchor loop detected on fill. + fill によってアンカーのループが発生しています。 - - Cancel - キャンセル + Possible anchor loop detected on centerIn. + centerIn によってアンカーのループが発生しています。 - - Apply - 適用 + Cannot anchor to an item that isn't a parent or sibling. + 親でも兄弟でもない要素にはアンカー出来ません。 - - Ignore - 無視 + Possible anchor loop detected on vertical anchor. + 縦方向のアンカーによってアンカーのループが発生しています。 - - Retry - 再試行 + Possible anchor loop detected on horizontal anchor. + 横方向のアンカーによってアンカーのループが発生しています。 - - Abort - 中止 + Cannot specify left, right, and hcenter anchors. + left, right, hcenter のどのアンカーを使用しているか限定できません。 - - Help - ヘルプ + Cannot anchor to a null item. + 空の要素にはアンカー出来ません。 - - Save - 保存 + Cannot anchor a horizontal edge to a vertical edge. + 横方向のエッジから縦方向のエッジへはアンカー出来ません。 - - &Save - 保存(&S) + Cannot anchor item to self. + 自分自身へはアンカー出来ません。 - - Open - オープン + Cannot specify top, bottom, and vcenter anchors. + top, bottom, vcenter のどのアンカーを使用しているか限定できません。 - - &Cancel - キャンセル(&C) + Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. + baseline アンカーを top, bottom, vcenter アンカーと組み合わせることはできません。 - - Close - 閉じる + Cannot anchor a vertical edge to a horizontal edge. + 縦方向のエッジから横方向のエッジへはアンカー出来ません。 + + + QDeclarativeAnimatedImage - - &Close - 閉じる(&C) + Qt was built without support for QMovie + Qt は QMovie のサポートを外してビルドされています + + + QDeclarativeBehavior - - Reset - リセット + Cannot change the animation assigned to a Behavior. + Behavior へ割り当てられたアニメーションは変更できません。 + + + QDeclarativeBinding - - Don't Save - 保存しない + Binding loop detected for property "%1" + プロパティ "%1" へのバインディングにループが発生しています + + + QDeclarativeCompiledBindings - - Close without Saving - 保存せずに閉じる + Binding loop detected for property "%1" + プロパティ "%1" へのバインディングにループが発生しています + + + QDeclarativeCompiler - - Discard - 変更を破棄 + Invalid property assignment: "%1" is a read-only property + 無効なプロパティの値: "%1" は読込専用のプロパティです - - &Yes - はい(&Y) + Invalid property assignment: unknown enumeration + 無効なプロパティの値: 未知の列挙型です - - Yes to &All - 全てにはい(&A) + Invalid property assignment: string expected + 無効なプロパティの値: 文字列を指定してください - - &No - いいえ(&N) + Invalid property assignment: url expected + 無効なプロパティの値: URI を指定してください - - N&o to All - 全てにいいえ(&O) + Invalid property assignment: unsigned int expected + 無効なプロパティの値: 符号なしの整数を指定してください - - Save All - すべて保存 + Invalid property assignment: int expected + 無効なプロパティの値: 整数を指定してください - - Restore Defaults - デフォルトに戻す + Invalid property assignment: number expected + 無効なプロパティの値: 数値を指定してください - - &OK - OK(&O) + Invalid property assignment: color expected + 無効なプロパティの値: 色を指定してください - - - QDirModel - - Name - 名前 + Invalid property assignment: date expected + 無効なプロパティの値: 日付を指定してください - - Size - サイズ + Invalid property assignment: time expected + 無効なプロパティの値: 時間を指定してください - - Date Modified - 更新日 + Invalid property assignment: datetime expected + 無効なプロパティの値: 日付と時間を指定してください - - Kind - Match OS X Finder - 種類 + Invalid property assignment: point expected + 無効なプロパティの値: 位置を指定してください - - Type - All other platforms - タイプ + Invalid property assignment: size expected + 無効なプロパティの値: サイズを指定してください - - - QDockWidget - - Close - 閉じる + Invalid property assignment: rect expected + 無効なプロパティの値: 矩形を指定してください - - Dock - ドック + Invalid property assignment: boolean expected + 無効なプロパティの値: 真偽値を指定してください - - Float - フロート + Invalid property assignment: 3D vector expected + 無効なプロパティの値: 3D ベクターを指定してください - - - QDoubleSpinBox - - More - 増やす + Invalid property assignment: unsupported type "%1" + 無効なプロパティの値: 未知の型 "%1" です - - Less - 減らす + Element is not creatable. + 要素が作成できません。 - - - QErrorMessage - - Debug Message: - デバッグメッセージ: + Component elements may not contain properties other than id + コンポーネント要素に ID 以外のプロパティが含まれていません - - Warning: - 警告: + Invalid component id specification + 無効なコンポーネント ID の指定です - - Fatal Error: - 致命的なエラー: + id is not unique + ID が重複しています - - &Show this message again - 次回もこのメッセージを表示する(&S) + Invalid component body specification + 無効なコンポーネントボディの指定です - - &OK - OK(&O) + Component objects cannot declare new properties. + コンポーネントオブジェクトに新しいプロパティを宣言できません。 - - - QFile - - - Destination file exists - 新しい名前のファイルは既に存在します + Component objects cannot declare new signals. + コンポーネントオブジェクトに新しいシグナルを宣言できません。 - - Cannot remove source file - 元のファイルを削除できません + Component objects cannot declare new functions. + コンポーネントオブジェクトに新しい関数を宣言できません。 - - Cannot open %1 for input - コピー元ファイル %1 を読めません + Cannot create empty component specification + 仕様が空であるコンポーネントは作成できません - - Cannot open for output - コピー先のファイルをオープンできません + Incorrectly specified signal assignment + 仕様と異なるシグナルが割り当てられています - - Failure to write block - 書き込みに失敗しました + Cannot assign a value to a signal (expecting a script to be run) + 値をシグナルに割り当てることはできません(ただし、スクリプトは除きます) - - Cannot create %1 for output - コピー先として %1 を作成できません + Empty signal assignment + シグナルへの割り当てが空です - - - QFileDialog - - - All Files (*) - すべてのファイル(*) + Empty property assignment + プロパティの値が空です - - Directories - ディレクトリ + Attached properties cannot be used here + アタッチされたプロパティはここでは利用できません - - - Directory: - ディレクトリ: + Non-existent attached object + アタッチされたオブジェクトが存在しません - - - File &name: - ファイル名(&N): + Invalid attached object assignment + 無効なアタッチされたオブジェクトへの割り当て - - - - - &Open - オープン(&O) + Cannot assign to non-existent default property + 存在しないデフォルトプロパティへは割り当てできません - - - &Save - 保存(&S) + Cannot assign to non-existent property "%1" + 存在しないプロパティ "%1" へは割り当てできません - - Open - オープン + Invalid use of namespace + 無効なネームスペースの使用法です - Save - 保存 + Not an attached property name + アタッチされたプロパティの名前ではありません - -File not found. -Please verify the correct file name was given - -ファイルが見つかりません。 -正しいファイル名が入力されたかどうか確認してください + Invalid use of id property + 無効な ID プロパティの使用法です - - %1 already exists. -Do you want to replace it? - %1 はすでに存在します。 -置き換えますか? + Property has already been assigned a value + プロパティには既に値が割り当てられています - - %1 -File not found. -Please verify the correct file name was given. - %1 -ファイルが見つかりません。 -正しいファイル名が入力されたかどうか確認してください。 + Invalid grouped property access + 無効なグループ化されたプロパティへのアクセスです - - My Computer - マイ コンピュータ + Cannot assign a value directly to a grouped property + グループ化されたプロパティに直接値を割り当てることはできません - - - %1 -Directory not found. -Please verify the correct directory name was given. - %1 -ディレクトリが見つかりません。 -正しいディレクトリ名が入力されたかどうか確認してください。 + Invalid property use + 無効なプロパティの使用法です - Sort - ソート + Property assignment expected + プロパティに値が必要です - - &Rename - 名前の変更(&R) + Single property assignment expected + プロパティに複数の値は割り当てられません - - &Delete - 削除(&D) + Unexpected object assignment + オブジェクトを割り当てることはできません - &Reload - リロード(&R) + Cannot assign object to list + オブジェクトをリストに割り当てることはできません - Sort by &Name - 名前順にソート(&N) + Can only assign one binding to lists + リストへは一つのバインディングのみ割り当てることができます - Sort by &Size - サイズ順にソート(&S) + Cannot assign primitives to lists + プリミティブをリストに割り当てることはできません - Sort by &Date - 日付順にソート(&D) + Cannot assign multiple values to a script property + 複数の値をスクリプトプロパティに割り当てることはできません - &Unsorted - ソート解除(&U) + Invalid property assignment: script expected + 無効なプロパティの値: スクリプトを指定してください - - Show &hidden files - 隠しファイルの表示(&H) + Cannot assign object to property + オブジェクトをプロパティに割り当てることはできません - - - Back - 戻る + "%1" cannot operate on "%2" + "%1" は "%2" を操作できません - - - Parent Directory - 親ディレクトリ + Duplicate default property + デフォルトプロパティが重複しています - - - Create New Folder - 新しいフォルダの作成 + Duplicate property name + プロパティの名前が重複しています - - - List View - 一覧表示 + Property names cannot begin with an upper case letter + プロパティの名前を大文字から始めることはできません - - - Detail View - 詳細表示 + Illegal property name + プロパティの名前が無効です - - - Look in: - 検索する場所: + Duplicate signal name + シグナルの名前が重複しています - - - Files of type: - ファイルの種類: + Signal names cannot begin with an upper case letter + シグナルの名前を大文字から始めることはできません - - Drive - ドライブ + Illegal signal name + シグナルの名前が無効です - - - File - ファイル + Duplicate method name + メソッドの名前が重複しています - - File Folder - Match Windows Explorer - ファイルフォルダ + Method names cannot begin with an upper case letter + メソッドの名前を大文字から始めることはできません - - Folder - All other platforms - フォルダ + Illegal method name + メソッドの名前が無効です - - Alias - Mac OS X Finder - エイリアス + Property value set multiple times + 複数回プロパティに値を割り当てています - - Shortcut - All other platforms - ショートカット + Invalid property nesting + 無効なプロパティのネストです - - Unknown - 不明 + Cannot override FINAL property + FINAL プロパティを上書きすることはできません - - All Files (*.*) - すべてのファイル(*.*) + Invalid property type + 無効なプロパティの型です - - Save As - 名前を付けて保存 + Invalid empty ID + 空の ID は無効です - Open - オープン + IDs cannot start with an uppercase letter + ID を大文字から始めることはできません - Select a Directory - ディレクトリを選択 + IDs must start with a letter or underscore + ID は英字もしくはアンダースコアで始めてください - - '%1' is write protected. -Do you want to delete it anyway? - '%1' は書き込みが禁止されています。 -本当に削除しますか? + IDs must contain only letters, numbers, and underscores + ID には英数字およびアンダースコアのみ使用できます - - Are sure you want to delete '%1'? - '%1' を本当に削除しますか? + ID illegally masks global JavaScript property + ID はグローバルな JavaScript のプロパティを不正に隠しています - - Could not delete directory. - ディレクトリを削除できませんでした。 + No property alias location + プロパティのエイリアスのパスがありません - - Find Directory - ディレクトリの検索 + Invalid alias location + 無効なエイリアスのパス - - Show - 表示 + Invalid alias reference. An alias reference must be specified as <id> or <id>.<property> + 無効なエイリアスの参照です。エイリアスの参照先は <ID> もしくは <ID>.<プロパティ> でなくてはいけません - - &New Folder - 新しいフォルダ(&N) + Invalid alias reference. Unable to find id "%1" + 無効なエイリアスの参照です。 ID "%1" が見つかりません + + + QDeclarativeComponent - - - &Choose - 選択(&C) + Invalid empty URL + 空の URL は無効です + + + QDeclarativeCompositeTypeManager - - New Folder - 新しいフォルダ + Resource %1 unavailable + リソース %1 が利用できません - - Recent Places - 履歴 + Namespace %1 cannot be used as a type + ネームスペース %1 を型として使用することはできません - - - Forward - 進む + %1 %2 + %1 %2 - - Remove - 削除 + Type %1 unavailable + 型 %1 が利用できません - QFileSystemModel + QDeclarativeConnections - - Name - 名前 + Cannot assign to non-existent property "%1" + 存在しないプロパティ "%1" へは割り当てできません - - Size - サイズ + Connections: nested objects not allowed + 接続: オブジェクトのネストは許可されていません - - Date Modified - 更新日 + Connections: syntax error + 接続: 構文エラー - - Kind - Match OS X Finder - 種類 + Connections: script expected + 接続: スクリプトを指定してください + + + QDeclarativeEngine - - Type - All other platforms - タイプ + executeSql called outside transaction() + transaction() の外部から executeSql が呼び出されました - - - %1 TB - %1 TB + Read-only Transaction + 読込専用のトランザクションです - - - %1 GB - %1 GB + Version mismatch: expected %1, found %2 + バージョンが一致しません: 予期したバージョンは %1 ですが、 %2 が見つかりました - - - %1 MB - %1 MB + SQL transaction failed + SQL のトランザクションを失敗しました - - - %1 KB - %1 KB + transaction: missing callback + トランザクション: コールバックが欠けています - - - %1 bytes - %1 バイト + SQL: database version mismatch + SQL: データーベースのバージョンが一致しません + + + QDeclarativeFlipable - - Invalid filename - 無効なファイル名 + front is a write-once property + front は一度のみ書き込み可能なプロパティです - - <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. - <b>ファイル名 "%1" は使用できません。</b><p>名前を短くしたり、アクセント記号などを削除して再度試してください。 + back is a write-once property + back は一度のみ書き込み可能なプロパティです + + + QDeclarativeImportDatabase - - My Computer - マイ コンピュータ + module "%1" definition "%2" not readable + "%1" モジュールの定義 "%2" が読めません - - Computer - コンピュータ + plugin cannot be loaded for module "%1": %2 + "%1" モジュール用のプラグインがロードできません: %2 - - - QFontDatabase - - - Normal - ここはどう訳すべきか... - 明朝 - - - - - - Bold - ゴシック - - - - - Demi Bold - Demi Bold + module "%1" plugin "%2" not found + "%1" モジュールの "%2" プラグインが見つかりません - - - - Black - 太字 + module "%1" version %2.%3 is not installed + バージョン %2.%3 の "%1" モジュールがインストールされていません - - Demi - Demi + module "%1" is not installed + "%1" モジュールがインストールされていません - - - Light - 細字 + "%1": no such directory + "%1": そのようなディレクトリはありません - - - Italic - イタリック + import "%1" has no qmldir and no namespace + import する "%1" に qmldir もネームスペースもありません - - - Oblique - 斜体 + - %1 is not a namespace + - %1 はネームスペースではありません - - Any - すべて + - nested namespaces not allowed + - ネームスペースのネストは許可されていません - - Latin - ラテン + local directory + ローカルディレクトリ - - Greek - ギリシャ + is ambiguous. Found in %1 and in %2 + を特定できません。%1 と %2 の双方で見つけました - - Cyrillic - キリル + is ambiguous. Found in %1 in version %2.%3 and %4.%5 + を特定できません。%1 にバージョン %2.%3 と %4.%5 の双方を見つけました - - Armenian - アルメニア + is instantiated recursively + の使用の際に再帰が発生しています - - Hebrew - ヘブライ + is not a type + は型ではありません + + + QDeclarativeKeyNavigationAttached - - Arabic - アラビア + KeyNavigation is only available via attached properties + KeyNavigation はアタッチド・プロパティ(Attached Property: 型名.プロパティ名)の形式でのみ利用できます + + + QDeclarativeKeysAttached - - Syriac - シリア + Keys is only available via attached properties + Keys はアタッチド・プロパティ(Attached Property: 型名.プロパティ名)の形式でのみ利用できます + + + QDeclarativeListModel - - Thaana - ターナ + remove: index %1 out of range + remove: インデックス %1 は有効範囲外の値です - - Devanagari - デーヴァナーガリー + insert: value is not an object + insert: オブジェクト以外の値は挿入できません - - Bengali - ベンガル + insert: index %1 out of range + insert: インデックス %1 は有効範囲外の値です - - Gurmukhi - グルムキー + move: out of range + move: 有効範囲外の値です - - Gujarati - グジャラート + append: value is not an object + append: オブジェクト以外の値は追加できません - - Oriya - オリヤー + set: value is not an object + set: オブジェクト以外の値は代入できません - - Tamil - タミル + set: index %1 out of range + set: インデックス %1 は有効範囲外の値です - - Telugu - テルグ + ListElement: cannot contain nested elements + ListElement: ネストしたエレメントは保持できません - - Kannada - カンナダ + ListElement: cannot use reserved "id" property + ListElement: 予約語 "id" をプロパティに使用できません - - Malayalam - マラヤーラム + ListElement: cannot use script for property value + ListElement: スクリプトをプロパティの値には使用できません - - Sinhala - シンハラ + ListModel: undefined property '%1' + ListModel: '%1' は未定義のプロパティです + + + QDeclarativeLoader - - Thai - タイ + Loader does not support loading non-visual elements. + Loader は可視化できない要素の読み込みをサポートしていません。 + + + QDeclarativeParentAnimation - - Lao - ラーオ + Unable to preserve appearance under complex transform + 複雑な変換を伴う外観は保持できません - - Tibetan - チベット + Unable to preserve appearance under non-uniform scale + 不均等な拡大/縮小を伴う外観は保持できません - - Myanmar - ビルマ + Unable to preserve appearance under scale of 0 + サイズが0に縮小される変換を伴う外観は保持できません + + + QDeclarativeParentChange - - Georgian - グルジア + Unable to preserve appearance under complex transform + 複雑な変換を伴う外観は保持できません - - Khmer - クメール + Unable to preserve appearance under non-uniform scale + 不均等な拡大/縮小を伴う外観は保持できません - - Simplified Chinese - 簡体中国 + Unable to preserve appearance under scale of 0 + サイズが0に縮小される変換を伴う外観は保持できません + + + QDeclarativeParser - - Traditional Chinese - 繁体中国 + Illegal unicode escape sequence + 無効な Unicode のエスケープシーケンスです - - Japanese - 日本 + Illegal character + 無効な文字です - - Korean - ハングル + Unclosed string at end of line + 文字列が行末で閉じていません - - Vietnamese - ベトナム + Illegal escape squence + 無効なエスケープシーケンスです - - Symbol - 記号 + Unclosed comment at end of file + コメントが行末で閉じていません - - Ogham - オガム + Illegal syntax for exponential number + 無効な指数の構文です - - Runic - ルーン + Identifier cannot start with numeric literal + 識別子は数字で始めることはできません - - - QFontDialog - - &Font - フォント(&F) + Unterminated regular expression literal + 正規表現リテラルが閉じていません - - Font st&yle - フォントスタイル(&Y) + Invalid regular expression flag '%0' + '%0' は無効な正規表現のフラグです - - &Size - サイズ(&S) + Unterminated regular expression backslash sequence + 正規表現のバックスラッシュエスケープが閉じていません - - Effects - 文字飾り + Unterminated regular expression class + 正規表現の文字クラスが閉じていません - - Stri&keout - 取り消し線(&K) + Syntax error + 構文エラー - - &Underline - 下線(&U) + Unexpected token `%1' + '%1' は予期しないトークンです - - Sample - サンプル + Expected token `%1' + トークン '%1' を予期してます - - Wr&iting System - 言語(&I) + Property value set multiple times + 複数回プロパティに値を割り当てています - - - Select Font - フォントの選択 + Expected type name + 予期する型の名前 - - - QFtp - - - Not connected - 未接続です + Invalid import qualifier ID + import するネームスペースの ID が無効です - - - Host %1 not found - ホスト %1 が見つかりませんでした + Reserved name "Qt" cannot be used as an qualifier + 予約語 "Qt" を import するネームスペースに使用することはできません - - - Connection refused to host %1 - ホスト %1 への接続が拒否されました + Script import qualifiers must be unique. + スクリプトを import するネームスペースは一意である必要があります。 - - Connection timed out to host %1 - ホスト %1 への接続がタイムアウトしました + Script import requires a qualifier + スクリプトを import する際にはネームスペースの指定が必要です - - - - Connected to host %1 - ホスト %1 に接続しました + Library import requires a version + ライブラリの import にはバージョンが必要です - - - Connection refused for data connection - データ接続のための接続が拒否されました + Expected parameter type + 予期するパラメータの型 - - - - - Unknown error - 不明なエラー + Invalid property type modifier + 無効なプロパティの型の修飾子 - - - Connecting to host failed: -%1 - ホストへの接続に失敗しました: -%1 + Unexpected property type modifier + 予期しないプロパティの型の修飾子 - - - Login failed: -%1 - ログインに失敗しました: -%1 + Expected property type + 予期するプロパティの型 - - - Listing directory failed: -%1 - ディレクトリのリストに失敗しました: -%1 + Readonly not yet supported + Readonly はまだサポートされていません - - - Changing directory failed: -%1 - ディレクトリの変更に失敗しました: -%1 + JavaScript declaration outside Script element + Script 要素の外部での JavaScript の宣言 + + + QDeclarativePauseAnimation - - - Downloading file failed: -%1 - ファイルのダウンロードに失敗しました: -%1 + Cannot set a duration of < 0 + 負の値はアニメーション時間として設定できません + + + QDeclarativePixmap - - - Uploading file failed: -%1 - ファイルのアップロードに失敗しました: -%1 + Error decoding: %1: %2 + デコード中にエラーが発生しました: %1: %2 - - - Removing file failed: -%1 - ファイルの削除に失敗しました: -%1 + Failed to get image from provider: %1 + プロバイダーからの画像の取得に失敗しました: %1 - - - Creating directory failed: -%1 - ディレクトリの作成に失敗しました: -%1 + Cannot open: %1 + 開けませんでした: %1 + + + QDeclarativePropertyAnimation - - - Removing directory failed: -%1 - ディレクトリの削除に失敗しました: -%1 + Cannot set a duration of < 0 + 負の値はアニメーション時間として設定できません + + + QDeclarativePropertyChanges - - - - Connection closed - 接続が閉じられました + PropertyChanges does not support creating state-specific objects. + PropertyChanges は状態特有のオブジェクトの作成をサポートしていません。 - - Host %1 found - ホスト %1 が見つかりました + Cannot assign to non-existent property "%1" + 存在しないプロパティ "%1" へは割り当てできません - - Connection to %1 closed - %1 への接続が閉じられました + Cannot assign to read-only property "%1" + 読込専用のプロパティ "%1" へは割り当てできません + + + QDeclarativeTextInput - - Host found - ホストが見つかりました + Could not load cursor delegate + カーソルデリゲートがロードできません - - Connected to host - ホストに接続しました + Could not instantiate cursor delegate + カーソルデリゲートのインスタンスを作成できません - QHostInfo + QDeclarativeVME - - Unknown error - 不明なエラー + Unable to create object of type %1 + 型 %1 のオブジェクトを作成できません - - - QHostInfoAgent - - - - - - - - - Host not found - ホストが見つかりません + Cannot assign value %1 to property %2 + プロパティ %2 へ値 %1 を割り当てできません - - - - - Unknown address type - 不明なアドレス型です + Cannot assign object type %1 with no default method + 型 %1 のオブジェクトをデフォルトメソッドなしに割り当てることはできません - - - - Unknown error - 不明なエラー + Cannot connect mismatched signal/slot %1 %vs. %2 + 型の合わないシグナルとスロット(%1 %vs %2)を接続することはできません - - - QHttp - - HTTPS connection requested but SSL support not compiled in - HTTPSによる接続が要求されましたが、SSLのサポートがコンパイル時に組み込まれていないため、接続できません + Cannot assign an object to signal property %1 + オブジェクトをシグナルプロパティ %1 に割り当てることはできません - - - - - Unknown error - 不明なエラー + Cannot assign object to list + オブジェクトをリストに割り当てることはできません - - - Request aborted - 要求が中止されました + Cannot assign object to interface property + オブジェクトをインターフェースプロパティに割り当てることはできません - - - No server set to connect to - 接続が設定されているサーバがありません + Unable to create attached object + アタッチされたオブジェクトを作成できません - - - Wrong content length - コンテンツの長さが正しくありません + Cannot set properties on %1 as it is null + %1 のプロパティが空のため値を代入できません + + + QDeclarativeVisualDataModel - - - Server closed connection unexpectedly - サーバの接続が予期せず閉じられました + Delegate component must be Item type. + デリゲートコンポーネントの型は Item である必要があります。 + + + QDeclarativeXmlListModel - - Unknown authentication method - 非対応の認証方法が要求されました + Qt was built without support for xmlpatterns + Qt は xmlpatterns のサポートを外してビルドされています + + + QDeclarativeXmlListModelRole - - Error writing response to device - デバイスへの書き込み時にエラーが発生しました + An XmlRole query must not start with '/' + XmlRorl のクエリーを '/' で始めてはいけません + + + QDeclarativeXmlRoleList - - - Connection refused - 接続が拒否されました + An XmlListModel query must start with '/' or "//" + XmlListModel のクエリーは '/' か "//" で始まる必要があります + + + QDial - - - - Host %1 not found - ホスト %1 が見つかりませんでした + QDial + ダイヤル - - - - - HTTP request failed - HTTP要求に失敗しました + SpeedoMeter + スピードメータ - - - Invalid HTTP response header - 無効なHTTP応答ヘッダです + SliderHandle + スライダハンドル + + + QDialog - - - - - Invalid HTTP chunked body - 無効なHTTPチャンクドボディです + What's This? + ヒント? - - Host %1 found - ホスト %1 が見つかりました + Done + 終了 + + + QDialogButtonBox + + OK + OK + + + Cancel + キャンセル + + + Apply + 適用 + + + Ignore + 無視 + + + Retry + 再試行 + + + Abort + 中止 + + + Help + ヘルプ + + + Save + 保存 + + + &Save + 保存(&S) + + + Open + オープン + + + &Cancel + キャンセル(&C) + + + Close + 閉じる + + + &Close + 閉じる(&C) + + + Reset + リセット + + + Don't Save + 保存しない + + + Close without Saving + 保存せずに閉じる + + + Discard + 変更を破棄 + + + &Yes + はい(&Y) + + + Yes to &All + 全てにはい(&A) + + + &No + いいえ(&N) + + + N&o to All + 全てにいいえ(&O) + + + Save All + すべて保存 + + + Restore Defaults + デフォルトに戻す + + + &OK + OK(&O) + + + + QDirModel + + Name + 名前 + + + Size + サイズ + + + Date Modified + 更新日 + + + Kind + Match OS X Finder + 種類 + + + Type + All other platforms + タイプ + + + + QDockWidget + + Close + 閉じる + + + Dock + ドック + + + Float + フロート + + + + QDoubleSpinBox + + More + 増やす + + + Less + 減らす + + + + QErrorMessage + + Debug Message: + デバッグメッセージ: + + + Warning: + 警告: + + + Fatal Error: + 致命的なエラー: + + + &Show this message again + 次回もこのメッセージを表示する(&S) + + + &OK + OK(&O) + + + + QFile + + Destination file exists + 新しい名前のファイルは既に存在します + + + Will not rename sequential file using block copy + ブロックコピーを用いてシーケンシャルファイルの名前を変更することはできません + + + Cannot remove source file + 元のファイルを削除できません + + + Cannot open %1 for input + コピー元ファイル %1 を読めません + + + Cannot open for output + コピー先のファイルをオープンできません + + + Failure to write block + 書き込みに失敗しました + + + Cannot create %1 for output + コピー先として %1 を作成できません + + + + QFileDialog + + All Files (*) + すべてのファイル(*) + + + Directories + ディレクトリ + + + Directory: + ディレクトリ: + + + File &name: + ファイル名(&N): + + + &Open + オープン(&O) + + + &Save + 保存(&S) + + + Open + オープン + + + %1 already exists. +Do you want to replace it? + %1 はすでに存在します。 +置き換えますか? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +ファイルが見つかりません。 +正しいファイル名が入力されたかどうか確認してください。 + + + My Computer + マイ コンピュータ + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +ディレクトリが見つかりません。 +正しいディレクトリ名が入力されたかどうか確認してください。 + + + &Rename + 名前の変更(&R) + + + &Delete + 削除(&D) + + + Show &hidden files + 隠しファイルの表示(&H) + + + Back + 戻る + + + Parent Directory + 親ディレクトリ + + + Create New Folder + 新しいフォルダの作成 + + + List View + 一覧表示 + + + Detail View + 詳細表示 + + + Look in: + 検索する場所: + + + Files of type: + ファイルの種類: + + + Drive + ドライブ + + + File + ファイル + + + File Folder + Match Windows Explorer + ファイルフォルダ + + + Folder + All other platforms + フォルダ + + + Alias + Mac OS X Finder + エイリアス + + + Shortcut + All other platforms + ショートカット + + + Unknown + 不明 + + + All Files (*.*) + すべてのファイル(*.*) + + + Save As + 名前を付けて保存 + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' は書き込みが禁止されています。 +本当に削除しますか? + + + Are sure you want to delete '%1'? + '%1' を本当に削除しますか? + + + Could not delete directory. + ディレクトリを削除できませんでした。 + + + Find Directory + ディレクトリの検索 + + + Show + 表示 + + + &New Folder + 新しいフォルダ(&N) + + + &Choose + 選択(&C) + + + New Folder + 新しいフォルダ + + + Recent Places + 履歴 + + + Forward + 進む + + + Remove + 削除 + + + Go back + 戻る + + + Go forward + 進む + + + Go to the parent directory + 親ディレクトリへ移動 + + + Create a New Folder + 新しいフォルダの作成 + + + Change to list view mode + リスト表示モードへ変更 + + + Change to detail view mode + 詳細表示モードへ変更 + + + + QFileSystemModel + + Name + 名前 + + + Size + サイズ + + + Date Modified + 更新日 + + + Kind + Match OS X Finder + 種類 + + + Type + All other platforms + タイプ + + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 バイト + + + Invalid filename + 無効なファイル名 + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>ファイル名 "%1" は使用できません。</b><p>名前を短くしたり、アクセント記号などを削除して再度試してください。 + + + My Computer + マイ コンピュータ + + + Computer + コンピュータ + + + %1 byte(s) + %1 バイト + + + + QFontDatabase + + Normal + ここはどう訳すべきか... + 明朝 + + + Bold + ゴシック + + + Demi Bold + Demi Bold + + + Black + 太字 + + + Demi + Demi + + + Light + 細字 + + + Italic + イタリック + + + Oblique + 斜体 + + + Any + すべて + + + Latin + ラテン + + + Greek + ギリシャ + + + Cyrillic + キリル + + + Armenian + アルメニア + + + Hebrew + ヘブライ + + + Arabic + アラビア + + + Syriac + シリア + + + Thaana + ターナ + + + Devanagari + デーヴァナーガリー + + + Bengali + ベンガル + + + Gurmukhi + グルムキー + + + Gujarati + グジャラート + + + Oriya + オリヤー + + + Tamil + タミル + + + Telugu + テルグ + + + Kannada + カンナダ + + + Malayalam + マラヤーラム + + + Sinhala + シンハラ + + + Thai + タイ + + + Lao + ラーオ + + + Tibetan + チベット + + + Myanmar + ビルマ + + + Georgian + グルジア + + + Khmer + クメール + + + Simplified Chinese + 簡体中国 + + + Traditional Chinese + 繁体中国 + + + Japanese + 日本 + + + Korean + ハングル + + + Vietnamese + ベトナム + + + Symbol + 記号 + + + Ogham + オガム + + + Runic + ルーン + + + N'Ko + ンコ + + + + QFontDialog + + &Font + フォント(&F) + + + Font st&yle + フォントスタイル(&Y) + + + &Size + サイズ(&S) + + + Effects + 文字飾り + + + Stri&keout + 取り消し線(&K) + + + &Underline + 下線(&U) + + + Sample + サンプル + + + Wr&iting System + 言語(&I) + + + Select Font + フォントの選択 + + + + QFtp + + Not connected + 未接続です + + + Host %1 not found + ホスト %1 が見つかりませんでした + + + Connection refused to host %1 + ホスト %1 への接続が拒否されました + + + Connection timed out to host %1 + ホスト %1 への接続がタイムアウトしました + + + Connected to host %1 + ホスト %1 に接続しました + + + Connection refused for data connection + データ接続のための接続が拒否されました + + + Unknown error + 未知のエラー + + + Connecting to host failed: +%1 + ホストへの接続に失敗しました: +%1 + + + Login failed: +%1 + ログインに失敗しました: +%1 + + + Listing directory failed: +%1 + ディレクトリのリストに失敗しました: +%1 + + + Changing directory failed: +%1 + ディレクトリの変更に失敗しました: +%1 + + + Downloading file failed: +%1 + ファイルのダウンロードに失敗しました: +%1 + + + Uploading file failed: +%1 + ファイルのアップロードに失敗しました: +%1 + + + Removing file failed: +%1 + ファイルの削除に失敗しました: +%1 + + + Creating directory failed: +%1 + ディレクトリの作成に失敗しました: +%1 + + + Removing directory failed: +%1 + ディレクトリの削除に失敗しました: +%1 + + + Connection closed + 接続が閉じられました + + + Host %1 found + ホスト %1 が見つかりました + + + Connection to %1 closed + %1 への接続が閉じられました + + + Host found + ホストが見つかりました + + + Connected to host + ホストに接続しました + + + + QHostInfo + + Unknown error + 未知のエラー + + + No host name given + ホストネームが与えられていません + + + + QHostInfoAgent + + Host not found + ホストが見つかりません + + + Unknown address type + 未知のアドレス型です + + + No host name given + ホストネームが与えられていません + + + Invalid hostname + 無効なホスト名 + + + Unknown error + 未知のエラー + + + + QHttp + + HTTPS connection requested but SSL support not compiled in + HTTPSによる接続が要求されましたが、SSLのサポートがコンパイル時に組み込まれていないため、接続できません + + + Unknown error + 未知のエラー + + + Request aborted + 要求が中止されました + + + No server set to connect to + 接続が設定されているサーバがありません + + + Wrong content length + コンテンツの長さが正しくありません + + + Server closed connection unexpectedly + サーバの接続が予期せず閉じられました + + + Unknown authentication method + 非対応の認証方法が要求されました + + + Error writing response to device + デバイスへの書き込み時にエラーが発生しました + + + Connection refused + 接続が拒否されました + + + Host %1 not found + ホスト %1 が見つかりませんでした + + + HTTP request failed + HTTP要求に失敗しました + + + Invalid HTTP response header + 無効なHTTP応答ヘッダです + + + Invalid HTTP chunked body + 無効なHTTPチャンクドボディです + + + Host %1 found + ホスト %1 が見つかりました + + + Connected to host %1 + ホスト %1 に接続しました + + + Connection to %1 closed + %1 への接続が閉じられました + + + Host found + ホストが見つかりました + + + Connected to host + ホストに接続しました + + + Connection closed + 接続が閉じられました + + + Proxy authentication required + プロキシーの認証が必要です + + + Authentication required + 認証が必要です + + + Connection refused (or timed out) + 接続が拒否されたか、タイムアウトしました + + + Proxy requires authentication + プロキシーの認証が必要です + + + Host requires authentication + ホストの認証が必要です + + + Data corrupted + データが破損しています + + + Unknown protocol specified + 未対応のプロトコルです + + + SSL handshake failed + SSLのハンドシェークに失敗しました + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + プロキシーからHTTPレスポンスを受信できませんでした + + + Error parsing authentication request from proxy + プロキシーからの認証要求のパースに失敗しました + + + Authentication required + 認証が必要です + + + Proxy denied connection + プロキシーが接続を拒否しました + + + Error communicating with HTTP proxy + HTTP プロキシーとの通信にて、エラーが発生しました + + + Proxy server not found + プロキシーサーバが見つかりません + + + Proxy connection refused + プロキシーが接続を拒否しました + + + Proxy server connection timed out + プロキシーとの接続がタイムアウトしました + + + Proxy connection closed prematurely + プロキシーの接続が通信の終了前に切断されました + + + + QIBaseDriver + + Error opening database + データベースのオープンでエラーが発生しました + + + Could not start transaction + トランザクションを開始できませんでした + + + Unable to commit transaction + トランザクションをコミットできません + + + Unable to rollback transaction + トランザクションをロールバックできません + + + + QIBaseResult + + Unable to create BLOB + バイナリラージオブジェクトを作成できません + + + Unable to write BLOB + バイナリラージオブジェクトを書き込めません + + + Unable to open BLOB + バイナリラージオブジェクトをオープンできません + + + Unable to read BLOB + バイナリラージオブジェクトを読み込めません + + + Could not find array + 配列が見つかりませんでした + + + Could not get array data + 配列データを取得できませんでした + + + Could not get query info + クエリー情報を取得できませんでした + + + Could not start transaction + トランザクションを開始できませんでした + + + Unable to commit transaction + トランザクションをコミットできません + + + Could not allocate statement + ステートメントの領域を確保できませんでした + + + Could not prepare statement + プリペアステートメントを使えませんでした + + + Could not describe input statement + INPUT ステートメントの情報を取得できませんでした + + + Could not describe statement + ステートメントの情報を取得できませんでした + + + Unable to close statement + ステートメントをクローズできません + + + Unable to execute query + クエリーを実行できません + + + Could not fetch next item + 次のレコードをフェッチできませんでした + + + Could not get statement info + ステートメントの情報を取得できませんでした + + + + QIODevice + + Permission denied + 許可されていません + + + Too many open files + 開かれたファイルが多すぎます + + + No such file or directory + そのようなファイルやディレクトリはありません + + + No space left on device + デバイスの残り容量がありません + + + Unknown error + 未知のエラー + + + + QInputContext + + XIM + XIM + + + FEP + FEP + + + XIM input method + XIM 入力メソッド + + + Windows input method + Windows 入力メソッド + + + Mac OS X input method + Mac OS X 入力メソッド + + + S60 FEP input method + S60 FEP 入力メソッド + + + + QInputDialog + + Enter a value: + 数値を入力: + + + + QLibrary + + Could not mmap '%1': %2 + '%1' をメモリにマッピングできませんでした: %2 + + + Plugin verification data mismatch in '%1' + '%1' でプラグイン検証データが一致しません + + + Could not unmap '%1': %2 + '%1' のマッピングを解除できませんでした: %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + プラグイン '%1' は、互換性のない Qt ライブラリを使用しています。(%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + プラグイン '%1' は、互換性のない Qt ライブラリを使用しています。ビルドキー "%2" が必要ですが、"%3" しかありません + + + Unknown error + 未知のエラー + + + The shared library was not found. + 共有ライブラリがみつかりません。 + + + The file '%1' is not a valid Qt plugin. + ファイル '%1' は Qt プラグインではありません。 + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + プラグイン '%1' はこの Qt と互換性のないライブラリを使用しています。 (デバック版とリリース版のライブラリを同時に使用することはできません) + + + Cannot load library %1: %2 + ライブラリ '%1' を読み込むことができません: %2 + + + Cannot unload library %1: %2 + ライブラリ %1 を解放することができません: %2 + + + Cannot resolve symbol "%1" in %2: %3 + '%2'に含まれる識別子 "%1" を解決できません: %3 + + + + QLineEdit + + &Undo + 元に戻す(&U) + + + &Redo + やり直す(&R) + + + Cu&t + 切り取り(&T) + + + &Copy + コピー(&C) + + + &Paste + 貼り付け(&P) + + + Delete + 削除 + + + Select All + すべてを選択 + + + + QLocalServer + + %1: Name error + %1: 名前の解決に失敗 + + + %1: Permission denied + %1: 許可されていません + + + %1: Address in use + %1: アドレスは既に使用されています + + + %1: Unknown error %2 + %1: 未知のエラー %2 + + + + QLocalSocket + + %1: Connection refused + %1: 接続が拒否されました + + + %1: Remote closed + %1: リモートにより接続が閉じられました + + + %1: Invalid name + %1: 無効な名前です + + + %1: Socket access error + %1: ソケットアクセスのエラーです + + + %1: Socket resource error + %1: ソケットリソースのエラーです + + + %1: Socket operation timed out + %1: ソケット操作がタイムアウトしました + + + %1: Datagram too large + %1: データグラムが大きすぎます + + + %1: Connection error + %1: 接続のエラーが発生しました + + + %1: The socket operation is not supported + %1: そのソケット操作はサポートされていません + + + %1: Unknown error + %1: 未知のエラーです + + + %1: Unknown error %2 + %1: 未知のエラー %2 + + + + QMYSQLDriver + + Unable to open database ' + データベースをオープンできません ' + + + Unable to connect + 接続できません + + + Unable to begin transaction + トランザクションを開始できません + + + Unable to commit transaction + トランザクションをコミットできません + + + Unable to rollback transaction + トランザクションをロールバックできません + + + + QMYSQLResult + + Unable to fetch data + データをフェッチできません + + + Unable to execute query + クエリーを実行できません + + + Unable to store result + 実行結果を記録できません + + + Unable to prepare statement + プリペアステートメントを使えません + + + Unable to reset statement + ステートメントをリセットできません + + + Unable to bind value + 値をバインドできません + + + Unable to execute statement + ステートメントを実行できません + + + Unable to bind outvalues + 出力値をバインドできません + + + Unable to store statement results + ステートメントの実行結果を記録できません + + + Unable to execute next query + 次のクエリーを実行できません + + + Unable to store next result + 次の結果を記録できません + + + + QMdiArea + + (Untitled) + (タイトルなし) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + 閉じる + + + Minimize + 最小化 + + + Restore Down + 元に戻す + + + &Restore + 元に戻す(&R) + + + &Move + 移動(&M) + + + &Size + サイズ(&S) + + + Mi&nimize + 最小化(&N) + + + Ma&ximize + 最大化(&X) + + + Stay on &Top + 常に手前に表示(&T) + + + &Close + 閉じる(&C) + + + - [%1] + - [%1] + + + Maximize + 最大化 + + + Unshade + たぶん選択・非選択状態のウィンドウのことだと思うけど。fvwmなどのx11で使われている用語 + 非選択 + + + Shade + 選択 + + + Restore + 元に戻す + + + Help + ヘルプ + + + Menu + メニュー + + + + QMenu + + Close + 閉じる + + + Open + オープン + + + Execute + 実行 + + + + QMenuBar + + Actions + アクション + + + + QMessageBox + + Help + ヘルプ + + + OK + OK + + + About Qt + Qt について + + + Show Details... + 詳細を表示... + + + Hide Details... + 詳細を隠す... + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>Qt について</h3><p>このプログラムは Qt バージョン %1 を使用しています。</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><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> + + + + + QMultiInputContext + + Select IM + インプットメソッドを選択 + + + + QMultiInputContextPlugin + + Multiple input method switcher + 複数のインプットメソッドを切り替え + + + Multiple input method switcher that uses the context menu of the text widgets + テキストウィジェットのコンテキストメニューを使った複数のインプットメソッドの切り替えです + + + + QNativeSocketEngine + + Unable to initialize non-blocking socket + 非ブロック型ソケットを初期化できません + + + Unable to initialize broadcast socket + ブロードキャストソケットを初期化できません + + + Attempt to use IPv6 socket on a platform with no IPv6 support + IPv6 がサポートされていないプラットフォームで IPv6 ソケットを使用しようとしています + + + The remote host closed the connection + リモートホストは接続を閉じました + + + Network operation timed out + ネットワーク操作がタイムアウトしました + + + Out of resources + リソースが足りません + + + Unsupported socket operation + サポートされていないソケット操作です + + + Protocol type not supported + プロトコル型がサポートされていません + + + Invalid socket descriptor + 無効なソケット記述子です + + + Host unreachable + ホストへ到達できません + + + Network unreachable + ネットワークへ到達できません + + + Permission denied + 許可されていません + + + Connection timed out + 接続がタイムアウトしました + + + Connection refused + 接続を拒否されました + + + The bound address is already in use + バインドアドレスは既に使われています + + + The address is not available + そのアドレスは使用できません + + + The address is protected + そのアドレスへのアクセス権がありません + + + Datagram was too large to send + データグラムが大き過ぎて送信できませんでした + + + Unable to send a message + メッセージを送信できません + + + Unable to receive a message + メッセージを受信できません + + + Unable to write + 書き込みができません + + + Network error + ネットワークエラー + + + Another socket is already listening on the same port + 別のソケットが同じポートで既に待ち受けています + + + Operation on non-socket + 非ソケットに対する操作です + + + Unknown error + 未知のエラー + + + The proxy type is invalid for this operation + このプロキシーは、この操作に対応していません + + + + QNetworkAccessCacheBackend + + Error opening %1 + オープンのエラー %1 + + + + QNetworkAccessDataBackend + + Operation not supported on %1 + %1 ではこの操作はサポートされていません + + + Invalid URI: %1 + 無効なURIです: %1 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + %1 への書き込み時にエラーが発生しました: %2 + + + Socket error on %1: %2 + %1 のソケットにおいてエラーが発生しました: %2 + + + Remote host closed the connection prematurely on %1 + リモートホスト %1 との接続が通信の終了前に切断されました + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + 非ローカルファイル %1 をオープンするよう要求されましたが、ローカルファイルのみオープンできます + + + Error opening %1: %2 + %1 をオープンする時にエラーが発生しました: %2 + + + Write error writing to %1: %2 + %1 への書き込み時にエラーが発生しました: %2 + + + Cannot open %1: Path is a directory + %1 をオープンできません。指定されたパスはディレクトリです + + + Read error reading from %1: %2 + %1 を読み込み時にエラーが発生しました: %2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + 適切なプロキシーがみつかりません + + + Cannot open %1: is a directory + %1 をオープンできません。指定されたパスはディレクトリです + + + Logging in to %1 failed: authentication required + %1 へのログインに失敗しました。認証が必要です + + + Error while downloading %1: %2 + %1 をダウンロード中にエラーが発生しました: %2 + + + Error while uploading %1: %2 + %1 をアップロード中にエラーが発生しました: %2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + 適切なプロキシーがみつかりません + + + + QNetworkAccessManager + + Network access is disabled. + ネットワークへのアクセスが禁止されています。 + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + %1 をダウンロード中にエラーが発生しました。サーバの返答: %2 + + + Protocol "%1" is unknown + プロトコル "%1" はサポートされていません + + + Network session error. + ネットワークセッションエラー。 + + + Temporary network failure. + 一時的なネットワークの失敗。 + + + + QNetworkReplyImpl + + Operation canceled + 操作はキャンセルされました + + + + QNetworkSession + + Invalid configuration. + 無効な設定です。 + + + + QNetworkSessionPrivateImpl + + Roaming error + ローミングエラー + + + Session aborted by user or system + セッションはユーザもしくはシステムによって停止されました + + + Unidentified Error + 未知のエラー + + + Unknown session error. + 未知のセッションエラーです。 + + + The session was aborted by the user or system. + このセッションはユーザもしくはシステムによって停止されました。 + + + The requested operation is not supported by the system. + 要求された操作はこのシステムではサポートされていません。 + + + The specified configuration cannot be used. + この設定は利用できません。 + + + Roaming was aborted or is not possible. + ローミングは停止されたか利用できません。 + + + + QOCIDriver + + Unable to initialize + QOCIDriver + 初期化できません + + + Unable to logon + ログオンできません + + + Unable to begin transaction + トランザクションを開始できません + + + Unable to commit transaction + トランザクションをコミットできません + + + Unable to rollback transaction + トランザクションをロールバックできません + + + + QOCIResult + + Unable to bind column for batch execute + バッチ処理用にフィールドをバインドできません + + + Unable to execute batch statement + バッチステートメントを実行できません + + + Unable to goto next + 次のレコードへ進めません + + + Unable to alloc statement + ステートメントの領域を確保できません + + + Unable to prepare statement + プリペアステートメントを使えません + + + Unable to get statement type + ステートメントの型を取得できません + + + Unable to bind value + 値をバインドできません + + + Unable to execute statement + ステートメントを実行できません + + + + QODBCDriver + + Unable to connect + 接続できません + + + Unable to connect - Driver doesn't support all functionality required + 接続できません - ドライバは必要な全ての機能をサポートしていません + + + Unable to disable autocommit + オートコミットを無効にできません + + + Unable to commit transaction + トランザクションをコミットできません + + + Unable to rollback transaction + トランザクションをロールバックできません + + + Unable to enable autocommit + オートコミットを有効にできません + + + + QODBCResult + + Unable to execute statement + ステートメントを実行できません + + + Unable to fetch next + 次のレコードをフェッチできません + + + Unable to prepare statement + プリペアステートメントを使えません + + + Unable to bind variable + 変数をバインドできません + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: ステートメントの属性として 'SQL_CURSOR_STATUS' を設定できません。ODBC ドライバの構成をチェックしてください + + + Unable to fetch last + リストを取得できません + + + Unable to fetch + フェッチできません + + + Unable to fetch first + 最初のレコードをフェッチできません + + + Unable to fetch previous + 前のレコードをフェッチできません + + + + QObject + + PulseAudio Sound Server + PulseAudio サウンドサーバ + + + "%1" duplicates a previous role name and will be disabled. + "%1" で直前のロール名を複製し、無効化されます。 + + + invalid query: "%1" + 無効なクエリー: "%1" + + + + QPPDOptionsModel + + Name + 名前 + + + Value + + + + + QPSQLDriver + + Unable to connect + 接続できません + + + Could not begin transaction + トランザクションを開始できませんでした + + + Could not commit transaction + トランザクションをコミットできませんでした + + + Could not rollback transaction + トランザクションをロールバックできませんでした + + + Unable to subscribe + subscribe できません + + + Unable to unsubscribe + unsubscribe できません + + + + QPSQLResult + + Unable to create query + クエリーを作成できません + + + Unable to prepare statement + プリペアステートメントを使えません + + + + QPageSetupWidget + + Centimeters (cm) + センチメートル (cm) + + + Millimeters (mm) + ミリメートル (mm) + + + Inches (in) + インチ (in) + + + Points (pt) + ポイント (pt) + + + Form + 書式設定 + + + Paper + 用紙 + + + Page size: + ページサイズ: + + + Width: + 幅: + + + Height: + 高さ: + + + Paper source: + 給紙装置: + + + Orientation + 印刷方向 + + + Portrait + 縦 (ポートレート) + + + Landscape + 横 (ランドスケープ) + + + Reverse landscape + 横 反転 (リバースランドスケープ) + + + Reverse portrait + 縦 反転 (リバースポートレート) + + + Margins + 余白 + + + top margin + 上端余白 + + + left margin + 左端余白 + + + right margin + 右端余白 + + + bottom margin + 下端余白 + + + + QPluginLoader + + Unknown error + 未知のエラー + + + The plugin was not loaded. + そのプラグインはロードされていません。 + + + + QPrintDialog + + OK + OK + + + locally connected + ローカルに接続しています + + + Aliases: %1 + エイリアス: %1 + + + unknown + 不明 + + + Print all + すべて印刷 + + + Print range + 印刷範囲 + + + A0 (841 x 1189 mm) + A0 (841 x 1189mm) + + + A1 (594 x 841 mm) + A1 (594 x 841mm) + + + A2 (420 x 594 mm) + A2 (420 x 594mm) + + + A3 (297 x 420 mm) + A3 (297 x 420mm) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297mm、8.26 x 11.7インチ) + + + A5 (148 x 210 mm) + A5 (148 x 210mm) + + + A6 (105 x 148 mm) + A6 (105 x 148mm) + + + A7 (74 x 105 mm) + A7 (74 x 105mm) + + + A8 (52 x 74 mm) + A8 (52 x 74mm) + + + A9 (37 x 52 mm) + A9 (37 x 52mm) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414mm) + + + B1 (707 x 1000 mm) + B1 (707 x 1000mm) + + + B2 (500 x 707 mm) + B2 (500 x 707mm) + + + B3 (353 x 500 mm) + B3 (353 x 500mm) + + + B4 (250 x 353 mm) + B4 (250 x 353mm) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250mm、6.93 x 9.84インチ) + + + B6 (125 x 176 mm) + B6 (125 x 176mm) + + + B7 (88 x 125 mm) + B7 (88 x 125mm) + + + B8 (62 x 88 mm) + B8 (62 x 88mm) + + + B9 (44 x 62 mm) + B9 (44 x 62mm) + + + B10 (31 x 44 mm) + B10 (31 x 44mm) + + + C5E (163 x 229 mm) + C5E (163 x 229mm) + + + DLE (110 x 220 mm) + DLE (110 x 220mm) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10インチ、191 x 254mm) + + + Folio (210 x 330 mm) + Folio (210 x 330mm) + + + Ledger (432 x 279 mm) + Ledger (432 x 279mm) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14インチ、216 x 356mm) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11インチ、216 x 279mm) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432mm) + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241mm) + + + Print current page + 現在のページの印刷 + + + Print + 印刷 + + + Print To File ... + ファイルへ出力... + + + File %1 is not writable. +Please choose a different file name. + ファイル %1 は書き込み可能ではありません。 +別のファイル名を選んでください。 + + + %1 already exists. +Do you want to overwrite it? + %1 はすでに存在します。 +上書きしますか? + + + File exists + ファイルは既に存在しています + + + <qt>Do you want to overwrite it?</qt> + <qt>ファイルを上書きしてもよろしいですか?</qt> + + + Print selection + 選択された範囲を印刷 + + + %1 is a directory. +Please choose a different file name. + %1 はディレクトリです。 +ファイル名を指定してください。 + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + Exclusive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + リーガルサイズ + + + Letter + レターサイズ + + + Tabloid + タブロイドサイズ + + + US Common #10 Envelope + US標準#10封筒 + + + Custom + カスタム + + + &Options >> + オプション(&O) >> + + + &Print + 印刷(&P) + + + &Options << + オプション(&O) << + + + Print to File (PDF) + PDFファイルに出力 + + + Print to File (Postscript) + Postscriptファイルに出力 + + + Local file + ローカルファイル + + + Write %1 file + ファイル %1 に書き込みました + + + The 'From' value cannot be greater than the 'To' value. + QPrintPropertiesWidgetにFromとToがあってそれを指している + 印刷開始ページ番号は、印刷終了ページ番号より小さくなければなりません。 + + + + QPrintPreviewDialog + + Page Setup + ページの設定 + + + %1% + %1% + + + Print Preview + 印刷のプレビュー + + + Next page + 次のページ + + + Previous page + 前のページ + + + First page + 最初のページ + + + Last page + 最後のページ + + + Fit width + 幅をあわせる + + + Fit page + 高さをあわせる + + + Zoom in + 拡大 + + + Zoom out + 縮小 + + + Portrait + + + + Landscape + + + + Show single page + 一枚のページを表示する + + + Show facing pages + 見開きのページを表示する + + + Show overview of all pages + すべてのページを表示する + + + Print + 印刷 + + + Page setup + ページの設定 + + + Close + 閉じる + + + Export to PDF + PDFに出力 + + + Export to PostScript + Postscriptに出力 + + + + QPrintPropertiesWidget + + Form + 書式 + + + Page + ページ + + + Advanced + 高度な設定 + + + + QPrintSettingsOutput + + Form + 書式 + + + Copies + 印刷部数 + + + Print range + 印刷範囲 + + + Print all + すべて印刷 + + + Pages from + 先頭のページ + + + to + 末尾のページ + + + Selection + 選択した部分を印刷 + + + Output Settings + 出力設定 + + + Copies: + 印刷部数: + + + Collate + 丁合い + + + Reverse + 逆順 + + + Options + オプション + + + Color Mode + + + + Color + カラー + + + Grayscale + グレースケール + + + Duplex Printing + 両面印刷 + + + None + なし + + + Long side + 長辺綴じ + + + Short side + 短辺綴じ + + + Current Page + 現在のページ + + + + QPrintWidget + + Form + 書式 + + + Printer + プリンタ + + + &Name: + 名前(&N): + + + P&roperties + プロパティ(&r) + + + Location: + 設置場所: + + + Preview + プレビュー + + + Type: + タイプ: + + + Output &file: + 出力ファイル名(&f): + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + 標準入力リダイレクトを読み込みのためにオープンすることができません + + + Could not open output redirection for writing + 標準出力リダイレクトを書き込みのためにオープンすることができません + + + Resource error (fork failure): %1 + リソースエラー (fork に失敗しました): %1 + + + Process operation timed out + プロセス処理がタイムアウトしました + + + Error reading from process + プロセスからの読み込みにおいてエラーが発生しました + + + Error writing to process + プロセスへの書き込みにおいてエラーが発生しました + + + Process crashed + プロセスがクラッシュしました + + + No program defined + プログラム名が指定されていません + + + Process failed to start: %1 + プロセスの起動に失敗しました: %1 + + + + QProgressDialog + + Cancel + キャンセル + + + + QPushButton + + Open + オープン + + + + QRadioButton + + Check + 選択 + + + + QRegExp + + no error occurred + エラーは発生しませんでした + + + disabled feature used + 無効な機能が使用されました + + + bad char class syntax + 不正なcharクラス構文 + + + bad lookahead syntax + 不正なlookahead構文 + + + bad repetition syntax + 不正なrepetition構文 + + + invalid octal value + 無効な8進値 + + + missing left delim + 左の区切り文字がありません + + + unexpected end + 予期しない末尾です + + + met internal limit + 内部制限を満たしました + + + invalid interval + 無効な間隔 + + + invalid category + 無効なカテゴリー + + + + QSQLite2Driver + + Error opening database + データベースのオープンでエラーが発生しました + + + Unable to begin transaction + トランザクションを開始できません + + + Unable to commit transaction + トランザクションをコミットできません + + + Unable to rollback transaction + トランザクションをロールバックできません + + + + QSQLite2Result + + Unable to fetch results + 実行結果をフェッチできません + + + Unable to execute statement + ステートメントを実行できません + + + + QSQLiteDriver + + Error opening database + データベースのオープンでエラーが発生しました + + + Error closing database + データベースのクローズでエラーが発生しました + + + Unable to begin transaction + トランザクションを開始できません + + + Unable to commit transaction + トランザクションをコミットできません + + + Unable to rollback transaction + トランザクションをロールバックできません + + + + QSQLiteResult + + Unable to fetch row + レコードをフェッチできません + + + Unable to execute statement + ステートメントを実行できません + + + Unable to reset statement + ステートメントをリセットできません + + + Unable to bind parameters + パラメータをバインドできません + + + Parameter count mismatch + パラメータの数が合っていません + + + No query + クエリーがありません + + + + QScriptBreakpointsModel + + ID + ID + + + Location + ファイル:行番号 + + + Condition + 条件 + + + Ignore-count + 無視する回数 + + + Single-shot + 初回のみ + + + Hit-count + ヒットした回数 + + + + QScriptBreakpointsWidget + + New + 新規 + + + Delete + 削除 + + + + QScriptDebugger + + Go to Line + 指定した行へ移動 + + + Line: + 行番号: + + + Interrupt + 割り込み + + + Shift+F5 + Shift+F5 + + + Continue + 続行 + + + F5 + F5 + + + Step Into + ステップイン + + + F11 + F11 + + + Step Over + ステップオーバー + + + F10 + F10 + + + Step Out + ステップアウト + + + Shift+F11 + Shift+F11 + + + Run to Cursor + カーソル位置まで実行 + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + 新たなスクリプトまで実行 + + + Toggle Breakpoint + ブレークポイントの有効/無効の切り替え + + + F9 + F9 + + + Clear Debug Output + デバッグ出力のクリア + + + Clear Error Log + エラーログのクリア + + + Clear Console + コンソールのクリア + + + &Find in Script... + スクリプト内を検索(&F)... + + + Ctrl+F + Ctrl+F + + + Find &Next + 次を検索(&N) + + + F3 + F3 + + + Find &Previous + 前を検索(&P) + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + デバッグ + + + + QScriptDebuggerCodeFinderWidget - - Connected to host %1 - ホスト %1 に接続しました + Close + 閉じる - - Connection to %1 closed - %1 への接続が閉じられました + Previous + 前を検索 - - Host found - ホストが見つかりました + Next + 次を検索 - - Connected to host - ホストに接続しました + Case Sensitive + 大文字/小文字を区別する - - - Connection closed - 接続が閉じられました + Whole words + 単語単位で検索する - - Proxy authentication required - プロキシーの認証が必要です + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;先頭から再び検索します + + + QScriptDebuggerLocalsModel - - Authentication required - 認証が必要です + Name + 名前 - - Connection refused (or timed out) - 接続が拒否されたか、タイムアウトしました + Value + + + + QScriptDebuggerStackModel - - Proxy requires authentication - プロキシーの認証が必要です + Level + レベル - - Host requires authentication - ホストの認証が必要です + Name + 名前 - - Data corrupted - データが破損しています + Location + ファイル:行番号 + + + QScriptEdit - - Unknown protocol specified - 未対応のプロトコルです + Toggle Breakpoint + ブレークポイントの有効/無効の切り替え - - SSL handshake failed - SSLのハンドシェークに失敗しました + Disable Breakpoint + ブレークポイントを無効にする + + + Enable Breakpoint + ブレークポイントを有効にする + + + Breakpoint Condition: + ブレークポイントの条件: - QHttpSocketEngine + QScriptEngineDebugger - - Did not receive HTTP response from proxy - プロキシーからHTTPレスポンスを受信できませんでした + Loaded Scripts + ロードしたスクリプト - - Error parsing authentication request from proxy - プロキシーからの認証要求のパースに失敗しました + Breakpoints + ブレークポイント - - Authentication required - 認証が必要です + Stack + スタック - - Proxy denied connection - プロキシーが接続を拒否しました + Locals + ローカル変数 - - Error communicating with HTTP proxy - HTTP プロキシーとの通信にて、エラーが発生しました + Console + コンソール - - Proxy server not found - プロキシーサーバが見つかりません + Debug Output + デバッグ出力 - - Proxy connection refused - プロキシーが接続を拒否しました + Error Log + エラーログ - - Proxy server connection timed out - プロキシーとの接続がタイムアウトしました + Search + 検索 - - Proxy connection closed prematurely - プロキシーの接続が通信の終了前に切断されました + View + 表示 + + + Qt Script Debugger + Qt Script デバッガ - QIBaseDriver + QScriptNewBreakpointWidget - - Error opening database - データベースのオープンでエラーが発生しました + Close + 閉じる + + + QScrollBar - - Could not start transaction - トランザクションを開始できませんでした + Scroll here + ここにスクロール - - Unable to commit transaction - トランザクションをコミットできません + Left edge + 左端 - - Unable to rollback transaction - トランザクションをロールバックできません + Top + 上端 + + + Right edge + 右端 + + + Bottom + 下端 + + + Page left + 1ページ左へスクロール + + + Page up + 1ページ戻る + + + Page right + 1ページ右へスクロール + + + Page down + 1ページ進む + + + Scroll left + 左へスクロール + + + Scroll up + 上へスクロール + + + Scroll right + 右へスクロール + + + Scroll down + 下へスクロール + + + Line up + 1行上へ + + + Position + 位置 + + + Line down + 1行下へ - QIBaseResult + QSharedMemory - - Unable to create BLOB - バイナリラージオブジェクトを作成できません + %1: unable to set key on lock + 共有メモリ関連 + %1: ロックするためのキーを設定できません - - Unable to write BLOB - バイナリラージオブジェクトを書き込めません + %1: create size is less then 0 + %1: 0より小さいサイズの共有メモリは作成できません - - Unable to open BLOB - バイナリラージオブジェクトをオープンできません + %1: unable to lock + %1: ロックできません - - Unable to read BLOB - バイナリラージオブジェクトを読み込めません + %1: unable to unlock + %1: アンロックできません - - - Could not find array - 配列が見つかりませんでした + %1: permission denied + %1: 許可されていません - - Could not get array data - 配列データを取得できませんでした + %1: already exists + %1: 既に存在します + + + %1: doesn't exists + %1: 存在しません + + + %1: out of resources + %1: リソース不足です + + + %1: unknown error %2 + %1: 未知のエラー %2 + + + %1: key is empty + %1: キーが空です + + + %1: ftok failed + %1: fork に失敗しました + + + %1: unable to make key + %1: キーを作成できません + + + %1: doesn't exist + %1: 存在しません + + + %1: UNIX key file doesn't exist + %1: UNIX key file が存在しません + + + %1: system-imposed size restrictions + EINVAL + %1: 指定されたサイズはシステムにより拒否されました + + + %1: not attached + %1: アタッチしていません + + + %1: invalid size + %1: 無効なサイズです + + + %1: key error + safekey.isEmpty()==true + %1: キーかありません + + + %1: size query failed + %1: サイズのクエリーに失敗しました + + + + QShortcut + + Space + 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. + Space + + + Esc + Esc + + + Tab + Tab + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Return + + + Enter + Enter + + + Ins + Ins + + + Del + Del - - Could not get query info - クエリー情報を取得できませんでした + Pause + Pause - - Could not start transaction - トランザクションを開始できませんでした + Print + Print - - Unable to commit transaction - トランザクションをコミットできません + SysReq + SysReq - - Could not allocate statement - ステートメントの領域を確保できませんでした + Home + Home - - Could not prepare statement - プリペアステートメントを使えませんでした + End + End - - - Could not describe input statement - INPUT ステートメントの情報を取得できませんでした + Left + - - Could not describe statement - ステートメントの情報を取得できませんでした + Up + - - Unable to close statement - ステートメントをクローズできません + Right + - - Unable to execute query - クエリーを実行できません + Down + - - Could not fetch next item - 次のレコードをフェッチできませんでした + PgUp + PgUp - - Could not get statement info - ステートメントの情報を取得できませんでした + PgDown + PgDown - - - QIODevice - - Permission denied - 許可されていません + CapsLock + CapsLock - - Too many open files - 開かれたファイルが多すぎます + NumLock + NumLock - - No such file or directory - そのようなファイルやディレクトリはありません + ScrollLock + ScrollLock - - No space left on device - デバイスの残り容量がありません + Menu + メニュー - - Unknown error - 不明なエラー + Help + ヘルプ - - - QInputContext - - XIM - XIM + Back + 戻る - - XIM input method - XIM 入力メソッド + Forward + 進む - - Windows input method - Windows 入力メソッド + Stop + 停止 - - Mac OS X input method - Mac OS X 入力メソッド + Refresh + 更新間隔 - - - QInputDialog - - Enter a value: - 数値を入力: + Volume Down + 音量を下げる - - - QLibrary - - Could not mmap '%1': %2 - '%1' をメモリにマッピングできませんでした: %2 + Volume Mute + 消音 - - Plugin verification data mismatch in '%1' - '%1' でプラグイン検証データが一致しません + Volume Up + 音量を上げる - - Could not unmap '%1': %2 - '%1' のマッピングを解除できませんでした: %2 + Bass Boost + 低音ブースト - - The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] - プラグイン '%1' は、互換性のない Qt ライブラリを使用しています。(%2.%3.%4) [%5] + Bass Up + 低音を上げる - - The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" - プラグイン '%1' は、互換性のない Qt ライブラリを使用しています。ビルドキー "%2" が必要ですが、"%3" しかありません + Bass Down + 低音を下げる - - Unknown error - 不明なエラー + Treble Up + 高音を上げる - QLibrary::load_sys: Cannot load %1 (%2) - QLibrary::load_sys: %1 をロードできません (%2) + Treble Down + 高音を下げる - QLibrary::unload_sys: Cannot unload %1 (%2) - QLibrary::unload_sys: %1 をアンロードできません (%2) + Media Play + メディアの再生 - QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) - QLibrary::resolve_sys: シンボル "%1" は %2 で定義されていません (%3) + Media Stop + メディアの停止 - - - The shared library was not found. - 共有ライブラリがみつかりません。 + Media Previous + 前のメディア - - The file '%1' is not a valid Qt plugin. - ファイル '%1' は Qt プラグインではありません。 + Media Next + 次のメディア - - The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) - プラグイン '%1' はこの Qt と互換性のないライブラリを使用しています。 (デバック版とリリース版のライブラリを同時に使用することはできません) + Media Record + メディアの録音 - - - Cannot load library %1: %2 - ライブラリ '%1' を読み込むことができません: %2 + Media Pause + Media player pause button + メディアの一時停止 - - - Cannot unload library %1: %2 - ライブラリ %1 を解放することができません: %2 + Toggle Media Play/Pause + Media player button to toggle between playing and paused + メディアの再生と一時停止の切り替え - - - Cannot resolve symbol "%1" in %2: %3 - '%2'に含まれる識別子 "%1" を解決できません: %3 + Home Page + ホームページ - - - QLineEdit - - &Undo - 元に戻す(&U) + Favorites + お気に入り - - &Redo - やり直す(&R) + Search + 検索 - - Cu&t - 切り取り(&T) + Standby + スタンバイ - - &Copy - コピー(&C) + Open URL + URLを開く - - &Paste - 貼り付け(&P) + Launch Mail + メールの起動 - - Delete - 削除 + Launch Media + メディアの起動 - - Select All - すべてを選択 + Launch (0) + (0)の起動 - - - QLocalServer - - - %1: Name error - %1: 名前の解決に失敗 + Launch (1) + (1)の起動 - - %1: Permission denied - %1: 許可されていません + Launch (2) + (2)の起動 - - %1: Address in use - %1: アドレスは既に使用されています + Launch (3) + (3)の起動 - - %1: Unknown error %2 - %1: 未知のエラー %2 + Launch (4) + (4)の起動 - - - QLocalSocket - - - %1: Connection refused - %1: 接続が拒否されました + Launch (5) + (5)の起動 - - - %1: Remote closed - %1: リモートにより接続が閉じられました + Launch (6) + (6)の起動 - - - - - %1: Invalid name - %1: 無効な名前です + Launch (7) + (7)の起動 - - - %1: Socket access error - %1: ソケットアクセスのエラーです + Launch (8) + (8)の起動 - - - %1: Socket resource error - %1: ソケットリソースのエラーです + Launch (9) + (9)の起動 - - - %1: Socket operation timed out - %1: ソケット操作がタイムアウトしました + Launch (A) + (A)の起動 - - - %1: Datagram too large - %1: データグラムが大きすぎます + Launch (B) + (B)の起動 - - - - %1: Connection error - %1: 接続のエラーが発生しました + Launch (C) + (C)の起動 - - - %1: The socket operation is not supported - %1: そのソケット操作はサポートされていません + Launch (D) + (D)の起動 - - %1: Unknown error - %1: 未知のエラーです + Launch (E) + (E)の起動 - - - %1: Unknown error %2 - %1: 未知のエラー %2 + Launch (F) + (F)の起動 - - - QMYSQLDriver - - Unable to open database ' - データベースをオープンできません ' + Monitor Brightness Up + モニタの輝度を上げる - - Unable to connect - 接続できません + Monitor Brightness Down + モニタの輝度を下げる - - Unable to begin transaction - トランザクションを開始できません + Keyboard Light On/Off + キーボードライトのオン・オフ - - Unable to commit transaction - トランザクションをコミットできません + Keyboard Brightness Up + キーボードの輝度を上げる - - Unable to rollback transaction - トランザクションをロールバックできません + Keyboard Brightness Down + キーボードの輝度を下げる + + + Power Off + 電源オフ - - - QMYSQLResult - - Unable to fetch data - データをフェッチできません + Wake Up + 起動 - - Unable to execute query - クエリーを実行できません + Eject + 取り出し - - Unable to store result - 実行結果を記録できません + Screensaver + スクリーンセーバ - - - Unable to prepare statement - プリペアステートメントを使えません + WWW + WWW - - Unable to reset statement - ステートメントをリセットできません + Sleep + スリープ - - Unable to bind value - 値をバインドできません + LightBulb + ライト - - Unable to execute statement - ステートメントを実行できません + Shop + ショップ - - - Unable to bind outvalues - 出力値をバインドできません + History + 履歴 - - Unable to store statement results - ステートメントの実行結果を記録できません + Add Favorite + お気に入りに追加 - - Unable to execute next query - 次のクエリーを実行できません + Hot Links + - - Unable to store next result - 次の結果を記録できません + Adjust Brightness + 輝度の調整 - - - QMdiArea - - (Untitled) - (タイトルなし) + Finance + ファイナンス - - - QMdiSubWindow - - %1 - [%2] - %1 - [%2] + Community + コミュニティ - - Close - 閉じる + Audio Rewind + オーディオの巻き戻し - - Minimize - 最小化 + Back Forward + - - Restore Down - 元に戻す + Application Left + - - &Restore - 元に戻す(&R) + Application Right + - - &Move - 移動(&M) + Book + 書籍 - - &Size - サイズ(&S) + CD + CD - - Mi&nimize - 最小化(&N) + Calculator + 電卓 - - Ma&ximize - 最大化(&X) + Clear + クリア - - Stay on &Top - 常に手前に表示(&T) + Clear Grab + - - &Close - 閉じる(&C) + Close + 閉じる - - - [%1] - - [%1] + Copy + コピー - - Maximize - 最大化 + Cut + 切り取り - - Unshade - たぶん選択・非選択状態のウィンドウのことだと思うけど。fvwmなどのx11で使われている用語 - 非選択 + Display + ディスプレイ - - Shade - 選択 + DOS + DOS - - Restore - 元に戻す + Documents + ドキュメント - - Help - ヘルプ + Spreadsheet + スプレッドシート - - Menu - メニュー + Browser + ブラウザ - - - QMenu - - - Close - 閉じる + Game + ゲーム - - - Open - オープン + Go + - - - - Execute - 実行 + iTouch + - - - QMenuBar - About Qt - Qt について + Logoff + ログオフ - - - QMessageBox - - Help - ヘルプ + Market + マーケット - - - - - OK - OK + Meeting + 会議 - <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://qt.nokia.com/">qt.nokia.com</a> for more information.</p> - <h3>Qt について</h3>%1 -<p>QtはクロスプラットフォームのC++ アプリケーション開発ツールキットです。</p> -<p>Qt は MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, 商用のUnix派生版でソースコード互換を実現します。また、Qtopia Coreのように、内蔵デバイスでも利用可能です。</p> -<p>QtはTrolltechの商品です。詳細は<tt>http://qt.nokia.com/</tt>を参照してください。</p> + Keyboard Menu + キーボードメニュー - <p>This program uses Qt version %1.</p> - <p>このプログラムは Qt バージョン %1 を使用しています。</p> + Menu PB + - <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://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> for an overview of Qt licensing.</p> - <p>このプログラムは Qt オープンソース版バージョン %1 を使用しています。</p> -<p>Qt オープンソース版はオープンソースのアプリケーションの開発用です。ソースコードを公開しない商用アプリケーションを開発するには商用版のライセンスが必要です。</p><p>Qtのライセンスについては<tt>http://qt.nokia.com/company/model.html</tt>を参照してください。</p> + My Sites + マイサイト - - About Qt - Qt について + News + ニュース - - Show Details... - 詳細を表示... + Home Office + ホームオフィス - - Hide Details... - 詳細を隠す... + Option + オプション - - <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 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> - <h3>Qtについて</h3> -<p>このプログラムは Qt バージョン %1 を使用しています。</p> -<p>Qt は、クロスプラットホームのアプリケーション開発に使用される C++ のツールキットです。</p> -<p>Qt は、 MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, そして多数の Unix 系OS環境に対して、単一のソースからバイナリを生成します。 -また、 Linux および Windows CE を元とした組み込み環境にも対応しています。</p> -<p>Qt は様々なユーザの要望に応じるために、3つの異なるライセンスで提供されています。</p> -<p> -Qt 商用ライセンスは、プロプライエタリまたは商用ソフトウェアに適用できます。 -この場合は、他者とのソースコードの共有を拒否し、 GNU LGP バージョン 2.1 または GNU GPL バージョン 3.0 を許容できないソフトウェアにおいて Qt を使用できます。 -</p> -<p> -Qt GNU LGPL バージョン 2.1 ライセンスは、プロプライエタリまたはオープンソースソフトウェアに適用できます。 -この場合は、 GNU LGPL バージョン 2.1 に従う必要があります。 -</p> -<p> -Qt GNU General Public License バージョン 3.0 ライセンスは、GNU GPL バージョン 3.0 または GPL 3.0 と互換性のあるライセンスを採用しているソフトウェアに適用されます。 -この場合は、GNU GPL バージョン 3.0 に従う必要があります。 -</p> -<p> -ライセンスの詳細については、<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> -を参照してください。</p> -<p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p> -<p>Qt は Nokia の製品です。詳細については<a href="http://qt.nokia.com/">qt.nokia.com</a> を参照してください。</p> -<p> -訳注: ライセンスはここにある翻訳は参考のためのものであり、オリジナルの(英語の)ものが正式なものとなります。 -</p> + Paste + 貼り付け - - - QMultiInputContext - - Select IM - インプットメソッドを選択 + Phone + 電話 - - - QMultiInputContextPlugin - - Multiple input method switcher - 複数のインプットメソッドを切り替え + Reply + 返信 - - Multiple input method switcher that uses the context menu of the text widgets - テキストウィジェットのコンテキストメニューを使った複数のインプットメソッドの切り替えです + Reload + リロード - - - QNativeSocketEngine - - Unable to initialize non-blocking socket - 非ブロック型ソケットを初期化できません + Rotate Windows + - - Unable to initialize broadcast socket - ブロードキャストソケットを初期化できません + Rotation PB + - - Attempt to use IPv6 socket on a platform with no IPv6 support - IPv6 がサポートされていないプラットフォームで IPv6 ソケットを使用しようとしています + Rotation KB + - - The remote host closed the connection - リモートホストは接続を閉じました + Save + 保存 - - Network operation timed out - ネットワーク操作がタイムアウトしました + Send + 送信 - - Out of resources - リソースが足りません + Spellchecker + スペルチェッカー - - Unsupported socket operation - サポートされていないソケット操作です + Split Screen + 画面の分割 - - Protocol type not supported - プロトコル型がサポートされていません + Support + サポート - - Invalid socket descriptor - 無効なソケット記述子です + Task Panel + タスクパネル - - Host unreachable - ホストへ到達できません + Terminal + 端末 - - Network unreachable - ネットワークへ到達できません + Tools + ツール - - Permission denied - 許可されていません + Travel + 旅行 - - Connection timed out - 接続がタイムアウトしました + Video + 動画 - - Connection refused - 接続を拒否されました + Word Processor + ワードプロセッサ - - The bound address is already in use - バインドアドレスは既に使われています + XFer + 変換 - - The address is not available - そのアドレスは使用できません + Zoom In + 拡大 - - The address is protected - そのアドレスへのアクセス権がありません + Zoom Out + 縮小 - - Datagram was too large to send - データグラムが大き過ぎて送信できませんでした + Away + 離席 - - Unable to send a message - メッセージを送信できません + Messenger + メッセンジャー - - Unable to receive a message - メッセージを受信できません + WebCam + Webカメラ - - Unable to write - 書き込みができません + Mail Forward + メールの転送 - - Network error - ネットワークエラー + Pictures + 画像 - - Another socket is already listening on the same port - 別のソケットが同じポートで既に待ち受けています + Music + 音楽 - - Operation on non-socket - 非ソケットに対する操作です + Battery + バッテリ - - Unknown error - 不明なエラー + Bluetooth + ブルートゥース - - The proxy type is invalid for this operation - このプロキシーは、この操作に対応していません + Wireless + 無線 - - - QNetworkAccessCacheBackend - - Error opening %1 - オープンのエラー %1 + Ultra Wide Band + 超広帯域無線(UWB) - - - QNetworkAccessDebugPipeBackend - - Write error writing to %1: %2 - %1 への書き込み時にエラーが発生しました: %2 + Audio Forward + オーディオの早送り - - - QNetworkAccessFileBackend - - Request for opening non-local file %1 - 非ローカルファイル %1 をオープンするよう要求されましたが、ローカルファイルのみオープンできます + Audio Repeat + オーディオの繰り返し - - Error opening %1: %2 - %1 をオープンする時にエラーが発生しました: %2 + Audio Random Play + オーディオのランダム再生 - - Write error writing to %1: %2 - %1 への書き込み時にエラーが発生しました: %2 + Subtitle + 字幕 - - Cannot open %1: Path is a directory - %1 をオープンできません。指定されたパスはディレクトリです + Audio Cycle Track + - - Read error reading from %1: %2 - %1 を読み込み時にエラーが発生しました: %2 + Time + 時間 - - - QNetworkAccessFtpBackend - - No suitable proxy found - 適切なプロキシーがみつかりません + View + 表示 - - Cannot open %1: is a directory - %1 をオープンできません。指定されたパスはディレクトリです + Top Menu + トップメニュー - - Logging in to %1 failed: authentication required - %1 へのログインに失敗しました。認証が必要です + Suspend + サスペンド - - Error while downloading %1: %2 - %1 をダウンロード中にエラーが発生しました: %2 + Hibernate + 休止 - - Error while uploading %1: %2 - %1 をアップロード中にエラーが発生しました: %2 + Print Screen + Print Screen - - - QNetworkAccessHttpBackend - - No suitable proxy found - 適切なプロキシーがみつかりません + Page Up + Page Up - - - QNetworkReply - - Error downloading %1 - server replied: %2 - %1 をダウンロード中にエラーが発生しました。サーバの返答: %2 + Page Down + Page Down - - Protocol "%1" is unknown - プロトコル "%1" はサポートされていません + Caps Lock + Caps Lock - - - QNetworkReplyImpl - - - Operation canceled - 操作はキャンセルされました + Num Lock + Num Lock - - - QOCIDriver - - Unable to initialize - QOCIDriver - 初期化できません + Number Lock + Number Lock - - Unable to logon - ログオンできません + Scroll Lock + Scroll Lock - - Unable to begin transaction - トランザクションを開始できません + Insert + Insert - - Unable to commit transaction - トランザクションをコミットできません + Delete + Delete - - Unable to rollback transaction - トランザクションをロールバックできません + Escape + Escape - - - QOCIResult - - - - Unable to bind column for batch execute - バッチ処理用にフィールドをバインドできません + System Request + System Request - - Unable to execute batch statement - バッチステートメントを実行できません + Select + Select - - Unable to goto next - 次のレコードへ進めません + Yes + はい - - Unable to alloc statement - ステートメントの領域を確保できません + No + いいえ - - Unable to prepare statement - プリペアステートメントを使えません + Context1 + Context1 - - Unable to bind value - 値をバインドできません + Context2 + Context2 - Unable to execute select statement - SELECT ステートメントを実行できません + Context3 + Context3 - - Unable to execute statement - ステートメントを実行できません + Context4 + Context4 - - - QODBCDriver - - Unable to connect - 接続できません + Call + Button to start a call (note: a separate button is used to end the call) + Call - - Unable to connect - Driver doesn't support all needed functionality - 接続できません - ドライバは全ての必要な機能をサポートしていません + Hangup + Button to end a call (note: a separate button is used to start the call) + Hangup - - Unable to disable autocommit - オートコミットを無効にできません + Toggle Call/Hangup + Button that will hang up if we're in call, or make a call if we're not. + - - Unable to commit transaction - トランザクションをコミットできません + Flip + Flip - - Unable to rollback transaction - トランザクションをロールバックできません + Voice Dial + Button to trigger voice dialling + ボイスダイアル - - Unable to enable autocommit - オートコミットを有効にできません + Last Number Redial + Button to redial the last number called + 直前の番号にリダイヤル - - - QODBCResult - - - Unable to execute statement - ステートメントを実行できません + Camera Shutter + Button to trigger the camera shutter (take a picture) + カメラシャッター - - Unable to fetch next - 次のレコードをフェッチできません + Camera Focus + Button to focus the camera + カメラフォーカス - - Unable to prepare statement - プリペアステートメントを使えません + Kanji + 漢字 - - Unable to bind variable - 変数をバインドできません + Muhenkan + 無変換 - - - QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration - QODBCResult::reset: ステートメントの属性として 'SQL_CURSOR_STATUS' を設定できません。ODBC ドライバの構成をチェックしてください + Henkan + 変換 - - - - Unable to fetch last - リストを取得できません + Romaji + ローマ字 - - Unable to fetch - フェッチできません + Hiragana + ひらがな - - Unable to fetch first - 最初のレコードをフェッチできません + Katakana + カタカナ - - Unable to fetch previous - 前のレコードをフェッチできません + Hiragana Katakana + ひらがな/カタカナ - - - QObject - False - False + Zenkaku + 全角 - True - True + Hankaku + 半角 - - Home - ホーム + Zenkaku Hankaku + 全角/半角 - - Operation not supported on %1 - %1 ではこの操作はサポートされていません + Touroku + 単語登録 - - Invalid URI: %1 - 無効なURIです: %1 + Massyo + 単語抹消 - - Socket error on %1: %2 - %1 のソケットにおいてエラーが発生しました: %2 + Kana Lock + カナロック - - Remote host closed the connection prematurely on %1 - リモートホスト %1 との接続が通信の終了前に切断されました + Kana Shift + カナシフト - - - No host name given - ホストネームが与えられていません + Eisu Shift + 英数シフト - - - QPPDOptionsModel - - Name - 名前 + Eisu toggle + 英数 - - Value - + Code input + コード入力 - - - QPSQLDriver - - Unable to connect - 接続できません + Multiple Candidate + 全候補 - - Could not begin transaction - トランザクションを開始できませんでした + Previous Candidate + 前候補 - - Could not commit transaction - トランザクションをコミットできませんでした + Hangul + ハングル - - Could not rollback transaction - トランザクションをロールバックできませんでした + Hangul Start + - - Unable to subscribe - subscribe できません + Hangul End + - - Unable to unsubscribe - unsubscribe できません + Hangul Hanja + - - - QPSQLResult - - Unable to create query - クエリーを作成できません + Hangul Jamo + - - Unable to prepare statement - プリペアステートメントを使えません + Hangul Romaja + - - - QPageSetupWidget - - Centimeters (cm) - センチメートル (cm) + Hangul Jeonja + - - Millimeters (mm) - ミリメートル (mm) + Hangul Banja + - - Inches (in) - インチ (in) + Hangul PreHanja + - - Points (pt) - ポイント (pt) + Hangul PostHanja + - - Form - 書式設定 + Hangul Special + - - Paper - 用紙 + Ctrl + Ctrl - - Page size: - ページサイズ: + Shift + Shift - - Width: - 幅: + Alt + Alt - - Height: - 高さ: + Meta + Meta - - Paper source: - 給紙装置: + + + + - - Orientation - 印刷方向 + F%1 + F%1 + + + QSlider - - Portrait - 縦 (ポートレート) + Page left + 1ページ左へスクロール - - Landscape - 横 (ランドスケープ) + Page up + 1ページ戻る - - Reverse landscape - 横 反転 (リバースランドスケープ) + Position + 位置 - - Reverse portrait - 縦 反転 (リバースポートレート) + Page right + 1ページ右へスクロール - - Margins - 余白 + Page down + 1ページ進む + + + QSocks5SocketEngine - - top margin - 上端余白 + Connection to proxy refused + プロキシーへの接続が拒否されました - - left margin - 左端余白 + Connection to proxy closed prematurely + プロキシーの接続が通信の終了前に切断されました - - right margin - 右端余白 + Proxy host not found + プロキシーホストが見つかりません - - bottom margin - 下端余白 + Connection to proxy timed out + プロキシーとの接続がタイムアウトしました - - - QPatternist::QtXmlPatterns - - An %1-attribute with value %2 has already been declared. - 属性 %1 の値 %2 は既に宣言されています。 + Proxy authentication failed + プロキシーの認証に失敗しました - - An %1-attribute must have a valid %2 as value, which %3 isn't. - 属性 %1 の値は %2 の型でなければなりませんが、 %3 が指定されました。 + Proxy authentication failed: %1 + プロキシーの認証に失敗しました: %1 - - %1 is an unsupported encoding. - %1 はサポートされていないエンコーディングです。 + SOCKS version 5 protocol error + SOCKS バージョン 5 プロトコルのエラーです - - %1 contains octets which are disallowed in the requested encoding %2. - エンコーディング %2 では許可されていないオクテットが %1 に含まれています。 + General SOCKSv5 server failure + SOCKS バージョン 5 サーバのエラーです - - The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. - %2 で使用されているエンコード %3 では、コードポイント %1 は有効な XML 表現ではありません。 + Connection not allowed by SOCKSv5 server + SOCKSv5 サーバより接続を拒否されました - - Network timeout. - ネットワーク接続がタイムアウトしました。 + TTL expired + 実際はホップ数です + 有効期限(TTL)がきれました - - Element %1 can't be serialized because it appears outside the document element. - エレメント %1 はシリアライズできません。このドキュメントの範囲を越えるエレメントを含んでいます。 + SOCKSv5 command not supported + この SOCKSv5 コマンドはサポートされていません - - Attribute %1 can't be serialized because it appears at the top level. - 属性 %1 はシリアライズできません。トップレベルに現れているためです。 + Address type not supported + 指定されたアドレスタイプはサポートされていません - - Year %1 is invalid because it begins with %2. - %1 年はむこうです。%2 で始まっています。 + Unknown SOCKSv5 proxy error code 0x%1 + 未知の SOCKSv5 プロキシーエラーです: 0x%1 - - Day %1 is outside the range %2..%3. - %1 日は、有効な範囲 %2..%3 を逸脱しています。 + Network operation timed out + ネットワーク操作がタイムアウトしました + + + QSoftKeyManager - - Month %1 is outside the range %2..%3. - %1 月は、有効な範囲 %2..%3 を逸脱しています。 + Ok + OK - - Overflow: Can't represent date %1. - オーバーフロー: 日付 %1 を再現できません。 + Select + セレクト - - Day %1 is invalid for month %2. - %2 月には、%1 日は存在しません。 + Done + 終了 - - Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; - 24:%1:%2.%3 は無効です。24時0分0秒のみ使用できます + Options + オプション - - Time %1:%2:%3.%4 is invalid. - 時刻 %1時%2分%3.%4秒は無効です。 + Cancel + キャンセル - - Overflow: Date can't be represented. - オーバーフロー: 日付を再現できません。 + Exit + 終了 + + + QSpinBox - - - At least one component must be present. - 年、月、日のうちいずれかを指定しなければなりません。 + More + 増やす - - At least one time component must appear after the %1-delimiter. - %1 の後には、時刻を指定しなければなりません。 + Less + 減らす + + + QSql - - No operand in an integer division, %1, can be %2. - ゼロ除算? NaN? - 整数の除算のためのオペランドが不足しています。%1 は %2 でなければなりません。 + Delete + 削除 - - The first operand in an integer division, %1, cannot be infinity (%2). - 整数の除算における最初のオペランド %1 を認識できません (%2)。 + Delete this record? + このレコードを削除しますか? - - The second operand in a division, %1, cannot be zero (%2). - 整数の除算における二つ目のオペランド %1 はゼロであってはいけまん(%2)。 + Yes + はい - - %1 is not a valid value of type %2. - %1 は、%2 の型に対して有効な値ではありません。 + No + いいえ - - When casting to %1 from %2, the source value cannot be %3. - %2 から %1 への型変換に際しては、値 %3 は有効な値ではありません。 + Insert + 挿入 - - Integer division (%1) by zero (%2) is undefined. - 整数の除算において %1 をゼロ (%2) で割った結果は定義されていません。 + Update + アップデート - - Division (%1) by zero (%2) is undefined. - 除算において %1 をゼロ (%2) で割った結果は定義されていません。 + Save edits? + 編集内容を保存しますか? - - Modulus division (%1) by zero (%2) is undefined. - 剰余を求めるに際し、%1 をゼロ (%2) で除した結果は定義されていません。 + Cancel + キャンセル - - - Dividing a value of type %1 by %2 (not-a-number) is not allowed. - 型 %1 を非数 %2 (NaN) で除すことはできません。 + Confirm + 確認 - - Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. - 型 %1 を%2 または %3 (正または負のゼロ) で除することはできません。 + Cancel your edits? + 編集をキャンセルしますか? + + + QSslSocket - - Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. - 型 %1 を %2 または %3 (正または負のゼロ)で乗ずることはできません。 + Error creating SSL context (%1) + SSL content の作成に失敗しました (%1) - - A value of type %1 cannot have an Effective Boolean Value. - 型 %1 は有効な論理型(bool)ではありません。 + Invalid or empty cipher list (%1) + 暗号方式リストが不正または空です (%1) - - Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. - ?? - 論理型は、論理型以外の複数の値からなる計算によって求めることはできません。 + Cannot provide a certificate with no key, %1 + 鍵が指定されていないため、証明書を扱えません。 %1 - - Value %1 of type %2 exceeds maximum (%3). - 型 %2 の値 %1 は、上限 (%3) を越えています。 + Error loading local certificate, %1 + ローカルの証明書をロードできません。 %1 - - Value %1 of type %2 is below minimum (%3). - 型 %2 の値 %1 は、下限 (%3) を越えています。 + Error loading private key, %1 + プライベートキーをロードできません。 %1 - - A value of type %1 must contain an even number of digits. The value %2 does not. - 型 %1 の値は偶数個の十進数文字を必要とします。しかし、%2 はそうではありません。 + Private key does not certify public key, %1 + 秘密鍵が公開鍵 %1 を証明していません - - %1 is not valid as a value of type %2. - 型 %2 に対して、値 %1 は有効ではありません。 + Error creating SSL session, %1 + SSL セッションを作成できません。 %1 - - Ambiguous rule match. - 曖昧なルールにマッチしました。 + Error creating SSL session: %1 + SSL セッションを作成できません: %1 - - Operator %1 cannot be used on type %2. - 型 %2 に対して、オペレータ %1 は使用できません。 + Unable to write data: %1 + 書き込みできません: %1 - - Operator %1 cannot be used on atomic values of type %2 and %3. - アトミックな型 %2 と %3 に対して、オペレータ %1 は使用できません。 + Unable to decrypt data: %1 + データを解読できません: %1 - - The namespace URI in the name for a computed attribute cannot be %1. - computed attrib. ってなんてやくすのが適当かな。 - 結合された属性に対する名前空間のURIとして、%1 を使用することはできません。 + Error while reading: %1 + 読み込み時にエラーが発生しました: %1 - - The name for a computed attribute cannot have the namespace URI %1 with the local name %2. - 結合された属性の名前空間URI %1 は、ローカルな名前である %2 と併用できません。 + Error during SSL handshake: %1 + SSL ハンドシェーク時にエラーが発生しました: %1 - - Type error in cast, expected %1, received %2. - 型変換時のエラーです。望んでいた %1 ではなく、%2 になりました。 + No error + エラーはありません - - 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. - %1 またはそれを継承している型への型変換においては、元の値の型は同じ型か、リテラルな文字列である必要があります。型 %2 は許可されていません。 + The issuer certificate could not be found + 発行者証明書が見つかりません - - No casting is possible with %1 as the target type. - 目標とする型に %1 を型変換することはできません。 + The certificate signature could not be decrypted + 証明書の署名が復号できません - - It is not possible to cast from %1 to %2. - 型 %1 を型 %2 に型変換することはできません。 + The public key in the certificate could not be read + 証明書の公開鍵が読めません - - Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. - 型 %1 への型変換はできません。抽象型であり、インスタンス化することができないからです。 + The signature of the certificate is invalid + 証明書の署名が不正です - - It's not possible to cast the value %1 of type %2 to %3 - 型 %2 の値 %1 を、型 %3 に型変換することはできません + The certificate is not yet valid + 証明書が有効ではありません - - Failure when casting from %1 to %2: %3 - %1 を %2 に型変換することができません: %3 + The certificate has expired + 証明書の有効期限が切れています - - A comment cannot contain %1 - コメントが %1 を含むことはできません + The certificate's notBefore field contains an invalid time + 証明書の notBefore フィールドに不正な時刻が含まれています - - A comment cannot end with a %1. - コメントは %1 で終了することはできません。 + The certificate's notAfter field contains an invalid time + 証明書の notAfter フィールドに不正な時刻が含まれています - - No comparisons can be done involving the type %1. - 型 %1 に対して比較を行うことはできません。 + The certificate is self-signed, and untrusted + この証明書は自己証明書であり、信頼されていません - - Operator %1 is not available between atomic values of type %2 and %3. - オペレータ %1 は、アトミックな型である %2 と %3 には適用できません。 + The root certificate of the certificate chain is self-signed, and untrusted + 証明書チェインのルート証明書が自己証明書であり、信頼されていません - - In a namespace constructor, the value for a namespace cannot be an empty string. - 名前空間のスントラクトにおいて、空白の文字列を名前空間の値として使用することはできません。 + The issuer certificate of a locally looked up certificate could not be found + ローカルで発見した証明書の発行者証明書が見つかりません - - The prefix must be a valid %1, which %2 is not. - プレフィックスは %1 でなければなりません。%2 は無効です。 + No certificates could be verified + どの証明書も検証できませんでした - - The prefix %1 cannot be bound. - プレフィックス %1 はバウンドできません。 + One of the CA certificates is invalid + CA 証明書に不正な証明書があります - - Only the prefix %1 can be bound to %2 and vice versa. - プレフィックス %1 は、%2 にのみバウンドできます。逆も同じです。 + The basicConstraints path length parameter has been exceeded + 基本制約(basicConstraints)で制限されたパスの長さを超えています - - An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. - ドキュメントノードの子として属性ノードを指定することはできません。属性 %1 は誤った場所にあります。 + The supplied certificate is unsuitable for this purpose + 与えられた証明書はこの目的には利用できません - - Circularity detected - 循環を検出しました + The root CA certificate is not trusted for this purpose + ルートCA証明書はこの目的には信頼されていません - - A library module cannot be evaluated directly. It must be imported from a main module. - ライブラリモジュールを直接評価することはできません。メインモジュールからインポートする必要があります。 + The root CA certificate is marked to reject the specified purpose + ルートCA証明書を指定された目的に使用することは拒否されています - - No template by name %1 exists. - テンプレート名 %1 は存在しません。 + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + 更新用に準備された発行者証明書は、その所有者名が現在の証明書の発行者名と異なるため拒否されました - - A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. - 型 %1 は述部として使用できません。数値型か、論理型である必要があります。 + 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 + 更新用に準備された発行者証明書は、その発行者名とシリアル番号が現在の証明書の機関鍵識別子と異なるため拒否されました - - A positional predicate must evaluate to a single numeric value. - positional? - 述部は評価されたとき、単一の数値になるようにしなければなりません。 + The peer did not present any certificate + 通信相手は証明書を提示しませんでした - - The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. - ターゲットとしている名前は、%1 であってはなりません。%2 は無効です。 + The host name did not match any of the valid hosts for this certificate + ホスト名がこの証明書のどの有効なホストとも一致しませんでした - - %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. - %1 はターゲットとして無効です。%2 である必要があります。例えば "%3" のようにです。 + Unknown error + 未知のエラー + + + QStateMachine - - The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. - バスの末端であるリーフは、単一のノードかアトミックな値である必要があります。複数の型の組み合わせであってはいけません。 + Missing initial state in compound state '%1' + 複合ステート '%1' に初期ステートが見つかりません - - The data of a processing instruction cannot contain the string %1 - 処理中のデータは、以下の文字列を含んでいてはなりません: %1 + Missing default state in history state '%1' + ヒストリーステート '%1' にデフォルトステートが見つかりません - - No namespace binding exists for the prefix %1 - プレフィックス %1 にバインドされたネームスペースがありません + No common ancestor for targets and source of transition from state '%1' + ステート '%1' からの遷移のソースおよびターゲットに共通した祖先がありません - - No namespace binding exists for the prefix %1 in %2 - %2 におけるプレフィックス %1 にバインディングされたネームスペースが存在しません + Unknown error + 未知のエラー + + + QSystemSemaphore - - - %1 is an invalid %2 - 型 %2 に対し、値 %1 は無効です + %1: out of resources + %1: リソース不足です - - The parameter %1 is passed, but no corresponding %2 exists. - パラメータ %1 を処理しました。しかし、対応する %2 が存在しません。 + %1: permission denied + %1: 許可されていません - - The parameter %1 is required, but no corresponding %2 is supplied. - パメータ %1 が必要です。しかし、対応する %2 がありません。 - - - - %1 takes at most %n argument(s). %2 is therefore invalid. - - %1 は、最大で %n 個の引数をとることができます。%2 は無効です。 - + %1: already exists + %1: 既に存在します - - - %1 requires at least %n argument(s). %2 is therefore invalid. - - %1 は、少くとも %n 個の引数を必要とします。%2 は無効です。 - + + %1: does not exist + %1: 存在しません - - The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. - %1 への最初の引数は、型 %2 であってはなりません。数値型、xs:yerMonthDuration、xs:dayTimeDurationである必要があります。 + %1: unknown error %2 + %1: 未知のエラーです %2 + + + QTDSDriver - - The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - %1 への最初の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。 + Unable to open connection + 接続をオープンできません - - The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. - %1 への二つ目の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。 + Unable to use database + データベースを使用できません + + + QTabBar - - %1 is not a valid XML 1.0 character. - %1 は XML 1.0 において有効な文字ではありません。 + Scroll Left + 左へスクロール - - The first argument to %1 cannot be of type %2. - %1 への最初の引数は、型 %2 であってはなりません。 + Scroll Right + 右へスクロール + + + QTcpServer - - The root node of the second argument to function %1 must be a document node. %2 is not a document node. - %1 への二つ目の引数のルートノードは、ドキュメントノードでなければなりません。しかし、%2 はドキュメントノードではありません。 + Operation on socket is not supported + このソケットへの操作はサポートされていません + + + QTextControl - - If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. - ゾーンオフセットってなに? xmlにそんなのあったっけ? - もし二つの値がゾーンオフセットをもつ場合、両者は同じゾーンオフセットでなければなりません。%1 と %2 は同一ではありません。 + &Undo + 元に戻す(&U) - - %1 was called. - %1 が呼ばれました。 + &Redo + やり直す(&R) - - %1 must be followed by %2 or %3, not at the end of the replacement string. - %1 の後には、%2 か %3 が続かなければなりません。 + Cu&t + 切り取り(&T) - - In the replacement string, %1 must be followed by at least one digit when not escaped. - 置換操作において、%1 には少くとも一文字以上の数値が続く必要があります(エスケープされている場合を除く)。 + &Copy + コピー(&C) - - In the replacement string, %1 can only be used to escape itself or %2, not %3 - 置換操作において、%1 はそれ自身または %2 をエスケープする為にのみ使用できます。%3 に対しては使用できません + Copy &Link Location + リンクの場所をコピー(&L) - - %1 matches newline characters - %1 は改行文字(列)にマッチしました + &Paste + 貼り付け(&P) - - %1 and %2 match the start and end of a line. - %1 と %2 は、行の先頭と末尾にマッチしました。 + Delete + 削除 - - Matches are case insensitive - マッチは大文字小文字を区別しません + Select All + すべてを選択 + + + QToolButton - - Whitespace characters are removed, except when they appear in character classes - CDATA? - 空白文字は削除されました。ただし、キャラクタークラスに属するものは除きます + Press + 押す - - %1 is an invalid regular expression pattern: %2 - %1 は有効な正規表現ではありません。: %2 + Open + オープン + + + QUdpSocket - - %1 is an invalid flag for regular expressions. Valid flags are: - %1 は正規表現において無効なフラグです。使用可能なフラグは次の通りです: + This platform does not support IPv6 + このプラットフォームは IPv6 をサポートしていません + + + QUndoGroup - - If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. - もし、最初の引数が空白からなる文字列か、長さが0 (名前空間をともなわない)である場合、プレフィックスを指定することはできません。しかし、プレフィックスとして %1 が指定されています。 + Undo + 元に戻す - - It will not be possible to retrieve %1. - %1 を取得することはできないかもしれません。 + Redo + やり直す + + + QUndoModel - - The default collection is undefined - デフォルトのコレクションが定義されていません + <empty> + <空> + + + QUndoStack - - %1 cannot be retrieved - %1 を取得できません + Undo + 元に戻す - - The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). - つまり、空白の文字です、はどうでもいいよね。 - 正規化された表現 %1 はサポートされていません。サポートされている表現は、%2, %3, %4, %5 のみです。 + Redo + やり直す + + + QUnicodeControlCharacterMenu - - A zone offset must be in the range %1..%2 inclusive. %3 is out of range. - ゾーンオフセットは、%1 から %2 の範囲である必要があります(境界を含む)。%3 は範囲外です。 + LRM Left-to-right mark + LRM (左横書き指定) - - %1 is not a whole number of minutes. - %1 は、分を現す値ではありません。 + RLM Right-to-left mark + RLM (右横書き指定) - - The URI cannot have a fragment - この URI はフラグメントをもつことはできません + ZWJ Zero width joiner + ZWJ (幅のない接続文字) - - Required cardinality is %1; got cardinality %2. - カーディナリティ %1 が必要です。%2 ではありません。 + ZWNJ Zero width non-joiner + ZWNJ (幅のない非接続文字) - - The item %1 did not match the required type %2. - アイテム %1 は、要求された型 %2 にマッチしません。 + ZWSP Zero width space + ZWSP (幅の無い空白) - - Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. - エレメント %2 に属性 %1 を指定することはできません。標準の属性のみが許可されています。 + LRE Start of left-to-right embedding + LRE (左横書き開始指定) - - Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. - エレメント %2 に属性 %1 を指定することはできません。%3 と標準の属性のみが許可されています。 + RLE Start of right-to-left embedding + RLE (右横書き開始指定) - - Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. - エレメント %2 に属性 %1 を指定することはできません。%3, %4 と標準の属性のみが許可されています。 + LRO Start of left-to-right override + LRO (左横書き上書き開始指定) - - Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. - エレメント %2 に %1 は指定できません。%3 と標準の属性のみが指定できます。 + RLO Start of right-to-left override + RLO (右横書き上書き開始指定) - - XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. - XSLT エレメントに対するXSLT属性は、名前空間がnullでなければなりません。%1 は使用できません。 + PDF Pop directional formatting + PDF (方向上書きの終了指定) - - The attribute %1 must appear on element %2. - 属性 %1 は、エレメント %2 にのみ記述できます。 + Insert Unicode control character + Unicode制御文字を挿入 + + + QWebFrame - - The element with local name %1 does not exist in XSL-T. - ローカル名 %1 のエレメントは、XSLTに存在しません。 + Request cancelled + リクエストはキャンセルされました - - The variable %1 is unused - 値 %1 は使用されませんでした + Request blocked + リクエストはブロックされました - - A construct was encountered which only is allowed in XQuery. - XQuery でのみ許可されている construct に遭遇しました。 + Cannot show URL + URL を表示できません - - - %1 is an unknown schema type. - %1 はサポートされていないスキーマのタイプです。 + Frame load interrupted by policy change + ポリシーが変更されたためフレームのロードを中断しました - - A template by name %1 has already been declared. - テンプレート名 '%1' は、既に宣言されています。 + Cannot show mimetype + MIME Type を表示できません - - %1 is not a valid numeric literal. - %1 は数値リテラルとして無効です。 + File does not exist + ファイルが存在しません + + + QWebPage - - Only one %1 declaration can occur in the query prolog. - クェリーのプロローグでは、%1 は一回のみ宣言できます。 + Redirection limit reached + リダイレクトの上限に達しました - - The initialization of variable %1 depends on itself - 再帰? - 値 %1 の初期化は、それ自身に依存しています + Bad HTTP request + 誤った HTTP のリクエストです - - No variable by name %1 exists - 変数 %1 は存在しません + Submit + default label for Submit buttons in forms on web pages + 送信 - - Version %1 is not supported. The supported XQuery version is 1.0. - バージョン %1 はサポートされていません。XQuery バージョン 1.0 のみサポートされています。 + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + 送信 - - The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. - エンコーディング '%1' は無効です。ラテン文字 (空白を除く) からなるもので、正規表現 '%2' にマッチするもののみ使用できます。 + Reset + default label for Reset buttons in forms on web pages + リセット - - No function with signature %1 is available - シグネチャ %1 をもつ関数がみつかりません + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + 検索が可能です。検索のためのキーワードを入力してください: - - - A default namespace declaration must occur before function, variable, and option declarations. - 標準の名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。 + Choose File + title for file button used in HTML forms + ファイルを選ぶ - - Namespace declarations must occur before function, variable, and option declarations. - 名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。 + No file selected + text to display in file button used in HTML forms when no file is selected + ファイルが選択されていません - - Module imports must occur before function, variable, and option declarations. - モジュールのインポートは、関数、変数、オプションの宣言の前にしなければなりません。 + Open in New Window + Open in New Window context menu item + 新しいウィンドウで開く - - The keyword %1 cannot occur with any other mode name. - キーワード %1 は、他の名をともなって使用することはできません。 + Save Link... + Download Linked File context menu item + リンク先を保存... - - The value of attribute %1 must of type %2, which %3 isn't. - 属性 '%1' の値として '%3' が指定されましたが、型 '%2' でなければなりません。 + Copy Link + Copy Link context menu item + リンク先をコピー - - It is not possible to redeclare prefix %1. - プレフィックス '%1' を再定義することはできません。 + Open Image + Open Image in New Window context menu item + イメージを開く - - The prefix %1 can not be bound. By default, it is already bound to the namespace %2. - プレフィックス '%1' はバウンドできません。デフォルトでは、それは既に名前空間 '%2' にバウンドされています。 + Save Image + Download Image context menu item + 画像を保存 - - Prefix %1 is already declared in the prolog. - プロローグ部において、プレフィックス '%1' はすでに宣言されています。 + Copy Image + Copy Link context menu item + 画像をコピー - - The name of an option must have a prefix. There is no default namespace for options. - オプションの名前はプレフィックスをもたなければなりません。このオプションに対するデフォルトの名前空間は存在しません。 + Open Frame + Open Frame in New Window context menu item + フレームを新しいウィンドウで開く - - The Schema Import feature is not supported, and therefore %1 declarations cannot occur. - このスキーマのインポート機能は使用できません。また、'%1' 宣言も使用できません。 + Copy + Copy context menu item + コピー - - The target namespace of a %1 cannot be empty. - 名前空間 '%1' は、空であってはなりません。 + Go Back + Back context menu item + 戻る - - The module import feature is not supported - モジュールインポートの機能はサポートされていません + Go Forward + Forward context menu item + 進む - - A variable by name %1 has already been declared. - 名前 '%1' の変数は、すでに宣言されています。 + Stop + Stop context menu item + 停止 - - No value is available for the external variable by name %1. - 外部変数 '%1' の値がみつかりません。 + Reload + Reload context menu item + リロード - - A stylesheet function must have a prefixed name. - スタイルシート関数は、プレフィックス名を持たなければなりません。 + Cut + Cut context menu item + 切り取り - - The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) - ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス '%1' が使用できます) + Paste + Paste context menu item + 貼り付け - - The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. - 名前空間 '%1' は予約済です。ユーザ定義の関数では使用することはできません。プレフィックス '%2' が使用できます。 + No Guesses Found + No Guesses Found context menu item + 推測候補はありません - - 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 - ライブラリモジュールで使用されている名前空間は、モジュールの名前空間と同一でなければなりません。つまり、'%2' ではなく、'%1' でなければなりません + Ignore + Ignore Spelling context menu item + 無視 - - A function already exists with the signature %1. - シグネチャー '%1' の関数はすでに存在しています。 + Add To Dictionary + Learn Spelling context menu item + 辞書に追加 - - No external functions are supported. All supported functions can be used directly, without first declaring them as external - 外部関数はサポートされていません。すべてのサポートされている関数は、外部宣言をすることなく、直接使用することができます + Search The Web + Search The Web context menu item + Web を検索 - - An argument by name %1 has already been declared. Every argument name must be unique. - 引数名 '%1' は既に宣言されています。すべての引数名はユニークである必要があります。 + Look Up In Dictionary + Look Up in Dictionary context menu item + 辞書から探す - - When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. - パターン一致の内側で関数 '%1' を使用する場合、引数はリテラルな文字列を参照する値でなければなりません。 + Open Link + Open Link context menu item + リンクを開く - - In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. - XSL-T パターンマッチングにおいて、関数 '%1' の最初の引数は、リテラルな文字列でなければなりません。 + Ignore + Ignore Grammar context menu item + 無視 - - In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. - variable ref? - XSL-T パターンマッチングにおいて、関数 '%1' への最初の引数は、リテラルか変数でなければなりません。 + Spelling + Spelling and Grammar context sub-menu item + スペル - - In an XSL-T pattern, function %1 cannot have a third argument. - XSL-T パターンにおいて、関数 '%1' は三つの引数をもつことはできません。 + Show Spelling and Grammar + menu item title + スペルと文法を表示 - - In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. - XSL-T パターンマッチングにおいて、関数 '%1' と '%2' のみ使用できます。'%3' は使用できません。 + Hide Spelling and Grammar + menu item title + スペルと文法を隠す - - In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. - XSL-T パターンにおいて、axis %1 は使用できません。%2 または %3 のみ使用できます。 + Check Spelling + Check spelling context menu item + スペルをチェックする - - %1 is an invalid template mode name. - %1 はテンプレートモジュール名として無効です。 + Check Spelling While Typing + Check spelling while typing context menu item + 入力中にスペルをチェックする - - The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. - for 構文において使用する変数は、場所に関する変数とは異なる必要があります。つまり、'%1' が重複して使用されています。 + Check Grammar With Spelling + Check grammar with spelling context menu item + スペルおよび文法をチェックする - - The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. - スキーマの検証機能はサポートされていません。よって、'%1' 構文は使用できません。 + Fonts + Font context sub-menu item + フォント - - None of the pragma expressions are supported. Therefore, a fallback expression must be present - pragma 構文はサポートされていません。fallback 構文でなければなりません + Bold + Bold context menu item + 太字 - - Each name of a template parameter must be unique; %1 is duplicated. - テンプレートパラメータ名はユニークである必要があります。'%1' は重複しています。 + Italic + Italic context menu item + イタリック - - The %1-axis is unsupported in XQuery - XQuery において、%1 axis はサポートされていません + Underline + Underline context menu item + 下線 - - No function by name %1 is available. - 関数名 '%1' はみつかりません。 + Outline + Outline context menu item + アウトライン - - The namespace URI cannot be the empty string when binding to a prefix, %1. - プレフィックス '%1' にバインディングする名前空間の URI は、空であってはなりません。 + Direction + Writing direction context sub-menu item + 方向 - - %1 is an invalid namespace URI. - %1 は名前空間 URI として無効です。 + Text Direction + Text direction context sub-menu item + テキストの方向 - - It is not possible to bind to the prefix %1 - プレフィックス %1 にバインドすることはできません + Default + Default writing direction context menu item + デフォルト - - Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). - ? - 名前空間 %1 は %2 にのみバウンドできます。 + Left to Right + Left to Right context menu item + 左横書き - - Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). - プリフィックス %1 は %2 にのみバウンドできます。 + Right to Left + Right to Left context menu item + 右横書き - - Two namespace declaration attributes have the same name: %1. - 二つの名前空間宣言の属性が、同じ名前 '%1' をもっています。 + Loading... + Media controller status message when the media is loading + 読込中... - - The namespace URI must be a constant and cannot use enclosed expressions. - 名前空間 URI は、constantでなければなりません。式を含むことはできません。 + Live Broadcast + Media controller status message when watching a live broadcast + ライブブロードキャスト - - An attribute by name %1 has already appeared on this element. - 属性名 '%1' は、すでにこのエレメントで使用されています。 + Audio Element + Media controller element + オーディオ要素 - - A direct element constructor is not well-formed. %1 is ended with %2. - 直積的な指定のエレメントがwell formedではありません。'%1' が、'%2' で終わっています。 + Video Element + Media controller element + ビデオ要素 - - The name %1 does not refer to any schema type. - 名前 '%1' は、なんのスキーマタイプも参照していません。 + Mute Button + Media controller element + 消音ボタン - - %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. - '%1' は complex 型です。complex 型への型変換はできません。しかし、アトミックな型である '%2' への変換はできます。 + Unmute Button + Media controller element + 消音解除ボタン - - %1 is not an atomic type. Casting is only possible to atomic types. - '%1' はアトミックな型ではありません。型変換はアトミックな型に対してのみ可能です。 + Play Button + Media controller element + 再生ボタン - - %1 is not a valid name for a processing-instruction. - 処理指定において、'%1' は無効です。 + Pause Button + Media controller element + 一時停止ボタン - - - %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. - '%1' は、スコープ属性宣言ではありません。スキーマインポート機能はサポートされていません。 + Slider + Media controller element + スライダ - - The name of an extension expression must be in a namespace. - 拡張式 (extension expression) の名前は、名前空間の中になければなりません。 + Slider Thumb + Media controller element + スライダーのつまみ - - Element %1 is not allowed at this location. - この場所にエレメント '%1' をおくことは許されていません。 + Rewind Button + Media controller element + 巻き戻しボタン - - Text nodes are not allowed at this location. - この場所にテキストノードをおくことは許されていません。 + Return to Real-time Button + Media controller element + 現在時間に戻るボタン - - Parse error: %1 - パースエラー: %1 + Elapsed Time + Media controller element + 経過時間 - - The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. - XSL-T バージョン属性の値は、'%1' 型でなければなりません。'%2' はそうではありません。 + Remaining Time + Media controller element + 残り時間 - - Running an XSL-T 1.0 stylesheet with a 2.0 processor. - XSL-T 1.0 のスタイルシートを 2.0 のプロセッサで使用します。 + Status Display + Media controller element + ステータス表示 - - Unknown XSL-T attribute %1. - 未知の XSL-T 属性 %1 があります。 + Fullscreen Button + Media controller element + フルスクリーンボタン - - Attribute %1 and %2 are mutually exclusive. - 属性 '%1' と '%2' は排他的にのみ使用できます。 + Seek Forward Button + Media controller element + 早送りボタン - - In a simplified stylesheet module, attribute %1 must be present. - simplified stylesheet モジュールにおいては、属性 '%1' を指定されなければなりません。 + Seek Back Button + Media controller element + 巻き戻しボタン - - If element %1 has no attribute %2, it cannot have attribute %3 or %4. - エレメント '%1' が属性 '%2' を持たない場合は、属性 '%3' や '%4' を使用することはできません。 + Audio element playback controls and status display + Media controller element + オーディオ要素の再生制御とステータスの表示 - - Element %1 must have at least one of the attributes %2 or %3. - エレメント '%1' は、属性 '%2' か '%3' のいずれかを持たなければなりません。 + Video element playback controls and status display + Media controller element + ビデオ要素の再生制御とステータスの表示 - - At least one mode must be specified in the %1-attribute on element %2. - エレメント '%2' において、'%1' 属性は少くとも一つのモードを指定しなければなりません。 + Mute audio tracks + Media controller element + 音声を消音する - - Element %1 must come last. - エレメント %1 は最後になければなりません。 + Unmute audio tracks + Media controller element + 音声の消音を解除する - - At least one %1-element must occur before %2. - %2 の前に、少くとも一つは %1 エレメントが存在しなければなりません。 + Begin playback + Media controller element + 再生を開始する - - Only one %1-element can appear. - %1 エレメントは一つのみ存在しなければなりません。 + Pause playback + Media controller element + 再生を一時停止する - - At least one %1-element must occur inside %2. - %2 の内側には、少くとも一つの '%1' エレメントが存在しなければなりません。 + Movie time scrubber + Media controller element + 動画再生時間プログレスバー - - When attribute %1 is present on %2, a sequence constructor cannot be used. - %2 に属性 %1 がある場合、sequence constructor は使用できません。 + Movie time scrubber thumb + Media controller element + 動画再生時間プログレスバーのつまみ - - Element %1 must have either a %2-attribute or a sequence constructor. - エレメント %1 には、%2 属性またはsequence constructorがなければなりません。 + Rewind movie + Media controller element + 動画の巻き戻し - - When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. - パラメータが要求されているときには、デフォルトの値は、%1 属性または sequence constructor によって指定されていてはなりません。 + Return streaming movie to real-time + Media controller element + ストリーミング動画の再生を現在時間に戻る - - Element %1 cannot have children. - エレメント %1 は、子要素を持つことができません。 + Current movie time + Media controller element + 現在の動画再生時間 - - Element %1 cannot have a sequence constructor. - エレメント %1 は、sequence constructor を含むことができません。 + Remaining movie time + Media controller element + 残り動画再生時間 - - - The attribute %1 cannot appear on %2, when it is a child of %3. - %2 が %3 の子要素であるときは、属性 %1 を使用してはなりません。 + Current movie status + Media controller element + 現在の動画のステータス - - A parameter in a function cannot be declared to be a tunnel. - 関数へのパラメータは、トンネルであってはなりません。 + Play movie in full-screen mode + Media controller element + フルスクリーンモードで動画を再生する - - This processor is not Schema-aware and therefore %1 cannot be used. - この処理系は、Schema-aware ではありません。よって、%1 は使用できません。 + Seek quickly back + Media controller element + - - Top level stylesheet elements must be in a non-null namespace, which %1 isn't. - トップレベルのスタイルシートのエレメントは、non-nullな名前空間を持っていなければなりません。しかし、%1 はそうではありません。 + Seek quickly forward + Media controller element + - - The value for attribute %1 on element %2 must either be %3 or %4, not %5. - エレメント %2 の属性 %1 の値は、%3 または %4 でなければなりません。%5 は異なります。 + Indefinite time + Media time description + 無期限 - - Attribute %1 cannot have the value %2. - 属性 %1 に、値 %2 を指定することはできません。 + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 日 %2 時間 %3 分 %4 秒 - - The attribute %1 can only appear on the first %2 element. - 属性 %1 は、最初の %2 エレメントにのみ指定できます。 + %1 hours %2 minutes %3 seconds + Media time description + %1 時間 %2 分 %3 秒 - - At least one %1 element must appear as child of %2. - %2 の子要素としては、少くとも一つは %1 エレメントがなければなりません。 + %1 minutes %2 seconds + Media time description + %1 分 %2 秒 - - empty - + %1 seconds + Media time description + %1 秒 - - zero or one - ゼロまたは一つ + Inspect + Inspect Element context menu item + ? + 検査 - - exactly one - 厳密に一つ + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + 検索の履歴はありません - - one or more - 一つまたは複数 + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + 検索の履歴 - - zero or more - ゼロまたはそれ以上 + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + 検索の履歴をクリア - - Required type is %1, but %2 was found. - 要求されている型は %1 ですが、 %2 があります。 + Missing Plug-in + Label text to be used when a plug-in is missing + プラグインがありません - - Promoting %1 to %2 may cause loss of precision. - %1 を %2 に変換する際に、精度のロスが生じます。 + Unknown + Unknown filesize FTP directory listing item + 不明 - - The focus is undefined. - フォーカスが定義されていません。 + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 ピクセル) - - It's not possible to add attributes after any other kind of node. - 他の種類のノードの中では、属性を追加することはできません。 + Web Inspector - %2 + Web の検査 - %2 - - An attribute by name %1 has already been created. - 名前 '%1' の属性は、すでに生成されています。 + Scroll here + ここにスクロール - - Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. - UNICODE Codepoint Collection のみ使用できます(%1)。 %2 はサポートされていません。 - - - - QPluginLoader + Left edge + 左端 + - - Unknown error - 不明なエラー + Top + 上端 - - The plugin was not loaded. - そのプラグインはロードされていません。 + Right edge + 右端 - - - QPrintDialog - Page size: - ページサイズ: + Bottom + 下端 - Orientation: - 方向: + Page left + 1ページ左へスクロール - Paper source: - 給紙装置: + Page up + 1ページ戻る - - OK - OK + Page right + 1ページ右へスクロール - Cancel - キャンセル + Page down + 1ページ進む - Portrait - + Scroll left + 左へスクロール - Landscape - + Scroll up + 上へスクロール - - locally connected - ローカルに接続しています + Scroll right + 右へスクロール - - - Aliases: %1 - エイリアス: %1 + Scroll down + 下へスクロール + + + %n file(s) + number of chosen file + + %n 個のファイル + - - - unknown - 不明 + JavaScript Alert - %1 + JavaScript 警告 - %1 - Print in color if available - 可能であればカラーで印刷 + JavaScript Confirm - %1 + JavaScript 確認 - %1 - Print to file - ファイルに出力: + JavaScript Prompt - %1 + JavaScript プロンプト - %1 - Browse - 参照... + JavaScript Problem - %1 + JavaScript 問題 - %1 - - Print all - すべて印刷 + The script on this page appears to have a problem. Do you want to stop the script? + このページのスクリプトには問題があるようです。 スクリプトを停止しますか? - Selection - 選択した部分を印刷 + Move the cursor to the next character + 次の文字へカーソルを移動 - - Print range - 印刷範囲 + Move the cursor to the previous character + 前の文字にカーソルを移動 - Pages from - 先頭のページ: + Move the cursor to the next word + 次の単語にカーソルを移動 - to - 末尾のページ: + Move the cursor to the previous word + 前の単語にカーソルを移動 - Print last page first - 末尾のページから印刷 + Move the cursor to the next line + 次の行にカーソルを移動 - Number of copies: - 部数: + Move the cursor to the previous line + 前の行にカーソルを移動 - Paper format - 用紙の形式 + Move the cursor to the start of the line + 文なのか行なのか + 文頭にカーソルを移動 - - A0 (841 x 1189 mm) - A0 (841 x 1189mm) + Move the cursor to the end of the line + 文末にカーソルを移動 - - A1 (594 x 841 mm) - A1 (594 x 841mm) + Move the cursor to the start of the block + ブロックの先頭にカーソルを移動 - - A2 (420 x 594 mm) - A2 (420 x 594mm) + Move the cursor to the end of the block + ブロックの末尾にカーソルを移動 - - A3 (297 x 420 mm) - A3 (297 x 420mm) + Move the cursor to the start of the document + 文章の先頭にカーソルを移動 - - A4 (210 x 297 mm, 8.26 x 11.7 inches) - A4 (210 x 297mm、8.26 x 11.7インチ) + Move the cursor to the end of the document + 文章の末尾にカーソルを移動 - - A5 (148 x 210 mm) - A5 (148 x 210mm) + Select all + すべてを選択 - - A6 (105 x 148 mm) - A6 (105 x 148mm) + Select to the next character + 次の文字を選択 - - A7 (74 x 105 mm) - A7 (74 x 105mm) + Select to the previous character + 前の文字を選択 - - A8 (52 x 74 mm) - A8 (52 x 74mm) + Select to the next word + 次の単語を選択 - - A9 (37 x 52 mm) - A9 (37 x 52mm) + Select to the previous word + 前の単語を選択 - - B0 (1000 x 1414 mm) - B0 (1000 x 1414mm) + Select to the next line + 次の行を選択 - - B1 (707 x 1000 mm) - B1 (707 x 1000mm) + Select to the previous line + 前の行を選択 - - B2 (500 x 707 mm) - B2 (500 x 707mm) + Select to the start of the line + 文頭から選択 - - B3 (353 x 500 mm) - B3 (353 x 500mm) + Select to the end of the line + 文末まで選択 - - B4 (250 x 353 mm) - B4 (250 x 353mm) + Select to the start of the block + ブロックの先頭から選択 - - B5 (176 x 250 mm, 6.93 x 9.84 inches) - B5 (176 x 250mm、6.93 x 9.84インチ) + Select to the end of the block + ブロックの末尾まで選択 - - B6 (125 x 176 mm) - B6 (125 x 176mm) + Select to the start of the document + ドキュメントの先頭から選択 - - B7 (88 x 125 mm) - B7 (88 x 125mm) + Select to the end of the document + ドキュメントの末尾まで選択 - - B8 (62 x 88 mm) - B8 (62 x 88mm) + Delete to the start of the word + 単語の先頭まで削除 - - B9 (44 x 62 mm) - B9 (44 x 62mm) + Delete to the end of the word + 単語の末尾まで削除 - - B10 (31 x 44 mm) - B10 (31 x 44mm) + Insert a new paragraph + 新しい段落を挿入 - - C5E (163 x 229 mm) - C5E (163 x 229mm) + Insert a new line + 新しい行を挿入 - - DLE (110 x 220 mm) - DLE (110 x 220mm) + Paste and Match Style + ペースとしてスタイルを合わせる - - Executive (7.5 x 10 inches, 191 x 254 mm) - Executive (7.5 x 10インチ、191 x 254mm) + Remove formatting + 装飾の削除 - - Folio (210 x 330 mm) - Folio (210 x 330mm) + Strikethrough + 取り消し線 - - Ledger (432 x 279 mm) - Ledger (432 x 279mm) + Subscript + 下付き文字 - - Legal (8.5 x 14 inches, 216 x 356 mm) - Legal (8.5 x 14インチ、216 x 356mm) + Superscript + 上付き文字 - - Letter (8.5 x 11 inches, 216 x 279 mm) - Letter (8.5 x 11インチ、216 x 279mm) + Insert Bulleted List + 箇条書きの挿入 - - Tabloid (279 x 432 mm) - Tabloid (279 x 432mm) + Insert Numbered List + 順序付きリストの挿入 - - US Common #10 Envelope (105 x 241 mm) - US Common #10 Envelope (105 x 241mm) + Indent + インデント - Print dialog - プリントダイアログ + Outdent + アウトデント - Size: - サイズ: + Center + センタリング - Printer - プリンタ + Justify + 両端揃え - Properties - プロパティ + Align Left + 左寄せ - Printer info: - プリンタ情報: + Align Right + 右寄せ + + + QWhatsThisAction - Copies - 印刷部数 + What's This? + ヒント? + + + QWidget - Collate - 丁合い + * + * + + + QWizard - Other - その他 + Go Back + 戻る - Double side printing - 両面印刷 + Continue + 続き - - - - Print - 印刷 + Commit + 適用 - File - ファイル + Done + 終了 - - Print To File ... - ファイルへ出力... + Help + ヘルプ - - File %1 is not writable. -Please choose a different file name. - ファイル %1 は書き込み可能ではありません。 -別のファイル名を選んでください。 + < &Back + < 戻る(&B) - - %1 already exists. -Do you want to overwrite it? - %1 はすでに存在します。 -上書きしますか? + &Finish + 完了(&F) - - File exists - ファイルは既に存在しています + Cancel + キャンセル - - <qt>Do you want to overwrite it?</qt> - <qt>ファイルを上書きしてもよろしいですか?</qt> + &Help + ヘルプ(&H) - - Print selection - 選択された範囲を印刷 + &Next + 次へ(&N) - - %1 is a directory. -Please choose a different file name. - %1 はディレクトリです。 -ファイル名を指定してください。 + &Next > + 次へ(&N) > + + + QWorkspace - - A0 - A0 + &Restore + 元に戻す(&R) - - A1 - A1 + &Move + 移動(&M) - - A2 - A2 + &Size + サイズを変更(&S) - - A3 - A3 + Mi&nimize + 最小化(&N) - - A4 - A4 + Ma&ximize + 最大化(&X) - - A5 - A5 + &Close + 閉じる(&C) - - A6 - A6 + Stay on &Top + 常に手前に表示(&T) - - A7 - A7 + Sh&ade + シェード(&A) - - A8 - A8 + %1 - [%2] + %1 - [%2] - - A9 - A9 + Minimize + 最小化 - - B0 - B0 + Restore Down + 元に戻す - - B1 - B1 + Close + 閉じる - - B2 - B2 + &Unshade + シェードを解除(&U) + + + QXml - - B3 - B3 + no error occurred + エラーは発生しませんでした - - B4 - B4 + error triggered by consumer + 消費者によってエラーが誘発されました - - B5 - B5 + unexpected end of file + 予期しないファイルの終りです - - B6 - B6 + more than one document type definition + ドキュメントタイプの定義が複数あります - - B7 - B7 + error occurred while parsing element + 要素の解析中にエラーが発生しました - - B8 - B8 + tag mismatch + タグが一致しません - - B9 - B9 + error occurred while parsing content + コンテンツの解析中にエラーが発生しました - - B10 - B10 + unexpected character + 予期しない文字です - - C5E - C5E + invalid name for processing instruction + 処理の指示に無効な名前です - - DLE - DLE + version expected while reading the XML declaration + XML宣言を読み込むにはバージョンが必要です - - Executive - Exclusive + wrong value for standalone declaration + スタンドアロン宣言として正しくない値です - - Folio - Folio + encoding declaration or standalone declaration expected while reading the XML declaration + XML宣言を読み込むにはエンコーディング宣言かスタンドアローン宣言が必要です - - Ledger - Ledger + standalone declaration expected while reading the XML declaration + XML宣言を読み込むにはスタンドアローン宣言が必要です - - Legal - リーガルサイズ + error occurred while parsing document type definition + ドキュメントタイプの定義を解析中にエラーが発生しました - - Letter - レターサイズ + letter is expected + 文字が必要です - - Tabloid - タブロイドサイズ + error occurred while parsing comment + コメントの解析中にエラーが発生しました - - US Common #10 Envelope - US標準#10封筒 + error occurred while parsing reference + 参照の解析中にエラーが発生しました - - Custom - カスタム + internal general entity reference not allowed in DTD + 内部一般エンティティ参照はDTDで許可されていません - - - &Options >> - オプション(&O) >> + external parsed general entity reference not allowed in attribute value + 解析された外部一般エンティティ参照は属性値で許されていません - - &Print - 印刷(&P) + external parsed general entity reference not allowed in DTD + 解析された外部一般エンティティ参照はDTDで許されていません - - &Options << - オプション(&O) << + unparsed entity reference in wrong context + 不正な文脈で解析されないエンティティ参照です - - Print to File (PDF) - PDFファイルに出力 + recursive entities + 再帰的エンティティ - - Print to File (Postscript) - Postscriptファイルに出力 + error in the text declaration of an external entity + 外部エンティティのテキスト宣言にエラーがあります + + + QXmlPatternistCLI - - Local file - ローカルファイル + Warning in %1, at line %2, column %3: %4 + %1 にて警告(%2 行目, %3 列): %4 - - Write %1 file - ファイル %1 に書き込みました + Warning in %1: %2 + %1 にて警告: %2 - - The 'From' value cannot be greater than the 'To' value. - QPrintPropertiesWidgetにFromとToがあってそれを指している - 印刷開始ページ番号は、印刷終了ページ番号より小さくなければなりません。 + Unknown location + 無効なパス - - - QPrintPreviewDialog - - - Page Setup - ページの設定 + Error %1 in %2, at line %3, column %4: %5 + %2 にてエラー %1 (%3 行目, %4 列): %5 - - %1% - %1% + Error %1 in %2: %3 + %2 にてエラー %1: %3 + + + QXmlStream - - Print Preview - 印刷のプレビュー + Extra content at end of document. + ドキュメントの末尾に余計なものがついています。 - - Next page - 次のページ + Invalid entity value. + エンティティの値が無効です。 - - Previous page - 前のページ + Invalid XML character. + 無効な XML 文字です。 - - First page - 最初のページ + Sequence ']]>' not allowed in content. + このコンテキストでは、']]>' は許可されていません。 - - Last page - 最後のページ + Encountered incorrectly encoded content. + 正しくないエンコードの文脈に遭遇しました。 - - Fit width - 幅をあわせる + Namespace prefix '%1' not declared + 名前空間のブリフィックス '%1' は宣言されていません - - Fit page - 高さをあわせる + Attribute redefined. + 属性が再度指定されています。 - - Zoom in - 拡大 + Unexpected character '%1' in public id literal. + DTD宣言の部分 + 公開 ID 指定に使用できない文字 '%1' が使用されています。 - - Zoom out - 縮小 + Invalid XML version string. + 無効な XML バージョン指定です。 - - Portrait - + Unsupported XML version. + この XML のバージョンはサポートされていません。 - - Landscape - + The standalone pseudo attribute must appear after the encoding. + &ddd; は、エンコーディングを指定していないと使えないということかな。utf8だとおもうけど。 + 仮想属性指定は、エンコーディング指定の後にのみ使用できます。 - - Show single page - 一枚のページを表示する + %1 is an invalid encoding name. + %1 は無効なエンコーディングの名前です。 - - Show facing pages - 見開きのページを表示する + Encoding %1 is unsupported + エンコーディング '%1' はサポートされていません - - Show overview of all pages - すべてのページを表示する + Standalone accepts only yes or no. + standalone の指定は yes または no のみ指定できます。 - - Print - 印刷 + Invalid attribute in XML declaration. + XML 宣言に無効な属性がついています。 - - Page setup - ページの設定 + Premature end of document. + ドキュメントが途中で終わっています。 - Close - 閉じる + Invalid document. + 無効なドキュメントです。 - - Export to PDF - PDFに出力 + Expected + 予期していた表現は、 - - Export to PostScript - Postscriptに出力 + , but got ' + ですが、取得した表現は以下のものでした ' - - - QPrintPropertiesDialog - PPD Properties - 印刷プロパティのダイアログのプロパティ + Unexpected ' + 予期していなかった表現 ' - Save - 保存 + Expected character data. + 予期していた文字列。 - OK - OK + Recursive entity detected. + 再帰しているエンティティを発見しました。 - - - QPrintPropertiesWidget - - Form - 書式 + Start tag expected. + 開始タグを予期していましたが、みつかりません。 - - Page - ページ + NDATA in parameter entity declaration. + パラメータエンティティの宣言において NDATA があります。 - - Advanced - 高度な設定 + XML declaration not at start of document. + XML 宣言がドキュメントの先頭にありません。 - - - QPrintSettingsOutput - - Form - 書式 + %1 is an invalid processing instruction name. + XMLにそんなのあったっけ? + %1 は無効な処理指定の名前です。 - - Copies - 印刷部数 + Invalid processing instruction name. + 無効な処理命令です。 - - Print range - 印刷範囲 + %1 is an invalid PUBLIC identifier. + %1 は、公開 (PUBLIC) 識別子として無効です。 - - Print all - すべて印刷 + Illegal namespace declaration. + 無効な名前空間の指定です。 - - Pages from - 先頭のページ + Invalid XML name. + 無効な XML 名です。 - - to - 末尾のページ + Opening and ending tag mismatch. + 開始タグと、終了タグがマッチしません。 - - Selection - 選択した部分を印刷 + Reference to unparsed entity '%1'. + まだパースしていないエンティティ '%1' を参照しています。 - - Output Settings - 出力設定 + Entity '%1' not declared. + エンティティ '%1' は宣言されていません。 - - Copies: - 印刷部数: + Reference to external entity '%1' in attribute value. + 属性値として、外部エンティティ '%1' を再度指定しています。 - - Collate - 丁合い + Invalid character reference. + 無効な文字への参照です。 + + + QtXmlPatterns - - Reverse - 逆順 + %1 is an unsupported encoding. + %1 はサポートされていないエンコーディングです。 - - Options - オプション + %1 contains octets which are disallowed in the requested encoding %2. + エンコーディング %2 では許可されていないオクテットが %1 に含まれています。 - - Color Mode - + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + %2 で使用されているエンコード %3 では、コードポイント %1 は有効な XML 表現ではありません。 - - Color - カラー + Network timeout. + ネットワーク接続がタイムアウトしました。 - - Grayscale - グレースケール + Element %1 can't be serialized because it appears outside the document element. + エレメント %1 はシリアライズできません。このドキュメントの範囲を越えるエレメントを含んでいます。 - - Duplex Printing - 両面印刷 + Attribute %1 can't be serialized because it appears at the top level. + 属性 %1 はシリアライズできません。トップレベルに現れているためです。 - - None - なし + Year %1 is invalid because it begins with %2. + %1 年はむこうです。%2 で始まっています。 - - Long side - 長辺綴じ + Day %1 is outside the range %2..%3. + %1 日は、有効な範囲 %2..%3 を逸脱しています。 - - Short side - 短辺綴じ + Month %1 is outside the range %2..%3. + %1 月は、有効な範囲 %2..%3 を逸脱しています。 - - - QPrintWidget - - Form - 書式 + Overflow: Can't represent date %1. + オーバーフロー: 日付 %1 を再現できません。 - - Printer - プリンタ + Day %1 is invalid for month %2. + %2 月には、%1 日は存在しません。 - - &Name: - 名前(&N): + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + 24:%1:%2.%3 は無効です。24時0分0秒のみ使用できます - - P&roperties - プロパティ(&r) + Time %1:%2:%3.%4 is invalid. + 時刻 %1時%2分%3.%4秒は無効です。 - - Location: - 設置場所: + Overflow: Date can't be represented. + オーバーフロー: 日付を再現できません。 - - Preview - プレビュー + At least one component must be present. + 年、月、日のうちいずれかを指定しなければなりません。 - - Type: - タイプ: + At least one time component must appear after the %1-delimiter. + %1 の後には、時刻を指定しなければなりません。 - - Output &file: - 出力ファイル名(&f): + %1 is not a valid value of type %2. + %1 は、%2 の型に対して有効な値ではありません。 - - ... - ... + When casting to %1 from %2, the source value cannot be %3. + %2 から %1 への型変換に際しては、値 %3 は有効な値ではありません。 - - - QProcess - - - Could not open input redirection for reading - 標準入力リダイレクトを読み込みのためにオープンすることができません + Integer division (%1) by zero (%2) is undefined. + 整数の除算において %1 をゼロ (%2) で割った結果は定義されていません。 - - - Could not open output redirection for writing - 標準出力リダイレクトを書き込みのためにオープンすることができません + Division (%1) by zero (%2) is undefined. + 除算において %1 をゼロ (%2) で割った結果は定義されていません。 - - Resource error (fork failure): %1 - リソースエラー (fork に失敗しました): %1 + Modulus division (%1) by zero (%2) is undefined. + 剰余を求めるに際し、%1 をゼロ (%2) で除した結果は定義されていません。 - - - - - - - - - - Process operation timed out - プロセス処理がタイムアウトしました + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + 型 %1 を非数 %2 (NaN) で除すことはできません。 - - - - - Error reading from process - プロセスからの読み込みにおいてエラーが発生しました + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + 型 %1 を%2 または %3 (正または負のゼロ) で除することはできません。 - - - - Error writing to process - プロセスへの書き込みにおいてエラーが発生しました + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + 型 %1 を %2 または %3 (正または負のゼロ)で乗ずることはできません。 - - Process crashed - プロセスがクラッシュしました + A value of type %1 cannot have an Effective Boolean Value. + 型 %1 は有効な論理型(bool)ではありません。 - - No program defined - プログラム名が指定されていません + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + 論理型は、論理型以外の複数の値からなる計算によって求めることはできません。 - - Process failed to start - プロセスのスタートに失敗しました + Value %1 of type %2 exceeds maximum (%3). + 型 %2 の値 %1 は、上限 (%3) を越えています。 - - - QProgressDialog - - Cancel - キャンセル + Value %1 of type %2 is below minimum (%3). + 型 %2 の値 %1 は、下限 (%3) を越えています。 - - - QPushButton - - Open - オープン + A value of type %1 must contain an even number of digits. The value %2 does not. + 型 %1 の値は偶数個の十進数文字を必要とします。しかし、%2 はそうではありません。 - - - QRadioButton - - Check - 選択 + %1 is not valid as a value of type %2. + 型 %2 に対して、値 %1 は有効ではありません。 - - - QRegExp - - no error occurred - エラーは発生しませんでした + Ambiguous rule match. + 曖昧なルールにマッチしました。 - - disabled feature used - 無効な機能が使用されました + Operator %1 cannot be used on type %2. + 型 %2 に対して、オペレータ %1 は使用できません。 - - bad char class syntax - 不正なcharクラス構文 + Operator %1 cannot be used on atomic values of type %2 and %3. + アトミックな型 %2 と %3 に対して、オペレータ %1 は使用できません。 - - bad lookahead syntax - 不正なlookahead構文 + The namespace URI in the name for a computed attribute cannot be %1. + 結合された属性に対する名前空間のURIとして、%1 を使用することはできません。 - - bad repetition syntax - 不正なrepetition構文 + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + 結合された属性の名前空間URI %1 は、ローカルな名前である %2 と併用できません。 - - invalid octal value - 無効な8進値 + Type error in cast, expected %1, received %2. + 型変換時のエラーです。望んでいた %1 ではなく、%2 になりました。 - - missing left delim - 左の区切り文字がありません + 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. + %1 またはそれを継承している型への型変換においては、元の値の型は同じ型か、リテラルな文字列である必要があります。型 %2 は許可されていません。 - - unexpected end - 予期しない末尾です + A comment cannot contain %1 + コメントが %1 を含むことはできません - - met internal limit - 内部制限を満たしました + A comment cannot end with a %1. + コメントは %1 で終了することはできません。 - - - QSQLite2Driver - - Error to open database - データベースのオープンでエラーが発生しました + In a namespace constructor, the value for a namespace cannot be an empty string. + 名前空間のスントラクトにおいて、空白の文字列を名前空間の値として使用することはできません。 - - Unable to begin transaction - トランザクションを開始できません + The prefix must be a valid %1, which %2 is not. + プレフィックスは %1 でなければなりません。%2 は無効です。 - - Unable to commit transaction - トランザクションをコミットできません + The prefix %1 cannot be bound. + プレフィックス %1 はバウンドできません。 - - Unable to rollback Transaction - トランザクションをロールバックできません + Only the prefix %1 can be bound to %2 and vice versa. + プレフィックス %1 は、%2 にのみバウンドできます。逆も同じです。 - - - QSQLite2Result - - Unable to fetch results - 実行結果をフェッチできません + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + ドキュメントノードの子として属性ノードを指定することはできません。属性 %1 は誤った場所にあります。 - - Unable to execute statement - ステートメントを実行できません + A library module cannot be evaluated directly. It must be imported from a main module. + ライブラリモジュールを直接評価することはできません。メインモジュールからインポートする必要があります。 - - - QSQLiteDriver - - Error opening database - データベースのオープンでエラーが発生しました + No template by name %1 exists. + テンプレート名 %1 は存在しません。 - - Error closing database - データベースのクローズでエラーが発生しました + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + 型 %1 は述部として使用できません。数値型か、論理型である必要があります。 - - Unable to begin transaction - トランザクションを開始できません + A positional predicate must evaluate to a single numeric value. + 述部は評価されたとき、単一の数値になるようにしなければなりません。 - - Unable to commit transaction - トランザクションをコミットできません + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + ターゲットとしている名前は、%1 であってはなりません。%2 は無効です。 - Unable to roll back transaction - トランザクションをロールバックできません + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 はターゲットとして無効です。%2 である必要があります。例えば "%3" のようにです。 - - Unable to rollback transaction - トランザクションをロールバックできません + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + バスの末端であるリーフは、単一のノードかアトミックな値である必要があります。複数の型の組み合わせであってはいけません。 - - - QSQLiteResult - - - - Unable to fetch row - レコードをフェッチできません + The data of a processing instruction cannot contain the string %1 + 処理中のデータは、以下の文字列を含んでいてはなりません: %1 - - Unable to execute statement - ステートメントを実行できません + No namespace binding exists for the prefix %1 + プレフィックス %1 にバインドされたネームスペースがありません - - Unable to reset statement - ステートメントをリセットできません + No namespace binding exists for the prefix %1 in %2 + %2 におけるプレフィックス %1 にバインディングされたネームスペースが存在しません - - Unable to bind parameters - パラメータをバインドできません + %1 is an invalid %2 + 型 %2 に対し、値 %1 は無効です - - Parameter count mismatch - パラメータの数が合っていません + The parameter %1 is passed, but no corresponding %2 exists. + パラメータ %1 を処理しました。しかし、対応する %2 が存在しません。 - - No query - クェリーがありません + The parameter %1 is required, but no corresponding %2 is supplied. + パメータ %1 が必要です。しかし、対応する %2 がありません。 + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 は、最大で %n 個の引数をとることができます。%2 は無効です。 + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 は、少くとも %n 個の引数を必要とします。%2 は無効です。 + - - - QScrollBar - - Scroll here - ここにスクロール + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + %1 への最初の引数は、型 %2 であってはなりません。数値型、xs:yerMonthDuration、xs:dayTimeDurationである必要があります。 - - Left edge - 左端 + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + %1 への最初の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。 - - Top - 上端 + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + %1 への二つ目の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。 - - Right edge - 右端 + %1 is not a valid XML 1.0 character. + %1 は XML 1.0 において有効な文字ではありません。 - - Bottom - 下端 + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + %1 への二つ目の引数のルートノードは、ドキュメントノードでなければなりません。しかし、%2 はドキュメントノードではありません。 - - Page left - 1ページ左へスクロール + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + もし二つの値がゾーンオフセットをもつ場合、両者は同じゾーンオフセットでなければなりません。%1 と %2 は同一ではありません。 - - - Page up - 1ページ戻る + %1 was called. + %1 が呼ばれました。 - - Page right - 1ページ右へスクロール + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 の後には、%2 か %3 が続かなければなりません。 - - - Page down - 1ページ進む + In the replacement string, %1 must be followed by at least one digit when not escaped. + 置換操作において、%1 には少くとも一文字以上の数値が続く必要があります(エスケープされている場合を除く)。 - - Scroll left - 左へスクロール + In the replacement string, %1 can only be used to escape itself or %2, not %3 + 置換操作において、%1 はそれ自身または %2 をエスケープする為にのみ使用できます。%3 に対しては使用できません - - Scroll up - 上へスクロール + %1 matches newline characters + %1 は改行文字(列)にマッチしました - - Scroll right - 右へスクロール + %1 and %2 match the start and end of a line. + %1 と %2 は、行の先頭と末尾にマッチしました。 - - Scroll down - 下へスクロール + Matches are case insensitive + マッチは大文字小文字を区別しません - - Line up - 1行上へ + Whitespace characters are removed, except when they appear in character classes + 空白文字は削除されました。ただし、キャラクタークラスに属するものは除きます - - Position - 位置 + %1 is an invalid regular expression pattern: %2 + %1 は有効な正規表現ではありません。: %2 - - Line down - 1行下へ + %1 is an invalid flag for regular expressions. Valid flags are: + %1 は正規表現において無効なフラグです。使用可能なフラグは次の通りです: - - - QSharedMemory - - %1: unable to set key on lock - 共有メモリ関連 - %1: ロックするためのキーを設定できません + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + もし、最初の引数が空白からなる文字列か、長さが0 (名前空間をともなわない)である場合、プレフィックスを指定することはできません。しかし、プレフィックスとして %1 が指定されています。 - - %1: create size is less then 0 - %1: 0より小さいサイズの共有メモリは作成できません + It will not be possible to retrieve %1. + %1 を取得することはできないかもしれません。 - - - %1: unable to lock - %1: ロックできません + The default collection is undefined + デフォルトのコレクションが定義されていません - - %1: unable to unlock - %1: アンロックできません + %1 cannot be retrieved + %1 を取得できません - - - %1: permission denied - %1: 許可されていません + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + 正規化された表現 %1 はサポートされていません。サポートされている表現は、%2, %3, %4, %5 のみです。 - - - %1: already exists - %1: 既に存在します + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + ゾーンオフセットは、%1 から %2 の範囲である必要があります(境界を含む)。%3 は範囲外です。 - - - %1: doesn't exists - %1: 存在しません + %1 is not a whole number of minutes. + %1 は、分を現す値ではありません。 - - - %1: out of resources - %1: リソース不足です + The URI cannot have a fragment + この URI はフラグメントをもつことはできません - - - %1: unknown error %2 - %1: 未知のエラー %2 + Required cardinality is %1; got cardinality %2. + カーディナリティ %1 が必要です。%2 ではありません。 - - %1: key is empty - %1: キーが空です + The item %1 did not match the required type %2. + アイテム %1 は、要求された型 %2 にマッチしません。 - - %1: unix key file doesn't exists - ? - %1: UNIX key file が存在しません + The variable %1 is unused + 値 %1 は使用されませんでした - - %1: ftok failed - %1: fork に失敗しました + W3C XML Schema identity constraint selector + - - - %1: unable to make key - %1: キーを作成できません + W3C XML Schema identity constraint field + - - %1: system-imposed size restrictions - EINVAL - %1: 指定されたサイズはシステムにより拒否されました + A construct was encountered which is disallowed in the current language(%1). + - - %1: not attached - %1: アタッチしていません + %1 is an unknown schema type. + %1 はサポートされていないスキーマのタイプです。 - - %1: invalid size - %1: 無効なサイズです + A template with name %1 has already been declared. + テンプレート名 '%1' は、既に宣言されています。 - - %1: key error - safekey.isEmpty()==true - %1: キーかありません + %1 is not a valid numeric literal. + %1 は数値リテラルとして無効です。 - - %1: size query failed - %1: サイズのクェリーに失敗しました + Only one %1 declaration can occur in the query prolog. + クエリーのプロローグでは、%1 は一回のみ宣言できます。 - - - QShortcut - - Space - Space + The initialization of variable %1 depends on itself + 値 %1 の初期化は、それ自身に依存しています - - Esc - Esc + No variable with name %1 exists + 変数 %1 は存在しません - - Tab - Tab + Version %1 is not supported. The supported XQuery version is 1.0. + バージョン %1 はサポートされていません。XQuery バージョン 1.0 のみサポートされています。 - - Backtab - Backtab + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + エンコーディング '%1' は無効です。ラテン文字 (空白を除く) からなるもので、正規表現 '%2' にマッチするもののみ使用できます。 - - Backspace - Backspace + No function with signature %1 is available + シグネチャ %1 をもつ関数がみつかりません - - Return - Return + A default namespace declaration must occur before function, variable, and option declarations. + 標準の名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。 - - Enter - Enter + Namespace declarations must occur before function, variable, and option declarations. + 名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。 - - Ins - Ins + Module imports must occur before function, variable, and option declarations. + モジュールのインポートは、関数、変数、オプションの宣言の前にしなければなりません。 - - Del - Del + The keyword %1 cannot occur with any other mode name. + キーワード %1 は、他の名をともなって使用することはできません。 - - Pause - Pause + The value of attribute %1 must be of type %2, which %3 isn't. + 属性 '%1' の値として '%3' が指定されましたが、型 '%2' でなければなりません。 - - Print - Print + It is not possible to redeclare prefix %1. + プレフィックス '%1' を再定義することはできません。 - - SysReq - SysReq + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + プレフィックス '%1' はバウンドできません。デフォルトでは、それは既に名前空間 '%2' にバウンドされています。 - - Home - Home + Prefix %1 is already declared in the prolog. + プロローグ部において、プレフィックス '%1' はすでに宣言されています。 - - End - End + The name of an option must have a prefix. There is no default namespace for options. + オプションの名前はプレフィックスをもたなければなりません。このオプションに対するデフォルトの名前空間は存在しません。 - - Left - + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + このスキーマのインポート機能は使用できません。また、'%1' 宣言も使用できません。 - - Up - + The target namespace of a %1 cannot be empty. + 名前空間 '%1' は、空であってはなりません。 - - Right - + The module import feature is not supported + モジュールインポートの機能はサポートされていません - - Down - + A variable with name %1 has already been declared. + 名前 '%1' の変数は、すでに宣言されています。 - - PgUp - PgUp + No value is available for the external variable with name %1. + 外部変数 '%1' の値がみつかりません。 - - PgDown - PgDown + A stylesheet function must have a prefixed name. + スタイルシート関数は、プレフィックス名を持たなければなりません。 - - CapsLock - CapsLock + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス '%1' が使用できます) - - NumLock - NumLock + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + 名前空間 '%1' は予約済です。ユーザ定義の関数では使用することはできません。プレフィックス '%2' が使用できます。 - - ScrollLock - ScrollLock + 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 + ライブラリモジュールで使用されている名前空間は、モジュールの名前空間と同一でなければなりません。つまり、'%2' ではなく、'%1' でなければなりません - - Menu - メニュー + A function already exists with the signature %1. + シグネチャー '%1' の関数はすでに存在しています。 - - Help - ヘルプ + No external functions are supported. All supported functions can be used directly, without first declaring them as external + 外部関数はサポートされていません。すべてのサポートされている関数は、外部宣言をすることなく、直接使用することができます - - Back - 戻る + An argument with name %1 has already been declared. Every argument name must be unique. + 引数名 '%1' は既に宣言されています。すべての引数名はユニークである必要があります。 - - Forward - 進む + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + パターン一致の内側で関数 '%1' を使用する場合、引数はリテラルな文字列を参照する値でなければなりません。 - - Stop - 停止 + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + XSL-T パターンマッチングにおいて、関数 '%1' の最初の引数は、リテラルな文字列でなければなりません。 - - Refresh - 更新間隔 + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + XSL-T パターンマッチングにおいて、関数 '%1' への最初の引数は、リテラルか変数でなければなりません。 - - Volume Down - 音量を下げる + In an XSL-T pattern, function %1 cannot have a third argument. + XSL-T パターンにおいて、関数 '%1' は三つの引数をもつことはできません。 - - Volume Mute - 消音 + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + XSL-T パターンマッチングにおいて、関数 '%1' と '%2' のみ使用できます。'%3' は使用できません。 - - Volume Up - 音量を上げる + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + XSL-T パターンにおいて、axis %1 は使用できません。%2 または %3 のみ使用できます。 - - Bass Boost - 低音ブースト + %1 is an invalid template mode name. + %1 はテンプレートモジュール名として無効です。 - - Bass Up - 低音を上げる + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + for 構文において使用する変数は、場所に関する変数とは異なる必要があります。つまり、'%1' が重複して使用されています。 - - Bass Down - 低音を下げる + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + スキーマの検証機能はサポートされていません。よって、'%1' 構文は使用できません。 - - Treble Up - 高音を上げる + None of the pragma expressions are supported. Therefore, a fallback expression must be present + pragma 構文はサポートされていません。fallback 構文でなければなりません - - Treble Down - 高音を下げる + Each name of a template parameter must be unique; %1 is duplicated. + テンプレートパラメータ名はユニークである必要があります。'%1' は重複しています。 - - Media Play - メディアの再生 + The %1-axis is unsupported in XQuery + XQuery において、%1 axis はサポートされていません - - Media Stop - メディアの停止 + No function with name %1 is available. + 関数名 '%1' はみつかりません。 - - Media Previous - 前のメディア + The namespace URI cannot be the empty string when binding to a prefix, %1. + プレフィックス '%1' にバインディングする名前空間の URI は、空であってはなりません。 - - Media Next - 次のメディア + %1 is an invalid namespace URI. + %1 は名前空間 URI として無効です。 - - Media Record - メディアの録音 + It is not possible to bind to the prefix %1 + プレフィックス %1 にバインドすることはできません - - Home Page - ホームページ + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + 名前空間 %1 は %2 にのみバウンドできます。 - - Favorites - お気に入り + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + プリフィックス %1 は %2 にのみバウンドできます。 - - Search - 検索 + Two namespace declaration attributes have the same name: %1. + 二つの名前空間宣言の属性が、同じ名前 '%1' をもっています。 - - Standby - スタンバイ + The namespace URI must be a constant and cannot use enclosed expressions. + 名前空間 URI は、constantでなければなりません。式を含むことはできません。 - - Open URL - URLを開く + An attribute with name %1 has already appeared on this element. + 属性名 '%1' は、すでにこのエレメントで使用されています。 - - Launch Mail - メールの起動 + A direct element constructor is not well-formed. %1 is ended with %2. + 直積的な指定のエレメントがwell formedではありません。'%1' が、'%2' で終わっています。 - - Launch Media - メディアの起動 + The name %1 does not refer to any schema type. + 名前 '%1' は、なんのスキーマタイプも参照していません。 - - Launch (0) - (0)の起動 + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + '%1' は complex 型です。complex 型への型変換はできません。しかし、アトミックな型である '%2' への変換はできます。 - - Launch (1) - (1)の起動 + %1 is not an atomic type. Casting is only possible to atomic types. + '%1' はアトミックな型ではありません。型変換はアトミックな型に対してのみ可能です。 - - Launch (2) - (2)の起動 + %1 is not a valid name for a processing-instruction. + 処理指定において、'%1' は無効です。 - - Launch (3) - (3)の起動 + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + '%1' は、スコープ属性宣言ではありません。スキーマインポート機能はサポートされていません。 - - Launch (4) - (4)の起動 + The name of an extension expression must be in a namespace. + 拡張式 (extension expression) の名前は、名前空間の中になければなりません。 + + + Element %1 is not allowed at this location. + この場所にエレメント '%1' をおくことは許可されていません。 - - Launch (5) - (5)の起動 + Text nodes are not allowed at this location. + この場所にテキストノードをおくことは許可されていません。 - - Launch (6) - (6)の起動 + Parse error: %1 + パースエラー: %1 - - Launch (7) - (7)の起動 + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + XSL-T バージョン属性の値は、'%1' 型でなければなりません。'%2' はそうではありません。 - - Launch (8) - (8)の起動 + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + XSL-T 1.0 のスタイルシートを 2.0 のプロセッサで使用します。 - - Launch (9) - (9)の起動 + Unknown XSL-T attribute %1. + 未知の XSL-T 属性 %1 があります。 - - Launch (A) - (A)の起動 + Attribute %1 and %2 are mutually exclusive. + 属性 '%1' と '%2' は排他的にのみ使用できます。 - - Launch (B) - (B)の起動 + In a simplified stylesheet module, attribute %1 must be present. + simplified stylesheet モジュールにおいては、属性 '%1' を指定されなければなりません。 - - Launch (C) - (C)の起動 + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + エレメント '%1' が属性 '%2' を持たない場合は、属性 '%3' や '%4' を使用することはできません。 - - Launch (D) - (D)の起動 + Element %1 must have at least one of the attributes %2 or %3. + エレメント '%1' は、属性 '%2' か '%3' のいずれかを持たなければなりません。 - - Launch (E) - (E)の起動 + At least one mode must be specified in the %1-attribute on element %2. + エレメント '%2' において、'%1' 属性は少くとも一つのモードを指定しなければなりません。 - - Launch (F) - (F)の起動 + Element %1 must come last. + エレメント %1 は最後になければなりません。 - - Print Screen - Print Screen + At least one %1-element must occur before %2. + %2 の前に、少くとも一つは %1 エレメントが存在しなければなりません。 - - Page Up - Page Up + Only one %1-element can appear. + %1 エレメントは一つのみ存在しなければなりません。 - - Page Down - Page Down + At least one %1-element must occur inside %2. + %2 の内側には、少くとも一つの '%1' エレメントが存在しなければなりません。 - - Caps Lock - Caps Lock + When attribute %1 is present on %2, a sequence constructor cannot be used. + %2 に属性 %1 がある場合、sequence constructor は使用できません。 - - Num Lock - Num Lock + Element %1 must have either a %2-attribute or a sequence constructor. + エレメント %1 には、%2 属性またはsequence constructorがなければなりません。 - - Number Lock - Number Lock + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + パラメータが要求されているときには、デフォルトの値は、%1 属性または sequence constructor によって指定されていてはなりません。 - - Scroll Lock - Scroll Lock + Element %1 cannot have children. + エレメント %1 は、子要素を持つことができません。 - - Insert - Insert + Element %1 cannot have a sequence constructor. + エレメント %1 は、sequence constructor を含むことができません。 - - Delete - Delete + The attribute %1 cannot appear on %2, when it is a child of %3. + %2 が %3 の子要素であるときは、属性 %1 を使用してはなりません。 - - Escape - Escape + A parameter in a function cannot be declared to be a tunnel. + 関数へのパラメータは、トンネルであってはなりません。 - - System Request - System Request + This processor is not Schema-aware and therefore %1 cannot be used. + この処理系は、Schema-aware ではありません。よって、%1 は使用できません。 - - Select - Select + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + トップレベルのスタイルシートのエレメントは、non-nullな名前空間を持っていなければなりません。しかし、%1 はそうではありません。 - - Yes - はい + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + エレメント %2 の属性 %1 の値は、%3 または %4 でなければなりません。%5 は異なります。 - - No - いいえ + Attribute %1 cannot have the value %2. + 属性 %1 に、値 %2 を指定することはできません。 - - Context1 - Context1 + The attribute %1 can only appear on the first %2 element. + 属性 %1 は、最初の %2 エレメントにのみ指定できます。 - - Context2 - Context2 + At least one %1 element must appear as child of %2. + %2 の子要素としては、少くとも一つは %1 エレメントがなければなりません。 - - Context3 - Context3 + Empty particle cannot be derived from non-empty particle. + 空ではない particle から空の particle を得ることはできません。 - - Context4 - Context4 + Derived particle is missing element %1. + 取得した particle に要素 %1 がありません。 - - Call - Call + Derived element %1 is missing value constraint as defined in base particle. + - - Hangup - Hangup + Derived element %1 has weaker value constraint than base particle. + - - Flip - Flip + Fixed value constraint of element %1 differs from value constraint in base particle. + - - - Ctrl - Ctrl + Derived element %1 cannot be nillable as base element is not nillable. + - - - Shift - Shift + Block constraints of derived element %1 must not be more weaker than in the base element. + - - - Alt - Alt + Simple type of derived element %1 cannot be validly derived from base element. + - - - Meta - Meta + Complex type of derived element %1 cannot be validly derived from base element. + - - + - + + Element %1 is missing in derived particle. + - - F%1 - F%1 + Element %1 does not match namespace constraint of wildcard in base particle. + - - - QSlider - - Page left - 1ページ左へスクロール + Wildcard in derived particle is not a valid subset of wildcard in base particle. + - - Page up - 1ページ戻る + processContent of wildcard in derived particle is weaker than wildcard in base particle. + - - Position - 位置 + Derived particle allows content that is not allowed in the base particle. + - - Page right - 1ページ右へスクロール + %1 has inheritance loop in its base type %2. + - - Page down - 1ページ進む + Circular inheritance of base type %1. + - - - QSocks5SocketEngine - - Connection to proxy refused - プロキシーへの接続が拒否されました + Circular inheritance of union %1. + - - Connection to proxy closed prematurely - プロキシーの接続が通信の終了前に切断されました + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + - - Proxy host not found - プロキシーホストが見つかりません + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + - - Connection to proxy timed out - プロキシーとの接続がタイムアウトしました + Base type of simple type %1 cannot be complex type %2. + - - Proxy authentication failed - プロキシーの認証に失敗しました + Simple type %1 cannot have direct base type %2. + - - Proxy authentication failed: %1 - プロキシーの認証に失敗しました: %1 + Simple type %1 is not allowed to have base type %2. + - - SOCKS version 5 protocol error - SOCKS バージョン 5 プロトコルのエラーです + Simple type %1 can only have simple atomic type as base type. + - - General SOCKSv5 server failure - SOCKS バージョン 5 サーバのエラーです + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + - - Connection not allowed by SOCKSv5 server - SOCKSv5 サーバより接続を拒否されました + Variety of item type of %1 must be either atomic or union. + - - TTL expired - 実際はホップ数です - 有効期限(TTL)がきれました + Variety of member types of %1 must be atomic. + - - SOCKSv5 command not supported - この SOCKSv5 コマンドはサポートされていません + %1 is not allowed to derive from %2 by list as the latter defines it as final. + - - Address type not supported - 指定されたアドレスタイプはサポートされていません + Simple type %1 is only allowed to have %2 facet. + - - Unknown SOCKSv5 proxy error code 0x%1 - 未知の SOCKSv5 プロキシーエラーです: 0x%1 + Base type of simple type %1 must have variety of type list. + - Socks5 timeout error connecting to socks server - Socks5 はソックスサーバ接続しようとしてタイムアウトになりました + Base type of simple type %1 has defined derivation by restriction as final. + - - Network operation timed out - ネットワーク操作がタイムアウトしました + Item type of base type does not match item type of %1. + - - - QSpinBox - - More - 増やす + Simple type %1 contains not allowed facet type %2. + - - Less - 減らす + %1 is not allowed to derive from %2 by union as the latter defines it as final. + - - - QSql - - Delete - 削除 + %1 is not allowed to have any facets. + - - Delete this record? - このレコードを削除しますか? + Base type %1 of simple type %2 must have variety of union. + - - - - Yes - はい + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + - - - - No - いいえ + Member type %1 cannot be derived from member type %2 of %3's base type %4. + - - Insert - 挿入 + Derivation method of %1 must be extension because the base type %2 is a simple type. + - - Update - アップデート + Complex type %1 has duplicated element %2 in its content model. + - - Save edits? - 編集内容を保存しますか? + Complex type %1 has non-deterministic content. + - - Cancel - キャンセル + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + - - Confirm - 確認 + Content model of complex type %1 is not a valid extension of content model of %2. + - - Cancel your edits? - 編集をキャンセルしますか? + Complex type %1 must have simple content. + - - - QSslSocket - - Error creating SSL context (%1) - SSL content の作成に失敗しました (%1) + Complex type %1 must have the same simple type as its base class %2. + - - Invalid or empty cipher list (%1) - 暗号方式リストが無効または空です (%1) + Complex type %1 cannot be derived from base type %2%3. + - - Cannot provide a certificate with no key, %1 - 鍵が指定されていないため、証明書を扱えません。 %1 + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + - - Error loading local certificate, %1 - ローカルの証明書をロードできません。 %1 + Complex type %1 with simple content cannot be derived from complex base type %2. + - - Error loading private key, %1 - プライベートキーをロードできません。 %1 + Item type of simple type %1 cannot be a complex type. + - - Private key does not certificate public key, %1 - プライベートキーが、パブリックキーの証明書となっていません %1 + Member type of simple type %1 cannot be a complex type. + - - Error creating SSL session, %1 - SSL セッションを作成できません。 %1 + %1 is not allowed to have a member type with the same name as itself. + - - Error creating SSL session: %1 - SSL セッションを作成できません: %1 + %1 facet collides with %2 facet. + - - Unable to write data: %1 - 書き込みできません: %1 + %1 facet must have the same value as %2 facet of base type. + - - Error while reading: %1 - 読み込み時にエラーが発生しました: %1 + %1 facet must be equal or greater than %2 facet of base type. + - - Error during SSL handshake: %1 - SSL ハンドシェーク時にエラーが発生しました: %1 + %1 facet must be less than or equal to %2 facet of base type. + - - - QSystemSemaphore - - - %1: out of resources - %1: リソース不足です + %1 facet contains invalid regular expression + - - - %1: permission denied - %1: 許可されていません + Unknown notation %1 used in %2 facet. + - - %1: already exists - %1: 既に存在します + %1 facet contains invalid value %2: %3. + - - %1: does not exist - %1: 存在しません + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + - - - %1: unknown error %2 - %1: 未知のエラーです %2 + %1 facet cannot be %2 if %3 facet of base type is %4. + - - - QTDSDriver - - Unable to open connection - 接続をオープンできません + %1 facet must be less than or equal to %2 facet. + - - Unable to use database - データベースを使用できません + %1 facet must be less than %2 facet of base type. + - - - QTabBar - - Scroll Left - 左へスクロール + %1 facet and %2 facet cannot appear together. + - - Scroll Right - 右へスクロール + %1 facet must be greater than %2 facet of base type. + - - - QTcpServer - Socket operation unsupported - ソケット操作はサポートされていません + %1 facet must be less than %2 facet. + - - Operation on socket is not supported - このソケットへの操作はサポートされていません + %1 facet must be greater than or equal to %2 facet of base type. + - - - QTextControl - - &Undo - 元に戻す(&U) + Simple type contains not allowed facet %1. + - - &Redo - やり直す(&R) + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + - - Cu&t - 切り取り(&T) + Only %1 and %2 facets are allowed when derived by union. + - - &Copy - コピー(&C) + %1 contains %2 facet with invalid data: %3. + - - Copy &Link Location - リンクの場所をコピー(&L) + Attribute group %1 contains attribute %2 twice. + - - &Paste - 貼り付け(&P) + Attribute group %1 contains two different attributes that both have types derived from %2. + - - Delete - 削除 + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + - - Select All - すべてを選択 + Complex type %1 contains attribute %2 twice. + - - - QToolButton - - - Press - 押す + Complex type %1 contains two different attributes that both have types derived from %2. + - - - Open - オープン + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + - - - QUdpSocket - - This platform does not support IPv6 - このプラットフォームは IPv6 をサポートしていません + Element %1 is not allowed to have a value constraint if its base type is complex. + - - - QUndoGroup - - Undo - 元に戻す + Element %1 is not allowed to have a value constraint if its type is derived from %2. + - - Redo - やり直す + Value constraint of element %1 is not of elements type: %2. + - - - QUndoModel - - <empty> - <空> + Element %1 is not allowed to have substitution group affiliation as it is no global element. + - - - QUndoStack - - Undo - 元に戻す + Type of element %1 cannot be derived from type of substitution group affiliation. + - - Redo - やり直す + Value constraint of attribute %1 is not of attributes type: %2. + - - - QUnicodeControlCharacterMenu - - LRM Left-to-right mark - LRM (左横書き指定) + Attribute %1 has value constraint but has type derived from %2. + - - RLM Right-to-left mark - RLM (右横書き指定) + %1 attribute in derived complex type must be %2 like in base type. + - - ZWJ Zero width joiner - ZWJ (幅のない接続文字) + Attribute %1 in derived complex type must have %2 value constraint like in base type. + - - ZWNJ Zero width non-joiner - ZWNJ (幅のない非接続文字) + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + - - ZWSP Zero width space - ZWSP (幅の無い空白) + Attribute %1 in derived complex type must have %2 value constraint. + - - LRE Start of left-to-right embedding - LRE (左横書き開始指定) + processContent of base wildcard must be weaker than derived wildcard. + - - RLE Start of right-to-left embedding - RLE (右横書き開始指定) + Element %1 exists twice with different types. + - - LRO Start of left-to-right override - LRO (左横書き上書き開始指定) + Particle contains non-deterministic wildcards. + - - RLO Start of right-to-left override - RLO (右横書き上書き開始指定) + Base attribute %1 is required but derived attribute is not. + - - PDF Pop directional formatting - PDF (方向上書きの終了指定) + Type of derived attribute %1 cannot be validly derived from type of base attribute. + - - Insert Unicode control character - Unicode制御文字を挿入 + Value constraint of derived attribute %1 does not match value constraint of base attribute. + - - - QWebFrame - - Request cancelled - リクエストはキャンセルされました + Derived attribute %1 does not exist in the base definition. + - - Request blocked - リクエストはブロックされました + Derived attribute %1 does not match the wildcard in the base definition. + - - Cannot show URL - URL を表示できません + Base attribute %1 is required but missing in derived definition. + - - Frame load interruped by policy change - ポリシーの変更により、フレームのロードが中断しました + Derived definition contains an %1 element that does not exists in the base definition + - - Cannot show mimetype - MIME Type を表示できません + Derived wildcard is not a subset of the base wildcard. + - - File does not exist - ファイルが存在しません + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + - - - QWebPage - - Bad HTTP request - 誤った HTTP のリクエストです + Attribute %1 from base type is missing in derived type. + - - Submit - default label for Submit buttons in forms on web pages - 送信 + Type of derived attribute %1 differs from type of base attribute. + - - Submit - Submit (input element) alt text for <input> elements with no alt, title, or value - 送信 + Base definition contains an %1 element that is missing in the derived definition + - - Reset - default label for Reset buttons in forms on web pages - リセット + Can not process unknown element %1, expected elements are: %2. + - - This is a searchable index. Enter search keywords: - text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' - 検索が可能です。検索のためのキーワードを入力してください: + Element %1 is not allowed in this scope, possible elements are: %2. + - - Choose File - title for file button used in HTML forms - ファイルを選ぶ + Child element is missing in that scope, possible child elements are: %1. + - - No file selected - text to display in file button used in HTML forms when no file is selected - ファイルが選択されていません + Document is not a XML schema. + - - Open in New Window - Open in New Window context menu item - 新しいウィンドウで開く + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + - - Save Link... - Download Linked File context menu item - リンク先を保存... + %1 attribute of %2 element contains invalid content: {%3}. + - - Copy Link - Copy Link context menu item - リンク先をコピー + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + - - Open Image - Open Image in New Window context menu item - イメージを開く + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + - - Save Image - Download Image context menu item - 画像を保存 + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + - - Copy Image - Copy Link context menu item - 画像をコピー + %1 element without %2 attribute is not allowed inside schema without target namespace. + - - Open Frame - Open Frame in New Window context menu item - フレームを新しいウィンドウで開く + %1 element is not allowed inside %2 element if %3 attribute is present. + - - Copy - Copy context menu item - コピー + %1 element has neither %2 attribute nor %3 child element. + - - Go Back - Back context menu item - 戻る + %1 element with %2 child element must not have a %3 attribute. + - - Go Forward - Forward context menu item - 進む + %1 attribute of %2 element must be %3 or %4. + - - Stop - Stop context menu item - 停止 + %1 attribute of %2 element must have a value of %3. + - - Reload - Reload context menu item - リロード + %1 attribute of %2 element must have a value of %3 or %4. + - - Cut - Cut context menu item - 切り取り + %1 element must not have %2 and %3 attribute together. + - - Paste - Paste context menu item - 貼り付け + Content of %1 attribute of %2 element must not be from namespace %3. + - - No Guesses Found - No Guesses Found context menu item - 推測候補はありません + %1 attribute of %2 element must not be %3. + - - Ignore - Ignore Spelling context menu item - 無視 + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + - - Add To Dictionary - Learn Spelling context menu item - 辞書に追加 + Specifying use='prohibited' inside an attribute group has no effect. + - - Search The Web - Search The Web context menu item - Web を検索 + %1 element must have either %2 or %3 attribute. + - - Look Up In Dictionary - Look Up in Dictionary context menu item - 辞書から探す + %1 element must have either %2 attribute or %3 or %4 as child element. + - - Open Link - Open Link context menu item - リンクを開く + %1 element requires either %2 or %3 attribute. + - - Ignore - Ignore Grammar context menu item - 無視 + Text or entity references not allowed inside %1 element + - - Spelling - Spelling and Grammar context sub-menu item - スペル + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + - - Show Spelling and Grammar - menu item title - スペルと文法を表示 + %1 element is not allowed in this context. + - - Hide Spelling and Grammar - menu item title - スペルと文法を隠す + %1 attribute of %2 element has larger value than %3 attribute. + - - Check Spelling - Check spelling context menu item - スペルをチェックする + Prefix of qualified name %1 is not defined. + - - Check Spelling While Typing - Check spelling while typing context menu item - 入力中にスペルをチェックする + %1 attribute of %2 element must either contain %3 or the other values. + - - Check Grammar With Spelling - Check grammar with spelling context menu item - スペルおよび文法をチェックする + Component with ID %1 has been defined previously. + - - Fonts - Font context sub-menu item - フォント + Element %1 already defined. + - - Bold - Bold context menu item - 太字 + Attribute %1 already defined. + - - Italic - Italic context menu item - イタリック + Type %1 already defined. + - - Underline - Underline context menu item - 下線 + Attribute group %1 already defined. + - - Outline - Outline context menu item - アウトライン + Element group %1 already defined. + - - Direction - Writing direction context sub-menu item - 方向 + Notation %1 already defined. + - - Text Direction - Text direction context sub-menu item - テキストの方向 + Identity constraint %1 already defined. + - - Default - Default writing direction context menu item - デフォルト + Duplicated facets in simple type %1. + - - LTR - Left to Right context menu item - 左横書き + %1 references unknown %2 or %3 element %4. + - - RTL - Right to Left context menu item - 右横書き + %1 references identity constraint %2 that is no %3 or %4 element. + - - Inspect - Inspect Element context menu item - ? - 検査 + %1 has a different number of fields from the identity constraint %2 that it references. + - - No recent searches - Label for only item in menu that appears when clicking on the search field image, when no searches have been performed - 検索の履歴はありません + Base type %1 of %2 element cannot be resolved. + - - Recent searches - label for first item in the menu that appears when clicking on the search field image, used as embedded menu title - 検索の履歴 + Item type %1 of %2 element cannot be resolved. + - - Clear recent searches - menu item in Recent Searches menu that empties menu's contents - 検索の履歴をクリア + Member type %1 of %2 element cannot be resolved. + - - Unknown - Unknown filesize FTP directory listing item - 不明 + Type %1 of %2 element cannot be resolved. + - - %1 (%2x%3 pixels) - Title string for images - %1 (%2x%3 ピクセル) + Base type %1 of complex type cannot be resolved. + - - Web Inspector - %2 - Web の検査 - %2 + %1 cannot have complex base type that has a %2. + - - Scroll here - ここにスクロール + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + - - Left edge - 左端 + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + - - Top - 上端 + Type of %1 element must be a simple type, %2 is not. + - - Right edge - 右端 + Substitution group %1 of %2 element cannot be resolved. + - - Bottom - 下端 + Substitution group %1 has circular definition. + - - Page left - 1ページ左へスクロール + Duplicated element names %1 in %2 element. + - - Page up - 1ページ戻る + Reference %1 of %2 element cannot be resolved. + - - Page right - 1ページ右へスクロール + Circular group reference for %1. + - - Page down - 1ページ進む + %1 element is not allowed in this scope + - - Scroll left - 左へスクロール + %1 element cannot have %2 attribute with value other than %3. + - - Scroll up - 上へスクロール + %1 element cannot have %2 attribute with value other than %3 or %4. + - - Scroll right - 右へスクロール + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + - - Scroll down - 下へスクロール + Attribute group %1 has circular reference. + - - - %n file(s) - number of chosen file - - %n 個のファイル - + + %1 attribute in %2 must have %3 use like in base type %4. + - - JavaScript Alert - %1 - JavaScript アラート - %1 + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + - - JavaScript Confirm - %1 - JavaScript 確認 - %1 + %1 has attribute wildcard but its base type %2 has not. + - - JavaScript Prompt - %1 - JavaScript 質問 - %1 + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + - - Move the cursor to the next character - 次の文字へカーソルを移動 + Enumeration facet contains invalid content: {%1} is not a value of type %2. + - - Move the cursor to the previous character - 前の文字にカーソルを移動 + Namespace prefix of qualified name %1 is not defined. + - - Move the cursor to the next word - 次の単語にカーソルを移動 + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + - - Move the cursor to the previous word - 前の単語にカーソルを移動 + %1 is not valid according to %2. + - - Move the cursor to the next line - 次の行にカーソルを移動 + String content does not match the length facet. + - - Move the cursor to the previous line - 前の行にカーソルを移動 + String content does not match the minLength facet. + - - Move the cursor to the start of the line - 文なのか行なのか - 文頭にカーソルを移動 + String content does not match the maxLength facet. + - - Move the cursor to the end of the line - 文末にカーソルを移動 + String content does not match pattern facet. + - - Move the cursor to the start of the block - ブロックの先頭にカーソルを移動 + String content is not listed in the enumeration facet. + - - Move the cursor to the end of the block - ブロックの末尾にカーソルを移動 + Signed integer content does not match the maxInclusive facet. + - - Move the cursor to the start of the document - 文章の先頭にカーソルを移動 + Signed integer content does not match the maxExclusive facet. + - - Move the cursor to the end of the document - 文章の末尾にカーソルを移動 + Signed integer content does not match the minInclusive facet. + - - Select all - すべてを選択 + Signed integer content does not match the minExclusive facet. + - - Select to the next character - 次の文字を選択 + Signed integer content is not listed in the enumeration facet. + - - Select to the previous character - 前の文字を選択 + Signed integer content does not match pattern facet. + - - Select to the next word - 次の単語を選択 + Signed integer content does not match in the totalDigits facet. + - - Select to the previous word - 前の単語を選択 + Unsigned integer content does not match the maxInclusive facet. + - - Select to the next line - 次の行を選択 + Unsigned integer content does not match the maxExclusive facet. + - - Select to the previous line - 前の行を選択 + Unsigned integer content does not match the minInclusive facet. + - - Select to the start of the line - 文頭から選択 + Unsigned integer content does not match the minExclusive facet. + - - Select to the end of the line - 文末まで選択 + Unsigned integer content is not listed in the enumeration facet. + - - Select to the start of the block - ブロックの先頭から選択 + Unsigned integer content does not match pattern facet. + - - Select to the end of the block - ブロックの末尾まで選択 + Unsigned integer content does not match in the totalDigits facet. + - - Select to the start of the document - ドキュメントの先頭から選択 + Double content does not match the maxInclusive facet. + - - Select to the end of the document - ドキュメントの末尾まで選択 + Double content does not match the maxExclusive facet. + - - Delete to the start of the word - 単語の先頭まで削除 + Double content does not match the minInclusive facet. + - - Delete to the end of the word - 単語の末尾まで削除 + Double content does not match the minExclusive facet. + - - Insert a new paragraph - 新しい段落を挿入 + Double content is not listed in the enumeration facet. + - - Insert a new line - 新しい行を挿入 + Double content does not match pattern facet. + - - - QWhatsThisAction - - What's This? - ヒント? + Decimal content does not match in the fractionDigits facet. + - - - QWidget - - * - * + Decimal content does not match in the totalDigits facet. + - - - QWizard - - Go Back - 戻る + Date time content does not match the maxInclusive facet. + - - Continue - 続き + Date time content does not match the maxExclusive facet. + - - Commit - 適用 + Date time content does not match the minInclusive facet. + - - Done - 終了 + Date time content does not match the minExclusive facet. + - - Help - ヘルプ + Date time content is not listed in the enumeration facet. + - - < &Back - < 戻る(&B) + Date time content does not match pattern facet. + - - &Finish - 完了(&F) + Duration content does not match the maxInclusive facet. + - - Cancel - キャンセル + Duration content does not match the maxExclusive facet. + - - &Help - ヘルプ(&H) + Duration content does not match the minInclusive facet. + - - &Next - 次へ(&N) + Duration content does not match the minExclusive facet. + - - &Next > - 次へ(&N) > + Duration content is not listed in the enumeration facet. + - - - QWorkspace - - &Restore - 元に戻す(&R) + Duration content does not match pattern facet. + - - &Move - 移動(&M) + Boolean content does not match pattern facet. + - - &Size - サイズを変更(&S) + Binary content does not match the length facet. + - - Mi&nimize - 最小化(&N) + Binary content does not match the minLength facet. + - - Ma&ximize - 最大化(&X) + Binary content does not match the maxLength facet. + - - &Close - 閉じる(&C) + Binary content is not listed in the enumeration facet. + - - Stay on &Top - 常に手前に表示(&T) + Invalid QName content: %1. + - - - Sh&ade - シェード(&A) + QName content is not listed in the enumeration facet. + - - - %1 - [%2] - %1 - [%2] + QName content does not match pattern facet. + - - Minimize - 最小化 + Notation content is not listed in the enumeration facet. + - - Restore Down - 元に戻す + List content does not match length facet. + - - Close - 閉じる + List content does not match minLength facet. + - - &Unshade - シェードを解除(&U) + List content does not match maxLength facet. + - - - QXml - - no error occurred - エラーは発生しませんでした + List content is not listed in the enumeration facet. + - - error triggered by consumer - 消費者によってエラーが誘発されました + List content does not match pattern facet. + - - unexpected end of file - 予期せぬファイルの終りです + Union content is not listed in the enumeration facet. + - - more than one document type definition - ドキュメントタイプの定義が複数あります + Union content does not match pattern facet. + - - error occurred while parsing element - 要素の解析中にエラーが発生しました + Data of type %1 are not allowed to be empty. + - - tag mismatch - タグが一致しません + Element %1 is missing child element. + - - error occurred while parsing content - コンテンツの解析中にエラーが発生しました + There is one IDREF value with no corresponding ID: %1. + - - unexpected character - 予期しない文字です + Loaded schema file is invalid. + - - invalid name for processing instruction - 処理の指示に無効な名前です + %1 contains invalid data. + - - version expected while reading the XML declaration - XML宣言を読み込むにはバージョンが必要です + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + - - wrong value for standalone declaration - スタンドアロン宣言として正しくない値です + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + - - encoding declaration or standalone declaration expected while reading the XML declaration - XML宣言を読み込むにはエンコーディング宣言かスタンドアローン宣言が必要です + No schema defined for validation. + - - standalone declaration expected while reading the XML declaration - XML宣言を読み込むにはスタンドアローン宣言が必要です + No definition for element %1 available. + - - error occurred while parsing document type definition - ドキュメントタイプの定義を解析中にエラーが発生しました + Specified type %1 is not known to the schema. + - - letter is expected - 文字が必要です + Element %1 is not defined in this scope. + - - error occurred while parsing comment - コメントの解析中にエラーが発生しました + Declaration for element %1 does not exist. + - - error occurred while parsing reference - 参照の解析中にエラーが発生しました + Element %1 contains invalid content. + - - internal general entity reference not allowed in DTD - 内部一般エンティティ参照はDTDで許されていません + Element %1 is declared as abstract. + - - external parsed general entity reference not allowed in attribute value - 解析された外部一般エンティティ参照は属性値で許されていません + Element %1 is not nillable. + - - external parsed general entity reference not allowed in DTD - 解析された外部一般エンティティ参照はDTDで許されていません + Attribute %1 contains invalid data: %2 + - - unparsed entity reference in wrong context - 不正な文脈で解析されないエンティティ参照です + Element contains content although it is nillable. + - - recursive entities - 再帰的エンティティ + Fixed value constraint not allowed if element is nillable. + - - error in the text declaration of an external entity - 外部エンティティのテキスト宣言にエラーがあります + Specified type %1 is not validly substitutable with element type %2. + - - - QXmlStream - - - Extra content at end of document. - ドキュメントの末尾に余計なものがついています。 + Complex type %1 is not allowed to be abstract. + - - Invalid entity value. - エンティティの値が無効です。 + Element %1 contains not allowed attributes. + - - Invalid XML character. - 無効な XML 文字です。 + Element %1 contains not allowed child element. + - - Sequence ']]>' not allowed in content. - このコンテキストでは、']]>' は許可されていません。 + Content of element %1 does not match its type definition: %2. + - - - Encountered incorrectly encoded content. - 正しくないエンコードの文脈に遭遇しました。 + Content of element %1 does not match defined value constraint. + - - Namespace prefix '%1' not declared - 名前空間のブリフィックス '%1' は宣言されていません + Element %1 contains not allowed child content. + - - Attribute redefined. - 属性が再度指定されています。 + Element %1 contains not allowed text content. + - - Unexpected character '%1' in public id literal. - DTD宣言の部分 - 公開 ID 指定に使用できない文字 '%1' が使用されています。 + Element %1 cannot contain other elements, as it has a fixed content. + - - Invalid XML version string. - 無効な XML バージョン指定です。 + Element %1 is missing required attribute %2. + - - Unsupported XML version. - この XML のバージョンはサポートされていません。 + Attribute %1 does not match the attribute wildcard. + - - The standalone pseudo attribute must appear after the encoding. - &ddd; は、エンコーディングを指定していないと使えないということかな。utf8だとおもうけど。 - 仮想属性指定は、エンコーディング指定の後にのみ使用できます。 + Declaration for attribute %1 does not exist. + - - %1 is an invalid encoding name. - %1 は無効なエンコーディングの名前です。 + Element %1 contains two attributes of type %2. + - - Encoding %1 is unsupported - エンコーディング '%1' はサポートされていません + Attribute %1 contains invalid content. + - - Standalone accepts only yes or no. - standalone の指定は yes または no のみ指定できます。 + Element %1 contains unknown attribute %2. + - - Invalid attribute in XML declaration. - XML 宣言に無効な属性がついています。 + Content of attribute %1 does not match its type definition: %2. + - - Premature end of document. - ドキュメントが途中で終わっています。 + Content of attribute %1 does not match defined value constraint. + - - Invalid document. - 無効なドキュメントです。 + Non-unique value found for constraint %1. + - - Expected - 予期していた表現は、 + Key constraint %1 contains absent fields. + - - , but got ' - ですが、取得した表現は以下のものでした ' + Key constraint %1 contains references nillable element %2. + - - Unexpected ' - 予期していなかった表現 ' + No referenced value found for key reference %1. + - - Expected character data. - 予期していた文字列。 + More than one value found for field %1. + - - Recursive entity detected. - 再帰しているエンティティを発見しました。 + Field %1 has no simple type. + - - Start tag expected. - 開始タグをよきしていましたが、みつかりません。 + ID value '%1' is not unique. + - - NDATA in parameter entity declaration. - パラメータエンティティの宣言において NDATA があります。 + '%1' attribute contains invalid QName content: %2. + - - XML declaration not at start of document. - XML 宣言がドキュメントの先頭にありません。 + empty + - - %1 is an invalid processing instruction name. - XMLにそんなのあったっけ? - %1 は無効な処理指定の名前です。 + zero or one + ゼロまたは一つ - - Invalid processing instruction name. - 無効な処理命令です。 + exactly one + 厳密に一つ - - %1 is an invalid PUBLIC identifier. - %1 は、公開 (PUBLIC) 識別子として無効です。 + one or more + 一つまたは複数 - - - - - Illegal namespace declaration. - 無効な名前空間の指定です。 + zero or more + ゼロまたはそれ以上 - - Invalid XML name. - 無効な XML 名です。 + Required type is %1, but %2 was found. + 要求されている型は %1 ですが、 %2 があります。 - - Opening and ending tag mismatch. - 開始タグと、終了タグがマッチしません。 + Promoting %1 to %2 may cause loss of precision. + %1 を %2 に変換する際に、精度のロスが生じます。 - - Reference to unparsed entity '%1'. - まだパースしていないエンティティ '%1' を参照しています。 + The focus is undefined. + フォーカスが定義されていません。 - - - - Entity '%1' not declared. - エンティティ '%1' は宣言されていません。 + It's not possible to add attributes after any other kind of node. + 他の種類のノードの中では、属性を追加することはできません。 - - Reference to external entity '%1' in attribute value. - 属性値として、外部エンティティ '%1' を再度指定しています。 + An attribute by name %1 has already been created. + 名前 '%1' の属性は、すでに生成されています。 - - Invalid character reference. - 無効な文字への参照です。 + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + UNICODE Codepoint Collection のみ使用できます(%1)。 %2 はサポートされていません。 diff --git a/translations/qtconfig_ja.ts b/translations/qtconfig_ja.ts new file mode 100644 index 0000000..e92a7d1 --- /dev/null +++ b/translations/qtconfig_ja.ts @@ -0,0 +1,919 @@ + + + + + MainWindow + + + Desktop Settings (Default) + デスクトップの設定(デフォルト) + + + + Choose style and palette based on your desktop settings. + デスクトップの設定に応じてスタイルとパレットを選択します。 + + + + On The Spot + On The Spot + + + + + + + Auto (default) + 自動(デフォルト) + + + + Choose audio output automatically. + オーディオ出力を自動的に選択します。 + + + + + aRts + aRts + + + + Experimental aRts support for GStreamer. + Gstreamer での aRts のサポート(Experimental)。 + + + + Phonon GStreamer backend not available. + Phonon の GStreamer バックエンドが見つかりません。 + + + + Choose render method automatically + 描画メソッドを自動的に選択します + + + + + X11 + X11 + + + + Use X11 Overlays + X11 のオーバーレイを使用 + + + + + OpenGL + OpenGL + + + + Use OpenGL if available + OpenGL が使用可能な場合は使用 + + + + + Software + ソフトウェア + + + + Use simple software rendering + ソフトウェアでの描画を使用 + + + + No changes to be saved. + 内容が変更されていません。 + + + + Saving changes... + 保存中… + + + + Over The Spot + Over The Spot + + + + Off The Spot + Off The Spot + + + + Root + Root + + + + Select a Directory + ディレクトリの選択 + + + + <h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + <h3>%1</h3><br/>バージョン %2<br/><br/>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + + + + + + Qt Configuration + Qt 設定ツール + + + + Save Changes + 変更の保存 + + + + Save changes to settings? + 変更内容を設定に保存しますか? + + + + &Yes + はい(&Y) + + + + &No + いいえ(&N) + + + + &Cancel + キャンセル(&C) + + + + MainWindowBase + + + Qt Configuration + Qt 設定ツール + + + + Appearance + 外観 + + + + GUI Style + GUI スタイル + + + + Select GUI &Style: + GUI スタイルの選択(&S): + + + + Preview + プレビュー + + + + Select &Palette: + パレットの選択(&P): + + + + Active Palette + アクティブなパレット + + + + Inactive Palette + アクティブではないパレット + + + + Disabled Palette + 無効時のパレット + + + + Build Palette + パレットの設定 + + + + &3-D Effects: + &3D エフェクト: + + + + Window Back&ground: + ウィンドウのバックグラウンド(&G): + + + + &Tune Palette... + パレットを調整(&T)... + + + + Please use the KDE Control Center to set the palette. + KDE のコントロールセンターでパレットの設定をしてください。 + + + + Fonts + フォント + + + + Default Font + デフォルトのフォント + + + + &Style: + スタイル(&S): + + + + &Point Size: + ポイントサイズ(&P): + + + + F&amily: + ファミリー(&F): + + + + Sample Text + テキストのサンプル + + + + Font Substitution + フォントの置換 + + + + S&elect or Enter a Family: + ファミリーを選択するか入力してください(&E): + + + + Current Substitutions: + 現在の置換定義: + + + + + Up + 上へ + + + + + Down + 下へ + + + + + Remove + 削除 + + + + Select s&ubstitute Family: + 置換するファミリーの選択(&U): + + + + + Add + 追加 + + + + Interface + インターフェース + + + + Feel Settings + 一般的な設定 + + + + + ms + ミリ秒 + + + + &Double Click Interval: + ダブルクリックの間隔(&D): + + + + No blinking + 点滅しない + + + + &Cursor Flash Time: + カーソルの点滅の間隔(&C): + + + + lines + + + + + Wheel &Scroll Lines: + マウスホイールでのスクロール行数(&S): + + + + Resolve symlinks in URLs + URL のシンボリックリンクの解決 + + + + GUI Effects + GUI のエフェクト + + + + &Enable + 有効(&E) + + + + Alt+E + Alt+E + + + + &Menu Effect: + メニューのエフェクト(&E): + + + + C&omboBox Effect: + コンボボックスのエフェクト(&O): + + + + &ToolTip Effect: + ツールチップのエフェクト(&T): + + + + Tool&Box Effect: + ツールボックスのエフェクト(&B): + + + + + + + Disable + 無効 + + + + + + + Animate + アニメーション + + + + + Fade + フェード + + + + Global Strut + Global Strut + + + + Minimum &Width: + 幅の最小値(&W): + + + + Minimum Hei&ght: + 高さの最小値(&G): + + + + + pixels + ピクセル + + + + Enhanced support for languages written right-to-left + 右から左に書かれる言語のサポートの強化 + + + + XIM Input Style: + XIM のインプットスタイル: + + + + On The Spot + On The Spot + + + + Over The Spot + Over The Spot + + + + Off The Spot + Off The Spot + + + + Root + Root + + + + Default Input Method: + デフォルトのインプットメソッド: + + + + Printer + プリンタ + + + + Enable Font embedding + フォントを埋め込む + + + + Font Paths + フォントのパス + + + + Browse... + ブラウズ... + + + + Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. + <b>ブラウズ</b>ボタンを押すかディレクトリを入力し、エンターキーか追加ボタンでリストに追加してください。 + + + + Phonon + Phonon + + + + About Phonon + Phonon について + + + + + Current Version: + 現在のバージョン: + + + + + Not available + 使用不可能 + + + + + Website: + ウェブサイト: + + + + <!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> + <!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> + + + + About GStreamer + GStreamer について + + + + <!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> + <!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> + + + + GStreamer backend settings + GStreamer のバックエンドの設定 + + + + Preferred audio sink: + 優先するオーディオシンク: + + + + Preferred render method: + 優先する描画方法: + + + + <!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;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> + <!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;"><span style=" font-style:italic;">注: これらの設定の変更によりアプリケーションが正常に起動しなくなる場合があります。</span></p></body></html> + + + + &File + ファイル(&F) + + + + &Help + ヘルプ(&H) + + + + &Save + 保存(&S) + + + + Save + 保存 + + + + Ctrl+S + Ctrl+S + + + + E&xit + 終了(&X) + + + + Exit + 終了 + + + + &About + Qt 設定ツールについて(&A) + + + + About + Qt 設定ツールについて + + + + About &Qt + &Qt について + + + + About Qt + Qt について + + + + PaletteEditorAdvancedBase + + + Tune Palette + パレットの調整 + + + + <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> + <b>パレットの編集</b><p>現在のウィジェットやフォームのパレットを変更してください。</p><p>自動生成されたパレットを使用するか、それぞれのグループ/役割に対して色を選択してください。</p><p>パレットの内容のプレビューセクションにある様々なウィジェットのレイアウトで確認できます。</p> + + + + Select &Palette: + パレットの選択(&P): + + + + Active Palette + アクティブなパレット + + + + Inactive Palette + アクティブではないパレット + + + + Disabled Palette + 無効時のパレット + + + + Auto + 自動 + + + + Build inactive palette from active + アクティブなパレットからアクティブではないパレットを構築 + + + + Build disabled palette from active + アクティブなパレットから無効時のパレットを構築 + + + + Central color &roles + 中央部の色の役割(&R) + + + + Choose central color role + 中央部の色の役割を選択してください + + + + <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> + <b>色の役割の選択。</b><p>選択可能な中央部の役割: <ul> <li>ウィンドウ - 一般的な背景色。</li> <li>ウィンドウテキスト - 一般的な前景色。 </li> <li>ベース - テキスト入力ウィジェット等の背景色。通常は白などの明るい色。 </li> <li>テキスト - ベースと共に用いられる前景色。通常はウィンドウテキストと同じだが、ウィンドウとベースに対してよりよいコントラストが必要な場合に使用される。 </li> <li>ボタン - 一般的なボタンの背景色。Macintosh スタイルのようにウィンドウと異なる背景色を使用する場合に使用される。 </li> <li>ボタンテキスト - ボタンと共に用いられる前景色 </li> <li>ハイライト - アイテムが選択されていたり、ハイライトされていることを示すために使用される色。 </li> <li>ハイライトのテキスト - ハイライト時のテキストの色。 </li> <li>明るいテキスト - 黒などの背景色に対して使用されるテキストの色。ウィンドウテキストの反対の色。 </li> </ul> </p> + + + + Window + ウィンドウ + + + + WindowText + ウィンドウテキスト + + + + Button + ボタン + + + + Base + ベース + + + + Text + テキスト + + + + BrightText + 明るいテキスト + + + + ButtonText + ボタンテキスト + + + + Highlight + ハイライト + + + + HighlightedText + ハイライトのテキスト + + + + &Select Color: + 色の選択(&S): + + + + + Choose a color + 色を選択してください + + + + Choose a color for the selected central color role. + 選択された中央部の色の役割に使用する色を選択してください。 + + + + 3-D shadow &effects + 3Dの影の効果(&E) + + + + Build &from button color + ボタンの色から構築する(&F) + + + + Generate shadings + 影を生成する + + + + Check to let 3D-effect colors be calculated from button-color. + 3D効果の色をボタンの色から計算するにはチェックしてください。 + + + + Choose 3D-effect color role + 3D効果の色の役割の選択 + + + + <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> + <b>色の役割の選択。</b><p>選択可能な中央部の役割: <ul> <li>ライト - ボタンの色より明るい。 </li> <li>ミッドライト - ボタンとライトの間。 </li> <li>ミッド - ボタンとダークの間。 </li> <li>ダーク - ボタンより暗い。 </li> <li>シャドウ - とても暗い色。 </li> </ul> + + + + Light + ライト + + + + Midlight + ミッドライト + + + + Mid + ミッド + + + + Dark + ダーク + + + + Shadow + シャドウ + + + + Select Co&lor: + 色の選択(&L): + + + + Choose a color for the selected effect color role. + 選択の効果の色の役割に使用する色を選択してください。 + + + + OK + OK + + + + Close dialog and apply all changes. + 全ての変更を適用してダイアログを閉じる。 + + + + Cancel + キャンセル + + + + Close dialog and discard all changes. + 全ての変更を破棄してダイアログを閉じる。 + + + + PreviewFrame + + + Desktop settings will only take effect after an application restart. + デスクトップの設定はアプリケーションの再起動後に反映されます。 + + + + PreviewWidgetBase + + + Preview Window + プレビューウィンドウ + + + + ButtonGroup + ボタングループ + + + + RadioButton1 + ラジオボタン1 + + + + RadioButton2 + ラジオボタン2 + + + + RadioButton3 + ラジオボタン3 + + + + ButtonGroup2 + ボタングループ2 + + + + CheckBox1 + チェックボックス1 + + + + CheckBox2 + チェックボックス2 + + + + LineEdit + ラインエディタ + + + + ComboBox + コンボボックス + + + + PushButton + プッシュボタン + + + + <p> +<a href="http://qt.nokia.com">http://qt.nokia.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p> + <p> +<a href="http://qt.nokia.com">http://qt.nokia.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p> + + + diff --git a/translations/qvfb_ja.ts b/translations/qvfb_ja.ts new file mode 100644 index 0000000..cdf95c1 --- /dev/null +++ b/translations/qvfb_ja.ts @@ -0,0 +1,525 @@ + + + + + AnimationSaveWidget + + + + Record + 録画 + + + + Reset + リセット + + + + Save + 保存 + + + + Save in MPEG format (requires netpbm package installed) + MPEG形式で保存(netpbmパッケージのインストールが必要) + + + + + Click record to begin recording. + 録画を開始するには「録画」をクリックしてください。 + + + + + Finished saving. + 保存が完了しました。 + + + + Paused. Click record to resume, or save if done. + 一時停止中。「録画」をクリック再開するか、保存をしてください。 + + + + Pause + 一時停止 + + + + Recording... + 録画中... + + + + Saving... + 保存中... + + + + + Save animation... + 動画を保存中... + + + + Save canceled. + 保存がキャンセルされました。 + + + + Save failed! + 保存に失敗しました! + + + + Config + + + Configure + 設定 + + + + Size + サイズ + + + + 176x220 "SmartPhone" + 176x220 "スマートフォン" + + + + 240x320 "PDA" + 240x320 "PDA" + + + + 320x240 "TV" / "QVGA" + 320x240 "TV" / "QVGA" + + + + 640x480 "VGA" + 640x480 "VGA" + + + + 800x480 + 800x480 + + + + 800x600 + 800x600 + + + + 1024x768 + 1024x768 + + + + Custom + それ以外 + + + + Depth + 色深度 + + + + 1 bit monochrome + 1 bit モノクロ + + + + 2 bit grayscale + 2 bit グレイスケール + + + + 4 bit grayscale + 4 bit グレイスケール + + + + 8 bit + 8 bit + + + + 12 (16) bit + 12(16) bit + + + + 15 bit + 15 bit + + + + 16 bit + 16 bit + + + + 18 bit + 18 bit + + + + 24 bit + 24 bit + + + + 32 bit + 32 bit + + + + 32 bit ARGB + 32 bit ARGB + + + + Swap red and blue channels + 赤と青のチャンネルを入れ替える + + + + BGR format + BGR フォーマット + + + + Skin + スキン + + + + None + なし + + + + Emulate touch screen (no mouse move) + タッチスクリーンのエミュレート(マウスムーブが無効になります) + + + + Emulate LCD screen (Only with fixed zoom of 3.0 times magnification) + LCDスクリーンのエミュレート(3倍固定の拡大ズーム) + + + + <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>. + <p><i>以上の</i>サイズや色深度を変更した場合、ヴァーチャルフレームバッファ上で動作しているアプリケーションは終了します。<i>以下の</i>ガンマ値の変更の場合はアプリケーションは終了しません。 + + + + Gamma + ガンマ + + + + Blue + + + + + + + + 1.0 + 1.0 + + + + Green + + + + + All + 全て + + + + Red + + + + + Set all to 1.0 + 全て1.0にする + + + + &OK + &OK + + + + &Cancel + キャンセル(&C) + + + + DeviceSkin + + + The image file '%1' could not be loaded. + 画像ファイル "%1" を読み込めません。 + + + + The skin directory '%1' does not contain a configuration file. + スキンのディレクトリ "%1" に設定ファイルがありません。 + + + + The skin configuration file '%1' could not be opened. + スキンの設定ファイル "%1" が開けません。 + + + + The skin configuration file '%1' could not be read: %2 + スキンの設定ファイル "%1" が読み込めません: %2 + + + + Syntax error: %1 + シンタックスエラー: %1 + + + + The skin "up" image file '%1' does not exist. + スキンの "up" の画像ファイル "%1" がありません。 + + + + The skin "down" image file '%1' does not exist. + スキンの "down" の画像ファイル "%1" がありません。 + + + + The skin "closed" image file '%1' does not exist. + スキンの "closed" の画像ファイル "%1" がありません。 + + + + The skin cursor image file '%1' does not exist. + スキンのカーソルの画像ファイル "%1" がありません。 + + + + Syntax error in area definition: %1 + エリア定義のシンタックスエラー: %1 + + + + Mismatch in number of areas, expected %1, got %2. + エリア数が正しくありません。%2 となってありますが %1 であるべきです。 + + + + QVFb + + + &Save image... + 画像の保存(&S)... + + + + &Animation... + 動画の保存(&A)... + + + + &Quit + 終了(&Q) + + + + Show &Cursor + カーソルの表示(&C) + + + + &Refresh Rate... + リフレッシュレート(&R)... + + + + Zoom scale &0.5 + ズームスケール &0.5 + + + + Zoom scale &1 + ズームスケール &1 + + + + Zoom scale &2 + ズームスケール &2 + + + + Zoom scale &3 + ズームスケール &3 + + + + Zoom scale &4 + ズームスケール &4 + + + + &File + ファイル(&F) + + + + &Configure... + 設定の変更(&C)... + + + + &View + 表示(&V) + + + + &No rotation + ローテーションなし(&N) + + + + &90° rotation + &90° ローテーション + + + + 1&80° rotation + 1&80° ローテーション + + + + 2&70° rotation + 2&70° ローテーション + + + + Zoom scale 0.7&5 + ズームスケール 0.7&5 + + + + Zoom &scale... + ズームスケール(&S)... + + + + &Help + ヘルプ(&H) + + + + &About... + QVFB について(&A)... + + + + Save Main Screen image + メインスクリーンの画像の保存 + + + + + snapshot.png + スナップショット.png + + + + + Portable Network Graphics (*.png) + + + + + Save Main Screen Image + メインスクリーンの画像の保存 + + + + + Save failed. Check that you have permission to write to the target directory. + 保存に失敗しました。保存先のディレクトリn書き込み権限があるかを確認してください。 + + + + Save Second Screen image + サブスクリーンの画像の保存 + + + + Save Second Screen Image + サブスクリーンの画像の保存 + + + + About QVFB + QVFB について + + + + <h2>The Qt for Embedded Linux Virtual X11 Framebuffer</h2><p>This application runs under Qt for X11, emulating a simple framebuffer, which the Qt for Embedded Linux server and clients can attach to just as if it was a hardware Linux framebuffer. <p>With the aid of this development tool, you can develop Qt for Embedded Linux applications under X11 without having to switch to a virtual console. This means you can comfortably use your other development tools such as GUI profilers and debuggers. + <h2>The Qt for Embedded Linux Virtual X11 Framebuffer</h2><p>このアプリケーションは Qt for X11 上で動作し、Qt for Embedded Linux のサーバーとクライアントがハードウェアの Linux フレームバッファのように接続可能なシンプルなフレームバッファをエミュレートします。 <p>この開発ツールを使用すると Qt for Embedded Linux 向けのアプリケーションが X11 上でヴァーチャルコンソールへ切り替える事なく開発できるようになります。GUI のプロファイラやデバッガなどの他のツールを一緒に使用する時に便利でしょう。 + + + + Browse... + 他のスキンを参照... + + + + Load Custom Skin... + カスタムスキンを開く... + + + + All QVFB Skins (*.skin) + QVFB のスキン(*.skin) + + + + QVFbRateDialog + + + Target frame rate: + ターゲットのフレームレート: + + + + + %1fps + %1fps + + + + OK + OK + + + + Cancel + キャンセル + + + -- cgit v0.12 From 4aafc4e55e0906be0cc39911b2c1a4ffe71c4d91 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Fri, 20 Aug 2010 14:00:36 +0200 Subject: Doc: fixing creator bugs, removing menus and textbox in the header --- doc/src/template/style/narrow.css | 3 +++ doc/src/template/style/style.css | 4 ++++ tools/qdoc3/htmlgenerator.cpp | 13 +++++++------ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/doc/src/template/style/narrow.css b/doc/src/template/style/narrow.css index 349048f..de5b0a0 100644 --- a/doc/src/template/style/narrow.css +++ b/doc/src/template/style/narrow.css @@ -203,6 +203,9 @@ *border: 1px solid #fff; *height: 17px; _height: 18px; + /* to be fixed */ + display: none; + /* to be fixed */ } .narrow .indexbox .indexIcon { diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css index 6f2bdce..9afff03 100755 --- a/doc/src/template/style/style.css +++ b/doc/src/template/style/style.css @@ -1521,6 +1521,10 @@ .creator .toc { margin:10px 20px 10px 10px; } + + .creator #narrowsearch, .creator #narrowmenu{ + display:none; + } /* end of creator spec*/ } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 3e79a9f..cd2662c 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1810,18 +1810,19 @@ void HtmlGenerator::generateHeader(const QString& title, // Adding jquery and functions - providing online tools and search features out() << " \n"; out() << " \n"; - // Adding style and js for small windows - out() << " \n"; - out() << " "; - out() << " \n"; - out() << " \n"; + // Adding syntax highlighter // future release - // Setting some additional style sheet related details depending on configuration (e.g. online/offline) + // Setting some additional style sheet related details depending on configuration (e.g. Online/Creator) switch (application) { case Online: + // Adding style and js for small windows + out() << " \n"; + out() << " "; + out() << " \n"; + out() << " \n"; // Browser spec styles out() << "