diff options
127 files changed, 3289 insertions, 2303 deletions
@@ -2718,6 +2718,7 @@ if [ "$PLATFORM_MAC" = "yes" ]; then # Build commmand line arguments we can pass to the compiler during configure tests # by prefixing each arch with "-arch". CFG_MAC_ARCHS_GCC_FORMAT="${CFG_MAC_ARCHS/x86/i386}" + CFG_MAC_ARCHS_GCC_FORMAT="${CFG_MAC_ARCHS/i386_64/x86_64}" for ARCH in $CFG_MAC_ARCHS_GCC_FORMAT; do MAC_ARCHS_COMMANDLINE="$MAC_ARCHS_COMMANDLINE -arch $ARCH" done diff --git a/dist/changes-4.5.2 b/dist/changes-4.5.2 index 3180b7c..a132028 100644 --- a/dist/changes-4.5.2 +++ b/dist/changes-4.5.2 @@ -33,6 +33,16 @@ Third party components * Library * **************************************************************************** +- QtWebKit + * Backported fixes for critical bugs, memory leaks, and crashes from + WebKit trunk (with revision numbers) related to: + Canvas (r40546, r41221 r41355, r42996, r43645) + Memory (r41527, r43764, r43828, r43830) + JavaScript (r39882, r40086, r40131, r40133) + Rendering (r41285, r41296, r41659, r42887) + Network (r41664, r42516) + Plugins (r41346) + Clipboard (r41360) **************************************************************************** * Database Drivers * diff --git a/doc/src/credits.qdoc b/doc/src/credits.qdoc index 114e28d..6b48514 100644 --- a/doc/src/credits.qdoc +++ b/doc/src/credits.qdoc @@ -188,7 +188,7 @@ Jesper K. Pedersen <blackie atklaralvdalens-datakonsult.se>\br Jim Lauchlan <jim.lauchlan at gecm.com>\br Joachim Backes <backes at rhrk.uni-kl.de>\br - Jochen Römmler <jochen at concept.de>\br + Jochen R\ouml\c{}mmler <jochen at concept.de>\br Jochen Scharrlach <jscharrl at BA-Stuttgart.De>\br Joe Croft <jcroft at swbell.net>\br Joel Lindholm <wizball at kewl.campus.luth.se>\br diff --git a/doc/src/snippets/widgets-tutorial/template.cpp b/doc/src/snippets/widgets-tutorial/template.cpp new file mode 100644 index 0000000..5958676 --- /dev/null +++ b/doc/src/snippets/widgets-tutorial/template.cpp @@ -0,0 +1,14 @@ +#include <QtGui> + +// Include header files for application components. +// ... + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + // Set up and show widgets. + // ... + + return app.exec(); +} diff --git a/doc/src/stylesheet.qdoc b/doc/src/stylesheet.qdoc index 46ec041..4060f33 100644 --- a/doc/src/stylesheet.qdoc +++ b/doc/src/stylesheet.qdoc @@ -398,7 +398,7 @@ (usually) refers to a single object, not to all instances of a class. - Similarly, selectors with pseudo-states are more specific that + Similarly, selectors with pseudo-states are more specific than ones that do not specify pseudo-states. Thus, the following style sheet specifies that a \l{QPushButton} should have white text when the mouse is hovering over it, otherwise red text: @@ -653,7 +653,7 @@ \target sub controls \section1 Sub-controls - A widget is considered as a heirarchy (tree) of subcontrols drawn on top + A widget is considered as a hierarchy (tree) of subcontrols drawn on top of each other. For example, the QComboBox draws the drop-down sub-control followed by the down-arrow sub-control. A QComboBox is thus rendered as follows: diff --git a/doc/src/tutorials/widgets-tutorial.qdoc b/doc/src/tutorials/widgets-tutorial.qdoc index ead44af..1e89431 100644 --- a/doc/src/tutorials/widgets-tutorial.qdoc +++ b/doc/src/tutorials/widgets-tutorial.qdoc @@ -41,11 +41,14 @@ /*! \page widgets-tutorial.html + \startpage {index.html}{Qt Reference Documentation} + \nextpage {tutorials/widgets/toplevel}{Creating a Window} \title Widgets Tutorial \ingroup tutorials - \brief This tutorial covers basic usage of widgets and layouts, showing how they are used to build GUI applications. + \brief This tutorial covers basic usage of widgets and layouts, showing how + they are used to build GUI applications. \section1 Introduction @@ -68,7 +71,60 @@ occupied by its parent. This means that, when a window is deleted, all the widgets it contains are automatically deleted. - \section1 Creating a Window + \section1 Writing a main Function + + Many of the GUI examples in Qt follow the pattern of having a \c{main.cpp} + file containing code to initialize the application, and a number of other + source and header files containing the application logic and custom GUI + components. + + A typical \c main() function, written in \c{main.cpp}, looks like this: + + \quotefile doc/src/snippets/widgets-tutorial/template.cpp + + We first construct a QApplication object which is configured using any + arguments passed in from the command line. After any widgets have been + created and shown, we call QApplication::exec() to start Qt's event loop. + Control passes to Qt until this function returns, at which point we return + the value we obtain from this function. + + In each part of this tutorial, we provide an example that is written + entirely within a \c main() function. In more sophisticated examples, the + code to set up widgets and layouts is written in other parts of the + example. For example, the GUI for a main window may be set up in the + constructor of a QMainWindow subclass. + + The \l{Qt Examples#Widgets}{Widgets examples} are a good place to look for + more complex and complete examples and applications. + + \section1 Building Examples and Tutorials + + If you obtained a binary package of Qt or compiled it yourself, the + examples described in this tutorial should already be ready to run. + However, if you may wish to modify them and recompile them, you need to + perform the following steps: + + \list 1 + \o At the command line, enter the directory containing the example you + wish to recompile. + \o Type \c qmake and press \key{Return}. If this doesn't work, make sure + that the executable is on your path, or enter its full location. + \o On Linux/Unix and Mac OS X, type \c make and press \key{Return}; + on Windows with Visual Studio, type \c nmake and press \key{Return}. + \endlist + + An executable file should have been created within the current directory. + On Windows, this file may be located within a \c debug or \c release + subdirectory. You can run this file to see the example code at work. +*/ + +/*! + \page widgets-tutorial-toplevel.html + \contentspage {Widgets Tutorial}{Contents} + \previouspage {Widgets Tutorial} + \nextpage {Widgets Tutorial - Child Widgets} + \example tutorials/widgets/toplevel + \title Widgets Tutorial - Creating a Window If a widget is created without a parent, it is treated as a window, or \e{top-level widget}, when it is shown. Since it has no parent object to @@ -82,7 +138,7 @@ <table align="left" width="100%"> <tr class="qt-code"><td> \endraw - \snippet snippets/widgets-tutorial/toplevel/main.cpp create, resize and show + \snippet tutorials/widgets/toplevel/main.cpp main program \raw HTML </td><td align="right"> \endraw @@ -92,15 +148,28 @@ </table> \endraw - We can add a child widget to this window by passing \c window as the - parent to its constructor. In this case, we add a button to the window - and place it in a specific location: + To create a real GUI, we need to place widgets inside the window. To do + this, we pass a QWidget instance to a widget's constructor, as we will + demonstrate in the next part of this tutorial. +*/ + +/*! + \page widgets-tutorial-childwidget.html + \contentspage {Widgets Tutorial}{Contents} + \previouspage {Widgets Tutorial - Creating a Window} + \nextpage {Widgets Tutorial - Using Layouts} + \example tutorials/widgets/childwidget + \title Widgets Tutorial - Child Widgets + + We can add a child widget to the window created in the previous example by + passing \c window as the parent to its constructor. In this case, we add a + button to the window and place it in a specific location: \raw HTML <table align="left" width="100%"> <tr class="qt-code"><td> \endraw - \snippet snippets/widgets-tutorial/childwidget/main.cpp create, position and show + \snippet tutorials/widgets/childwidget/main.cpp main program \raw HTML </td><td align="right"> \endraw @@ -112,9 +181,16 @@ The button is now a child of the window and will be deleted when the window is destroyed. Note that hiding or closing the window does not - automatically destroy it. + automatically destroy it. It will be destroyed when the example exits. +*/ - \section1 Using Layouts +/*! + \page widgets-tutorial-windowlayout.html + \contentspage {Widgets Tutorial}{Contents} + \previouspage {Widgets Tutorial - Child Widgets} + \nextpage {Widgets Tutorial - Nested Layouts} + \example tutorials/widgets/windowlayout + \title Widgets Tutorial - Using Layouts Usually, child widgets are arranged inside a window using layout objects rather than by specifying positions and sizes explicitly. Here, we @@ -125,7 +201,7 @@ <table align="left" width="100%"> <tr class="qt-code"><td> \endraw - \snippet snippets/widgets-tutorial/windowlayout/main.cpp create, lay out widgets and show + \snippet tutorials/widgets/windowlayout/main.cpp main program \raw HTML </td><td align="right"> \endraw @@ -149,17 +225,31 @@ manage the label and line edit and set the layout on the window, both the widgets and the layout itself are ''reparented'' to become children of the window. +*/ + +/*! + \page widgets-tutorial-nestedlayouts.html + \contentspage {Widgets Tutorial}{Contents} + \previouspage {Widgets Tutorial - Using Layouts} + \example tutorials/widgets/nestedlayouts + \title Widgets Tutorial - Nested Layouts Just as widgets can contain other widgets, layouts can be used to provide different levels of grouping for widgets. Here, we want to display a label alongside a line edit at the top of a window, above a table view showing the results of a query. + We achieve this by creating two layouts: \c{queryLayout} is a QHBoxLayout + that contains QLabel and QLineEdit widgets placed side-by-side; + \c{mainLayout} is a QVBoxLayout that contains \c{queryLayout} and a + QTableView arranged vertically. + \raw HTML <table align="left" width="100%"> <tr class="qt-code"><td> \endraw - \snippet snippets/widgets-tutorial/nestedlayouts/main.cpp create, lay out widgets and show + \snippet tutorials/widgets/nestedlayouts/main.cpp first part + \snippet tutorials/widgets/nestedlayouts/main.cpp last part \raw HTML </td><td align="right"> \endraw @@ -169,6 +259,26 @@ </table> \endraw + Note that we call the \c{mainLayout}'s \l{QBoxLayout::}{addLayout()} + function to insert the \c{queryLayout} above the \c{resultView} table. + + We have omitted the code that sets up the model containing the data shown + by the QTableView widget, \c resultView. For completeness, we show this below. + As well as QHBoxLayout and QVBoxLayout, Qt also provides QGridLayout and QFormLayout classes to help with more complex user interfaces. + These can be seen if you run \l{Qt Designer}. + + \section1 Setting up the Model + + In the code above, we did not show where the table's data came from + because we wanted to concentrate on the use of layouts. Here, we see + that the model holds a number of items corresponding to rows, each of + which is set up to contain data for two columns. + + \snippet tutorials/widgets/nestedlayouts/main.cpp set up the model + + The use of models and views is covered in the + \l{Qt Examples#Item Views}{item view examples} and in the + \l{Model/View Programming} overview. */ diff --git a/examples/tutorials/widgets/childwidget/childwidget.pro b/examples/tutorials/widgets/childwidget/childwidget.pro new file mode 100644 index 0000000..37ae98e --- /dev/null +++ b/examples/tutorials/widgets/childwidget/childwidget.pro @@ -0,0 +1,7 @@ +SOURCES = main.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/childwidget +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS childwidget.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/childwidget +INSTALLS += target sources diff --git a/examples/tutorials/widgets/childwidget/main.cpp b/examples/tutorials/widgets/childwidget/main.cpp new file mode 100644 index 0000000..99235bd --- /dev/null +++ b/examples/tutorials/widgets/childwidget/main.cpp @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//! [main program] +#include <QtGui> + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QWidget *window = new QWidget(); + window->resize(320, 240); + window->setWindowTitle(tr("Child widget")); + window->show(); + +//! [create, position and show] + QPushButton *button = new QPushButton(tr("Press me"), window); + button->move(100, 100); + button->show(); +//! [create, position and show] + return app.exec(); +} +//! [main program] diff --git a/examples/tutorials/widgets/nestedlayouts/main.cpp b/examples/tutorials/widgets/nestedlayouts/main.cpp new file mode 100644 index 0000000..29996c6 --- /dev/null +++ b/examples/tutorials/widgets/nestedlayouts/main.cpp @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//! [main program] +//! [first part] +#include <QtGui> + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QWidget *window = new QWidget(); + + QLabel *queryLabel = new QLabel(tr("Query:")); + QLineEdit *queryEdit = new QLineEdit(); + QTableView *resultView = new QTableView(); + + QHBoxLayout *queryLayout = new QHBoxLayout(); + queryLayout->addWidget(queryLabel); + queryLayout->addWidget(queryEdit); + + QVBoxLayout *mainLayout = new QVBoxLayout(); + mainLayout->addLayout(queryLayout); + mainLayout->addWidget(resultView); + window->setLayout(mainLayout); + + // Set up the model and configure the view... +//! [first part] + +//! [set up the model] + QStandardItemModel model; + model.setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("Office")); + + QList<QStringList> rows = QList<QStringList>() + << (QStringList() << "Verne Nilsen" << "123") + << (QStringList() << "Carlos Tang" << "77") + << (QStringList() << "Bronwyn Hawcroft" << "119") + << (QStringList() << "Alessandro Hanssen" << "32") + << (QStringList() << "Andrew John Bakken" << "54") + << (QStringList() << "Vanessa Weatherley" << "85") + << (QStringList() << "Rebecca Dickens" << "17") + << (QStringList() << "David Bradley" << "42") + << (QStringList() << "Knut Walters" << "25") + << (QStringList() << "Andrea Jones" << "34"); + + foreach (QStringList row, rows) { + QList<QStandardItem *> items; + foreach (QString text, row) + items.append(new QStandardItem(text)); + model.appendRow(items); + } + + resultView->setModel(&model); + resultView->verticalHeader()->hide(); + resultView->horizontalHeader()->setStretchLastSection(true); +//! [set up the model] +//! [last part] + window->setWindowTitle(tr("Nested layouts")); + window->show(); + return app.exec(); +} +//! [last part] +//! [main program] diff --git a/examples/tutorials/widgets/nestedlayouts/nestedlayouts.pro b/examples/tutorials/widgets/nestedlayouts/nestedlayouts.pro new file mode 100644 index 0000000..a7f141c --- /dev/null +++ b/examples/tutorials/widgets/nestedlayouts/nestedlayouts.pro @@ -0,0 +1,7 @@ +SOURCES = main.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/nestedlayouts +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS nestedlayouts.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/nestedlayouts +INSTALLS += target sources diff --git a/examples/tutorials/widgets/toplevel/main.cpp b/examples/tutorials/widgets/toplevel/main.cpp new file mode 100644 index 0000000..c966037 --- /dev/null +++ b/examples/tutorials/widgets/toplevel/main.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//! [main program] +#include <QtGui> + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); +//! [create, resize and show] + QWidget *window = new QWidget(); + window->resize(320, 240); + window->show(); +//! [create, resize and show] + window->setWindowTitle(tr("Top-level widget")); + return app.exec(); +} +//! [main program] diff --git a/examples/tutorials/widgets/toplevel/toplevel.pro b/examples/tutorials/widgets/toplevel/toplevel.pro new file mode 100644 index 0000000..58d59c5 --- /dev/null +++ b/examples/tutorials/widgets/toplevel/toplevel.pro @@ -0,0 +1,7 @@ +SOURCES = main.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/toplevel +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS toplevel.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/toplevel +INSTALLS += target sources diff --git a/examples/tutorials/widgets/widgets.pro b/examples/tutorials/widgets/widgets.pro new file mode 100644 index 0000000..7a870e7 --- /dev/null +++ b/examples/tutorials/widgets/widgets.pro @@ -0,0 +1,8 @@ +TEMPLATE = subdirs +SUBDIRS = toplevel childwidget windowlayout nestedlayouts + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS widgets.pro README +sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets +INSTALLS += target sources diff --git a/examples/tutorials/widgets/windowlayout/main.cpp b/examples/tutorials/widgets/windowlayout/main.cpp new file mode 100644 index 0000000..d7c75a3 --- /dev/null +++ b/examples/tutorials/widgets/windowlayout/main.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//! [main program] +#include <QtGui> + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QWidget *window = new QWidget(); +//! [create, lay out widgets and show] + QLabel *label = new QLabel(tr("Name:")); + QLineEdit *lineEdit = new QLineEdit(); + + QHBoxLayout *layout = new QHBoxLayout(); + layout->addWidget(label); + layout->addWidget(lineEdit); + window->setLayout(layout); +//! [create, lay out widgets and show] + window->setWindowTitle(tr("Window layout")); + window->show(); + return app.exec(); +} +//! [main program] diff --git a/examples/tutorials/widgets/windowlayout/windowlayout.pro b/examples/tutorials/widgets/windowlayout/windowlayout.pro new file mode 100644 index 0000000..408f6ef --- /dev/null +++ b/examples/tutorials/widgets/windowlayout/windowlayout.pro @@ -0,0 +1,7 @@ +SOURCES = main.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/windowlayout +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS windowlayout.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/widgets/windowlayout +INSTALLS += target sources diff --git a/src/3rdparty/phonon/phonon/phonon_export.h b/src/3rdparty/phonon/phonon/phonon_export.h index e579f67..5f93ea0 100644 --- a/src/3rdparty/phonon/phonon/phonon_export.h +++ b/src/3rdparty/phonon/phonon/phonon_export.h @@ -32,7 +32,11 @@ # define PHONON_EXPORT Q_DECL_IMPORT # endif # else /* UNIX */ -# define PHONON_EXPORT Q_DECL_EXPORT +# ifdef MAKE_PHONON_LIB /* We are building this library */ +# define PHONON_EXPORT Q_DECL_EXPORT +# else /* We are using this library */ +# define PHONON_EXPORT Q_DECL_IMPORT +# endif # endif #endif diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index 26ce489..9f85d76 100644 --- a/src/3rdparty/webkit/VERSION +++ b/src/3rdparty/webkit/VERSION @@ -8,4 +8,4 @@ The commit imported was from the and has the sha1 checksum - a6ebe3865025e2bb4d767a79435af4daf5a9b4db + 7b8d6ab6f2b73862d11c2a41ab0223e55585d88f diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog index 00bd427..23f3ca6 100644 --- a/src/3rdparty/webkit/WebCore/ChangeLog +++ b/src/3rdparty/webkit/WebCore/ChangeLog @@ -1,3 +1,93 @@ +2009-05-18 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Simon Hausmann. + + Done together with Balazs Kelemen <kelemen.balazs@stud.u-szeged.hu>. + + https://bugs.webkit.org/show_bug.cgi?id=24551 + + [Qt] Reuse FontPlatformData for the same FontDescription. + This effectively prevents growing heap usage for loading every web page. + + * platform/graphics/qt/FontCacheQt.cpp: + (WebCore::qHash): Necessary for FontPlatformDataCache. + (WebCore::FontCache::getCachedFontPlatformData): Reuse the instance if + it exists, otherwise create a new one and insert it in the cache. + +2009-05-18 Balazs Kelemen <kelemen.balazs@stud.u-szeged.hu> + + Reviewed by Ariya Hidayat. + + https://bugs.webkit.org/show_bug.cgi?id=24551 + + [Qt] Fix the leak in FontFallbackList::fontDataAt() function. + When creating a new instance of SimpleFontData, put it in the font list + so that it can deleted later on. + + * platform/graphics/qt/FontFallbackListQt.cpp: + (WebCore::FontFallbackList::invalidate): + (WebCore::FontFallbackList::releaseFontData): + (WebCore::FontFallbackList::fontDataAt): + +2009-05-15 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Holger Freyther. + + [Qt] In the image decoder, remove the raw image data represented as QImage + once the image is converted to QPixmap and inserted in the pixmap cache. + This effectively reduces the heap usage when running on graphics system + other than raster (i.e the case where QImage != QPixmap). + + * platform/graphics/qt/ImageDecoderQt.cpp: + (WebCore::ImageDecoderQt::imageAtIndex): Nullified the image on purpose. + * platform/graphics/qt/ImageDecoderQt.h: Made m_imageList mutable. + +2009-05-15 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Holger Freyther. + + [Qt] Refactor alpha channel detection the image decoder. + Sets the boolean flag as soon as the image is being read. + + * platform/graphics/qt/ImageDecoderQt.cpp: + (WebCore::ImageDecoderQt::ImageDecoderQt): Initialized m_hasAlphaChannel. + (WebCore::ImageDecoderQt::setData): Set the flag when appropriate. + (WebCore::ImageDecoderQt::supportsAlpha): Simplified. + (WebCore::ImageDecoderQt::reset): Resetted the flag. + * platform/graphics/qt/ImageDecoderQt.h: Added m_hasAlphaChannel. + +2009-05-13 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Sam Weinig. + + [Qt] Fix "lighther" composition mode. + QPainter::CompositionMode_Plus is the right match. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::toQtCompositionMode): + +2009-04-29 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Simon Fraser. + + [Qt] Initialize GraphicsContext's and ImageBuffer's QPainter to match + the default values of canvas attributes. + + * platform/graphics/qt/ImageBufferQt.cpp: + (WebCore::ImageBufferData::ImageBufferData): + +2009-04-27 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Tor Arne Vestbø. + + https://bugs.webkit.org/show_bug.cgi?id=18475 + + [Qt] Widget painting should follow the layout direction (LTR, RTL) + of the element style, not the application layout direction. + + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::applyTheme): + 2009-03-13 Adam Bergkvist <adam.bergkvist@ericsson.com> Reviewed by Alexey Proskuryakov. diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp index 8a31861..5d1f147 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp @@ -26,6 +26,9 @@ #include "FontDescription.h" #include "FontPlatformData.h" #include "Font.h" +#include "StringHash.h" + +#include <QHash> namespace WebCore { @@ -33,9 +36,31 @@ void FontCache::getTraitsInFamily(const AtomicString& familyName, Vector<unsigne { } +typedef QHash<FontDescription, FontPlatformData*> FontPlatformDataCache; + +// using Q_GLOBAL_STATIC leads to crash. TODO investigate the way to fix this. +static FontPlatformDataCache* gFontPlatformDataCache; + +uint qHash(const FontDescription& key) +{ + uint value = CaseFoldingHash::hash(key.family().family()); + value ^= key.computedPixelSize(); + value ^= static_cast<int>(key.weight()); + return value; +} + FontPlatformData* FontCache::getCachedFontPlatformData(const FontDescription& description, const AtomicString& family, bool checkingAlternateName) { - return new FontPlatformData(description); + if (!gFontPlatformDataCache) + gFontPlatformDataCache = new FontPlatformDataCache; + + FontPlatformData* fontData = gFontPlatformDataCache->value(description, 0); + if (!fontData) { + fontData = new FontPlatformData(description); + gFontPlatformDataCache->insert(description, fontData); + } + + return fontData; } SimpleFontData* FontCache::getCachedFontData(const FontPlatformData*) diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp index 22ae205..50627b7 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontFallbackListQt.cpp @@ -42,8 +42,6 @@ FontFallbackList::FontFallbackList() void FontFallbackList::invalidate(WTF::PassRefPtr<WebCore::FontSelector> fontSelector) { - releaseFontData(); - m_fontList.clear(); m_familyIndex = 0; m_pitch = UnknownPitch; m_loadingCustomFonts = false; @@ -53,6 +51,9 @@ void FontFallbackList::invalidate(WTF::PassRefPtr<WebCore::FontSelector> fontSel void FontFallbackList::releaseFontData() { + if (m_fontList.size()) + delete m_fontList[0].first; + m_fontList.clear(); } void FontFallbackList::determinePitch(const WebCore::Font* font) const @@ -90,7 +91,12 @@ const FontData* FontFallbackList::fontDataAt(const WebCore::Font* _font, unsigne family = family->next(); } - return new SimpleFontData(FontPlatformData(description), _font->wordSpacing(), _font->letterSpacing()); + if (m_fontList.size()) + return m_fontList[0].first; + + const FontData* result = new SimpleFontData(FontPlatformData(description), _font->wordSpacing(), _font->letterSpacing()); + m_fontList.append(pair<const FontData*, bool>(result, result->isCustomFont())); + return result; } const FontData* FontFallbackList::fontDataForCharacters(const WebCore::Font* font, const UChar*, int) const diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp index 6c90ea3..490b54b 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp @@ -98,7 +98,7 @@ static inline QPainter::CompositionMode toQtCompositionMode(CompositeOperator op case CompositeHighlight: return QPainter::CompositionMode_SourceOver; case CompositePlusLighter: - return QPainter::CompositionMode_SourceOver; + return QPainter::CompositionMode_Plus; } return QPainter::CompositionMode_SourceOver; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp index 29a02d4..333269e 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp @@ -47,7 +47,24 @@ ImageBufferData::ImageBufferData(const IntSize& size) : m_pixmap(size) { m_pixmap.fill(QColor(Qt::transparent)); - m_painter.set(new QPainter(&m_pixmap)); + + QPainter* painter = new QPainter(&m_pixmap); + m_painter.set(painter); + + // Since ImageBuffer is used mainly for Canvas, explicitly initialize + // its painter's pen and brush with the corresponding canvas defaults + // NOTE: keep in sync with CanvasRenderingContext2D::State + QPen pen = painter->pen(); + pen.setColor(Qt::black); + pen.setWidth(1); + pen.setCapStyle(Qt::FlatCap); + pen.setJoinStyle(Qt::MiterJoin); + pen.setMiterLimit(10); + painter->setPen(pen); + QBrush brush = painter->brush(); + brush.setColor(Qt::black); + painter->setBrush(brush); + painter->setCompositionMode(QPainter::CompositionMode_SourceOver); } ImageBuffer::ImageBuffer(const IntSize& size, bool grayScale, bool& success) diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp index 394c7a7..cd32428 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.cpp @@ -197,7 +197,8 @@ ImageDecoderQt* ImageDecoderQt::create(const SharedBuffer& data) } ImageDecoderQt::ImageDecoderQt(const QString &imageFormat) - : m_imageFormat(imageFormat) + : m_hasAlphaChannel(false) + , m_imageFormat(imageFormat) { } @@ -212,6 +213,7 @@ bool ImageDecoderQt::hasFirstImageHeader() const void ImageDecoderQt::reset() { + m_hasAlphaChannel = false; m_failed = false; m_imageList.clear(); m_pixmapCache.clear(); @@ -230,6 +232,9 @@ void ImageDecoderQt::setData(const IncomingData &data, bool allDataReceived) const ReadContext::ReadResult readResult = readContext.read(allDataReceived); + if (hasFirstImageHeader()) + m_hasAlphaChannel = m_imageList[0].m_image.hasAlphaChannel(); + if (debugImageDecoderQt) qDebug() << " read returns " << readResult; @@ -280,7 +285,7 @@ int ImageDecoderQt::repetitionCount() const bool ImageDecoderQt::supportsAlpha() const { - return hasFirstImageHeader() && m_imageList[0].m_image.hasAlphaChannel(); + return m_hasAlphaChannel; } int ImageDecoderQt::duration(size_t index) const @@ -314,6 +319,10 @@ QPixmap* ImageDecoderQt::imageAtIndex(size_t index) const if (!m_pixmapCache.contains(index)) { m_pixmapCache.insert(index, QPixmap::fromImage(m_imageList[index].m_image)); + + // store null image since the converted pixmap is already in pixmap cache + Q_ASSERT(m_imageList[index].m_imageState == ImageComplete); + m_imageList[index].m_image = QImage(); } return &m_pixmapCache[index]; } diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.h b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.h index a2eb6aa..b8c3edd 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageDecoderQt.h @@ -81,8 +81,9 @@ private: int m_duration; }; + bool m_hasAlphaChannel; typedef QList<ImageData> ImageList; - ImageList m_imageList; + mutable ImageList m_imageList; mutable QHash<int, QPixmap> m_pixmapCache; int m_loopCount; QString m_imageFormat; diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp index a9da76b..02d17ed 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp @@ -737,6 +737,10 @@ ControlPart RenderThemeQt::applyTheme(QStyleOption& option, RenderObject* o) con if (isHovered(o)) option.state |= QStyle::State_MouseOver; + option.direction = Qt::LeftToRight; + if (o->style() && o->style()->direction() == WebCore::RTL) + option.direction = Qt::RightToLeft; + ControlPart result = o->style()->appearance(); switch (result) { diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog index c3bd633..2aeb8da 100644 --- a/src/3rdparty/webkit/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog @@ -1,3 +1,14 @@ +2009-03-27 Erik L. Bunce <elbunce@xendom.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=24746 + + Improved selection tests. + + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::textSelection): + 2009-04-24 Simon Hausmann <simon.hausmann@nokia.com> Rubber-stamped by Ariya Hidayat. diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index fe74fac..620aa31 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -872,14 +872,6 @@ void tst_QWebPage::textSelection() "<p>May the source<br/>be with you!</p></body></html>"); page->mainFrame()->setHtml(content); - // this will select the first paragraph - QString script = "var range = document.createRange(); " \ - "var node = document.getElementById(\"one\"); " \ - "range.selectNode(node); " \ - "getSelection().addRange(range);"; - page->mainFrame()->evaluateJavaScript(script); - QCOMPARE(page->selectedText().trimmed(), QString::fromLatin1("The quick brown fox")); - // these actions must exist QVERIFY(page->action(QWebPage::SelectAll) != 0); QVERIFY(page->action(QWebPage::SelectNextChar) != 0); @@ -895,7 +887,8 @@ void tst_QWebPage::textSelection() QVERIFY(page->action(QWebPage::SelectStartOfDocument) != 0); QVERIFY(page->action(QWebPage::SelectEndOfDocument) != 0); - // right now they are disabled because contentEditable is false + // right now they are disabled because contentEditable is false and + // there isn't an existing selection to modify QCOMPARE(page->action(QWebPage::SelectNextChar)->isEnabled(), false); QCOMPARE(page->action(QWebPage::SelectPreviousChar)->isEnabled(), false); QCOMPARE(page->action(QWebPage::SelectNextWord)->isEnabled(), false); @@ -912,11 +905,37 @@ void tst_QWebPage::textSelection() // ..but SelectAll is awalys enabled QCOMPARE(page->action(QWebPage::SelectAll)->isEnabled(), true); + // this will select the first paragraph + QString selectScript = "var range = document.createRange(); " \ + "var node = document.getElementById(\"one\"); " \ + "range.selectNode(node); " \ + "getSelection().addRange(range);"; + page->mainFrame()->evaluateJavaScript(selectScript); + QCOMPARE(page->selectedText().trimmed(), QString::fromLatin1("The quick brown fox")); + + // here the actions are enabled after a selection has been created + QCOMPARE(page->action(QWebPage::SelectNextChar)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectPreviousChar)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectNextWord)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectPreviousWord)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectNextLine)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectPreviousLine)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectStartOfLine)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectEndOfLine)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectStartOfBlock)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectEndOfBlock)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectStartOfDocument)->isEnabled(), true); + QCOMPARE(page->action(QWebPage::SelectEndOfDocument)->isEnabled(), true); + // make it editable before navigating the cursor page->setContentEditable(true); + // cursor will be before the word "The", this makes sure there is a charet + page->triggerAction(QWebPage::MoveToStartOfDocument); + QVERIFY(page->isSelectionCollapsed()); + QCOMPARE(page->selectionStartOffset(), 0); + // here the actions are enabled after contentEditable is true - QCOMPARE(page->action(QWebPage::SelectAll)->isEnabled(), true); QCOMPARE(page->action(QWebPage::SelectNextChar)->isEnabled(), true); QCOMPARE(page->action(QWebPage::SelectPreviousChar)->isEnabled(), true); QCOMPARE(page->action(QWebPage::SelectNextWord)->isEnabled(), true); diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index b14f436..81bfb27 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -201,8 +201,8 @@ void QDirIteratorPrivate::advance() QString subDir = it->currentFilePath(); #ifdef Q_OS_WIN - if (currentFileInfo.isSymLink()) - subDir = currentFileInfo.canonicalFilePath(); + if (nextFileInfo.isSymLink()) + subDir = nextFileInfo.canonicalFilePath(); #endif pushSubDirectory(subDir, it->nameFilters(), it->filters()); } diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp index 779a742..3b704f6 100644 --- a/src/corelib/io/qresource.cpp +++ b/src/corelib/io/qresource.cpp @@ -449,7 +449,7 @@ QString QResource::absoluteFilePath() const } /*! - Returns true if the resource really exists in the resource heirarchy, + Returns true if the resource really exists in the resource hierarchy, false otherwise. */ diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index 484e79a..14fc2d4 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -2295,7 +2295,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile, As mentioned in the \l{Fallback Mechanism} section, QSettings stores settings for an application in up to four locations, depending on whether the settings are user-specific or - system-wide and whether the the settings are application-specific + system-wide and whether the settings are application-specific or organization-wide. For simplicity, we're assuming the organization is called MySoft and the application is called Star Runner. diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 9ce9a2e..d1a5cdd 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -4759,6 +4759,12 @@ void QUrl::setEncodedQueryItems(const QList<QPair<QByteArray, QByteArray> > &que Inserts the pair \a key = \a value into the query string of the URL. + The key/value pair is encoded before it is added to the query. The + pair is converted into separate strings internally. The \a key and + \a value is first encoded into UTF-8 and then delimited by the + character returned by valueDelimiter(). Each key/value pair is + delimited by the character returned by pairDelimiter(). + \sa addEncodedQueryItem() */ void QUrl::addQueryItem(const QString &key, const QString &value) diff --git a/src/corelib/kernel/qsharedmemory.cpp b/src/corelib/kernel/qsharedmemory.cpp index 9853079..87e154f 100644 --- a/src/corelib/kernel/qsharedmemory.cpp +++ b/src/corelib/kernel/qsharedmemory.cpp @@ -129,6 +129,10 @@ QSharedMemoryPrivate::makePlatformSafeKey(const QString &key, detached from the segment, and no references to the segment remain. Do not mix using QtSharedMemory and QSharedMemory. Port everything to QSharedMemory. + + \warning QSharedMemory changes the key in a Qt-specific way. + It is therefore currently not possible to use the shared memory of + non-Qt applications with QSharedMemory. */ /*! diff --git a/src/corelib/kernel/qtimer.cpp b/src/corelib/kernel/qtimer.cpp index 01e81ab..4b3feb0 100644 --- a/src/corelib/kernel/qtimer.cpp +++ b/src/corelib/kernel/qtimer.cpp @@ -77,7 +77,7 @@ QT_BEGIN_NAMESPACE In multithreaded applications, you can use QTimer in any thread that has an event loop. To start an event loop from a non-GUI - thread, use QThread::exec(). Qt uses the the timer's + thread, use QThread::exec(). Qt uses the timer's \l{QObject::thread()}{thread affinity} to determine which thread will emit the \l{QTimer::}{timeout()} signal. Because of this, you must start and stop the timer in its thread; it is not possible to diff --git a/src/corelib/tools/qbytearraymatcher.h b/src/corelib/tools/qbytearraymatcher.h index 633e92c..970cbcc 100644 --- a/src/corelib/tools/qbytearraymatcher.h +++ b/src/corelib/tools/qbytearraymatcher.h @@ -70,7 +70,7 @@ public: inline QByteArray pattern() const { if (q_pattern.isNull()) - return QByteArray((const char*)p.p, p.l); + return QByteArray(reinterpret_cast<const char*>(p.p), p.l); return q_pattern; } diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index a2154a9..66e3921 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -1589,7 +1589,7 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l) defaults to the default locale (see setDefault()). \endlist - The "C" locale is identical to \l{English}/\l{UnitedStates}. + The "C" locale is identical in behavior to \l{English}/\l{UnitedStates}. Use language() and country() to determine the actual language and country values used. @@ -1632,7 +1632,7 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l) This enumerated type is used to specify a language. - \value C The "C" locale is English/UnitedStates. + \value C The "C" locale is identical in behavior to English/UnitedStates. \value Abkhazian \value Afan \value Afar diff --git a/src/corelib/tools/qrect.cpp b/src/corelib/tools/qrect.cpp index 3930a0d..5602170 100644 --- a/src/corelib/tools/qrect.cpp +++ b/src/corelib/tools/qrect.cpp @@ -901,7 +901,7 @@ void QRect::moveCenter(const QPoint &p) /*! \fn bool QRect::contains(const QPoint &point, bool proper) const - Returns true if the the given \a point is inside or on the edge of + Returns true if the given \a point is inside or on the edge of the rectangle, otherwise returns false. If \a proper is true, this function only returns true if the given \a point is \e inside the rectangle (i.e., not on the edge). diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h index f1b35ee..ad2d9f2 100644 --- a/src/corelib/tools/qsharedpointer_impl.h +++ b/src/corelib/tools/qsharedpointer_impl.h @@ -238,6 +238,7 @@ namespace QtSharedPointer { template <class X> friend class ExternalRefCount; template <class X> friend class QWeakPointer; template <class X, class Y> friend QSharedPointer<X> qSharedPointerCastHelper(const QSharedPointer<Y> &src, X *); + template <class X, class Y> friend QSharedPointer<X> qSharedPointerDynamicCastHelper(const QSharedPointer<Y> &src, X *); template <class X, class Y> friend QSharedPointer<X> qSharedPointerConstCastHelper(const QSharedPointer<Y> &src, X *); template <class X, class Y> friend QSharedPointer<X> QtSharedPointer::qStrongRefFromWeakHelper(const QWeakPointer<Y> &src, X *); #endif @@ -509,6 +510,14 @@ namespace QtSharedPointer { return result; } template <class X, class T> + Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerDynamicCastHelper(const QSharedPointer<T> &src, X *) + { + QSharedPointer<X> result; + register T *ptr = src.data(); + result.internalSet(src.d, dynamic_cast<X *>(ptr)); + return result; + } + template <class X, class T> Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerConstCastHelper(const QSharedPointer<T> &src, X *) { QSharedPointer<X> result; @@ -544,9 +553,7 @@ template <class X, class T> Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerDynamicCast(const QSharedPointer<T> &src) { X *x = 0; - if (QtSharedPointer::qVerifyDynamicCast(src.data(), x)) - return QtSharedPointer::qSharedPointerCastHelper(src, x); - return QSharedPointer<X>(); + return QtSharedPointer::qSharedPointerDynamicCastHelper(src, x); } template <class X, class T> Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerDynamicCast(const QWeakPointer<T> &src) @@ -558,17 +565,13 @@ template <class X, class T> Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerConstCast(const QSharedPointer<T> &src) { X *x = 0; - if (QtSharedPointer::qVerifyConstCast(src.data(), x)) - return QtSharedPointer::qSharedPointerConstCastHelper(src, x); - return QSharedPointer<X>(); + return QtSharedPointer::qSharedPointerConstCastHelper(src, x); } template <class X, class T> Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerConstCast(const QWeakPointer<T> &src) { X *x = 0; - if (QtSharedPointer::qVerifyConstCast(src.data(), x)) - return QtSharedPointer::qSharedPointerCastHelper(src, x); - return QSharedPointer<X>(); + return QtSharedPointer::qSharedPointerConstCastHelper(src, x); } template <class X, class T> diff --git a/src/corelib/tools/qsize.cpp b/src/corelib/tools/qsize.cpp index 76a5484..bbf6c2a 100644 --- a/src/corelib/tools/qsize.cpp +++ b/src/corelib/tools/qsize.cpp @@ -781,7 +781,7 @@ void QSizeF::scale(const QSizeF &s, Qt::AspectRatioMode mode) \fn QDataStream &operator<<(QDataStream &stream, const QSizeF &size) \relates QSizeF - Writes the the given \a size to the given \a stream and returns a + Writes the given \a size to the given \a stream and returns a reference to the stream. \sa {Format of the QDataStream Operators} diff --git a/src/corelib/tools/qstringlist.cpp b/src/corelib/tools/qstringlist.cpp index 386321f1..e22f122 100644 --- a/src/corelib/tools/qstringlist.cpp +++ b/src/corelib/tools/qstringlist.cpp @@ -397,7 +397,7 @@ void QtPrivate::QStringList_replaceInStrings(QStringList *that, const QRegExp &r \fn QString QStringList::join(const QString &separator) const Joins all the string list's strings into a single string with each - element separated by the the given \a separator (which can be an + element separated by the given \a separator (which can be an empty string). \sa QString::split() diff --git a/src/gui/embedded/qscreen_qws.cpp b/src/gui/embedded/qscreen_qws.cpp index ff48403..f3f54d9 100644 --- a/src/gui/embedded/qscreen_qws.cpp +++ b/src/gui/embedded/qscreen_qws.cpp @@ -1396,7 +1396,7 @@ QImage::Format QScreenPrivate::preferredImageFormat() const altered. Note that the default implementations of these functions do nothing. - Reimplement the the mapFromDevice() and mapToDevice() functions to + Reimplement the mapFromDevice() and mapToDevice() functions to map objects from the framebuffer coordinate system to the coordinate space used by the application, and vice versa. Be aware that the default implementations simply return the given objects diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp index e058292..b58eb53 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem.cpp +++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp @@ -317,7 +317,7 @@ void QGraphicsLayoutItemPrivate::setSizeComponent( passing a QGraphicsLayoutItem pointer to QGraphicsLayoutItem's protected constructor, or by calling setParentLayoutItem(). The parentLayoutItem() function returns a pointer to the item's layoutItem - parent. If the item's parent is 0 or if the the parent does not inherit + parent. If the item's parent is 0 or if the parent does not inherit from QGraphicsItem, the parentLayoutItem() function then returns 0. isLayout() returns true if the QGraphicsLayoutItem subclass is itself a layout, or false otherwise. diff --git a/src/gui/graphicsview/qgraphicssceneevent.cpp b/src/gui/graphicsview/qgraphicssceneevent.cpp index 2c5c946..059d89d 100644 --- a/src/gui/graphicsview/qgraphicssceneevent.cpp +++ b/src/gui/graphicsview/qgraphicssceneevent.cpp @@ -880,7 +880,7 @@ QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent() /*! Returns the position of the mouse cursor in item coordinates at the moment - the the context menu was requested. + the context menu was requested. \sa scenePos(), screenPos() */ @@ -1028,7 +1028,7 @@ QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent() /*! Returns the position of the mouse cursor in item coordinates at the moment - the the hover event was sent. + the hover event was sent. \sa scenePos(), screenPos() */ @@ -1053,7 +1053,7 @@ void QGraphicsSceneHoverEvent::setPos(const QPointF &pos) /*! Returns the position of the mouse cursor in scene coordinates at the - moment the the hover event was sent. + moment the hover event was sent. \sa pos(), screenPos() */ @@ -1078,7 +1078,7 @@ void QGraphicsSceneHoverEvent::setScenePos(const QPointF &pos) /*! Returns the position of the mouse cursor in screen coordinates at the - moment the the hover event was sent. + moment the hover event was sent. \sa pos(), scenePos() */ @@ -1174,7 +1174,7 @@ void QGraphicsSceneHoverEvent::setLastScreenPos(const QPoint &pos) /*! \since 4.4 - Returns the keyboard modifiers at the moment the the hover event was sent. + Returns the keyboard modifiers at the moment the hover event was sent. */ Qt::KeyboardModifiers QGraphicsSceneHoverEvent::modifiers() const { @@ -1220,7 +1220,7 @@ QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent() /*! Returns the position of the mouse cursor in scene coordinates at the - moment the the help event was sent. + moment the help event was sent. \sa screenPos() */ @@ -1245,7 +1245,7 @@ void QGraphicsSceneHelpEvent::setScenePos(const QPointF &pos) /*! Returns the position of the mouse cursor in screen coordinates at the - moment the the help event was sent. + moment the help event was sent. \sa scenePos() */ diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index b2b8c13..471062f 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -924,7 +924,7 @@ QList<QSize> QIcon::availableSizes(Mode mode, State state) const \relates QIcon \since 4.2 - Writes the given \a icon to the the given \a stream as a PNG + Writes the given \a icon to the given \a stream as a PNG image. If the icon contains more than one image, all images will be written to the stream. Note that writing the stream to a file will not produce a valid image file. diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 14e8b8f..25c68bc 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -5000,7 +5000,7 @@ QPoint QImage::offset() const /*! \fn void QImage::setOffset(const QPoint& offset) - Sets the the number of pixels by which the image is intended to be + Sets the number of pixels by which the image is intended to be offset by when positioning relative to other images, to \a offset. \sa offset(), {QImage#Image Information}{Image Information} diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index 5568c0d..3ca685c 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -1282,7 +1282,7 @@ bool QPixmap::convertFromImage(const QImage &image, ColorMode mode) /*! \relates QPixmap - Writes the given \a pixmap to the the given \a stream as a PNG + Writes the given \a pixmap to the given \a stream as a PNG image. Note that writing the stream to a file will not produce a valid image file. diff --git a/src/gui/image/qpixmapcache_p.h b/src/gui/image/qpixmapcache_p.h index 66b30d2..5aa6eaf 100644 --- a/src/gui/image/qpixmapcache_p.h +++ b/src/gui/image/qpixmapcache_p.h @@ -58,6 +58,8 @@ #include <private/qpixmap_raster_p.h> #include "qcache.h" +QT_BEGIN_NAMESPACE + class QPixmapCache::KeyData { public: @@ -89,4 +91,6 @@ public: } }; +QT_END_NAMESPACE + #endif // QPIXMAPCACHE_P_H diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 90c38ca..d90412f 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -1338,7 +1338,7 @@ QSize QAbstractItemView::iconSize() const /*! \property QAbstractItemView::textElideMode - \brief the the position of the "..." in elided text. + \brief the position of the "..." in elided text. The default value for all item views is Qt::ElideRight. */ diff --git a/src/gui/itemviews/qlistwidget.cpp b/src/gui/itemviews/qlistwidget.cpp index 7a366d1..bf3b43c 100644 --- a/src/gui/itemviews/qlistwidget.cpp +++ b/src/gui/itemviews/qlistwidget.cpp @@ -1158,7 +1158,7 @@ void QListWidgetPrivate::_q_dataChanged(const QModelIndex &topLeft, /*! \fn void QListWidget::addItem(QListWidgetItem *item) - Inserts the \a item at the the end of the list widget. + Inserts the \a item at the end of the list widget. \warning A QListWidgetItem can only be added to a QListWidget once. Adding the same QListWidgetItem multiple diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp index 6daf433..96e9580 100644 --- a/src/gui/kernel/qclipboard.cpp +++ b/src/gui/kernel/qclipboard.cpp @@ -476,7 +476,7 @@ void QClipboard::setPixmap(const QPixmap &pixmap, Mode mode) The \a mode argument is used to control which part of the system clipboard is used. If \a mode is QClipboard::Clipboard, this - function clears the the global clipboard contents. If \a mode is + function clears the global clipboard contents. If \a mode is QClipboard::Selection, this function clears the global mouse selection contents. If \a mode is QClipboard::FindBuffer, this function clears the search string buffer. diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 7920139..4b2fed7 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -2289,13 +2289,26 @@ void QWidgetPrivate::setStyle_helper(QStyle *newStyle, bool propagate, bool ) { Q_Q(QWidget); - createExtra(); - QStyle *oldStyle = q->style(); #ifndef QT_NO_STYLE_STYLESHEET - QStyle *origStyle = extra->style; + QStyle *origStyle = 0; +#endif + +#ifdef Q_WS_MAC + // the metalhack boolean allows Qt/Mac to do a proper re-polish depending + // on how the Qt::WA_MacBrushedMetal attribute is set. It is only ever + // set when changing that attribute and passes the widget's CURRENT style. + // therefore no need to do a reassignment. + if (!metalHack) #endif - extra->style = newStyle; + { + createExtra(); + +#ifndef QT_NO_STYLE_STYLESHEET + origStyle = extra->style; +#endif + extra->style = newStyle; + } // repolish if (q->windowType() != Qt::Desktop) { @@ -6226,7 +6239,7 @@ QByteArray QWidget::saveGeometry() const returns false. If the restored geometry is off-screen, it will be modified to be - inside the the available screen geometry. + inside the available screen geometry. To restore geometry saved using QSettings, you can use code like this: diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp index 9b10f3c..3645d9a 100644 --- a/src/gui/painting/qpainterpath.cpp +++ b/src/gui/painting/qpainterpath.cpp @@ -1006,7 +1006,7 @@ void QPainterPath::addPolygon(const QPolygonF &polygon) /*! \fn void QPainterPath::addEllipse(const QRectF &boundingRectangle) - Creates an ellipse within the the specified \a boundingRectangle + Creates an ellipse within the specified \a boundingRectangle and adds it to the painter path as a closed subpath. The ellipse is composed of a clockwise curve, starting and diff --git a/src/gui/painting/qtransform.h b/src/gui/painting/qtransform.h index aac7c31..059752b 100644 --- a/src/gui/painting/qtransform.h +++ b/src/gui/painting/qtransform.h @@ -275,6 +275,13 @@ inline qreal QTransform::dy() const return affine._dy; } +#if defined(Q_CC_GNU) +# define Q_CC_GNU_VERSION (((__GNUC__)<<16)|((__GNUC_MINOR__)<<8)|(__GNUC_PATCHLEVEL__)) +# if Q_CC_GNU_VERSION >= 0x040201 +# pragma GCC diagnostic ignored "-Wfloat-equal" +# endif +#endif + inline QTransform &QTransform::operator*=(qreal num) { if (num == 1.) @@ -331,6 +338,13 @@ inline QTransform &QTransform::operator-=(qreal num) return *this; } +#if defined(Q_CC_GNU_VERSION) +# if Q_CC_GNU_VERSION >= 0x040201 +# pragma GCC diagnostic warning "-Wfloat-equal" +# endif +# undef Q_GCC_GNU_VERSION +#endif + /****** stream functions *******************/ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTransform &); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTransform &); diff --git a/src/gui/text/qfontdatabase_x11.cpp b/src/gui/text/qfontdatabase_x11.cpp index 15e626e..70e1599 100644 --- a/src/gui/text/qfontdatabase_x11.cpp +++ b/src/gui/text/qfontdatabase_x11.cpp @@ -494,7 +494,7 @@ static inline bool isFixedPitch(char **tokens) Fills in a font definition (QFontDef) from an XLFD (X Logical Font Description). - Returns true if the the given xlfd is valid. + Returns true if the given xlfd is valid. */ bool qt_fillFontDef(const QByteArray &xlfd, QFontDef *fd, int dpi, QtFontDesc *desc) { diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 21bfc4d..38ac4ca 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -1449,7 +1449,7 @@ void QTextCharFormat::setUnderlineStyle(UnderlineStyle style) /*! \since 4.5 \fn bool QTextCharFormat::fontKerning() const - Returns true if the the font kerning is enabled. + Returns true if the font kerning is enabled. \sa setFontKerning() \sa font() diff --git a/src/gui/util/qundostack.cpp b/src/gui/util/qundostack.cpp index 11f65e3..a6b9c23 100644 --- a/src/gui/util/qundostack.cpp +++ b/src/gui/util/qundostack.cpp @@ -715,7 +715,7 @@ int QUndoStack::index() const } /*! - Repeatedly calls undo() or redo() until the the current command index reaches + Repeatedly calls undo() or redo() until the current command index reaches \a idx. This function can be used to roll the state of the document forwards of backwards. indexChanged() is emitted only once. diff --git a/src/gui/widgets/qlcdnumber.cpp b/src/gui/widgets/qlcdnumber.cpp index 9d98dbc..6686d7e 100644 --- a/src/gui/widgets/qlcdnumber.cpp +++ b/src/gui/widgets/qlcdnumber.cpp @@ -1275,7 +1275,7 @@ bool QLCDNumber::event(QEvent *e) /*! \fn int QLCDNumber::margin() const - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. Use QWidget::getContentsMargins() instead. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp index d16ed10..128f243 100644 --- a/src/gui/widgets/qlineedit.cpp +++ b/src/gui/widgets/qlineedit.cpp @@ -3675,7 +3675,7 @@ void QLineEditPrivate::redo() { /*! \fn int QLineEdit::margin() const - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. Use QWidget::getContentsMargins() instead. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/gui/widgets/qmdiarea.cpp b/src/gui/widgets/qmdiarea.cpp index 598d3b5..6acd977 100644 --- a/src/gui/widgets/qmdiarea.cpp +++ b/src/gui/widgets/qmdiarea.cpp @@ -81,7 +81,7 @@ subwindows. This information could be used in a popup menu containing a list of windows, for example. - The subwindows are sorted by the the current + The subwindows are sorted by the current \l{QMdiArea::}{WindowOrder}. This is used for the subWindowList() and for activateNextSubWindow() and acivatePreviousSubWindow(). Also, it is used when cascading or tiling the windows with diff --git a/src/gui/widgets/qmenu_p.h b/src/gui/widgets/qmenu_p.h index dddd83e..edfeee7 100644 --- a/src/gui/widgets/qmenu_p.h +++ b/src/gui/widgets/qmenu_p.h @@ -208,7 +208,7 @@ public: QString searchBuffer; QBasicTimer searchBufferTimer; - //passing of mouse events up the parent heirarchy + //passing of mouse events up the parent hierarchy QPointer<QMenu> activeMenu; bool mouseEventTaken(QMouseEvent *); diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp index d2e6bfb..cffc3d5 100644 --- a/src/gui/widgets/qmenubar.cpp +++ b/src/gui/widgets/qmenubar.cpp @@ -2420,7 +2420,7 @@ int QMenuBar::findIdForAction(QAction *act) const /*! \fn int QMenuBar::margin() const - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. Use QWidget::getContentsMargins() instead. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/gui/widgets/qscrollarea.cpp b/src/gui/widgets/qscrollarea.cpp index 6aca7d3..8b01453 100644 --- a/src/gui/widgets/qscrollarea.cpp +++ b/src/gui/widgets/qscrollarea.cpp @@ -127,7 +127,7 @@ QT_BEGIN_NAMESPACE setting the layout's \l{QLayout::sizeConstraint}{size constraint} property to one which provides constraints on the minimum and/or maximum size of the layout (e.g., QLayout::SetMinAndMaxSize) will - cause the size of the the scroll area to be updated whenever the + cause the size of the scroll area to be updated whenever the contents of the layout changes. For a complete example using the QScrollArea class, see the \l diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp index 06774bc..400d78a 100644 --- a/src/gui/widgets/qsplitter.cpp +++ b/src/gui/widgets/qsplitter.cpp @@ -1525,7 +1525,7 @@ void QSplitter::setOpaqueResize(bool on) /*! \fn int QSplitter::margin() const - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. Use QWidget::getContentsMargins() instead. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/gui/widgets/qtabwidget.cpp b/src/gui/widgets/qtabwidget.cpp index c16e000..43b2f54 100644 --- a/src/gui/widgets/qtabwidget.cpp +++ b/src/gui/widgets/qtabwidget.cpp @@ -504,7 +504,7 @@ QIcon QTabWidget::tabIcon(int index) const } /*! - Returns true if the the page at position \a index is enabled; otherwise returns false. + Returns true if the page at position \a index is enabled; otherwise returns false. \sa setTabEnabled(), QWidget::isEnabled() */ diff --git a/src/gui/widgets/qtoolbox.cpp b/src/gui/widgets/qtoolbox.cpp index 81935a5..271130a 100644 --- a/src/gui/widgets/qtoolbox.cpp +++ b/src/gui/widgets/qtoolbox.cpp @@ -802,7 +802,7 @@ void QToolBox::itemRemoved(int index) /*! \fn int QToolBox::margin() const - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. Use QWidget::getContentsMargins() instead. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/network/access/qhttp.cpp b/src/network/access/qhttp.cpp index 2002641..c761a02 100644 --- a/src/network/access/qhttp.cpp +++ b/src/network/access/qhttp.cpp @@ -950,7 +950,7 @@ void QHttpHeader::setContentLength(int len) } /*! - Returns true if the header has an entry for the the special HTTP + Returns true if the header has an entry for the special HTTP header field \c content-type; otherwise returns false. \sa contentType() setContentType() diff --git a/src/network/access/qnetworkdiskcache.cpp b/src/network/access/qnetworkdiskcache.cpp index d42370d..0ca6b13 100644 --- a/src/network/access/qnetworkdiskcache.cpp +++ b/src/network/access/qnetworkdiskcache.cpp @@ -496,21 +496,21 @@ qint64 QNetworkDiskCache::expire() QDir::Filters filters = QDir::AllDirs | QDir:: Files | QDir::NoDotAndDotDot; QDirIterator it(cacheDirectory(), filters, QDirIterator::Subdirectories); - QMap<QDateTime, QString> cacheItems; + QMultiMap<QDateTime, QString> cacheItems; qint64 totalSize = 0; while (it.hasNext()) { QString path = it.next(); QFileInfo info = it.fileInfo(); QString fileName = info.fileName(); if (fileName.endsWith(CACHE_POSTFIX) && fileName.startsWith(CACHE_PREFIX)) { - cacheItems[info.created()] = path; + cacheItems.insert(info.created(), path); totalSize += info.size(); } } int removedFiles = 0; qint64 goal = (maximumCacheSize() * 9) / 10; - QMap<QDateTime, QString>::const_iterator i = cacheItems.constBegin(); + QMultiMap<QDateTime, QString>::const_iterator i = cacheItems.constBegin(); while (i != cacheItems.constEnd()) { if (totalSize < goal) break; diff --git a/src/network/kernel/qnetworkinterface.cpp b/src/network/kernel/qnetworkinterface.cpp index 670745b..960999e 100644 --- a/src/network/kernel/qnetworkinterface.cpp +++ b/src/network/kernel/qnetworkinterface.cpp @@ -397,7 +397,7 @@ QNetworkInterface::~QNetworkInterface() } /*! - Creates a copy of the the QNetworkInterface object contained in \a + Creates a copy of the QNetworkInterface object contained in \a other. */ QNetworkInterface::QNetworkInterface(const QNetworkInterface &other) diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index f9750f2..336a7e7 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1127,7 +1127,7 @@ bool QAbstractSocketPrivate::readFromSocket() /*! \internal - Sets up the the internal state after the connection has succeeded. + Sets up the internal state after the connection has succeeded. */ void QAbstractSocketPrivate::fetchConnectionParameters() { diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 2d58084..a534cc5 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -2642,7 +2642,7 @@ const QGLContext* QGLContext::currentContext() \i paintGL() - Renders the OpenGL scene. Gets called whenever the widget needs to be updated. \i resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets - called whenever the the widget has been resized (and also when it + called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). \i initializeGL() - Sets up the OpenGL rendering context, defines display diff --git a/src/plugins/imageformats/tiff/qtiffhandler.cpp b/src/plugins/imageformats/tiff/qtiffhandler.cpp index 518e6d1..77dfeb3 100644 --- a/src/plugins/imageformats/tiff/qtiffhandler.cpp +++ b/src/plugins/imageformats/tiff/qtiffhandler.cpp @@ -168,7 +168,7 @@ bool QTiffHandler::read(QImage *image) break; default: // do nothing as defaults have already - // been set within the QImage class + // been set within the QImage class break; } for (uint32 y=0; y<height; ++y) @@ -218,6 +218,24 @@ bool QTiffHandler::write(const QImage &image) return false; } + // set the resolution + bool resolutionSet = false; + const int dotPerMeterX = image.dotsPerMeterX(); + const int dotPerMeterY = image.dotsPerMeterY(); + if ((dotPerMeterX % 100) == 0 + && (dotPerMeterY % 100) == 0) { + resolutionSet = TIFFSetField(tiff, TIFFTAG_RESOLUTIONUNIT, RESUNIT_CENTIMETER) + && TIFFSetField(tiff, TIFFTAG_XRESOLUTION, dotPerMeterX/100.0) + && TIFFSetField(tiff, TIFFTAG_YRESOLUTION, dotPerMeterY/100.0); + } else { + resolutionSet = TIFFSetField(tiff, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH) + && TIFFSetField(tiff, TIFFTAG_XRESOLUTION, static_cast<float>(image.logicalDpiX())) + && TIFFSetField(tiff, TIFFTAG_YRESOLUTION, static_cast<float>(image.logicalDpiY())); + } + if (!resolutionSet) { + TIFFClose(tiff); + return false; + } // try to do the ARGB32 conversion in chunks no greater than 16 MB int chunks = (width * height * 4 / (1024 * 1024 * 16)) + 1; int chunkHeight = qMax(height / chunks, 1); diff --git a/src/qt3support/network/q3http.cpp b/src/qt3support/network/q3http.cpp index f1590a6..591b381 100644 --- a/src/qt3support/network/q3http.cpp +++ b/src/qt3support/network/q3http.cpp @@ -626,7 +626,7 @@ void Q3HttpHeader::setContentLength( int len ) } /*! - Returns true if the header has an entry for the the special HTTP + Returns true if the header has an entry for the special HTTP header field \c content-type; otherwise returns false. \sa contentType() setContentType() diff --git a/src/qt3support/network/q3urloperator.cpp b/src/qt3support/network/q3urloperator.cpp index 3f334a8..b415e12 100644 --- a/src/qt3support/network/q3urloperator.cpp +++ b/src/qt3support/network/q3urloperator.cpp @@ -543,7 +543,7 @@ const Q3NetworkOperation *Q3UrlOperator::rename( const QString &oldname, const Q in mind that the get() and put() operations emit this signal through the Q3UrlOperator. The number of transferred bytes and the total bytes that you receive as arguments in this signal do not - relate to the the whole copy operation; they relate first to the + relate to the whole copy operation; they relate first to the get() and then to the put() operation. Always check what type of operation the signal comes from; this is given in the signal's last argument. diff --git a/src/qt3support/widgets/q3action.cpp b/src/qt3support/widgets/q3action.cpp index 4e1a1bf..311212a 100644 --- a/src/qt3support/widgets/q3action.cpp +++ b/src/qt3support/widgets/q3action.cpp @@ -497,7 +497,7 @@ Q3Action::Q3Action(const QIcon& icon, const QString& menuText, QKeySequence acce } /*! - This constructor results in an icon-less action with the the menu + This constructor results in an icon-less action with the menu text \a menuText and keyboard accelerator \a accel. It is a child of \a parent and called \a name. diff --git a/src/qt3support/widgets/q3groupbox.cpp b/src/qt3support/widgets/q3groupbox.cpp index 1fa7e7c..e0b609a 100644 --- a/src/qt3support/widgets/q3groupbox.cpp +++ b/src/qt3support/widgets/q3groupbox.cpp @@ -382,7 +382,7 @@ int Q3GroupBox::insideSpacing() const } /*! - Sets the the width of the inside margin to \a m pixels. + Sets the width of the inside margin to \a m pixels. \sa insideMargin() */ @@ -954,7 +954,7 @@ int Q3GroupBox::frameWidth() const \fn int Q3GroupBox::margin() const \since 4.2 - Returns the width of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. This function uses QWidget::getContentsMargins() to get the margin. diff --git a/src/qt3support/widgets/q3popupmenu.cpp b/src/qt3support/widgets/q3popupmenu.cpp index 7f890b5..0b3a524 100644 --- a/src/qt3support/widgets/q3popupmenu.cpp +++ b/src/qt3support/widgets/q3popupmenu.cpp @@ -134,7 +134,7 @@ QT_BEGIN_NAMESPACE \fn int Q3PopupMenu::margin() const \since 4.2 - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. This function uses QWidget::getContentsMargins() to get the margin. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/qt3support/widgets/q3progressbar.cpp b/src/qt3support/widgets/q3progressbar.cpp index caae460..81f0dbf 100644 --- a/src/qt3support/widgets/q3progressbar.cpp +++ b/src/qt3support/widgets/q3progressbar.cpp @@ -455,7 +455,7 @@ void Q3ProgressBar::paintEvent(QPaintEvent *) \fn int Q3ProgressBar::margin() const \since 4.2 - Returns the with of the the margin around the contents of the widget. + Returns the width of the margin around the contents of the widget. This function uses QWidget::getContentsMargins() to get the margin. \sa setMargin(), QWidget::getContentsMargins() diff --git a/src/qt3support/widgets/q3scrollview.cpp b/src/qt3support/widgets/q3scrollview.cpp index 91a9203..5a91027 100644 --- a/src/qt3support/widgets/q3scrollview.cpp +++ b/src/qt3support/widgets/q3scrollview.cpp @@ -2038,7 +2038,7 @@ void Q3ScrollView::center(int x, int y) \list \i Margin 0.0 allows (x, y) to be on the edge of the visible area. \i Margin 0.5 ensures that (x, y) is in middle 50% of the visible area. - \i Margin 1.0 ensures that (x, y) is in the center of the the visible area. + \i Margin 1.0 ensures that (x, y) is in the center of the visible area. \endlist */ void Q3ScrollView::center(int x, int y, float xmargin, float ymargin) diff --git a/src/script/qscriptengine_p.cpp b/src/script/qscriptengine_p.cpp index a2e58de..84a420d 100644 --- a/src/script/qscriptengine_p.cpp +++ b/src/script/qscriptengine_p.cpp @@ -1662,6 +1662,11 @@ bool QScriptEnginePrivate::convert(const QScriptValueImpl &value, return false; } +QScriptEngine::DemarshalFunction QScriptEnginePrivate::demarshalFunction(int type) const +{ + return m_customTypes.value(type).demarshal; +} + QScriptValuePrivate *QScriptEnginePrivate::registerValue(const QScriptValueImpl &value) { if (value.isString()) { diff --git a/src/script/qscriptenginefwd_p.h b/src/script/qscriptenginefwd_p.h index 2ea66c5..855317c 100644 --- a/src/script/qscriptenginefwd_p.h +++ b/src/script/qscriptenginefwd_p.h @@ -350,6 +350,7 @@ public: QScriptValueImpl create(int type, const void *ptr); static bool convert(const QScriptValueImpl &value, int type, void *ptr, QScriptEnginePrivate *eng); + QScriptEngine::DemarshalFunction demarshalFunction(int type) const; QScriptValueImpl arrayFromStringList(const QStringList &lst); static QStringList stringListFromArray(const QScriptValueImpl &arr); diff --git a/src/script/qscriptextqobject.cpp b/src/script/qscriptextqobject.cpp index d18c3da..4522807 100644 --- a/src/script/qscriptextqobject.cpp +++ b/src/script/qscriptextqobject.cpp @@ -425,7 +425,7 @@ static void callQtMethod(QScriptContextPrivate *context, QMetaMethod::MethodType matchDistance += 10; } } - } else if (actual.isNumber()) { + } else if (actual.isNumber() || actual.isString()) { // see if it's an enum value QMetaEnum m; if (argType.isMetaEnum()) { @@ -436,11 +436,21 @@ static void callQtMethod(QScriptContextPrivate *context, QMetaMethod::MethodType m = meta->enumerator(mi); } if (m.isValid()) { - int ival = actual.toInt32(); - if (m.valueToKey(ival) != 0) { - qVariantSetValue(v, ival); - converted = true; - matchDistance += 10; + if (actual.isNumber()) { + int ival = actual.toInt32(); + if (m.valueToKey(ival) != 0) { + qVariantSetValue(v, ival); + converted = true; + matchDistance += 10; + } + } else { + QString sval = actual.toString(); + int ival = m.keyToValue(sval.toLatin1()); + if (ival != -1) { + qVariantSetValue(v, ival); + converted = true; + matchDistance += 10; + } } } } @@ -1809,7 +1819,16 @@ void QScript::QtPropertyFunction::execute(QScriptContextPrivate *context) } } else { // set - QVariant v = variantFromValue(eng_p, prop.userType(), context->argument(0)); + QScriptValueImpl arg = context->argument(0); + QVariant v; + if (prop.isEnumType() && arg.isString() + && !eng_p->demarshalFunction(prop.userType())) { + // give QMetaProperty::write() a chance to convert from + // string to enum value + v = arg.toString(); + } else { + v = variantFromValue(eng_p, prop.userType(), arg); + } QScriptable *scriptable = scriptableFromQObject(qobject); QScriptEngine *oldEngine = 0; diff --git a/src/sql/kernel/qsqlquery.cpp b/src/sql/kernel/qsqlquery.cpp index e6729a5..2a07e28 100644 --- a/src/sql/kernel/qsqlquery.cpp +++ b/src/sql/kernel/qsqlquery.cpp @@ -1195,7 +1195,7 @@ void QSqlQuery::finish() The query will be repositioned on an \e invalid record in the new result set and must be navigated to a valid record before data values can be retrieved. If a new result set isn't available the - function returns false and the the query is set to inactive. In any + function returns false and the query is set to inactive. In any case the old result set will be discarded. When one of the statements is a non-select statement a count of diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp index c78d4ba..ade0339 100644 --- a/src/xml/sax/qxml.cpp +++ b/src/xml/sax/qxml.cpp @@ -2107,7 +2107,7 @@ events are reported. You can set the lexical handler with QXmlReader::setLexicalHandler(). - This interface's design is based on the the SAX2 extension + This interface's design is based on the SAX2 extension LexicalHandler. The interface provides the startDTD(), endDTD(), startEntity(), diff --git a/tests/auto/macgui/tst_gui.cpp b/tests/auto/macgui/tst_gui.cpp index b302f8b..641e596 100644 --- a/tests/auto/macgui/tst_gui.cpp +++ b/tests/auto/macgui/tst_gui.cpp @@ -69,8 +69,7 @@ private slots: QPixmap grabWindowContents(QWidget * widget) { - const int titleBarHeight = widget->frameGeometry().height() - widget->height(); - return QPixmap::grabWindow(widget->winId(), 0, titleBarHeight, -1, widget->height()); + return QPixmap::grabWindow(widget->winId()); } /* @@ -79,10 +78,6 @@ QPixmap grabWindowContents(QWidget * widget) */ void tst_gui::scrollbarPainting() { -#if defined (Q_WS_MAC) && defined (__i386__) - QSKIP("This test fails on scruffy when run by the autotest system (but not when you run it manually).", SkipAll); -#endif - ColorWidget colorWidget; colorWidget.resize(400, 400); diff --git a/tests/auto/network-settings.h b/tests/auto/network-settings.h index b2a449a..5a2f9c3 100644 --- a/tests/auto/network-settings.h +++ b/tests/auto/network-settings.h @@ -39,6 +39,7 @@ ** ****************************************************************************/ #include <QString> +#include <QtNetwork/QHostInfo> class QtNetworkSettings { @@ -63,4 +64,12 @@ public: { return "qt-test-server.wildcard.dev." + serverDomainName(); } + +#ifdef QT_NETWORK_LIB + static QHostAddress serverIP() + { + return QHostInfo::fromName(serverName()).addresses().first(); + } +#endif + }; diff --git a/tests/auto/q3socketdevice/tst_q3socketdevice.cpp b/tests/auto/q3socketdevice/tst_q3socketdevice.cpp index 2b0c606..6255aee 100644 --- a/tests/auto/q3socketdevice/tst_q3socketdevice.cpp +++ b/tests/auto/q3socketdevice/tst_q3socketdevice.cpp @@ -45,6 +45,8 @@ #include <q3socketdevice.h> +#include "../network-settings.h" + //TESTED_CLASS= //TESTED_FILES= @@ -97,8 +99,7 @@ void tst_Q3SocketDevice::readNull() int attempts = 10; while (attempts--) { - // connect to imap.troll.no - if (device.connect(QHostAddress("62.70.27.18"), 143)) + if (device.connect(QtNetworkSettings::serverIP(), 143)) break; } @@ -117,7 +118,7 @@ void tst_Q3SocketDevice::readNull() #endif QCOMPARE(device.peerPort(), quint16(143)); QCOMPARE(device.peerAddress().toString(), - QHostAddress("62.70.27.18").toString()); + QtNetworkSettings::serverIP().toString()); QCOMPARE(device.error(), Q3SocketDevice::NoError); // write a logout notice diff --git a/tests/auto/qfuture/tst_qfuture.cpp b/tests/auto/qfuture/tst_qfuture.cpp index 43fd614..383ecba 100644 --- a/tests/auto/qfuture/tst_qfuture.cpp +++ b/tests/auto/qfuture/tst_qfuture.cpp @@ -45,7 +45,7 @@ #include <QtTest/QtTest> #include <qfuture.h> -#include <versioncheck.h> +#include "versioncheck.h" #include <qfuturewatcher.h> #include <qtconcurrentresultstore.h> #include <qtconcurrentexception.h> diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp index da99c30..0c5ebf6 100644 --- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp @@ -47,6 +47,7 @@ #include <QtGui> #include <math.h> +#include "../../shared/util.h" #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) #include <windows.h> @@ -3537,8 +3538,7 @@ void tst_QGraphicsScene::changedSignal() scene.addItem(rect); QCOMPARE(cl.changes.size(), 0); - qApp->processEvents(); - QCOMPARE(cl.changes.size(), 1); + QTRY_COMPARE(cl.changes.size(), 1); QCOMPARE(cl.changes.at(0).size(), 1); QCOMPARE(cl.changes.at(0).first(), QRectF(0, 0, 10, 10)); diff --git a/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp b/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp index 9ef8f9a..7eaf7c7 100644 --- a/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp +++ b/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp @@ -137,8 +137,6 @@ public slots: } }; -static const char *IMAP_IP = "62.70.27.18"; - tst_QHttpSocketEngine::tst_QHttpSocketEngine() { } @@ -307,12 +305,11 @@ void tst_QHttpSocketEngine::simpleConnectToIMAP() socketDevice.setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::serverName(), 3128)); - // Connect to imap.trolltech.com's IP - QVERIFY(!socketDevice.connectToHost(QHostAddress(IMAP_IP), 143)); + QVERIFY(!socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143)); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); QVERIFY(socketDevice.waitForWrite()); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); - QVERIFY(socketDevice.peerAddress() == QHostAddress(IMAP_IP)); + QVERIFY(socketDevice.peerAddress() == QtNetworkSettings::serverIP()); QVERIFY(!socketDevice.localAddress().isNull()); QVERIFY(socketDevice.localPort() > 0); @@ -328,7 +325,7 @@ void tst_QHttpSocketEngine::simpleConnectToIMAP() // Check that the greeting is what we expect it to be QCOMPARE(array.constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; @@ -369,7 +366,6 @@ void tst_QHttpSocketEngine::simpleErrorsAndStates() QVERIFY(!socketDevice.connectToHost(QHostAddress(QtNetworkSettings::serverName()), 8088)); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); if (socketDevice.waitForWrite(15000)) { - qDebug() << socketDevice.state(); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState || socketDevice.state() == QAbstractSocket::UnconnectedState); } else { @@ -451,14 +447,14 @@ void tst_QHttpSocketEngine::tcpSocketBlockingTest() QTcpSocket socket; // Connect - socket.connectToHost("imap.troll.no", 143); + socket.connectToHost(QtNetworkSettings::serverName(), 143); QVERIFY(socket.waitForConnected()); QCOMPARE(socket.state(), QTcpSocket::ConnectedState); // Read greeting QVERIFY(socket.waitForReadyRead(5000)); QString s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + QCOMPARE(s.toLatin1().constData(), "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write NOOP QCOMPARE((int) socket.write("1 NOOP\r\n", 8), 8); @@ -508,7 +504,7 @@ void tst_QHttpSocketEngine::tcpSocketNonBlockingTest() tcpSocketNonBlocking_socket = &socket; // Connect - socket.connectToHost("imap.troll.no", 143); + socket.connectToHost(QtNetworkSettings::serverName(), 143); QCOMPARE(socket.state(), QTcpSocket::HostLookupState); QTestEventLoop::instance().enterLoop(30); @@ -533,7 +529,7 @@ void tst_QHttpSocketEngine::tcpSocketNonBlockingTest() // Read greeting QVERIFY(!tcpSocketNonBlocking_data.isEmpty()); QCOMPARE(tcpSocketNonBlocking_data.at(0).toLatin1().constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); tcpSocketNonBlocking_data.clear(); tcpSocketNonBlocking_totalWritten = 0; @@ -696,12 +692,11 @@ void tst_QHttpSocketEngine::passwordAuth() socketDevice.setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, QtNetworkSettings::serverName(), 3128, "qsockstest", "password")); - // Connect to imap.trolltech.com's IP - QVERIFY(!socketDevice.connectToHost(QHostAddress(IMAP_IP), 143)); + QVERIFY(!socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143)); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); QVERIFY(socketDevice.waitForWrite()); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); - QVERIFY(socketDevice.peerAddress() == QHostAddress(IMAP_IP)); + QVERIFY(socketDevice.peerAddress() == QtNetworkSettings::serverIP()); // Wait for the greeting QVERIFY(socketDevice.waitForRead()); @@ -715,7 +710,7 @@ void tst_QHttpSocketEngine::passwordAuth() // Check that the greeting is what we expect it to be QCOMPARE(array.constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; diff --git a/tests/auto/qimage/images/image.tif b/tests/auto/qimage/images/image.tif Binary files differnew file mode 100644 index 0000000..ee0637c --- /dev/null +++ b/tests/auto/qimage/images/image.tif diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp index ee4ece2..c6b0560 100644 --- a/tests/auto/qimage/tst_qimage.cpp +++ b/tests/auto/qimage/tst_qimage.cpp @@ -274,6 +274,9 @@ void tst_QImage::formatHandlersInput_data() QTest::newRow("PPM") << "PPM" << prefix + "image.ppm"; QTest::newRow("XBM") << "XBM" << prefix + "image.xbm"; QTest::newRow("XPM") << "XPM" << prefix + "image.xpm"; +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF") << "TIFF" << prefix + "image.tif"; +#endif } void tst_QImage::formatHandlersInput() @@ -1454,9 +1457,9 @@ void tst_QImage::smoothScale3() QRgb cb = b.pixel(x, y); // tolerate a little bit of rounding errors - QVERIFY(compare(qRed(ca), qRed(cb), 2)); - QVERIFY(compare(qGreen(ca), qGreen(cb), 2)); - QVERIFY(compare(qBlue(ca), qBlue(cb), 2)); + QVERIFY(compare(qRed(ca), qRed(cb), 3)); + QVERIFY(compare(qGreen(ca), qGreen(cb), 3)); + QVERIFY(compare(qBlue(ca), qBlue(cb), 3)); } } } diff --git a/tests/auto/qimagereader/images/image_100dpi.tif b/tests/auto/qimagereader/images/image_100dpi.tif Binary files differnew file mode 100644 index 0000000..fcf3cd8 --- /dev/null +++ b/tests/auto/qimagereader/images/image_100dpi.tif diff --git a/tests/auto/qimagereader/qimagereader.pro b/tests/auto/qimagereader/qimagereader.pro index b178823..2c9510e 100644 --- a/tests/auto/qimagereader/qimagereader.pro +++ b/tests/auto/qimagereader/qimagereader.pro @@ -3,6 +3,7 @@ SOURCES += tst_qimagereader.cpp MOC_DIR=tmp QT += network RESOURCES += qimagereader.qrc +DEFINES += SRCDIR=\\\"$$PWD\\\" !contains(QT_CONFIG, no-gif):DEFINES += QTEST_HAVE_GIF !contains(QT_CONFIG, no-jpeg):DEFINES += QTEST_HAVE_JPEG @@ -22,5 +23,6 @@ wince*: { imagePlugins.path = imageformats DEPLOYMENT += images imagePlugins + DEFINES += SRCDIR=\\\".\\\" } diff --git a/tests/auto/qimagereader/qimagereader.qrc b/tests/auto/qimagereader/qimagereader.qrc index 13ce582..3c674ad 100644 --- a/tests/auto/qimagereader/qimagereader.qrc +++ b/tests/auto/qimagereader/qimagereader.qrc @@ -30,6 +30,7 @@ <file>images/image.pgm</file> <file>images/image.png</file> <file>images/image.ppm</file> + <file>images/image.tif</file> <file>images/kollada.png</file> <file>images/marble.xpm</file> <file>images/namedcolors.xpm</file> diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp index 8f7094c..f5313eb 100644 --- a/tests/auto/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/qimagereader/tst_qimagereader.cpp @@ -158,6 +158,8 @@ private slots: void pixelCompareWithBaseline(); }; +static const QLatin1String prefix(SRCDIR "/images/"); + // Testing get/set functions void tst_QImageReader::getSetCheck() { @@ -232,7 +234,7 @@ void tst_QImageReader::readImage() QFETCH(QByteArray, format); for (int i = 0; i < 2; ++i) { - QImageReader io("images/" + fileName, i ? QByteArray() : format); + QImageReader io(prefix + fileName, i ? QByteArray() : format); if (success) { if (!io.supportsAnimation()) QVERIFY(io.imageCount() > 0); @@ -248,16 +250,16 @@ void tst_QImageReader::readImage() QVERIFY2(!image.isNull(), io.errorString().toLatin1().constData()); // No format - QImageReader io2("images/" + fileName); + QImageReader io2(prefix + fileName); QVERIFY2(!io2.read().isNull(), io.errorString().toLatin1().constData()); // No extension, no format - QImageReader io3("images/" + fileName.left(fileName.lastIndexOf(QLatin1Char('.')))); + QImageReader io3(prefix + fileName.left(fileName.lastIndexOf(QLatin1Char('.')))); QVERIFY2(!io3.read().isNull(), io.errorString().toLatin1().constData()); // Read into \a image2 QImage image2; - QImageReader image2Reader("images/" + fileName, i ? QByteArray() : format); + QImageReader image2Reader(prefix + fileName, i ? QByteArray() : format); QCOMPARE(image2Reader.format(), format); QVERIFY(image2Reader.read(&image2)); if (image2Reader.canRead()) { @@ -281,8 +283,8 @@ void tst_QImageReader::readImage() void tst_QImageReader::jpegRgbCmyk() { - QImage image1(QLatin1String("images/YCbCr_cmyk.jpg")); - QImage image2(QLatin1String("images/YCbCr_cmyk.png")); + QImage image1(prefix + QLatin1String("YCbCr_cmyk.jpg")); + QImage image2(prefix + QLatin1String("YCbCr_cmyk.png")); QCOMPARE(image1, image2); } @@ -293,24 +295,24 @@ void tst_QImageReader::setScaledSize_data() QTest::addColumn<QSize>("newSize"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("BMP: colorful") << "images/colorful" << QSize(200, 200) << QByteArray("bmp"); - QTest::newRow("BMP: font") << "images/font" << QSize(200, 200) << QByteArray("bmp"); - QTest::newRow("XPM: marble") << "images/marble" << QSize(200, 200) << QByteArray("xpm"); - QTest::newRow("PNG: kollada") << "images/kollada" << QSize(200, 200) << QByteArray("png"); - QTest::newRow("PPM: teapot") << "images/teapot" << QSize(200, 200) << QByteArray("ppm"); - QTest::newRow("PPM: runners") << "images/runners.ppm" << QSize(400, 400) << QByteArray("ppm"); - QTest::newRow("PPM: test") << "images/test.ppm" << QSize(10, 10) << QByteArray("ppm"); - QTest::newRow("XBM: gnus") << "images/gnus" << QSize(200, 200) << QByteArray("xbm"); + QTest::newRow("BMP: colorful") << "colorful" << QSize(200, 200) << QByteArray("bmp"); + QTest::newRow("BMP: font") << "font" << QSize(200, 200) << QByteArray("bmp"); + QTest::newRow("XPM: marble") << "marble" << QSize(200, 200) << QByteArray("xpm"); + QTest::newRow("PNG: kollada") << "kollada" << QSize(200, 200) << QByteArray("png"); + QTest::newRow("PPM: teapot") << "teapot" << QSize(200, 200) << QByteArray("ppm"); + QTest::newRow("PPM: runners") << "runners.ppm" << QSize(400, 400) << QByteArray("ppm"); + QTest::newRow("PPM: test") << "test.ppm" << QSize(10, 10) << QByteArray("ppm"); + QTest::newRow("XBM: gnus") << "gnus" << QSize(200, 200) << QByteArray("xbm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("JPEG: beavis") << "images/beavis" << QSize(200, 200) << QByteArray("jpeg"); + QTest::newRow("JPEG: beavis") << "beavis" << QSize(200, 200) << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("GIF: earth") << "images/earth" << QSize(200, 200) << QByteArray("gif"); - QTest::newRow("GIF: trolltech") << "images/trolltech" << QSize(200, 200) << QByteArray("gif"); + QTest::newRow("GIF: earth") << "earth" << QSize(200, 200) << QByteArray("gif"); + QTest::newRow("GIF: trolltech") << "trolltech" << QSize(200, 200) << QByteArray("gif"); #endif // QTEST_HAVE_GIF #ifdef QTEST_HAVE_MNG - QTest::newRow("MNG: ball") << "images/ball" << QSize(200, 200) << QByteArray("mng"); - QTest::newRow("MNG: fire") << "images/fire" << QSize(200, 200) << QByteArray("mng"); + QTest::newRow("MNG: ball") << "ball" << QSize(200, 200) << QByteArray("mng"); + QTest::newRow("MNG: fire") << "fire" << QSize(200, 200) << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -323,7 +325,7 @@ void tst_QImageReader::setScaledSize() if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); reader.setScaledSize(newSize); QImage image = reader.read(); QVERIFY(!image.isNull()); @@ -336,25 +338,25 @@ void tst_QImageReader::setClipRect_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QRect>("newRect"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("BMP: colorful") << "images/colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("BMP: font") << "images/font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("BMP: 4bpp uncompressed") << "images/tst7.bmp" << QRect(0, 0, 31, 31) << QByteArray("bmp"); - QTest::newRow("XPM: marble") << "images/marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); - QTest::newRow("PNG: kollada") << "images/kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); - QTest::newRow("PPM: teapot") << "images/teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: runners") << "images/runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: test") << "images/test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("XBM: gnus") << "images/gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); + QTest::newRow("BMP: colorful") << "colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("BMP: font") << "font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("BMP: 4bpp uncompressed") << "tst7.bmp" << QRect(0, 0, 31, 31) << QByteArray("bmp"); + QTest::newRow("XPM: marble") << "marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); + QTest::newRow("PNG: kollada") << "kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); + QTest::newRow("PPM: teapot") << "teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: runners") << "runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: test") << "test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("XBM: gnus") << "gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("JPEG: beavis") << "images/beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); + QTest::newRow("JPEG: beavis") << "beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("GIF: earth") << "images/earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); - QTest::newRow("GIF: trolltech") << "images/trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: earth") << "earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: trolltech") << "trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); #endif // QTEST_HAVE_GIF #ifdef QTEST_HAVE_MNG - QTest::newRow("MNG: ball") << "images/ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); - QTest::newRow("MNG: fire") << "images/fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: ball") << "ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: fire") << "fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -367,13 +369,13 @@ void tst_QImageReader::setClipRect() if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); reader.setClipRect(newRect); QImage image = reader.read(); QVERIFY(!image.isNull()); QCOMPARE(image.rect(), newRect); - QImageReader originalReader(fileName); + QImageReader originalReader(prefix + fileName); QImage originalImage = originalReader.read(); QCOMPARE(originalImage.copy(newRect), image); } @@ -384,24 +386,24 @@ void tst_QImageReader::setScaledClipRect_data() QTest::addColumn<QRect>("newRect"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("BMP: colorful") << "images/colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("BMP: font") << "images/font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("XPM: marble") << "images/marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); - QTest::newRow("PNG: kollada") << "images/kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); - QTest::newRow("PPM: teapot") << "images/teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: runners") << "images/runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: test") << "images/test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("XBM: gnus") << "images/gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); + QTest::newRow("BMP: colorful") << "colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("BMP: font") << "font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("XPM: marble") << "marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); + QTest::newRow("PNG: kollada") << "kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); + QTest::newRow("PPM: teapot") << "teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: runners") << "runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: test") << "test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("XBM: gnus") << "gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("JPEG: beavis") << "images/beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); + QTest::newRow("JPEG: beavis") << "beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("GIF: earth") << "images/earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); - QTest::newRow("GIF: trolltech") << "images/trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: earth") << "earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: trolltech") << "trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); #endif // QTEST_HAVE_GIF #ifdef QTEST_HAVE_MNG - QTest::newRow("MNG: ball") << "images/ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); - QTest::newRow("MNG: fire") << "images/fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: ball") << "ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: fire") << "fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -414,14 +416,14 @@ void tst_QImageReader::setScaledClipRect() if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); reader.setScaledSize(QSize(300, 300)); reader.setScaledClipRect(newRect); QImage image = reader.read(); QVERIFY(!image.isNull()); QCOMPARE(image.rect(), newRect); - QImageReader originalReader(fileName); + QImageReader originalReader(prefix + fileName); originalReader.setScaledSize(QSize(300, 300)); QImage originalImage = originalReader.read(); QCOMPARE(originalImage.copy(newRect), image); @@ -433,29 +435,29 @@ void tst_QImageReader::imageFormat_data() QTest::addColumn<QByteArray>("format"); QTest::addColumn<QImage::Format>("imageFormat"); - QTest::newRow("pbm") << QString("images/image.pbm") << QByteArray("pbm") << QImage::Format_Mono; - QTest::newRow("pgm") << QString("images/image.pgm") << QByteArray("pgm") << QImage::Format_Indexed8; - QTest::newRow("ppm-1") << QString("images/image.ppm") << QByteArray("ppm") << QImage::Format_RGB32; - QTest::newRow("ppm-2") << QString("images/teapot.ppm") << QByteArray("ppm") << QImage::Format_RGB32; - QTest::newRow("ppm-3") << QString("images/runners.ppm") << QByteArray("ppm") << QImage::Format_RGB32; - QTest::newRow("ppm-4") << QString("images/test.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("pbm") << QString("image.pbm") << QByteArray("pbm") << QImage::Format_Mono; + QTest::newRow("pgm") << QString("image.pgm") << QByteArray("pgm") << QImage::Format_Indexed8; + QTest::newRow("ppm-1") << QString("image.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("ppm-2") << QString("teapot.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("ppm-3") << QString("runners.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("ppm-4") << QString("test.ppm") << QByteArray("ppm") << QImage::Format_RGB32; #ifdef QTEST_HAVE_JPEG - QTest::newRow("jpeg-1") << QString("images/beavis.jpg") << QByteArray("jpeg") << QImage::Format_Indexed8; - QTest::newRow("jpeg-2") << QString("images/YCbCr_cmyk.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; - QTest::newRow("jpeg-3") << QString("images/YCbCr_rgb.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; + QTest::newRow("jpeg-1") << QString("beavis.jpg") << QByteArray("jpeg") << QImage::Format_Indexed8; + QTest::newRow("jpeg-2") << QString("YCbCr_cmyk.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; + QTest::newRow("jpeg-3") << QString("YCbCr_rgb.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; #endif #if defined QTEST_HAVE_GIF - QTest::newRow("gif-1") << QString("images/earth.gif") << QByteArray("gif") << QImage::Format_Invalid; - QTest::newRow("gif-2") << QString("images/trolltech.gif") << QByteArray("gif") << QImage::Format_Invalid; + QTest::newRow("gif-1") << QString("earth.gif") << QByteArray("gif") << QImage::Format_Invalid; + QTest::newRow("gif-2") << QString("trolltech.gif") << QByteArray("gif") << QImage::Format_Invalid; #endif - QTest::newRow("xbm") << QString("images/gnus.xbm") << QByteArray("xbm") << QImage::Format_MonoLSB; - QTest::newRow("xpm") << QString("images/marble.xpm") << QByteArray("xpm") << QImage::Format_Indexed8; - QTest::newRow("bmp-1") << QString("images/colorful.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; - QTest::newRow("bmp-2") << QString("images/font.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; - QTest::newRow("png") << QString("images/kollada.png") << QByteArray("png") << QImage::Format_ARGB32; - QTest::newRow("png-2") << QString("images/YCbCr_cmyk.png") << QByteArray("png") << QImage::Format_RGB32; - QTest::newRow("mng-1") << QString("images/ball.mng") << QByteArray("mng") << QImage::Format_Invalid; - QTest::newRow("mng-2") << QString("images/fire.mng") << QByteArray("mng") << QImage::Format_Invalid; + QTest::newRow("xbm") << QString("gnus.xbm") << QByteArray("xbm") << QImage::Format_MonoLSB; + QTest::newRow("xpm") << QString("marble.xpm") << QByteArray("xpm") << QImage::Format_Indexed8; + QTest::newRow("bmp-1") << QString("colorful.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; + QTest::newRow("bmp-2") << QString("font.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; + QTest::newRow("png") << QString("kollada.png") << QByteArray("png") << QImage::Format_ARGB32; + QTest::newRow("png-2") << QString("YCbCr_cmyk.png") << QByteArray("png") << QImage::Format_RGB32; + QTest::newRow("mng-1") << QString("ball.mng") << QByteArray("mng") << QImage::Format_Invalid; + QTest::newRow("mng-2") << QString("fire.mng") << QByteArray("mng") << QImage::Format_Invalid; } void tst_QImageReader::imageFormat() @@ -463,7 +465,8 @@ void tst_QImageReader::imageFormat() QFETCH(QString, fileName); QFETCH(QByteArray, format); QFETCH(QImage::Format, imageFormat); - if (QImageReader::imageFormat(fileName).isEmpty()) { + + if (QImageReader::imageFormat(prefix + fileName).isEmpty()) { if (QByteArray("jpeg") == format) #ifndef QTEST_HAVE_JPEG return; @@ -478,31 +481,31 @@ void tst_QImageReader::imageFormat() #endif // !QTEST_HAVE_MNG QSKIP(("Qt does not support the " + format + " format.").constData(), SkipSingle); } else { - QCOMPARE(QImageReader::imageFormat(fileName), format); + QCOMPARE(QImageReader::imageFormat(prefix + fileName), format); } - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); QCOMPARE(reader.imageFormat(), imageFormat); } void tst_QImageReader::blackXPM() { - QImage image(QLatin1String("images/black.xpm")); - QImage image2(QLatin1String("images/black.png")); + QImage image(prefix + QLatin1String("black.xpm")); + QImage image2(prefix + QLatin1String("black.png")); QCOMPARE(image.pixel(25, 25), qRgb(190, 190, 190)); QCOMPARE(image.pixel(25, 25), image2.pixel(25, 25)); } void tst_QImageReader::transparentXPM() { - QImage image(QLatin1String("images/nontransparent.xpm")); - QImage image2(QLatin1String("images/transparent.xpm")); + QImage image(prefix + QLatin1String("nontransparent.xpm")); + QImage image2(prefix + QLatin1String("transparent.xpm")); QCOMPARE(image.format(), QImage::Format_RGB32); QCOMPARE(image2.format(), QImage::Format_ARGB32); } void tst_QImageReader::multiWordNamedColorXPM() { - QImage image(QLatin1String("images/namedcolors.xpm")); + QImage image(prefix + QLatin1String("namedcolors.xpm")); QCOMPARE(image.pixel(0, 0), qRgb(102, 139, 139)); // pale turquoise 4 QCOMPARE(image.pixel(0, 1), qRgb(250, 250, 210)); // light golden rod yellow QCOMPARE(image.pixel(0, 2), qRgb(255, 250, 205)); // lemon chiffon @@ -593,7 +596,7 @@ void tst_QImageReader::supportsAnimation() { QFETCH(QString, fileName); QFETCH(bool, success); - QImageReader io("images/" + fileName); + QImageReader io(prefix + fileName); QCOMPARE(io.supportsAnimation(), success); } @@ -606,7 +609,7 @@ void tst_QImageReader::sizeBeforeRead() { QFETCH(QString, fileName); QFETCH(QByteArray, format); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); QVERIFY(reader.canRead()); if (format == "mng") { QCOMPARE(reader.size(), QSize()); @@ -644,7 +647,7 @@ void tst_QImageReader::imageFormatBeforeRead() void tst_QImageReader::gifHandlerBugs() { { - QImageReader io("images/trolltech.gif"); + QImageReader io(prefix + "trolltech.gif"); QVERIFY(io.loopCount() != 1); int count=0; for (; io.canRead(); io.read(), ++count) ; @@ -653,8 +656,8 @@ void tst_QImageReader::gifHandlerBugs() // Task 95166 { - QImageReader io1("images/bat1.gif"); - QImageReader io2("images/bat2.gif"); + QImageReader io1(prefix + "bat1.gif"); + QImageReader io2(prefix + "bat2.gif"); QVERIFY(io1.canRead()); QVERIFY(io2.canRead()); QImage im1 = io1.read(); @@ -666,8 +669,8 @@ void tst_QImageReader::gifHandlerBugs() // Task 9994 { - QImageReader io1("images/noclearcode.gif"); - QImageReader io2("images/noclearcode.bmp"); + QImageReader io1(prefix + "noclearcode.gif"); + QImageReader io2(prefix + "noclearcode.bmp"); QVERIFY(io1.canRead()); QVERIFY(io2.canRead()); QImage im1 = io1.read(); QImage im2 = io2.read(); QVERIFY(!im1.isNull()); QVERIFY(!im2.isNull()); @@ -731,29 +734,29 @@ void tst_QImageReader::readFromDevice_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("pbm") << QString("images/image.pbm") << QByteArray("pbm"); - QTest::newRow("pgm") << QString("images/image.pgm") << QByteArray("pgm"); - QTest::newRow("ppm-1") << QString("images/image.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-2") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-3") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-4") << QString("images/runners.ppm") << QByteArray("ppm"); + QTest::newRow("pbm") << QString("image.pbm") << QByteArray("pbm"); + QTest::newRow("pgm") << QString("image.pgm") << QByteArray("pgm"); + QTest::newRow("ppm-1") << QString("image.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-2") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-3") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-4") << QString("runners.ppm") << QByteArray("ppm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("jpeg-1") << QString("images/beavis.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-2") << QString("images/YCbCr_cmyk.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-3") << QString("images/YCbCr_rgb.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-1") << QString("beavis.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-2") << QString("YCbCr_cmyk.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-3") << QString("YCbCr_rgb.jpg") << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("gif-1") << QString("images/earth.gif") << QByteArray("gif"); - QTest::newRow("gif-2") << QString("images/trolltech.gif") << QByteArray("gif"); + QTest::newRow("gif-1") << QString("earth.gif") << QByteArray("gif"); + QTest::newRow("gif-2") << QString("trolltech.gif") << QByteArray("gif"); #endif // QTEST_HAVE_GIF - QTest::newRow("xbm") << QString("images/gnus.xbm") << QByteArray("xbm"); - QTest::newRow("xpm") << QString("images/marble.xpm") << QByteArray("xpm"); - QTest::newRow("bmp-1") << QString("images/colorful.bmp") << QByteArray("bmp"); - QTest::newRow("bmp-2") << QString("images/font.bmp") << QByteArray("bmp"); - QTest::newRow("png") << QString("images/kollada.png") << QByteArray("png"); + QTest::newRow("xbm") << QString("gnus.xbm") << QByteArray("xbm"); + QTest::newRow("xpm") << QString("marble.xpm") << QByteArray("xpm"); + QTest::newRow("bmp-1") << QString("colorful.bmp") << QByteArray("bmp"); + QTest::newRow("bmp-2") << QString("font.bmp") << QByteArray("bmp"); + QTest::newRow("png") << QString("kollada.png") << QByteArray("png"); #ifdef QTEST_HAVE_MNG - QTest::newRow("mng-1") << QString("images/ball.mng") << QByteArray("mng"); - QTest::newRow("mng-2") << QString("images/fire.mng") << QByteArray("mng"); + QTest::newRow("mng-1") << QString("ball.mng") << QByteArray("mng"); + QTest::newRow("mng-2") << QString("fire.mng") << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -762,9 +765,9 @@ void tst_QImageReader::readFromDevice() QFETCH(QString, fileName); QFETCH(QByteArray, format); - QImage expectedImage(fileName, format); + QImage expectedImage(prefix + fileName, format); - QFile file(fileName); + QFile file(prefix + fileName); QVERIFY(file.open(QFile::ReadOnly)); QByteArray imageData = file.readAll(); QVERIFY(!imageData.isEmpty()); @@ -813,26 +816,26 @@ void tst_QImageReader::readFromFileAfterJunk_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("pbm") << QString("images/image.pbm") << QByteArray("pbm"); - QTest::newRow("pgm") << QString("images/image.pgm") << QByteArray("pgm"); - QTest::newRow("ppm-1") << QString("images/image.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-2") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-3") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-4") << QString("images/runners.ppm") << QByteArray("ppm"); + QTest::newRow("pbm") << QString("image.pbm") << QByteArray("pbm"); + QTest::newRow("pgm") << QString("image.pgm") << QByteArray("pgm"); + QTest::newRow("ppm-1") << QString("image.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-2") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-3") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-4") << QString("runners.ppm") << QByteArray("ppm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("jpeg-1") << QString("images/beavis.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-2") << QString("images/YCbCr_cmyk.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-3") << QString("images/YCbCr_rgb.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-1") << QString("beavis.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-2") << QString("YCbCr_cmyk.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-3") << QString("YCbCr_rgb.jpg") << QByteArray("jpeg"); #endif #if defined QTEST_HAVE_GIF // QTest::newRow("gif-1") << QString("images/earth.gif") << QByteArray("gif"); // QTest::newRow("gif-2") << QString("images/trolltech.gif") << QByteArray("gif"); #endif - QTest::newRow("xbm") << QString("images/gnus.xbm") << QByteArray("xbm"); - QTest::newRow("xpm") << QString("images/marble.xpm") << QByteArray("xpm"); - QTest::newRow("bmp-1") << QString("images/colorful.bmp") << QByteArray("bmp"); - QTest::newRow("bmp-2") << QString("images/font.bmp") << QByteArray("bmp"); - QTest::newRow("png") << QString("images/kollada.png") << QByteArray("png"); + QTest::newRow("xbm") << QString("gnus.xbm") << QByteArray("xbm"); + QTest::newRow("xpm") << QString("marble.xpm") << QByteArray("xpm"); + QTest::newRow("bmp-1") << QString("colorful.bmp") << QByteArray("bmp"); + QTest::newRow("bmp-2") << QString("font.bmp") << QByteArray("bmp"); + QTest::newRow("png") << QString("kollada.png") << QByteArray("png"); // QTest::newRow("mng-1") << QString("images/ball.mng") << QByteArray("mng"); // QTest::newRow("mng-2") << QString("images/fire.mng") << QByteArray("mng"); } @@ -851,7 +854,7 @@ void tst_QImageReader::readFromFileAfterJunk() QFile junkFile("junk"); QVERIFY(junkFile.open(QFile::WriteOnly)); - QFile imageFile(fileName); + QFile imageFile(prefix + fileName); QVERIFY(imageFile.open(QFile::ReadOnly)); QByteArray imageData = imageFile.readAll(); QVERIFY(!imageData.isNull()); @@ -869,7 +872,7 @@ void tst_QImageReader::readFromFileAfterJunk() for (int i = 0; i < iterations; ++i) { QImageWriter writer(&junkFile, format); junkFile.write("deadbeef", 9); - QVERIFY(writer.write(QImage(fileName))); + QVERIFY(writer.write(QImage(prefix + fileName))); } } junkFile.close(); @@ -903,8 +906,8 @@ void tst_QImageReader::description_data() willem["Software"] = "Created on a NeXTstation color using \"pnmtopng\"."; willem["Disclaimer"] = "Freeware."; - QTest::newRow("PNG") << QString("images/pngwithtext.png") << willem; - QTest::newRow("PNG Compressed") << QString("images/pngwithcompressedtext.png") << willem; + QTest::newRow("PNG") << QString("pngwithtext.png") << willem; + QTest::newRow("PNG Compressed") << QString("pngwithcompressedtext.png") << willem; } void tst_QImageReader::description() @@ -913,9 +916,9 @@ void tst_QImageReader::description() QFETCH(QStringMap, description); // Sanity check - QVERIFY(!QImage(fileName).isNull()); + QVERIFY(!QImage(prefix + fileName).isNull()); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); foreach (QString key, description.keys()) QCOMPARE(reader.text(key), description.value(key)); @@ -940,143 +943,143 @@ void tst_QImageReader::readFromResources_data() QTest::addColumn<QSize>("size"); QTest::addColumn<QString>("message"); - QTest::newRow("images/corrupt.bmp") << QString("images/corrupt.bmp") + QTest::newRow("corrupt.bmp") << QString("corrupt.bmp") << QByteArray("bmp") << QSize(0, 0) << QString(""); - QTest::newRow("images/negativeheight.bmp") << QString("images/negativeheight.bmp") + QTest::newRow("negativeheight.bmp") << QString("negativeheight.bmp") << QByteArray("bmp") << QSize(127, 64) << QString(""); - QTest::newRow("images/font.bmp") << QString("images/font.bmp") + QTest::newRow("font.bmp") << QString("font.bmp") << QByteArray("bmp") << QSize(240, 8) << QString(""); - QTest::newRow("images/noclearcode.bmp") << QString("images/noclearcode.bmp") + QTest::newRow("noclearcode.bmp") << QString("noclearcode.bmp") << QByteArray("bmp") << QSize(29, 18) << QString(""); - QTest::newRow("images/colorful.bmp") << QString("images/colorful.bmp") + QTest::newRow("colorful.bmp") << QString("colorful.bmp") << QByteArray("bmp") << QSize(320, 200) << QString(""); - QTest::newRow("images/16bpp.bmp") << QString("images/16bpp.bmp") + QTest::newRow("16bpp.bmp") << QString("16bpp.bmp") << QByteArray("bmp") << QSize(320, 240) << QString(""); - QTest::newRow("images/crash-signed-char.bmp") << QString("images/crash-signed-char.bmp") + QTest::newRow("crash-signed-char.bmp") << QString("crash-signed-char.bmp") << QByteArray("bmp") << QSize(360, 280) << QString(""); - QTest::newRow("images/4bpp-rle.bmp") << QString("images/4bpp-rle.bmp") + QTest::newRow("4bpp-rle.bmp") << QString("4bpp-rle.bmp") << QByteArray("bmp") << QSize(640, 480) << QString(""); #ifdef QTEST_HAVE_GIF - QTest::newRow("images/corrupt.gif") << QString("images/corrupt.gif") + QTest::newRow("corrupt.gif") << QString("corrupt.gif") << QByteArray("gif") << QSize(0, 0) << QString(""); - QTest::newRow("images/trolltech.gif") << QString("images/trolltech.gif") + QTest::newRow("trolltech.gif") << QString("trolltech.gif") << QByteArray("gif") << QSize(128, 64) << QString(""); - QTest::newRow("images/noclearcode.gif") << QString("images/noclearcode.gif") + QTest::newRow("noclearcode.gif") << QString("noclearcode.gif") << QByteArray("gif") << QSize(29, 18) << QString(""); - QTest::newRow("images/earth.gif") << QString("images/earth.gif") + QTest::newRow("earth.gif") << QString("earth.gif") << QByteArray("gif") << QSize(320, 200) << QString(""); - QTest::newRow("images/bat1.gif") << QString("images/bat1.gif") + QTest::newRow("bat1.gif") << QString("bat1.gif") << QByteArray("gif") << QSize(32, 32) << QString(""); - QTest::newRow("images/bat2.gif") << QString("images/bat2.gif") + QTest::newRow("bat2.gif") << QString("bat2.gif") << QByteArray("gif") << QSize(32, 32) << QString(""); #endif #ifdef QTEST_HAVE_JPEG - QTest::newRow("images/corrupt.jpg") << QString("images/corrupt.jpg") + QTest::newRow("corrupt.jpg") << QString("corrupt.jpg") << QByteArray("jpg") << QSize(0, 0) << QString("JPEG datastream contains no image"); - QTest::newRow("images/beavis.jpg") << QString("images/beavis.jpg") + QTest::newRow("beavis.jpg") << QString("beavis.jpg") << QByteArray("jpg") << QSize(350, 350) << QString(""); - QTest::newRow("images/YCbCr_cmyk.jpg") << QString("images/YCbCr_cmyk.jpg") + QTest::newRow("YCbCr_cmyk.jpg") << QString("YCbCr_cmyk.jpg") << QByteArray("jpg") << QSize(75, 50) << QString(""); - QTest::newRow("images/YCbCr_rgb.jpg") << QString("images/YCbCr_rgb.jpg") + QTest::newRow("YCbCr_rgb.jpg") << QString("YCbCr_rgb.jpg") << QByteArray("jpg") << QSize(75, 50) << QString(""); #endif #ifdef QTEST_HAVE_MNG - QTest::newRow("images/corrupt.mng") << QString("images/corrupt.mng") + QTest::newRow("corrupt.mng") << QString("corrupt.mng") << QByteArray("mng") << QSize(0, 0) << QString("MNG error 901: Application signalled I/O error; chunk IHDR; subcode 0:0"); - QTest::newRow("images/fire.mng") << QString("images/fire.mng") + QTest::newRow("fire.mng") << QString("fire.mng") << QByteArray("mng") << QSize(30, 60) << QString(""); - QTest::newRow("images/ball.mng") << QString("images/ball.mng") + QTest::newRow("ball.mng") << QString("ball.mng") << QByteArray("mng") << QSize(32, 32) << QString(""); #endif - QTest::newRow("images/image.pbm") << QString("images/image.pbm") + QTest::newRow("image.pbm") << QString("image.pbm") << QByteArray("pbm") << QSize(16, 6) << QString(""); - QTest::newRow("images/image.pgm") << QString("images/image.pgm") + QTest::newRow("image.pgm") << QString("image.pgm") << QByteArray("pgm") << QSize(24, 7) << QString(""); - QTest::newRow("images/corrupt.png") << QString("images/corrupt.png") + QTest::newRow("corrupt.png") << QString("corrupt.png") << QByteArray("png") << QSize(0, 0) << QString(""); - QTest::newRow("images/away.png") << QString("images/away.png") + QTest::newRow("away.png") << QString("away.png") << QByteArray("png") << QSize(16, 16) << QString(""); - QTest::newRow("images/image.png") << QString("images/image.png") + QTest::newRow("image.png") << QString("image.png") << QByteArray("png") << QSize(22, 22) << QString(""); - QTest::newRow("images/pngwithcompressedtext.png") << QString("images/pngwithcompressedtext.png") + QTest::newRow("pngwithcompressedtext.png") << QString("pngwithcompressedtext.png") << QByteArray("png") << QSize(32, 32) << QString(""); - QTest::newRow("images/pngwithtext.png") << QString("images/pngwithtext.png") + QTest::newRow("pngwithtext.png") << QString("pngwithtext.png") << QByteArray("png") << QSize(32, 32) << QString(""); - QTest::newRow("images/kollada.png") << QString("images/kollada.png") + QTest::newRow("kollada.png") << QString("kollada.png") << QByteArray("png") << QSize(436, 160) << QString(""); - QTest::newRow("images/black.png") << QString("images/black.png") + QTest::newRow("black.png") << QString("black.png") << QByteArray("png") << QSize(48, 48) << QString(""); - QTest::newRow("images/YCbCr_cmyk.png") << QString("images/YCbCr_cmyk.png") + QTest::newRow("YCbCr_cmyk.png") << QString("YCbCr_cmyk.png") << QByteArray("png") << QSize(75, 50) << QString(""); - QTest::newRow("images/teapot.ppm") << QString("images/teapot.ppm") + QTest::newRow("teapot.ppm") << QString("teapot.ppm") << QByteArray("ppm") << QSize(256, 256) << QString(""); - QTest::newRow("images/image.ppm") << QString("images/image.ppm") + QTest::newRow("image.ppm") << QString("image.ppm") << QByteArray("ppm") << QSize(4, 4) << QString(""); - QTest::newRow("images/runners.ppm") << QString("images/runners.ppm") + QTest::newRow("runners.ppm") << QString("runners.ppm") << QByteArray("ppm") << QSize(400, 400) << QString(""); - QTest::newRow("images/test.ppm") << QString("images/test.ppm") + QTest::newRow("test.ppm") << QString("test.ppm") << QByteArray("ppm") << QSize(10, 10) << QString(""); -// QTest::newRow("images/corrupt.xbm") << QString("images/corrupt.xbm") << QByteArray("xbm") << QSize(0, 0); - QTest::newRow("images/gnus.xbm") << QString("images/gnus.xbm") +// QTest::newRow("corrupt.xbm") << QString("corrupt.xbm") << QByteArray("xbm") << QSize(0, 0); + QTest::newRow("gnus.xbm") << QString("gnus.xbm") << QByteArray("xbm") << QSize(271, 273) << QString(""); - QTest::newRow("images/corrupt-colors.xpm") << QString("images/corrupt-colors.xpm") + QTest::newRow("corrupt-colors.xpm") << QString("corrupt-colors.xpm") << QByteArray("xpm") << QSize(0, 0) << QString("QImage: XPM color specification is missing: bla9an.n#x"); - QTest::newRow("images/corrupt-pixels.xpm") << QString("images/corrupt-pixels.xpm") + QTest::newRow("corrupt-pixels.xpm") << QString("corrupt-pixels.xpm") << QByteArray("xpm") << QSize(0, 0) << QString("QImage: XPM pixels missing on image line 3"); - QTest::newRow("images/marble.xpm") << QString("images/marble.xpm") + QTest::newRow("marble.xpm") << QString("marble.xpm") << QByteArray("xpm") << QSize(240, 240) << QString(""); - QTest::newRow("images/test.xpm") << QString("images/test.xpm") + QTest::newRow("test.xpm") << QString("test.xpm") << QByteArray("xpm") << QSize(256, 256) << QString(""); - QTest::newRow("images/black.xpm") << QString("images/black.xpm") + QTest::newRow("black.xpm") << QString("black.xpm") << QByteArray("xpm") << QSize(48, 48) << QString(""); - QTest::newRow("images/namedcolors.xpm") << QString("images/namedcolors.xpm") + QTest::newRow("namedcolors.xpm") << QString("namedcolors.xpm") << QByteArray("xpm") << QSize(8, 8) << QString(""); - QTest::newRow("images/nontransparent.xpm") << QString("images/nontransparent.xpm") + QTest::newRow("nontransparent.xpm") << QString("nontransparent.xpm") << QByteArray("xpm") << QSize(8, 8) << QString(""); - QTest::newRow("images/transparent.xpm") << QString("images/transparent.xpm") + QTest::newRow("transparent.xpm") << QString("transparent.xpm") << QByteArray("xpm") << QSize(8, 8) << QString(""); } @@ -1087,9 +1090,8 @@ void tst_QImageReader::readFromResources() QFETCH(QByteArray, format); QFETCH(QSize, size); QFETCH(QString, message); - for (int i = 0; i < 2; ++i) { - QString file = i ? (":/" + fileName) : fileName; + QString file = i ? (":/images/" + fileName) : (prefix + fileName); { // suppress warnings if we expect them if (!message.isEmpty()) { @@ -1153,7 +1155,7 @@ void tst_QImageReader::readFromResources() QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); } - QCOMPARE(QImageReader(fileName).read(), QImageReader(":/" + fileName).read()); + QCOMPARE(QImageReader(prefix + fileName).read(), QImageReader(":/images/" + fileName).read()); } void tst_QImageReader::readCorruptImage_data() @@ -1162,25 +1164,25 @@ void tst_QImageReader::readCorruptImage_data() QTest::addColumn<bool>("shouldFail"); QTest::addColumn<QString>("message"); #if defined QTEST_HAVE_JPEG - QTest::newRow("corrupt jpeg") << QString("images/corrupt.jpg") << true + QTest::newRow("corrupt jpeg") << QString("corrupt.jpg") << true << QString("JPEG datastream contains no image"); #endif #if defined QTEST_HAVE_GIF - QTest::newRow("corrupt gif") << QString("images/corrupt.gif") << true << QString(""); + QTest::newRow("corrupt gif") << QString("corrupt.gif") << true << QString(""); #endif #ifdef QTEST_HAVE_MNG - QTest::newRow("corrupt mng") << QString("images/corrupt.mng") << true + QTest::newRow("corrupt mng") << QString("corrupt.mng") << true << QString("MNG error 901: Application signalled I/O error; chunk IHDR; subcode 0:0"); #endif - QTest::newRow("corrupt png") << QString("images/corrupt.png") << true << QString(""); - QTest::newRow("corrupt bmp") << QString("images/corrupt.bmp") << true << QString(""); - QTest::newRow("corrupt xpm (colors)") << QString("images/corrupt-colors.xpm") << true + QTest::newRow("corrupt png") << QString("corrupt.png") << true << QString(""); + QTest::newRow("corrupt bmp") << QString("corrupt.bmp") << true << QString(""); + QTest::newRow("corrupt xpm (colors)") << QString("corrupt-colors.xpm") << true << QString("QImage: XPM color specification is missing: bla9an.n#x"); - QTest::newRow("corrupt xpm (pixels)") << QString("images/corrupt-pixels.xpm") << true + QTest::newRow("corrupt xpm (pixels)") << QString("corrupt-pixels.xpm") << true << QString("QImage: XPM pixels missing on image line 3"); - QTest::newRow("corrupt xbm") << QString("images/corrupt.xbm") << false << QString(""); + QTest::newRow("corrupt xbm") << QString("corrupt.xbm") << false << QString(""); #if defined QTEST_HAVE_TIFF - QTest::newRow("corrupt tiff") << QString("images/corrupt-data.tif") << true << QString(""); + QTest::newRow("corrupt tiff") << QString("corrupt-data.tif") << true << QString(""); #endif } @@ -1189,16 +1191,17 @@ void tst_QImageReader::readCorruptImage() QFETCH(QString, fileName); QFETCH(bool, shouldFail); QFETCH(QString, message); + if (!message.isEmpty()) QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); QVERIFY(reader.canRead()); QCOMPARE(reader.read().isNull(), shouldFail); } void tst_QImageReader::readCorruptBmp() { - QCOMPARE(QImage("images/tst7.bmp").convertToFormat(QImage::Format_ARGB32_Premultiplied), QImage("images/tst7.png").convertToFormat(QImage::Format_ARGB32_Premultiplied)); + QCOMPARE(QImage("tst7.bmp").convertToFormat(QImage::Format_ARGB32_Premultiplied), QImage("images/tst7.png").convertToFormat(QImage::Format_ARGB32_Premultiplied)); } void tst_QImageReader::supportsOption_data() @@ -1206,7 +1209,7 @@ void tst_QImageReader::supportsOption_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QIntList>("options"); - QTest::newRow("png") << QString("images/black.png") + QTest::newRow("png") << QString("black.png") << (QIntList() << QImageIOHandler::Gamma << QImageIOHandler::Description << QImageIOHandler::Quality @@ -1234,7 +1237,7 @@ void tst_QImageReader::supportsOption() << QImageIOHandler::Animation << QImageIOHandler::BackgroundColor; - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); for (int i = 0; i < options.size(); ++i) { QVERIFY(reader.supportsOption(QImageIOHandler::ImageOption(options.at(i)))); allOptions.remove(QImageIOHandler::ImageOption(options.at(i))); @@ -1250,14 +1253,14 @@ void tst_QImageReader::tiffCompression_data() QTest::addColumn<QString>("uncompressedFile"); QTest::addColumn<QString>("compressedFile"); - QTest::newRow("TIFF: adobedeflate") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_adobedeflate_littleendian.tif"; - QTest::newRow("TIFF: lzw") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_lzw_littleendian.tif"; - QTest::newRow("TIFF: packbits") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_packbits_littleendian.tif"; - QTest::newRow("TIFF: zipdeflate") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_zipdeflate_littleendian.tif"; + QTest::newRow("TIFF: adobedeflate") << "rgba_nocompression_littleendian.tif" + << "rgba_adobedeflate_littleendian.tif"; + QTest::newRow("TIFF: lzw") << "rgba_nocompression_littleendian.tif" + << "rgba_lzw_littleendian.tif"; + QTest::newRow("TIFF: packbits") << "rgba_nocompression_littleendian.tif" + << "rgba_packbits_littleendian.tif"; + QTest::newRow("TIFF: zipdeflate") << "rgba_nocompression_littleendian.tif" + << "rgba_zipdeflate_littleendian.tif"; } void tst_QImageReader::tiffCompression() @@ -1265,16 +1268,16 @@ void tst_QImageReader::tiffCompression() QFETCH(QString, uncompressedFile); QFETCH(QString, compressedFile); - QImage uncompressedImage(uncompressedFile); - QImage compressedImage(compressedFile); + QImage uncompressedImage(prefix + uncompressedFile); + QImage compressedImage(prefix + compressedFile); QCOMPARE(uncompressedImage, compressedImage); } void tst_QImageReader::tiffEndianness() { - QImage littleEndian("images/rgba_nocompression_littleendian.tif"); - QImage bigEndian("images/rgba_nocompression_bigendian.tif"); + QImage littleEndian(prefix + "rgba_nocompression_littleendian.tif"); + QImage bigEndian(prefix + "rgba_nocompression_bigendian.tif"); QCOMPARE(littleEndian, bigEndian); } @@ -1286,8 +1289,10 @@ void tst_QImageReader::dotsPerMeter_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<int>("expectedDotsPerMeterX"); QTest::addColumn<int>("expectedDotsPerMeterY"); - - QTest::newRow("TIFF: 72 dpi") << "images/rgba_nocompression_littleendian.tif" << qRound(72 * (100 / 2.54)) << qRound(72 * (100 / 2.54)); +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF: 72 dpi") << ("rgba_nocompression_littleendian.tif") << qRound(72 * (100 / 2.54)) << qRound(72 * (100 / 2.54)); + QTest::newRow("TIFF: 100 dpi") << ("image_100dpi.tif") << qRound(100 * (100 / 2.54)) << qRound(100 * (100 / 2.54)); +#endif } void tst_QImageReader::dotsPerMeter() @@ -1296,7 +1301,7 @@ void tst_QImageReader::dotsPerMeter() QFETCH(int, expectedDotsPerMeterX); QFETCH(int, expectedDotsPerMeterY); - QImage image(fileName); + QImage image(prefix + fileName); QCOMPARE(image.dotsPerMeterX(), expectedDotsPerMeterX); QCOMPARE(image.dotsPerMeterY(), expectedDotsPerMeterY); @@ -1307,8 +1312,10 @@ void tst_QImageReader::physicalDpi_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<int>("expectedPhysicalDpiX"); QTest::addColumn<int>("expectedPhysicalDpiY"); - - QTest::newRow("TIFF: 72 dpi") << "images/rgba_nocompression_littleendian.tif" << 72 << 72; +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF: 72 dpi") << "rgba_nocompression_littleendian.tif" << 72 << 72; + QTest::newRow("TIFF: 100 dpi") << "image_100dpi.tif" << 100 << 100; +#endif } void tst_QImageReader::physicalDpi() @@ -1317,7 +1324,7 @@ void tst_QImageReader::physicalDpi() QFETCH(int, expectedPhysicalDpiX); QFETCH(int, expectedPhysicalDpiY); - QImage image(fileName); + QImage image(prefix + fileName); QCOMPARE(image.physicalDpiX(), expectedPhysicalDpiX); QCOMPARE(image.physicalDpiY(), expectedPhysicalDpiY); @@ -1328,7 +1335,7 @@ void tst_QImageReader::autoDetectImageFormat() // Assume PNG is supported :-) { // Disables file name extension probing - QImageReader reader("images/kollada"); + QImageReader reader(prefix + "kollada"); reader.setAutoDetectImageFormat(false); QVERIFY(!reader.canRead()); QVERIFY(reader.read().isNull()); @@ -1338,7 +1345,7 @@ void tst_QImageReader::autoDetectImageFormat() } { // Disables detection based on suffix - QImageReader reader("images/kollada.png"); + QImageReader reader(prefix + "kollada.png"); reader.setAutoDetectImageFormat(false); QVERIFY(!reader.canRead()); QVERIFY(reader.read().isNull()); @@ -1348,7 +1355,7 @@ void tst_QImageReader::autoDetectImageFormat() } { // Disables detection based on content - QImageReader reader("images/kollada-noext"); + QImageReader reader(prefix + "kollada-noext"); reader.setAutoDetectImageFormat(false); QVERIFY(!reader.canRead()); QVERIFY(reader.read().isNull()); diff --git a/tests/auto/qimagewriter/tst_qimagewriter.cpp b/tests/auto/qimagewriter/tst_qimagewriter.cpp index 878d398..349afa5 100644 --- a/tests/auto/qimagewriter/tst_qimagewriter.cpp +++ b/tests/auto/qimagewriter/tst_qimagewriter.cpp @@ -97,6 +97,9 @@ private slots: void saveWithNoFormat_data(); void saveWithNoFormat(); + void resolution_data(); + void resolution(); + void saveToTemporaryFile(); }; @@ -162,7 +165,7 @@ tst_QImageWriter::tst_QImageWriter() tst_QImageWriter::~tst_QImageWriter() { - QDir dir("images"); + QDir dir(prefix); QStringList filesToDelete = dir.entryList(QStringList() << "gen-*" , QDir::NoDotAndDotDot | QDir::Files); foreach( QString file, filesToDelete) { QFile::remove(dir.absoluteFilePath(file)); @@ -442,13 +445,13 @@ void tst_QImageWriter::supportsOption_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QIntList>("options"); - QTest::newRow("png") << QString(prefix + "gen-black.png") + QTest::newRow("png") << QString("gen-black.png") << (QIntList() << QImageIOHandler::Gamma << QImageIOHandler::Description << QImageIOHandler::Quality << QImageIOHandler::Size); #if defined QTEST_HAVE_TIFF - QTest::newRow("tiff") << QString("images/gen-black.tiff") + QTest::newRow("tiff") << QString("gen-black.tiff") << (QIntList() << QImageIOHandler::Size << QImageIOHandler::CompressionRatio); #endif @@ -475,7 +478,7 @@ void tst_QImageWriter::supportsOption() << QImageIOHandler::Animation << QImageIOHandler::BackgroundColor; - QImageWriter writer(fileName); + QImageWriter writer(prefix + fileName); for (int i = 0; i < options.size(); ++i) { QVERIFY(writer.supportsOption(QImageIOHandler::ImageOption(options.at(i)))); allOptions.remove(QImageIOHandler::ImageOption(options.at(i))); @@ -530,6 +533,39 @@ void tst_QImageWriter::saveWithNoFormat() QVERIFY2(!outImage.isNull(), qPrintable(reader.errorString())); } +void tst_QImageWriter::resolution_data() +{ + QTest::addColumn<QString>("filename"); + QTest::addColumn<int>("expectedDotsPerMeterX"); + QTest::addColumn<int>("expectedDotsPerMeterY"); +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF: 100 dpi") << ("image_100dpi.tif") << qRound(100 * (100 / 2.54)) << qRound(100 * (100 / 2.54)); + QTest::newRow("TIFF: 50 dpi") << ("image_50dpi.tif") << qRound(50 * (100 / 2.54)) << qRound(50 * (100 / 2.54)); + QTest::newRow("TIFF: 300 dot per meter") << ("image_300dpm.tif") << 300 << 300; +#endif +} + +void tst_QImageWriter::resolution() +{ + QFETCH(QString, filename); + QFETCH(int, expectedDotsPerMeterX); + QFETCH(int, expectedDotsPerMeterY); + + QImage image(prefix + QLatin1String("colorful.bmp")); + image.setDotsPerMeterX(expectedDotsPerMeterX); + image.setDotsPerMeterY(expectedDotsPerMeterY); + const QString generatedFilepath = prefix + "gen-" + filename; + { + QImageWriter writer(generatedFilepath); + QVERIFY(writer.write(image)); + } + QImageReader reader(generatedFilepath); + const QImage generatedImage = reader.read(); + + QCOMPARE(expectedDotsPerMeterX, generatedImage.dotsPerMeterX()); + QCOMPARE(expectedDotsPerMeterY, generatedImage.dotsPerMeterY()); +} + void tst_QImageWriter::saveToTemporaryFile() { QImage image(prefix + "kollada.png"); diff --git a/tests/auto/qiodevice/tst_qiodevice.cpp b/tests/auto/qiodevice/tst_qiodevice.cpp index 03a0665..367a2e0 100644 --- a/tests/auto/qiodevice/tst_qiodevice.cpp +++ b/tests/auto/qiodevice/tst_qiodevice.cpp @@ -120,7 +120,7 @@ void tst_QIODevice::constructing_QTcpSocket() QVERIFY(!device->isOpen()); - socket.connectToHost("imap.troll.no", 143); + socket.connectToHost(QtNetworkSettings::serverName(), 143); QVERIFY(socket.waitForConnected(5000)); QVERIFY(device->isOpen()); @@ -134,7 +134,7 @@ void tst_QIODevice::constructing_QTcpSocket() QCOMPARE(socket.pos(), qlonglong(0)); socket.close(); - socket.connectToHost("imap.troll.no", 143); + socket.connectToHost(QtNetworkSettings::serverName(), 143); QVERIFY(socket.waitForConnected(5000)); while (!device->canReadLine()) diff --git a/tests/auto/qitemmodel/tst_qitemmodel.cpp b/tests/auto/qitemmodel/tst_qitemmodel.cpp index ea1972e..d29a3e3 100644 --- a/tests/auto/qitemmodel/tst_qitemmodel.cpp +++ b/tests/auto/qitemmodel/tst_qitemmodel.cpp @@ -54,7 +54,7 @@ #include <QtTest/QtTest> #include <QtCore> #include <qdebug.h> -#include <modelstotest.cpp> +#include "modelstotest.cpp" #include <QMetaType> Q_DECLARE_METATYPE(QModelIndex) diff --git a/tests/auto/qitemview/tst_qitemview.cpp b/tests/auto/qitemview/tst_qitemview.cpp index 748bd50..3317c1d 100644 --- a/tests/auto/qitemview/tst_qitemview.cpp +++ b/tests/auto/qitemview/tst_qitemview.cpp @@ -42,7 +42,7 @@ #include <QtTest/QtTest> #include <QtCore/QtCore> -#include <viewstotest.cpp> +#include "viewstotest.cpp" #include <stdlib.h> #if defined(Q_OS_WIN) diff --git a/tests/auto/qmake/testcompiler.cpp b/tests/auto/qmake/testcompiler.cpp index 122a2b8..7255d93 100644 --- a/tests/auto/qmake/testcompiler.cpp +++ b/tests/auto/qmake/testcompiler.cpp @@ -56,10 +56,8 @@ static QString targetName( BuildType buildMode, const QString& target, const QSt targetName.append(".exe"); break; case Dll: // dll - if (version != "") { - QStringList ver = QStringList::split(".", version); - targetName.append(ver.first()); - } + if (!version.empty()) + targetName.append(version.section(".", 0, 0)); targetName.append(".dll"); break; case Lib: // lib diff --git a/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp b/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp index 68ec414..90276f2 100644 --- a/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp +++ b/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp @@ -100,8 +100,6 @@ private slots: void receiveUrgentData(); }; -static const char *IMAP_IP = "62.70.27.18"; - tst_QNativeSocketEngine::tst_QNativeSocketEngine() { } @@ -155,15 +153,14 @@ void tst_QNativeSocketEngine::simpleConnectToIMAP() QVERIFY(socketDevice.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol)); QVERIFY(socketDevice.state() == QAbstractSocket::UnconnectedState); - // Connect to imap.trolltech.com's IP - bool connected = socketDevice.connectToHost(QHostAddress(IMAP_IP), 143); - if (!connected) { + const bool isConnected = socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143); + if (!isConnected) { QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); QVERIFY(socketDevice.waitForWrite()); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); } QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); - QVERIFY(socketDevice.peerAddress() == QHostAddress(IMAP_IP)); + QVERIFY(socketDevice.peerAddress() == QtNetworkSettings::serverIP()); // Wait for the greeting QVERIFY(socketDevice.waitForRead()); @@ -176,7 +173,7 @@ void tst_QNativeSocketEngine::simpleConnectToIMAP() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + QCOMPARE(array.constData(), "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write a logout message QByteArray array2 = "ZZZ LOGOUT\r\n"; @@ -580,9 +577,8 @@ void tst_QNativeSocketEngine::networkError() QVERIFY(client.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol)); - // Connect to imap.trolltech.com's IP - bool connected = client.connectToHost(QHostAddress(IMAP_IP), 143); - if (!connected) { + const bool isConnected = client.connectToHost(QHostAddress(QtNetworkSettings::serverIP()), 143); + if (!isConnected) { QVERIFY(client.state() == QAbstractSocket::ConnectingState); QVERIFY(client.waitForWrite()); QVERIFY(client.state() == QAbstractSocket::ConnectedState); diff --git a/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp b/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp index fc15437..2383767 100644 --- a/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp +++ b/tests/auto/qnetworkdiskcache/tst_qnetworkdiskcache.cpp @@ -389,7 +389,8 @@ void tst_QNetworkDiskCache::expire() qint64 max = cache.maximumCacheSize(); QCOMPARE(max, limit); for (int i = 0; i < 10; ++i) { - QTest::qWait(2000); + if (i % 3 == 0) + QTest::qWait(2000); QNetworkCacheMetaData m; m.setUrl(QUrl("http://www.foo.com/" + QString::number(i))); QIODevice *d = cache.prepare(m); diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 23a6025..b76a4e6 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -3136,7 +3136,8 @@ void tst_QNetworkReply::downloadProgress() QVERIFY(spy.isValid()); QCoreApplication::instance()->processEvents(); - server.waitForNewConnection(0); // ignore result, since processEvents may have got it + if (!server.hasPendingConnections()) + server.waitForNewConnection(1000); QVERIFY(server.hasPendingConnections()); QCOMPARE(spy.count(), 0); @@ -3191,7 +3192,8 @@ void tst_QNetworkReply::uploadProgress() QVERIFY(finished.isValid()); QCoreApplication::instance()->processEvents(); - server.waitForNewConnection(0); // ignore result, since processEvents may have got it + if (!server.hasPendingConnections()) + server.waitForNewConnection(1000); QVERIFY(server.hasPendingConnections()); QTcpSocket *receiver = server.nextPendingConnection(); diff --git a/tests/auto/qprinter/tst_qprinter.cpp b/tests/auto/qprinter/tst_qprinter.cpp index cde4ae5..221e3b0 100644 --- a/tests/auto/qprinter/tst_qprinter.cpp +++ b/tests/auto/qprinter/tst_qprinter.cpp @@ -953,8 +953,9 @@ void tst_QPrinter::printDialogCompleter() QTest::qWait(100); - QTest::keyClick(0, Qt::Key_Tab); - QTest::keyClick(0, 'P'); + QTest::keyClick(&dialog, Qt::Key_Tab); + QTest::keyClick(&dialog, 'P'); + // The test passes if it doesn't crash. #endif } diff --git a/tests/auto/qscriptqobject/tst_qscriptqobject.cpp b/tests/auto/qscriptqobject/tst_qscriptqobject.cpp index 9b9dd16..1025d2a 100644 --- a/tests/auto/qscriptqobject/tst_qscriptqobject.cpp +++ b/tests/auto/qscriptqobject/tst_qscriptqobject.cpp @@ -107,6 +107,7 @@ class MyQObject : public QObject Q_PROPERTY(int readOnlyProperty READ readOnlyProperty) Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut) Q_PROPERTY(CustomType propWithCustomType READ propWithCustomType WRITE setPropWithCustomType) + Q_PROPERTY(Policy enumProperty READ enumProperty WRITE setEnumProperty) Q_ENUMS(Policy Strategy) Q_FLAGS(Ability) @@ -144,6 +145,7 @@ public: m_hiddenValue(456.0), m_writeOnlyValue(789), m_readOnlyValue(987), + m_enumValue(BarPolicy), m_qtFunctionInvoked(-1) { } @@ -205,6 +207,11 @@ public: void setPropWithCustomType(const CustomType &c) { m_customType = c; } + Policy enumProperty() const + { return m_enumValue; } + void setEnumProperty(Policy policy) + { m_enumValue = policy; } + int qtFunctionInvoked() const { return m_qtFunctionInvoked; } @@ -255,8 +262,8 @@ public: { m_qtFunctionInvoked = 36; m_actuals << policy; } Q_INVOKABLE Policy myInvokableReturningEnum() { m_qtFunctionInvoked = 37; return BazPolicy; } - Q_INVOKABLE MyQObject::Policy myInvokableReturningQualifiedEnum() - { m_qtFunctionInvoked = 38; return BazPolicy; } + Q_INVOKABLE MyQObject::Strategy myInvokableReturningQualifiedEnum() + { m_qtFunctionInvoked = 38; return BazStrategy; } Q_INVOKABLE QVector<int> myInvokableReturningVectorOfInt() { m_qtFunctionInvoked = 11; return QVector<int>(); } Q_INVOKABLE void myInvokableWithVectorOfIntArg(const QVector<int> &) @@ -410,6 +417,7 @@ protected: int m_readOnlyValue; QKeySequence m_shortcut; CustomType m_customType; + Policy m_enumValue; int m_qtFunctionInvoked; QVariantList m_actuals; QByteArray m_connectedSignal; @@ -417,6 +425,7 @@ protected: }; Q_DECLARE_METATYPE(MyQObject*) +Q_DECLARE_METATYPE(MyQObject::Policy) class MyOtherQObject : public MyQObject { @@ -530,6 +539,24 @@ static QScriptValue getSetProperty(QScriptContext *ctx, QScriptEngine *) return ctx->callee().property("value"); } +static QScriptValue policyToScriptValue(QScriptEngine *engine, const MyQObject::Policy &policy) +{ + return qScriptValueFromValue(engine, policy); +} + +static void policyFromScriptValue(const QScriptValue &value, MyQObject::Policy &policy) +{ + QString str = value.toString(); + if (str == QLatin1String("red")) + policy = MyQObject::FooPolicy; + else if (str == QLatin1String("green")) + policy = MyQObject::BarPolicy; + else if (str == QLatin1String("blue")) + policy = MyQObject::BazPolicy; + else + policy = (MyQObject::Policy)-1; +} + void tst_QScriptExtQObject::getSetStaticProperty() { QCOMPARE(m_engine->evaluate("myObject.noSuchProperty").isUndefined(), true); @@ -751,6 +778,31 @@ void tst_QScriptExtQObject::getSetStaticProperty() QScriptValue::ReadOnly); } + // enum property + QCOMPARE(m_myObject->enumProperty(), MyQObject::BarPolicy); + { + QScriptValue val = m_engine->evaluate("myObject.enumProperty"); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), (int)MyQObject::BarPolicy); + } + m_engine->evaluate("myObject.enumProperty = 2"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BazPolicy); + m_engine->evaluate("myObject.enumProperty = 'BarPolicy'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BarPolicy); + m_engine->evaluate("myObject.enumProperty = 'ScoobyDoo'"); + // ### ouch! Shouldn't QMetaProperty::write() rather not change the value...? + QCOMPARE(m_myObject->enumProperty(), (MyQObject::Policy)-1); + // enum property with custom conversion + qScriptRegisterMetaType<MyQObject::Policy>(m_engine, policyToScriptValue, policyFromScriptValue); + m_engine->evaluate("myObject.enumProperty = 'red'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::FooPolicy); + m_engine->evaluate("myObject.enumProperty = 'green'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BarPolicy); + m_engine->evaluate("myObject.enumProperty = 'blue'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BazPolicy); + m_engine->evaluate("myObject.enumProperty = 'nada'"); + QCOMPARE(m_myObject->enumProperty(), (MyQObject::Policy)-1); + // auto-dereferencing of pointers { QBrush b = QColor(0xCA, 0xFE, 0xBA, 0xBE); @@ -1879,6 +1931,16 @@ void tst_QScriptExtQObject::classEnums() QCOMPARE(m_myObject->qtFunctionActuals().at(0).toInt(), int(MyQObject::BazPolicy)); m_myObject->resetQtFunctionInvoked(); + QCOMPARE(m_engine->evaluate("myObject.myInvokableWithEnumArg('BarPolicy')").isUndefined(), true); + QCOMPARE(m_myObject->qtFunctionInvoked(), 10); + QCOMPARE(m_myObject->qtFunctionActuals().size(), 1); + QCOMPARE(m_myObject->qtFunctionActuals().at(0).toInt(), int(MyQObject::BarPolicy)); + + m_myObject->resetQtFunctionInvoked(); + QVERIFY(m_engine->evaluate("myObject.myInvokableWithEnumArg('NoSuchPolicy')").isError()); + QCOMPARE(m_myObject->qtFunctionInvoked(), -1); + + m_myObject->resetQtFunctionInvoked(); QCOMPARE(m_engine->evaluate("myObject.myInvokableWithQualifiedEnumArg(MyQObject.BazPolicy)").isUndefined(), true); QCOMPARE(m_myObject->qtFunctionInvoked(), 36); QCOMPARE(m_myObject->qtFunctionActuals().size(), 1); diff --git a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp index 64439fb..a52bb3e 100644 --- a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp +++ b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp @@ -57,8 +57,11 @@ private slots: void downCast(); void upCast(); void differentPointers(); + void virtualBaseDifferentPointers(); #ifndef QTEST_NO_RTTI void dynamicCast(); + void dynamicCastDifferentPointers(); + void dynamicCastVirtualBase(); void dynamicCastFailure(); #endif void customDeleter(); @@ -321,6 +324,10 @@ class DiffPtrDerivedData: public Stuffing, public Data { }; +class VirtualDerived: virtual public Data +{ +}; + void tst_QSharedPointer::downCast() { { @@ -439,7 +446,7 @@ void tst_QSharedPointer::differentPointers() DiffPtrDerivedData *aData = new DiffPtrDerivedData; Data *aBase = aData; Q_ASSERT(aData == aBase); - Q_ASSERT(quintptr(&aData) != quintptr(&aBase)); + Q_ASSERT(*reinterpret_cast<quintptr *>(&aData) != *reinterpret_cast<quintptr *>(&aBase)); QSharedPointer<Data> baseptr = QSharedPointer<Data>(aData); QSharedPointer<DiffPtrDerivedData> ptr = qSharedPointerCast<DiffPtrDerivedData>(baseptr); @@ -453,7 +460,7 @@ void tst_QSharedPointer::differentPointers() DiffPtrDerivedData *aData = new DiffPtrDerivedData; Data *aBase = aData; Q_ASSERT(aData == aBase); - Q_ASSERT(quintptr(&aData) != quintptr(&aBase)); + Q_ASSERT(*reinterpret_cast<quintptr *>(&aData) != *reinterpret_cast<quintptr *>(&aBase)); QSharedPointer<DiffPtrDerivedData> ptr = QSharedPointer<DiffPtrDerivedData>(aData); QSharedPointer<Data> baseptr = ptr; @@ -464,23 +471,53 @@ void tst_QSharedPointer::differentPointers() QVERIFY(baseptr == aData); QVERIFY(baseptr == aBase); } +} + +void tst_QSharedPointer::virtualBaseDifferentPointers() +{ + { + VirtualDerived *aData = new VirtualDerived; + Data *aBase = aData; + Q_ASSERT(aData == aBase); + Q_ASSERT(*reinterpret_cast<quintptr *>(&aData) != *reinterpret_cast<quintptr *>(&aBase)); + + QSharedPointer<VirtualDerived> ptr = QSharedPointer<VirtualDerived>(aData); + QSharedPointer<Data> baseptr = qSharedPointerCast<Data>(ptr); + QVERIFY(ptr == baseptr); + QVERIFY(ptr.data() == baseptr.data()); + QVERIFY(ptr == aBase); + QVERIFY(ptr == aData); + QVERIFY(baseptr == aData); + QVERIFY(baseptr == aBase); + } + + { + VirtualDerived *aData = new VirtualDerived; + Data *aBase = aData; + Q_ASSERT(aData == aBase); + Q_ASSERT(*reinterpret_cast<quintptr *>(&aData) != *reinterpret_cast<quintptr *>(&aBase)); - // there is no possibility for different pointers in - // internal reference counting right now - // - // to do that, it's necessary to first implement the ability to - // call (virtual) functions, so that the two differing bases have - // the same reference counter + QSharedPointer<VirtualDerived> ptr = QSharedPointer<VirtualDerived>(aData); + QSharedPointer<Data> baseptr = ptr; + QVERIFY(ptr == baseptr); + QVERIFY(ptr.data() == baseptr.data()); + QVERIFY(ptr == aBase); + QVERIFY(ptr == aData); + QVERIFY(baseptr == aData); + QVERIFY(baseptr == aBase); + } } #ifndef QTEST_NO_RTTI void tst_QSharedPointer::dynamicCast() { - QSharedPointer<Data> baseptr = QSharedPointer<Data>(new DerivedData); + DerivedData *aData = new DerivedData; + QSharedPointer<Data> baseptr = QSharedPointer<Data>(aData); { QSharedPointer<DerivedData> derivedptr = qSharedPointerDynamicCast<DerivedData>(baseptr); QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); } QCOMPARE(int(baseptr.d->weakref), 1); @@ -490,6 +527,7 @@ void tst_QSharedPointer::dynamicCast() QWeakPointer<Data> weakptr = baseptr; QSharedPointer<DerivedData> derivedptr = qSharedPointerDynamicCast<DerivedData>(weakptr); QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); } QCOMPARE(int(baseptr.d->weakref), 1); @@ -498,6 +536,87 @@ void tst_QSharedPointer::dynamicCast() { QSharedPointer<DerivedData> derivedptr = baseptr.dynamicCast<DerivedData>(); QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); + QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); + } + QCOMPARE(int(baseptr.d->weakref), 1); + QCOMPARE(int(baseptr.d->strongref), 1); +} + +void tst_QSharedPointer::dynamicCastDifferentPointers() +{ + // DiffPtrDerivedData derives from both Data and Stuffing + DiffPtrDerivedData *aData = new DiffPtrDerivedData; + QSharedPointer<Data> baseptr = QSharedPointer<Data>(aData); + + { + QSharedPointer<DiffPtrDerivedData> derivedptr = qSharedPointerDynamicCast<DiffPtrDerivedData>(baseptr); + QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); + QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); + } + QCOMPARE(int(baseptr.d->weakref), 1); + QCOMPARE(int(baseptr.d->strongref), 1); + + { + QWeakPointer<Data> weakptr = baseptr; + QSharedPointer<DiffPtrDerivedData> derivedptr = qSharedPointerDynamicCast<DiffPtrDerivedData>(weakptr); + QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); + QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); + } + QCOMPARE(int(baseptr.d->weakref), 1); + QCOMPARE(int(baseptr.d->strongref), 1); + + { + QSharedPointer<DiffPtrDerivedData> derivedptr = baseptr.dynamicCast<DiffPtrDerivedData>(); + QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); + QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); + } + QCOMPARE(int(baseptr.d->weakref), 1); + QCOMPARE(int(baseptr.d->strongref), 1); + + { + Stuffing *nakedptr = dynamic_cast<Stuffing *>(baseptr.data()); + QVERIFY(nakedptr); + + QSharedPointer<Stuffing> otherbaseptr = qSharedPointerDynamicCast<Stuffing>(baseptr); + QVERIFY(!otherbaseptr.isNull()); + QVERIFY(otherbaseptr == nakedptr); + QCOMPARE(otherbaseptr.data(), nakedptr); + QCOMPARE(static_cast<DiffPtrDerivedData*>(otherbaseptr.data()), aData); + } +} + +void tst_QSharedPointer::dynamicCastVirtualBase() +{ + VirtualDerived *aData = new VirtualDerived; + QSharedPointer<Data> baseptr = QSharedPointer<Data>(aData); + + { + QSharedPointer<VirtualDerived> derivedptr = qSharedPointerDynamicCast<VirtualDerived>(baseptr); + QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); + QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); + } + QCOMPARE(int(baseptr.d->weakref), 1); + QCOMPARE(int(baseptr.d->strongref), 1); + + { + QWeakPointer<Data> weakptr = baseptr; + QSharedPointer<VirtualDerived> derivedptr = qSharedPointerDynamicCast<VirtualDerived>(weakptr); + QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); + QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); + } + QCOMPARE(int(baseptr.d->weakref), 1); + QCOMPARE(int(baseptr.d->strongref), 1); + + { + QSharedPointer<VirtualDerived> derivedptr = baseptr.dynamicCast<VirtualDerived>(); + QVERIFY(baseptr == derivedptr); + QCOMPARE(derivedptr.data(), aData); QCOMPARE(static_cast<Data *>(derivedptr.data()), baseptr.data()); } QCOMPARE(int(baseptr.d->weakref), 1); diff --git a/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp b/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp index 86333e0..f501e78 100644 --- a/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp +++ b/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp @@ -145,8 +145,6 @@ private slots: } }; -static const char *IMAP_IP = "62.70.27.18"; - tst_QSocks5SocketEngine::tst_QSocks5SocketEngine() { } @@ -321,12 +319,11 @@ void tst_QSocks5SocketEngine::simpleConnectToIMAP() socketDevice.setProxy(QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1080)); - // Connect to imap.trolltech.com's IP - QVERIFY(!socketDevice.connectToHost(QHostAddress(IMAP_IP), 143)); + QVERIFY(!socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143)); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); QVERIFY(socketDevice.waitForWrite()); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); - QVERIFY(socketDevice.peerAddress() == QHostAddress(IMAP_IP)); + QVERIFY(socketDevice.peerAddress() == QtNetworkSettings::serverIP()); // Wait for the greeting QVERIFY(socketDevice.waitForRead()); @@ -340,7 +337,7 @@ void tst_QSocks5SocketEngine::simpleConnectToIMAP() // Check that the greeting is what we expect it to be QCOMPARE(array.constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; @@ -589,14 +586,14 @@ void tst_QSocks5SocketEngine::tcpSocketBlockingTest() QTcpSocket socket; // Connect - socket.connectToHost("imap.troll.no", 143); + socket.connectToHost(QtNetworkSettings::serverName(), 143); QVERIFY(socket.waitForConnected()); QCOMPARE(socket.state(), QTcpSocket::ConnectedState); // Read greeting QVERIFY(socket.waitForReadyRead(5000)); QString s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + QCOMPARE(s.toLatin1().constData(), "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write NOOP QCOMPARE((int) socket.write("1 NOOP\r\n", 8), 8); @@ -646,7 +643,7 @@ void tst_QSocks5SocketEngine::tcpSocketNonBlockingTest() tcpSocketNonBlocking_socket = &socket; // Connect - socket.connectToHost("imap.troll.no", 143); + socket.connectToHost(QtNetworkSettings::serverName(), 143); QCOMPARE(socket.state(), QTcpSocket::HostLookupState); QTestEventLoop::instance().enterLoop(30); @@ -671,7 +668,7 @@ void tst_QSocks5SocketEngine::tcpSocketNonBlockingTest() // Read greeting QVERIFY(!tcpSocketNonBlocking_data.isEmpty()); QCOMPARE(tcpSocketNonBlocking_data.at(0).toLatin1().constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); tcpSocketNonBlocking_data.clear(); tcpSocketNonBlocking_totalWritten = 0; @@ -834,15 +831,14 @@ void tst_QSocks5SocketEngine::passwordAuth() socketDevice.setProxy(QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1080, "qsockstest", "password")); - // Connect to imap.trolltech.com's IP - QVERIFY(!socketDevice.connectToHost(QHostAddress(IMAP_IP), 143)); + QVERIFY(!socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143)); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); QVERIFY(socketDevice.waitForWrite()); - if (!socketDevice.connectToHost(QHostAddress(IMAP_IP), 143)) { + if (!socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143)) { qDebug("%d, %s", socketDevice.error(), socketDevice.errorString().toLatin1().constData()); } QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); - QVERIFY(socketDevice.peerAddress() == QHostAddress(IMAP_IP)); + QVERIFY(socketDevice.peerAddress() == QtNetworkSettings::serverIP()); // Wait for the greeting QVERIFY(socketDevice.waitForRead()); @@ -856,7 +852,7 @@ void tst_QSocks5SocketEngine::passwordAuth() // Check that the greeting is what we expect it to be QCOMPARE(array.constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; @@ -902,17 +898,16 @@ void tst_QSocks5SocketEngine::passwordAuth2() socketDevice.setProxy(QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1081)); socketDevice.setReceiver(this); - // Connect to imap.trolltech.com's IP - QVERIFY(!socketDevice.connectToHost(QHostAddress(IMAP_IP), 143)); + QVERIFY(!socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143)); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectingState); while (socketDevice.state() == QAbstractSocket::ConnectingState) { QVERIFY(socketDevice.waitForWrite()); - socketDevice.connectToHost(QHostAddress(IMAP_IP), 143); + socketDevice.connectToHost(QtNetworkSettings::serverIP(), 143); } if (socketDevice.state() != QAbstractSocket::ConnectedState) qDebug("%d, %s", socketDevice.error(), socketDevice.errorString().toLatin1().constData()); QVERIFY(socketDevice.state() == QAbstractSocket::ConnectedState); - QVERIFY(socketDevice.peerAddress() == QHostAddress(IMAP_IP)); + QVERIFY(socketDevice.peerAddress() == QtNetworkSettings::serverIP()); // Wait for the greeting QVERIFY(socketDevice.waitForRead()); @@ -926,7 +921,7 @@ void tst_QSocks5SocketEngine::passwordAuth2() // Check that the greeting is what we expect it to be QCOMPARE(array.constData(), - "* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n"); + "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; diff --git a/tests/auto/qsplitter/tst_qsplitter.cpp b/tests/auto/qsplitter/tst_qsplitter.cpp index 33404e4..5fa0286 100644 --- a/tests/auto/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/qsplitter/tst_qsplitter.cpp @@ -55,6 +55,7 @@ #include <qtreeview.h> #include <qlabel.h> #include <qdebug.h> // for file error messages +#include "../../shared/util.h" //TESTED_CLASS= //TESTED_FILES= @@ -1341,9 +1342,7 @@ void tst_QSplitter::task187373_addAbstractScrollAreas() if (addOutsideConstructor) splitter->addWidget(w); - qApp->processEvents(); - - QVERIFY(w->isVisible()); + QTRY_VERIFY(w->isVisible()); QVERIFY(!w->isHidden()); QVERIFY(w->viewport()->isVisible()); QVERIFY(!w->viewport()->isHidden()); diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index 432092a..d87ab7b 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -416,7 +416,7 @@ void tst_QSslSocket::simpleConnect() connect(&socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(exitLoop())); // Start connecting - socket.connectToHost("imap.troll.no", 993); + socket.connectToHost(QtNetworkSettings::serverName(), 993); QCOMPARE(socket.state(), QAbstractSocket::HostLookupState); enterLoop(10); @@ -471,7 +471,7 @@ void tst_QSslSocket::simpleConnectWithIgnore() connect(&socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(exitLoop())); // Start connecting - socket.connectToHost("imap.troll.no", 993); + socket.connectToHost(QtNetworkSettings::serverName(), 993); QCOMPARE(socket.state(), QAbstractSocket::HostLookupState); enterLoop(10); @@ -490,7 +490,7 @@ void tst_QSslSocket::simpleConnectWithIgnore() if (!socket.canReadLine()) enterLoop(10); - QCOMPARE(socket.readAll(), QByteArray("* OK esparsett Cyrus IMAP4 v2.2.8 server ready\r\n")); + QCOMPARE(socket.readAll(), QByteArray("* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID AUTH=PLAIN SASL-IR] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n")); socket.disconnectFromHost(); } @@ -499,36 +499,39 @@ void tst_QSslSocket::sslErrors_data() { QTest::addColumn<QString>("host"); QTest::addColumn<int>("port"); - QTest::addColumn<SslErrorList>("errors"); - - QTest::newRow("imap.troll.no") << "imap.troll.no" << 993 - << (SslErrorList() - << QSslError::HostNameMismatch - << QSslError::SelfSignedCertificateInChain); - QTest::newRow("imap.trolltech.com") << "imap.trolltech.com" << 993 - << (SslErrorList() - << QSslError::SelfSignedCertificateInChain); + QTest::addColumn<SslErrorList>("expected"); + + QTest::newRow(qPrintable(QtNetworkSettings::serverLocalName())) + << QtNetworkSettings::serverLocalName() + << 993 + << (SslErrorList() << QSslError::HostNameMismatch + << QSslError::SelfSignedCertificate); + + QTest::newRow("imap.trolltech.com") + << "imap.trolltech.com" + << 993 + << (SslErrorList() << QSslError::SelfSignedCertificateInChain); } void tst_QSslSocket::sslErrors() { QFETCH(QString, host); QFETCH(int, port); - QFETCH(SslErrorList, errors); + QFETCH(SslErrorList, expected); QSslSocketPtr socket = newSocket(); socket->connectToHostEncrypted(host, port); socket->waitForEncrypted(5000); - SslErrorList list; + SslErrorList output; foreach (QSslError error, socket->sslErrors()) - list << error.error(); + output << error.error(); #ifdef QSSLSOCKET_CERTUNTRUSTED_WORKAROUND - if (list.last() == QSslError::CertificateUntrusted) - list.takeLast(); + if (output.last() == QSslError::CertificateUntrusted) + output.takeLast(); #endif - QCOMPARE(list, errors); + QCOMPARE(output, expected); } void tst_QSslSocket::addCaCertificate() diff --git a/tests/auto/qtcpserver/tst_qtcpserver.cpp b/tests/auto/qtcpserver/tst_qtcpserver.cpp index 50b293d..4fd1827 100644 --- a/tests/auto/qtcpserver/tst_qtcpserver.cpp +++ b/tests/auto/qtcpserver/tst_qtcpserver.cpp @@ -364,7 +364,7 @@ void tst_QTcpServer::ipv6LoopbackPerformanceTest() void tst_QTcpServer::ipv4PerformanceTest() { QTcpSocket probeSocket; - probeSocket.connectToHost("imap.troll.no", 143); + probeSocket.connectToHost(QtNetworkSettings::serverName(), 143); QVERIFY(probeSocket.waitForConnected(5000)); QTcpServer server; diff --git a/tests/auto/qtessellator/testtessellator.cpp b/tests/auto/qtessellator/testtessellator.cpp index bd2795c..423c1e8 100644 --- a/tests/auto/qtessellator/testtessellator.cpp +++ b/tests/auto/qtessellator/testtessellator.cpp @@ -38,7 +38,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include <testtessellator.h> +#include "testtessellator.h" #include <private/qtessellator_p.h> #include "math.h" diff --git a/tests/auto/qtessellator/tst_tessellator.cpp b/tests/auto/qtessellator/tst_tessellator.cpp index 8958ac3..8899285 100644 --- a/tests/auto/qtessellator/tst_tessellator.cpp +++ b/tests/auto/qtessellator/tst_tessellator.cpp @@ -218,8 +218,8 @@ void tst_QTessellator::testArc() const int stop = 1000; #endif for (int i = 0; i < stop; ++i) { - mat.rotate(.01); - mat.scale(.99, .99); + mat.rotate(qreal(.01)); + mat.scale(qreal(.99), qreal(.99)); QPolygonF poly = arc.at(0); QPolygonF vec = poly * mat; QVERIFY(test_arc(vec, true)); @@ -361,11 +361,11 @@ void tst_QTessellator::testRects() QVector<QPointF> v(5); for (int i = 0; i < 5; ++i) v[i] = vec[5 * rect + i]; - if (!test(v.data(), v.size(), false, test_tessellate_polygon_rect, 0.05)) { + if (!test(v.data(), v.size(), false, test_tessellate_polygon_rect, qreal(0.05))) { simplifyTestFailure(v, false); ++failures; } - if (!test(v.data(), v.size(), true, test_tessellate_polygon_rect, 0.05)) { + if (!test(v.data(), v.size(), true, test_tessellate_polygon_rect, qreal(0.05))) { simplifyTestFailure(v, true); ++failures; } diff --git a/tests/auto/qtessellator/utils.cpp b/tests/auto/qtessellator/utils.cpp index 8a9dc1e..d408193 100644 --- a/tests/auto/qtessellator/utils.cpp +++ b/tests/auto/qtessellator/utils.cpp @@ -43,7 +43,7 @@ #include <assert.h> #include <qglobal.h> -#include <qnum.h> +#include "qnum.h" #define FloatToXFixed(i) (int)((i) * 65536) #define IntToXFixed(i) ((i) << 16) diff --git a/tests/auto/qthreadonce/tst_qthreadonce.cpp b/tests/auto/qthreadonce/tst_qthreadonce.cpp index 7e67dc3..f20788a 100644 --- a/tests/auto/qthreadonce/tst_qthreadonce.cpp +++ b/tests/auto/qthreadonce/tst_qthreadonce.cpp @@ -46,7 +46,7 @@ #include <qmutex.h> #include <qthread.h> #include <qwaitcondition.h> -#include <qthreadonce.h> +#include "qthreadonce.h" //TESTED_CLASS= //TESTED_FILES=corelib/thread/qthreadonce.h corelib/thread/qthreadonce.cpp diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index efdaaec..23ead01 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -8412,6 +8412,7 @@ void tst_QWidget::translucentWidget() ColorRedWidget label; label.setFixedSize(16,16); label.setAttribute(Qt::WA_TranslucentBackground); + label.move(qApp->desktop()->availableGeometry().topLeft()); label.show(); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&label); diff --git a/tools/assistant/compat/mainwindow.cpp b/tools/assistant/compat/mainwindow.cpp index 9f91f9b..5de0d3c 100644 --- a/tools/assistant/compat/mainwindow.cpp +++ b/tools/assistant/compat/mainwindow.cpp @@ -312,21 +312,14 @@ void MainWindow::about() { QMessageBox box(this); - // TODO: Remove these variables for 4.6.0. Must keep this way for 4.5.x due to string freeze. - QString edition; - QString info; - QString moreInfo; - box.setText(QString::fromLatin1("<center><img src=\":/trolltech/assistant/images/assistant-128.png\">" "<h3>%1</h3>" - "<p>Version %2 %3</p></center>" - "<p>%4</p>" - "<p>%5</p>" + "<p>Version %2</p></center>" "<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p>" "<p>The program is provided AS IS with NO WARRANTY OF ANY KIND," " INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A" " PARTICULAR PURPOSE.<p/>") - .arg(tr("Qt Assistant")).arg(QLatin1String(QT_VERSION_STR)).arg(edition).arg(info).arg(moreInfo)); + .arg(tr("Qt Assistant")).arg(QLatin1String(QT_VERSION_STR))); box.setWindowTitle(tr("Qt Assistant")); box.setIcon(QMessageBox::NoIcon); box.exec(); diff --git a/tools/assistant/tools/assistant/bookmarkmanager.cpp b/tools/assistant/tools/assistant/bookmarkmanager.cpp index 6f5732f..66475a4 100644 --- a/tools/assistant/tools/assistant/bookmarkmanager.cpp +++ b/tools/assistant/tools/assistant/bookmarkmanager.cpp @@ -536,58 +536,57 @@ void BookmarkWidget::focusInEvent(QFocusEvent *e) bool BookmarkWidget::eventFilter(QObject *object, QEvent *e) { - if (object == this && e->type() == QEvent::KeyPress) { - QKeyEvent *ke = static_cast<QKeyEvent*>(e); + if ((object == this) || (object == treeView->viewport())) { QModelIndex index = treeView->currentIndex(); - switch (ke->key()) { + if (e->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast<QKeyEvent*>(e); if (index.isValid() && searchField->text().isEmpty()) { - case Qt::Key_F2: { - const QModelIndex& source = filterBookmarkModel->mapToSource(index); - QStandardItem *item = - bookmarkManager->treeBookmarkModel()->itemFromIndex(source); + if (ke->key() == Qt::Key_F2) { + QStandardItem *item = bookmarkManager->treeBookmarkModel() + ->itemFromIndex(filterBookmarkModel->mapToSource(index)); if (item) { item->setEditable(true); treeView->edit(index); item->setEditable(false); } - } break; - - case Qt::Key_Delete: { + } else if (ke->key() == Qt::Key_Delete) { bookmarkManager->removeBookmarkItem(treeView, filterBookmarkModel->mapToSource(index)); - } break; + } } - case Qt::Key_Up: - case Qt::Key_Down: - treeView->subclassKeyPressEvent(ke); - break; - - case Qt::Key_Enter: { - case Qt::Key_Return: - index = treeView->selectionModel()->currentIndex(); - if (index.isValid()) { - QString data = index.data(Qt::UserRole + 10).toString(); - if (!data.isEmpty() && data != QLatin1String("Folder")) - emit requestShowLink(data); - } - } break; + switch (ke->key()) { + default: break; + case Qt::Key_Up: { + case Qt::Key_Down: + treeView->subclassKeyPressEvent(ke); + } break; - case Qt::Key_Escape: - emit escapePressed(); - break; + case Qt::Key_Enter: { + case Qt::Key_Return: + index = treeView->selectionModel()->currentIndex(); + if (index.isValid()) { + QString data = index.data(Qt::UserRole + 10).toString(); + if (!data.isEmpty() && data != QLatin1String("Folder")) + emit requestShowLink(data); + } + } break; - default: - break; - } - } - else if (object == treeView->viewport() && e->type() == QEvent::MouseButtonRelease) { - const QModelIndex& index = treeView->currentIndex(); - QMouseEvent *me = static_cast<QMouseEvent*>(e); - if (index.isValid() && (me->button() == Qt::MidButton)) { - QString data = index.data(Qt::UserRole + 10).toString(); - if (!data.isEmpty() && data != QLatin1String("Folder")) - CentralWidget::instance()->setSourceInNewTab(data); + case Qt::Key_Escape: { + emit escapePressed(); + } break; + } + } else if (e->type() == QEvent::MouseButtonRelease) { + if (index.isValid()) { + QMouseEvent *me = static_cast<QMouseEvent*>(e); + bool controlPressed = me->modifiers() & Qt::ControlModifier; + if(((me->button() == Qt::LeftButton) && controlPressed) + || (me->button() == Qt::MidButton)) { + QString data = index.data(Qt::UserRole + 10).toString(); + if (!data.isEmpty() && data != QLatin1String("Folder")) + CentralWidget::instance()->setSourceInNewTab(data); + } + } } } return QWidget::eventFilter(object, e); diff --git a/tools/assistant/tools/assistant/contentwindow.cpp b/tools/assistant/tools/assistant/contentwindow.cpp index 89060bd..9f39de5 100644 --- a/tools/assistant/tools/assistant/contentwindow.cpp +++ b/tools/assistant/tools/assistant/contentwindow.cpp @@ -124,10 +124,10 @@ bool ContentWindow::eventFilter(QObject *o, QEvent *e) QModelIndex index = m_contentWidget->indexAt(me->pos()); QItemSelectionModel *sm = m_contentWidget->selectionModel(); + Qt::MouseButtons button = me->button(); if (index.isValid() && (sm && sm->isSelected(index))) { - if (me->button() == Qt::LeftButton) { - itemClicked(index); - } else if (me->button() == Qt::MidButton) { + if ((button == Qt::LeftButton && (me->modifiers() & Qt::ControlModifier)) + || (button == Qt::MidButton)) { QHelpContentModel *contentModel = qobject_cast<QHelpContentModel*>(m_contentWidget->model()); if (contentModel) { @@ -135,12 +135,15 @@ bool ContentWindow::eventFilter(QObject *o, QEvent *e) if (itm && !isPdfFile(itm)) CentralWidget::instance()->setSourceInNewTab(itm->url()); } + } else if (button == Qt::LeftButton) { + itemClicked(index); } } } return QWidget::eventFilter(o, e); } + void ContentWindow::showContextMenu(const QPoint &pos) { if (!m_contentWidget->indexAt(pos).isValid()) diff --git a/tools/assistant/tools/assistant/indexwindow.cpp b/tools/assistant/tools/assistant/indexwindow.cpp index a2c0950..1117ae0 100644 --- a/tools/assistant/tools/assistant/indexwindow.cpp +++ b/tools/assistant/tools/assistant/indexwindow.cpp @@ -146,8 +146,13 @@ bool IndexWindow::eventFilter(QObject *obj, QEvent *e) && e->type() == QEvent::MouseButtonRelease) { QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(e); QModelIndex idx = m_indexWidget->indexAt(mouseEvent->pos()); - if (idx.isValid() && mouseEvent->button()==Qt::MidButton) - open(m_indexWidget, idx); + if (idx.isValid()) { + Qt::MouseButtons button = mouseEvent->button(); + if (((button == Qt::LeftButton) && (mouseEvent->modifiers() & Qt::ControlModifier)) + || (button == Qt::MidButton)) { + open(m_indexWidget, idx); + } + } } #ifdef Q_OS_MAC else if (obj == m_indexWidget && e->type() == QEvent::KeyPress) { diff --git a/tools/assistant/tools/assistant/mainwindow.cpp b/tools/assistant/tools/assistant/mainwindow.cpp index cb10e3f..2b53f09 100644 --- a/tools/assistant/tools/assistant/mainwindow.cpp +++ b/tools/assistant/tools/assistant/mainwindow.cpp @@ -797,23 +797,16 @@ void MainWindow::showAboutDialog() aboutDia.setPixmap(pix); aboutDia.setWindowTitle(aboutDia.documentTitle()); } else { - // TODO: Remove these variables for 4.6.0. Must keep this way for 4.5.x due to string freeze. - QString edition; - QString info; - QString moreInfo; - QByteArray resources; aboutDia.setText(QString::fromLatin1("<center>" "<h3>%1</h3>" - "<p>Version %2 %3</p></center>" - "<p>%4</p>" - "<p>%5</p>" + "<p>Version %2</p></center>" "<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)" ".</p><p>The program is provided AS IS with NO WARRANTY OF ANY KIND," " INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A" " PARTICULAR PURPOSE.<p/>") - .arg(tr("Qt Assistant")).arg(QLatin1String(QT_VERSION_STR)) - .arg(edition).arg(info).arg(moreInfo), resources); + .arg(tr("Qt Assistant")).arg(QLatin1String(QT_VERSION_STR)), + resources); QLatin1String path(":/trolltech/assistant/images/assistant-128.png"); aboutDia.setPixmap(QString(path)); } @@ -926,25 +919,27 @@ void MainWindow::expandTOC(int depth) void MainWindow::indexingStarted() { - m_progressWidget = new QWidget(); - QLayout* hlayout = new QHBoxLayout(m_progressWidget); + if (!m_progressWidget) { + m_progressWidget = new QWidget(); + QLayout* hlayout = new QHBoxLayout(m_progressWidget); - QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); - QLabel *label = new QLabel(tr("Updating search index")); - label->setSizePolicy(sizePolicy); - hlayout->addWidget(label); + QLabel *label = new QLabel(tr("Updating search index")); + label->setSizePolicy(sizePolicy); + hlayout->addWidget(label); - QProgressBar *progressBar = new QProgressBar(); - progressBar->setRange(0, 0); - progressBar->setTextVisible(false); - progressBar->setSizePolicy(sizePolicy); + QProgressBar *progressBar = new QProgressBar(); + progressBar->setRange(0, 0); + progressBar->setTextVisible(false); + progressBar->setSizePolicy(sizePolicy); - hlayout->setSpacing(6); - hlayout->setMargin(0); - hlayout->addWidget(progressBar); + hlayout->setSpacing(6); + hlayout->setMargin(0); + hlayout->addWidget(progressBar); - statusBar()->addPermanentWidget(m_progressWidget); + statusBar()->addPermanentWidget(m_progressWidget); + } } void MainWindow::indexingFinished() diff --git a/tools/designer/src/designer/versiondialog.cpp b/tools/designer/src/designer/versiondialog.cpp index c21912b..97dc5a1 100644 --- a/tools/designer/src/designer/versiondialog.cpp +++ b/tools/designer/src/designer/versiondialog.cpp @@ -172,15 +172,11 @@ VersionDialog::VersionDialog(QWidget *parent) version = version.arg(tr("Qt Designer")).arg(QLatin1String(QT_VERSION_STR)); version.append(tr("<br/>Qt Designer is a graphical user interface designer for Qt applications.<br/>")); - // TODO: Remove this variable for 4.6.0. Must keep this way for 4.5.x due to string freeze - QString edition; - lbl->setText(tr("%1" - "<br/>%2" "<br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)." "<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND," " INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A" - " PARTICULAR PURPOSE.<br/> ").arg(version).arg(edition)); + " PARTICULAR PURPOSE.<br/> ").arg(version)); lbl->setWordWrap(true); lbl->setOpenExternalLinks(true); diff --git a/tools/kmap2qmap/main.cpp b/tools/kmap2qmap/main.cpp index b518392..12d91c6 100644 --- a/tools/kmap2qmap/main.cpp +++ b/tools/kmap2qmap/main.cpp @@ -384,10 +384,12 @@ static const symbol_synonyms_t symbol_synonyms[] = { static const int symbol_synonyms_size = sizeof(symbol_synonyms)/sizeof(symbol_synonyms_t); // makes the generated array in --header mode a bit more human readable +QT_BEGIN_NAMESPACE static bool operator<(const QWSKeyboard::Mapping &m1, const QWSKeyboard::Mapping &m2) { return m1.keycode != m2.keycode ? m1.keycode < m2.keycode : m1.modifiers < m2.modifiers; } +QT_END_NAMESPACE class KeymapParser { public: diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp index 5157fbe..921b8b6 100644 --- a/tools/linguist/linguist/mainwindow.cpp +++ b/tools/linguist/linguist/mainwindow.cpp @@ -1342,17 +1342,13 @@ void MainWindow::about() QString version = tr("Version %1"); version = version.arg(QLatin1String(QT_VERSION_STR)); - // TODO: Remove this variable for 4.6.0. Must keep this way for 4.5.x due to string freeze. - QString edition; - box.setText(tr("<center><img src=\":/images/splash.png\"/></img><p>%1</p></center>" "<p>Qt Linguist is a tool for adding translations to Qt " "applications.</p>" - "<p>%2</p>" "<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)." "</p><p>The program is provided AS IS with NO WARRANTY OF ANY KIND," " INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A" - " PARTICULAR PURPOSE.</p>").arg(version).arg(edition)); + " PARTICULAR PURPOSE.</p>").arg(version)); box.setWindowTitle(QApplication::translate("AboutDialog", "Qt Linguist")); box.setIcon(QMessageBox::NoIcon); diff --git a/tools/qdbus/qdbusviewer/qdbusviewer.cpp b/tools/qdbus/qdbusviewer/qdbusviewer.cpp index 9c25a89..fcb63a8 100644 --- a/tools/qdbus/qdbusviewer/qdbusviewer.cpp +++ b/tools/qdbus/qdbusviewer/qdbusviewer.cpp @@ -441,21 +441,14 @@ void QDBusViewer::about() { QMessageBox box(this); - // TODO: Remove these variables for 4.6.0. Must keep this way for 4.5.x due to string freeze. - QString edition; - QString info; - QString moreInfo; - box.setText(QString::fromLatin1("<center><img src=\":/trolltech/qdbusviewer/images/qdbusviewer-128.png\">" "<h3>%1</h3>" - "<p>Version %2 %3</p></center>" - "<p>%4</p>" - "<p>%5</p>" + "<p>Version %2</p></center>" "<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p>" "<p>The program is provided AS IS with NO WARRANTY OF ANY KIND," " INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A" " PARTICULAR PURPOSE.<p/>") - .arg(tr("D-Bus Viewer")).arg(QLatin1String(QT_VERSION_STR)).arg(edition).arg(info).arg(moreInfo)); + .arg(tr("D-Bus Viewer")).arg(QLatin1String(QT_VERSION_STR))); box.setWindowTitle(tr("D-Bus Viewer")); box.exec(); } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index d7770bb..e271338 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -3163,7 +3163,7 @@ void HtmlGenerator::findAllFunctions(const InnerNode *node) const FunctionNode *func = static_cast<const FunctionNode *>(*c); if (func->status() > Node::Obsolete && func->metaness() != FunctionNode::Ctor && func->metaness() != FunctionNode::Dtor) { - funcIndex[(*c)->name()].insert((*c)->parent()->name(), *c); + funcIndex[(*c)->name()].insert(tre->fullDocumentName((*c)->parent()), *c); } } } diff --git a/tools/qdoc3/test/classic.css b/tools/qdoc3/test/classic.css index 3704a15..8e9eb78 100644 --- a/tools/qdoc3/test/classic.css +++ b/tools/qdoc3/test/classic.css @@ -1,5 +1,5 @@ BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; + font-family: Arial, Geneva, Helvetica, sans-serif; } BODY,TD { font-size: 90%; @@ -17,10 +17,10 @@ H3 { h3.fn,span.fn { - background-color: #d5e1e8; + background-color: #d5e1d5; border-width: 1px; border-style: solid; - border-color: #84b0c7; + border-color: #66bc29; font-weight: bold; -moz-border-radius: 8px 8px 8px 8px; padding: 6px 0px 6px 10px; @@ -28,7 +28,7 @@ h3.fn,span.fn a:link { - color: #004faf; + color: #0046ad; text-decoration: none } @@ -62,16 +62,6 @@ a.compat:visited text-decoration: none } -td.postheader -{ - font-family: sans-serif -} - -tr.address -{ - font-family: sans-serif -} - body { background: #ffffff; @@ -86,10 +76,10 @@ table td.memItemLeft { border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; + border-top-color: #66bc29; + border-right-color: #66bc29; + border-bottom-color: #66bc29; + border-left-color: #66bc29; border-top-style: solid; border-right-style: none; border-bottom-style: none; @@ -104,10 +94,10 @@ table td.memItemRight { border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; + border-top-color: #66bc29; + border-right-color: #66bc29; + border-bottom-color: #66bc29; + border-left-color: #66bc29; border-top-style: solid; border-right-style: none; border-bottom-style: none; diff --git a/translations/qt_ja_JP.ts b/translations/qt_ja_JP.ts index 7c8b874..55b21d0 100644 --- a/translations/qt_ja_JP.ts +++ b/translations/qt_ja_JP.ts @@ -2,29 +2,12 @@ <!DOCTYPE TS> <TS version="2.0" language="ja"> <context> - <name>AudioOutput</name> - <message> - <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/> - <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+3"/> - <source>Revert back to device '%1'</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> <name>CloseButton</name> <message> - <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/> + <location filename="../src/gui/widgets/qtabbar.cpp" line="+2253"/> <source>Close Tab</source> - <translation type="unfinished"></translation> + <translatorcomment>ToolTip</translatorcomment> + <translation>タブを閉じる</translation> </message> </context> <context> @@ -43,32 +26,50 @@ <message> <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/> <source>Notifications</source> - <translation type="unfinished"></translation> + <translation>通知</translation> </message> <message> <location line="+2"/> <source>Music</source> - <translation type="unfinished"></translation> + <translation>音楽</translation> </message> <message> <location line="+2"/> <source>Video</source> - <translation type="unfinished"></translation> + <translation>動画</translation> </message> <message> <location line="+2"/> <source>Communication</source> - <translation type="unfinished"></translation> + <translation>コミュニケーション</translation> </message> <message> <location line="+2"/> <source>Games</source> - <translation type="unfinished"></translation> + <translation>ゲーム</translation> </message> <message> <location line="+2"/> <source>Accessibility</source> - <translation type="unfinished"></translation> + <translation>アクセシビリティ</translation> + </message> +</context> +<context> + <name>Phonon::AudioOutput</name> + <message> + <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/> + <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> + <translation><html>オーディオ再生デバイス<b>%1</b>が動作しません。<br/><b>%2</b>を使用します。</html></translation> + </message> + <message> + <location line="+13"/> + <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> + <translation><html>より高いパフォーマンスを得られるオーディオデバイス <b>%1</b> が使用可能となったので、使用します。</html></translation> + </message> + <message> + <location line="+3"/> + <source>Revert back to device '%1'</source> + <translation>デバイス '%1' に戻す</translation> </message> </context> <context> @@ -77,13 +78,13 @@ <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/> <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.</source> - <translation type="unfinished"></translation> + <translation>警告: gstreamer0.10-plugins-good がインストールされていません。幾つかの動画機能は使用できません。</translation> </message> <message> <location line="+5"/> <source>Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled</source> - <translation type="unfinished"></translation> + <translation>警告: GStreamer plugin がインストールされていません。すべての音声、動画機能は使用できません</translation> </message> </context> <context> @@ -94,12 +95,14 @@ Check your Gstreamer installation and make sure you have libgstreamer-plugins-base installed.</source> - <translation type="unfinished"></translation> + <translation>再生できません。 + +Gstreamer と libgstreamer-plugins-base が正しくインストールされているか確認してください。</translation> </message> <message> <location line="+113"/> <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source> - <translation type="unfinished"></translation> + <translation>必要なコーデックがみつかりません。このコンテンツを再生するためには、以下のコーデックをインストールする必要があります: %0</translation> </message> <message> <location line="+676"/> @@ -111,27 +114,27 @@ have libgstreamer-plugins-base installed.</source> <location line="+335"/> <location line="+24"/> <source>Could not open media source.</source> - <translation type="unfinished"></translation> + <translation>メディアソースを開くことができません。</translation> </message> <message> <location line="-403"/> <source>Invalid source type.</source> - <translation type="unfinished"></translation> + <translation>無効なソースの形式です。</translation> </message> <message> <location line="+377"/> <source>Could not locate media source.</source> - <translation type="unfinished"></translation> + <translation>メディアソースがみつかりません。</translation> </message> <message> <location line="+10"/> <source>Could not open audio device. The device is already in use.</source> - <translation type="unfinished"></translation> + <translation>オーディオデバイスを開くことができません。デバイスは既に他のプロセスにより使用されています。</translation> </message> <message> <location line="+13"/> <source>Could not decode media source.</source> - <translation type="unfinished"></translation> + <translation>メディアソースを開くことができません。見つからないか、未知の形式です。</translation> </message> </context> <context> @@ -139,15 +142,22 @@ have libgstreamer-plugins-base installed.</source> <message> <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/> <location line="+18"/> + <location line="+129"/> + <location line="+15"/> <source>Volume: %1%</source> - <translation type="unfinished"></translation> + <translation>音量: %1%</translation> </message> <message> - <location line="-15"/> + <location line="-159"/> <location line="+18"/> <location line="+54"/> <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source> - <translation type="unfinished"></translation> + <translation>スライダを用いて音量を指定してください。左端が0%、右端が%1%になります</translation> + </message> + <message> + <location line="+67"/> + <source>Muted</source> + <translation>ミュート</translation> </message> </context> <context> @@ -168,12 +178,12 @@ have libgstreamer-plugins-base installed.</source> <message> <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/> <source>True</source> - <translation>True</translation> + <translation>真</translation> </message> <message> <location line="+1"/> <source>False</source> - <translation>False</translation> + <translation>偽</translation> </message> <message> <location line="+505"/> @@ -209,7 +219,7 @@ have libgstreamer-plugins-base installed.</source> <translation>ディレクトリを選択</translation> </message> <message> - <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/> + <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+865"/> <source>Copy or Move a File</source> <translation>ファイルをコピーまたは移動</translation> </message> @@ -226,7 +236,7 @@ have libgstreamer-plugins-base installed.</source> </message> <message> <location line="-22"/> - <location line="+1575"/> + <location line="+1579"/> <source>Cancel</source> <translation>キャンセル</translation> </message> @@ -344,17 +354,17 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+2"/> <source>Symlink to File</source> - <translation>ファイルへのSymlink</translation> + <translation>ファイルへのシンボリックリンク</translation> </message> <message> <location line="+1"/> <source>Symlink to Directory</source> - <translation>ディレクトリへのSymlink</translation> + <translation>ディレクトリへのシンボリックリンク</translation> </message> <message> <location line="+1"/> <source>Symlink to Special</source> - <translation>スペシャルへのSymlink</translation> + <translation>スペシャルファイルへのシンボリックリンク</translation> </message> <message> <location line="+1"/> @@ -455,7 +465,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+2"/> <source>the symlink</source> - <translation>Symlink</translation> + <translation>シンボリックリンク</translation> </message> <message> <location line="+3"/> @@ -465,7 +475,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+1"/> <source><qt>Are you sure you wish to delete %1 "%2"?</qt></source> - <translation><qt>%1「%2」を削除しますか?</qt></translation> + <translation><qt>%1 "%2" を削除しますか?</qt></translation> </message> <message> <location line="+2"/> @@ -556,8 +566,9 @@ to %2</source> <translation>名前を変更できませんでした %1 -へ -%2</translation> +を +%2 +へ</translation> </message> <message> <location line="+25"/> @@ -607,13 +618,13 @@ to <context> <name>Q3TabDialog</name> <message> - <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/> - <location line="+814"/> + <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/> + <location line="+824"/> <source>OK</source> <translation>OK</translation> </message> <message> - <location line="-356"/> + <location line="-366"/> <source>Apply</source> <translation>適用</translation> </message> @@ -737,7 +748,7 @@ to <message> <location line="+2"/> <source>Displays the name of the window and contains controls to manipulate it</source> - <translation>ウィンドウの名前を表示し、ウィンドウを操作するコントロールを含みます</translation> + <translation>ウィンドウの名前と、ウィンドウを操作するコントロールを表示します</translation> </message> </context> <context> @@ -755,43 +766,43 @@ to <location line="+260"/> <location line="+4"/> <source>The protocol `%1' is not supported</source> - <translation>プロトコル「%1」はサポートされていません</translation> + <translation>プロトコル '%1' はサポートされていません</translation> </message> <message> <location line="-260"/> <source>The protocol `%1' does not support listing directories</source> - <translation>プロトコル「%1」ではディレクトリのリストをサポートしていません</translation> + <translation>プロトコル '%1' はディレクトリのリスティングをサポートしていません</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support creating new directories</source> - <translation>プロトコル「%1」では新しいディレクトリの作成をサポートしていません</translation> + <translation>プロトコル '%1' は新しいディレクトリの作成をサポートしていません</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support removing files or directories</source> - <translation>プロトコル「%1」ではファイルまたはディレクトリの削除をサポートしていません</translation> + <translation>プロトコル '%1' はファイルまたはディレクトリの削除をサポートしていません</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support renaming files or directories</source> - <translation>プロトコル「%1」ではファイルまたはディレクトリの名前の変更をサポートしていません</translation> + <translation>プロトコル '%1' はファイルまたはディレクトリの名前の変更をサポートしていません</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support getting files</source> - <translation>プロトコル「%1」ではファイルの取得をサポートしていません</translation> + <translation>プロトコル '%1' はファイルの取得をサポートしていません</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support putting files</source> - <translation>プロトコル「%1」ではファイルの送信をサポートしていません</translation> + <translation>プロトコル '%1' はファイルの送信をサポートしていません</translation> </message> <message> <location line="+243"/> <location line="+4"/> <source>The protocol `%1' does not support copying or moving files or directories</source> - <translation>プロトコル「%1」ではファイルまたはディレクトリのコピーまたは移動をサポートしていません</translation> + <translation>プロトコル '%1' はファイルまたはディレクトリのコピーまたは移動をサポートしていません</translation> </message> <message> <location line="+237"/> @@ -848,14 +859,15 @@ to <message> <location line="+141"/> <source>Connection timed out</source> - <translation type="unfinished">接続がタイムアウトしました</translation> + <translation>接続がタイムアウトしました</translation> </message> <message> <location line="-547"/> <location line="+787"/> <location line="+208"/> <source>Operation on socket is not supported</source> - <translation type="unfinished"></translation> + <translatorcomment>抽象ソケットクラスでのソケットのエラー</translatorcomment> + <translation>このソケットへのこの操作はサポートされていません</translation> </message> <message> <location line="+137"/> @@ -870,13 +882,13 @@ to <message> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/> <source>Network unreachable</source> - <translation type="unfinished">ネットワークへ到達できません</translation> + <translation>ネットワークへ到達できません</translation> </message> </context> <context> <name>QAbstractSpinBox</name> <message> - <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/> + <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1200"/> <source>&Step up</source> <translation>上(&S)</translation> </message> @@ -888,7 +900,7 @@ to <message> <location line="-8"/> <source>&Select All</source> - <translation type="unfinished"></translation> + <translation>すべてを選択(&S)</translation> </message> </context> <context> @@ -914,7 +926,7 @@ to <translation>互換性のないQtライブラリエラー</translation> </message> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2248"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2238"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> @@ -940,7 +952,7 @@ to <message> <location/> <source>COM &Object:</source> - <translation>COM オブジェクト(&O)</translation> + <translation>COM オブジェクト(&O):</translation> </message> </context> <context> @@ -1001,7 +1013,7 @@ to <message> <location line="+101"/> <source>Select Color</source> - <translation type="unfinished"></translation> + <translation>色</translation> </message> <message> <location line="+137"/> @@ -1046,17 +1058,17 @@ to <message> <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/> <source>False</source> - <translation type="unfinished">False</translation> + <translation>偽</translation> </message> <message> <location line="+1"/> <source>True</source> - <translation type="unfinished">True</translation> + <translation>真</translation> </message> <message> <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/> <source>Close</source> - <translation type="unfinished">閉じる</translation> + <translation>閉じる</translation> </message> </context> <context> @@ -1065,19 +1077,19 @@ to <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/> <source>%1: key is empty</source> <comment>QSystemSemaphore</comment> - <translation type="unfinished"></translation> + <translation>%1: キーが空です</translation> </message> <message> <location line="+12"/> <source>%1: unable to make key</source> <comment>QSystemSemaphore</comment> - <translation type="unfinished"></translation> + <translation>%1: キーを作成できません</translation> </message> <message> <location line="+9"/> <source>%1: ftok failed</source> <comment>QSystemSemaphore</comment> - <translation type="unfinished"></translation> + <translation>%1: fork に失敗しました</translation> </message> </context> <context> @@ -1165,17 +1177,17 @@ to <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/> <source>QDial</source> - <translation type="unfinished"></translation> + <translation>ダイヤル</translation> </message> <message> <location line="+2"/> <source>SpeedoMeter</source> - <translation type="unfinished"></translation> + <translation>スピードメータ</translation> </message> <message> <location line="+2"/> <source>SliderHandle</source> - <translation type="unfinished"></translation> + <translation>スライダハンドル</translation> </message> </context> <context> @@ -1183,12 +1195,12 @@ to <message> <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/> <source>What's This?</source> - <translation>ヒント</translation> + <translation>ヒント?</translation> </message> <message> <location line="-115"/> <source>Done</source> - <translation type="unfinished"></translation> + <translation>終了</translation> </message> </context> <context> @@ -1203,7 +1215,7 @@ to <message> <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+9"/> <source>Cancel</source> - <translation type="unfinished">キャンセル</translation> + <translation>キャンセル</translation> </message> <message> <location line="+6"/> @@ -1233,12 +1245,12 @@ to <message> <location line="-18"/> <source>Save</source> - <translation type="unfinished">保存</translation> + <translation>保存</translation> </message> <message> <location line="+0"/> <source>&Save</source> - <translation type="unfinished">保存(&S)</translation> + <translation>保存(&S)</translation> </message> <message> <location line="+3"/> @@ -1248,17 +1260,17 @@ to <message> <location line="+3"/> <source>&Cancel</source> - <translation type="unfinished">キャンセル(&C)</translation> + <translation>キャンセル(&C)</translation> </message> <message> <location line="+3"/> <source>Close</source> - <translation type="unfinished">閉じる</translation> + <translation>閉じる</translation> </message> <message> <location line="+0"/> <source>&Close</source> - <translation type="unfinished">閉じる(&C)</translation> + <translation>閉じる(&C)</translation> </message> <message> <location line="+6"/> @@ -1313,13 +1325,13 @@ to <message> <location line="-56"/> <source>&OK</source> - <translation type="unfinished">OK(&O)</translation> + <translation>OK(&O)</translation> </message> </context> <context> <name>QDirModel</name> <message> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+454"/> <source>Name</source> <translation>名前</translation> </message> @@ -1351,17 +1363,17 @@ to <message> <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/> <source>Close</source> - <translation type="unfinished">閉じる</translation> + <translation>閉じる</translation> </message> <message> <location line="+2"/> <source>Dock</source> - <translation type="unfinished"></translation> + <translation>ドック</translation> </message> <message> <location line="+1"/> <source>Float</source> - <translation type="unfinished"></translation> + <translation>フロート</translation> </message> </context> <context> @@ -1369,12 +1381,12 @@ to <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/> <source>More</source> - <translation type="unfinished">増やす</translation> + <translation>増やす</translation> </message> <message> <location line="+2"/> <source>Less</source> - <translation type="unfinished">減らす</translation> + <translation>減らす</translation> </message> </context> <context> @@ -1392,7 +1404,7 @@ to <message> <location line="+3"/> <source>Fatal Error:</source> - <translation>致命的エラー:</translation> + <translation>致命的なエラー:</translation> </message> <message> <location line="+193"/> @@ -1409,41 +1421,41 @@ to <name>QFile</name> <message> <location filename="../src/corelib/io/qfile.cpp" line="+708"/> - <location line="+141"/> + <location line="+142"/> <source>Destination file exists</source> - <translation type="unfinished"></translation> + <translation>新しい名前のファイルは既に存在します</translation> </message> <message> <location line="-108"/> <source>Cannot remove source file</source> - <translation type="unfinished"></translation> + <translation>元のファイルを削除できません</translation> </message> <message> - <location line="+120"/> + <location line="+121"/> <source>Cannot open %1 for input</source> - <translation type="unfinished"></translation> + <translation>コピー元ファイル %1 を読めません</translation> </message> <message> <location line="+17"/> <source>Cannot open for output</source> - <translation type="unfinished"></translation> + <translation>コピー先のファイルをオープンできません</translation> </message> <message> <location line="+10"/> <source>Failure to write block</source> - <translation type="unfinished"></translation> + <translation>書き込みに失敗しました</translation> </message> <message> <location line="+13"/> <source>Cannot create %1 for output</source> - <translation type="unfinished"></translation> + <translation>コピー先として %1 を作成できません</translation> </message> </context> <context> <name>QFileDialog</name> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/> - <location line="+444"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+514"/> + <location line="+447"/> <source>All Files (*)</source> <translation>すべてのファイル(*)</translation> </message> @@ -1453,33 +1465,33 @@ to <translation>ディレクトリ</translation> </message> <message> - <location line="-644"/> - <location line="+648"/> + <location line="-647"/> + <location line="+651"/> <source>Directory:</source> <translation>ディレクトリ:</translation> </message> <message> - <location line="-646"/> - <location line="+652"/> + <location line="-649"/> + <location line="+655"/> <source>File &name:</source> - <translation>ファイル名:</translation> + <translation>ファイル名(&N):</translation> </message> <message> <location line="-13"/> <location line="+50"/> - <location line="+1471"/> + <location line="+1467"/> <location line="+75"/> <source>&Open</source> <translation>オープン(&O)</translation> </message> <message> - <location line="-1596"/> + <location line="-1592"/> <location line="+50"/> <source>&Save</source> <translation>保存(&S)</translation> </message> <message> - <location line="-730"/> + <location line="-733"/> <source>Open</source> <translation>オープン</translation> </message> @@ -1499,7 +1511,7 @@ Please verify the correct file name was given</source> <location line="+1515"/> <source>%1 already exists. Do you want to replace it?</source> - <translation>%1はすでに存在します。 + <translation>%1 はすでに存在します。 置き換えますか?</translation> </message> <message> @@ -1518,7 +1530,7 @@ Please verify the correct file name was given.</source> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/> - <location line="+862"/> + <location line="+861"/> <source>%1 Directory not found. Please verify the correct directory name was given.</source> @@ -1531,7 +1543,7 @@ Please verify the correct directory name was given.</source> <translation type="obsolete">ソート</translation> </message> <message> - <location line="-2312"/> + <location line="-2311"/> <source>&Rename</source> <translation>名前の変更(&R)</translation> </message> @@ -1619,14 +1631,38 @@ Please verify the correct directory name was given.</source> <translation>ファイル</translation> </message> <message> - <location line="+29"/> + <location line="+5"/> + <source>File Folder</source> + <comment>Match Windows Explorer</comment> + <translation>ファイルフォルダ</translation> + </message> + <message> + <location line="+2"/> + <source>Folder</source> + <comment>All other platforms</comment> + <translation>フォルダ</translation> + </message> + <message> + <location line="+9"/> + <source>Alias</source> + <comment>Mac OS X Finder</comment> + <translation>エイリアス</translation> + </message> + <message> + <location line="+2"/> + <source>Shortcut</source> + <comment>All other platforms</comment> + <translation>ショートカット</translation> + </message> + <message> + <location line="+7"/> <source>Unknown</source> <translation>不明</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/> <source>All Files (*.*)</source> - <translation type="unfinished">すべてのファイル(*.*)</translation> + <translation>すべてのファイル(*.*)</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-31"/> @@ -1642,16 +1678,16 @@ Please verify the correct directory name was given.</source> <translation type="obsolete">ディレクトリを選択</translation> </message> <message> - <location line="+2123"/> + <location line="+2122"/> <source>'%1' is write protected. Do you want to delete it anyway?</source> <translation>'%1' は書き込みが禁止されています。 -本当に削除しますか?</translation> +本当に削除しますか?</translation> </message> <message> <location line="+5"/> <source>Are sure you want to delete '%1'?</source> - <translation>'%1' を本当に削除しますか?</translation> + <translation>'%1' を本当に削除しますか?</translation> </message> <message> <location line="+15"/> @@ -1659,46 +1695,46 @@ Do you want to delete it anyway?</source> <translation>ディレクトリを削除できませんでした。</translation> </message> <message> - <location line="-2147"/> + <location line="-2146"/> <source>Find Directory</source> - <translation type="unfinished">ディレクトリの検索</translation> + <translation>ディレクトリの検索</translation> </message> <message> <location line="+29"/> <source>Show </source> - <translation type="unfinished"></translation> + <translation>表示</translation> </message> <message> <location line="+7"/> <source>&New Folder</source> - <translation type="unfinished"></translation> + <translation>新しいフォルダ(&N)</translation> </message> <message> - <location line="+656"/> + <location line="+659"/> <location line="+38"/> <source>&Choose</source> - <translation type="unfinished"></translation> + <translation>選択(&C)</translation> </message> <message> - <location line="+1269"/> + <location line="+1265"/> <source>New Folder</source> - <translation type="unfinished">新しいフォルダ</translation> + <translation>新しいフォルダ</translation> </message> <message> <location line="+555"/> <source>Recent Places</source> - <translation type="unfinished"></translation> + <translation>履歴</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> <source>Forward</source> - <translation type="unfinished">進む</translation> + <translation>進む</translation> </message> <message> - <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/> + <location filename="../src/gui/dialogs/qsidebar.cpp" line="+437"/> <source>Remove</source> - <translation type="unfinished"></translation> + <translation>削除</translation> </message> </context> <context> @@ -1732,48 +1768,53 @@ Do you want to delete it anyway?</source> </message> <message> <location line="-156"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+471"/> <source>%1 TB</source> - <translation type="unfinished"></translation> + <translation>%1 TB</translation> </message> <message> <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> <source>%1 GB</source> - <translation type="unfinished"></translation> + <translation>%1 GB</translation> </message> <message> <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> <source>%1 MB</source> - <translation type="unfinished"></translation> + <translation>%1 MB</translation> </message> <message> <location line="+2"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/> <source>%1 KB</source> - <translation type="unfinished"></translation> + <translation>%1 KB</translation> </message> <message> <location line="+1"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/> <source>%1 bytes</source> - <translation type="unfinished"></translation> + <translation>%1 バイト</translation> </message> <message> <location line="+77"/> <source>Invalid filename</source> - <translation type="unfinished"></translation> + <translation>無効なファイル名</translation> </message> <message> <location line="+1"/> <source><b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.</source> - <translation type="unfinished"></translation> + <translation><b>ファイル名 "%1" は使用できません。</b><p>名前を短くしたり、アクセント記号などを削除して再度試してください。</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/> + <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+248"/> <source>My Computer</source> - <translation type="unfinished">マイ コンピュータ</translation> + <translation>マイ コンピュータ</translation> </message> <message> <location line="+2"/> <source>Computer</source> - <translation type="unfinished"></translation> + <translation>コンピュータ</translation> </message> </context> <context> @@ -1782,215 +1823,216 @@ Do you want to delete it anyway?</source> <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/> <location line="+1176"/> <source>Normal</source> - <translation type="unfinished"></translation> + <translatorcomment>ここはどう訳すべきか...</translatorcomment> + <translation>明朝</translation> </message> <message> <location line="-1173"/> <location line="+12"/> <location line="+1149"/> <source>Bold</source> - <translation type="unfinished"></translation> + <translation>ゴシック</translation> </message> <message> <location line="-1158"/> <location line="+1160"/> <source>Demi Bold</source> - <translation type="unfinished"></translation> + <translation>Demi Bold</translation> </message> <message> <location line="-1157"/> <location line="+18"/> <location line="+1135"/> <source>Black</source> - <translation type="unfinished"></translation> + <translation>太字</translation> </message> <message> <location line="-1145"/> <source>Demi</source> - <translation type="unfinished"></translation> + <translation>Demi</translation> </message> <message> <location line="+6"/> <location line="+1145"/> <source>Light</source> - <translation type="unfinished"></translation> + <translation>細字</translation> </message> <message> <location line="-1004"/> <location line="+1007"/> <source>Italic</source> - <translation type="unfinished"></translation> + <translation>イタリック</translation> </message> <message> <location line="-1004"/> <location line="+1006"/> <source>Oblique</source> - <translation type="unfinished"></translation> + <translation>斜体</translation> </message> <message> <location line="+705"/> <source>Any</source> - <translation type="unfinished"></translation> + <translation>すべて</translation> </message> <message> <location line="+3"/> <source>Latin</source> - <translation type="unfinished"></translation> + <translation>ラテン</translation> </message> <message> <location line="+3"/> <source>Greek</source> - <translation type="unfinished"></translation> + <translation>ギリシャ</translation> </message> <message> <location line="+3"/> <source>Cyrillic</source> - <translation type="unfinished"></translation> + <translation>キリル</translation> </message> <message> <location line="+3"/> <source>Armenian</source> - <translation type="unfinished"></translation> + <translation>アルメニア</translation> </message> <message> <location line="+3"/> <source>Hebrew</source> - <translation type="unfinished"></translation> + <translation>ヘブライ</translation> </message> <message> <location line="+3"/> <source>Arabic</source> - <translation type="unfinished"></translation> + <translation>アラビア</translation> </message> <message> <location line="+3"/> <source>Syriac</source> - <translation type="unfinished"></translation> + <translation>シリア</translation> </message> <message> <location line="+3"/> <source>Thaana</source> - <translation type="unfinished"></translation> + <translation>ターナ</translation> </message> <message> <location line="+3"/> <source>Devanagari</source> - <translation type="unfinished"></translation> + <translation>デーヴァナーガリー</translation> </message> <message> <location line="+3"/> <source>Bengali</source> - <translation type="unfinished"></translation> + <translation>ベンガル</translation> </message> <message> <location line="+3"/> <source>Gurmukhi</source> - <translation type="unfinished"></translation> + <translation>グルムキー</translation> </message> <message> <location line="+3"/> <source>Gujarati</source> - <translation type="unfinished"></translation> + <translation>グジャラート</translation> </message> <message> <location line="+3"/> <source>Oriya</source> - <translation type="unfinished"></translation> + <translation>オリヤー</translation> </message> <message> <location line="+3"/> <source>Tamil</source> - <translation type="unfinished"></translation> + <translation>タミル</translation> </message> <message> <location line="+3"/> <source>Telugu</source> - <translation type="unfinished"></translation> + <translation>テルグ</translation> </message> <message> <location line="+3"/> <source>Kannada</source> - <translation type="unfinished"></translation> + <translation>カンナダ</translation> </message> <message> <location line="+3"/> <source>Malayalam</source> - <translation type="unfinished"></translation> + <translation>マラヤーラム</translation> </message> <message> <location line="+3"/> <source>Sinhala</source> - <translation type="unfinished"></translation> + <translation>シンハラ</translation> </message> <message> <location line="+3"/> <source>Thai</source> - <translation type="unfinished"></translation> + <translation>タイ</translation> </message> <message> <location line="+3"/> <source>Lao</source> - <translation type="unfinished"></translation> + <translation>ラーオ</translation> </message> <message> <location line="+3"/> <source>Tibetan</source> - <translation type="unfinished"></translation> + <translation>チベット</translation> </message> <message> <location line="+3"/> <source>Myanmar</source> - <translation type="unfinished"></translation> + <translation>ビルマ</translation> </message> <message> <location line="+3"/> <source>Georgian</source> - <translation type="unfinished"></translation> + <translation>グルジア</translation> </message> <message> <location line="+3"/> <source>Khmer</source> - <translation type="unfinished"></translation> + <translation>クメール</translation> </message> <message> <location line="+3"/> <source>Simplified Chinese</source> - <translation type="unfinished"></translation> + <translation>簡体中国</translation> </message> <message> <location line="+3"/> <source>Traditional Chinese</source> - <translation type="unfinished"></translation> + <translation>繁体中国</translation> </message> <message> <location line="+3"/> <source>Japanese</source> - <translation type="unfinished"></translation> + <translation>日本</translation> </message> <message> <location line="+3"/> <source>Korean</source> - <translation type="unfinished"></translation> + <translation>ハングル</translation> </message> <message> <location line="+3"/> <source>Vietnamese</source> - <translation type="unfinished"></translation> + <translation>ベトナム</translation> </message> <message> <location line="+3"/> <source>Symbol</source> - <translation type="unfinished"></translation> + <translation>記号</translation> </message> <message> <location line="+3"/> <source>Ogham</source> - <translation type="unfinished"></translation> + <translation>オガム</translation> </message> <message> <location line="+3"/> <source>Runic</source> - <translation type="unfinished"></translation> + <translation>ルーン</translation> </message> </context> <context> @@ -2065,7 +2107,7 @@ Do you want to delete it anyway?</source> <message> <location line="+4"/> <source>Connection timed out to host %1</source> - <translation type="unfinished"></translation> + <translation>ホスト %1 への接続がタイムアウトしました</translation> </message> <message> <location line="+104"/> @@ -2231,7 +2273,7 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/network/access/qhttp.cpp" line="+365"/> <source>HTTPS connection requested but SSL support not compiled in</source> - <translation type="unfinished"></translation> + <translation>HTTPSによる接続が要求されましたが、SSLのサポートがコンパイル時に組み込まれていないため、接続できません</translation> </message> <message> <location line="+1209"/> @@ -2268,15 +2310,15 @@ Do you want to delete it anyway?</source> <message> <location line="+179"/> <source>Unknown authentication method</source> - <translation type="unfinished"></translation> + <translation>非対応の認証方法が要求されました</translation> </message> <message> <location line="+183"/> <source>Error writing response to device</source> - <translation type="unfinished"></translation> + <translation>デバイスへの書き込み時にエラーが発生しました</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+968"/> <location filename="../src/qt3support/network/q3http.cpp" line="+38"/> <source>Connection refused</source> <translation>接続が拒否されました</translation> @@ -2344,42 +2386,42 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/network/access/qhttp.cpp" line="-135"/> <source>Proxy authentication required</source> - <translation type="unfinished"></translation> + <translation>プロキシーの認証が必要です</translation> </message> <message> <location line="+4"/> <source>Authentication required</source> - <translation type="unfinished"></translation> + <translation>認証が必要です</translation> </message> <message> <location line="-138"/> <source>Connection refused (or timed out)</source> - <translation type="unfinished"></translation> + <translation>接続が拒否されたか、タイムアウトしました</translation> </message> <message> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/> <source>Proxy requires authentication</source> - <translation type="unfinished"></translation> + <translation>プロキシーの認証が必要です</translation> </message> <message> <location line="+3"/> <source>Host requires authentication</source> - <translation type="unfinished"></translation> + <translation>ホストの認証が必要です</translation> </message> <message> <location line="+3"/> <source>Data corrupted</source> - <translation type="unfinished"></translation> + <translation>データが破損しています</translation> </message> <message> <location line="+3"/> <source>Unknown protocol specified</source> - <translation type="unfinished"></translation> + <translation>未対応のプロトコルです</translation> </message> <message> <location line="+3"/> <source>SSL handshake failed</source> - <translation type="unfinished"></translation> + <translation>SSLのハンドシェークに失敗しました</translation> </message> </context> <context> @@ -2387,53 +2429,53 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/> <source>Did not receive HTTP response from proxy</source> - <translation type="unfinished"></translation> + <translation>プロキシーからHTTPレスポンスを受信できませんでした</translation> </message> <message> <location line="+25"/> <source>Error parsing authentication request from proxy</source> - <translation type="unfinished"></translation> + <translation>プロキシーからの認証要求のパースに失敗しました</translation> </message> <message> <location line="+31"/> <source>Authentication required</source> - <translation type="unfinished"></translation> + <translation>認証が必要です</translation> </message> <message> <location line="+27"/> <source>Proxy denied connection</source> - <translation type="unfinished"></translation> + <translation>プロキシーが接続を拒否しました</translation> </message> <message> <location line="+10"/> <source>Error communicating with HTTP proxy</source> - <translation type="unfinished"></translation> + <translation>HTTP プロキシーとの通信にて、エラーが発生しました</translation> </message> <message> <location line="+23"/> <source>Proxy server not found</source> - <translation type="unfinished"></translation> + <translation>プロキシーサーバが見つかりません</translation> </message> <message> <location line="+2"/> <source>Proxy connection refused</source> - <translation type="unfinished"></translation> + <translation>プロキシーが接続を拒否しました</translation> </message> <message> <location line="+2"/> <source>Proxy server connection timed out</source> - <translation type="unfinished"></translation> + <translation>プロキシーとの接続がタイムアウトしました</translation> </message> <message> <location line="+2"/> <source>Proxy connection closed prematurely</source> - <translation type="unfinished"></translation> + <translation>プロキシーの接続が通信の終了前に切断されました</translation> </message> </context> <context> <name>QIBaseDriver</name> <message> - <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/> + <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1435"/> <source>Error opening database</source> <translation>データベースのオープンでエラーが発生しました</translation> </message> @@ -2566,7 +2608,7 @@ Do you want to delete it anyway?</source> <translation>デバイスの残り容量がありません</translation> </message> <message> - <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/> + <location filename="../src/corelib/io/qiodevice.cpp" line="+1540"/> <source>Unknown error</source> <translation>不明なエラー</translation> </message> @@ -2599,7 +2641,7 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/> <source>Enter a value:</source> - <translation type="unfinished"></translation> + <translation>数値を入力:</translation> </message> </context> <context> @@ -2650,35 +2692,35 @@ Do you want to delete it anyway?</source> <location line="-377"/> <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/> <source>The shared library was not found.</source> - <translation type="unfinished"></translation> + <translation>共有ライブラリがみつかりません。</translation> </message> <message> <location line="+2"/> <source>The file '%1' is not a valid Qt plugin.</source> - <translation type="unfinished"></translation> + <translation>ファイル '%1' は Qt プラグインではありません。</translation> </message> <message> <location line="+43"/> <source>The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)</source> - <translation type="unfinished"></translation> + <translation>プラグイン '%1' はこの Qt と互換性のないライブラリを使用しています。 (デバック版とリリース版のライブラリを同時に使用することはできません)</translation> </message> <message> <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/> <source>Cannot load library %1: %2</source> - <translation type="unfinished"></translation> + <translation>ライブラリ '%1' を読み込むことができません: %2</translation> </message> <message> <location line="+16"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+26"/> <source>Cannot unload library %1: %2</source> - <translation type="unfinished"></translation> + <translation>ライブラリ %1 を解放することができません: %2</translation> </message> <message> <location line="+31"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/> <source>Cannot resolve symbol "%1" in %2: %3</source> - <translation type="unfinished"></translation> + <translation>'%2'に含まれる識別子 "%1" を解決できません: %3</translation> </message> </context> <context> @@ -2723,25 +2765,24 @@ Do you want to delete it anyway?</source> <name>QLocalServer</name> <message> <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/> - <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/> + <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+233"/> <source>%1: Name error</source> - <translation type="unfinished"></translation> + <translation>%1: 名前の解決に失敗</translation> </message> <message> <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/> <source>%1: Permission denied</source> - <translation type="unfinished"></translation> + <translation>%1: 許可されていません</translation> </message> <message> <location line="+12"/> <source>%1: Address in use</source> - <translation type="unfinished"></translation> + <translation>%1: アドレスは既に使用されています</translation> </message> <message> <location line="+5"/> - <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/> <source>%1: Unknown error %2</source> - <translation type="unfinished"></translation> + <translation>%1: 未知のエラー %2</translation> </message> </context> <context> @@ -2750,13 +2791,13 @@ Do you want to delete it anyway?</source> <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/> <source>%1: Connection refused</source> - <translation type="unfinished"></translation> + <translation>%1: 接続が拒否されました</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Remote closed</source> - <translation type="unfinished"></translation> + <translation>%1: リモートにより接続が閉じられました</translation> </message> <message> <location line="+3"/> @@ -2764,61 +2805,61 @@ Do you want to delete it anyway?</source> <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/> <location line="+43"/> <source>%1: Invalid name</source> - <translation type="unfinished"></translation> + <translation>%1: 無効な名前です</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Socket access error</source> - <translation type="unfinished"></translation> + <translation>%1: ソケットアクセスのエラーです</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Socket resource error</source> - <translation type="unfinished"></translation> + <translation>%1: ソケットリソースのエラーです</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Socket operation timed out</source> - <translation type="unfinished"></translation> + <translation>%1: ソケット操作がタイムアウトしました</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Datagram too large</source> - <translation type="unfinished"></translation> + <translation>%1: データグラムが大きすぎます</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-48"/> <source>%1: Connection error</source> - <translation type="unfinished"></translation> + <translation>%1: 接続のエラーが発生しました</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: The socket operation is not supported</source> - <translation type="unfinished"></translation> + <translation>%1: そのソケット操作はサポートされていません</translation> </message> <message> <location line="+4"/> <source>%1: Unknown error</source> - <translation type="unfinished"></translation> + <translation>%1: 未知のエラーです</translation> </message> <message> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+4"/> <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+10"/> <source>%1: Unknown error %2</source> - <translation type="unfinished"></translation> + <translation>%1: 未知のエラー %2</translation> </message> </context> <context> <name>QMYSQLDriver</name> <message> - <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/> + <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1252"/> <source>Unable to open database '</source> <translation>データベースをオープンできません '</translation> </message> @@ -2846,12 +2887,12 @@ Do you want to delete it anyway?</source> <context> <name>QMYSQLResult</name> <message> - <location line="-922"/> + <location line="-935"/> <source>Unable to fetch data</source> <translation>データをフェッチできません</translation> </message> <message> - <location line="+176"/> + <location line="+183"/> <source>Unable to execute query</source> <translation>クエリーを実行できません</translation> </message> @@ -2861,13 +2902,13 @@ Do you want to delete it anyway?</source> <translation>実行結果を記録できません</translation> </message> <message> - <location line="+190"/> + <location line="+194"/> <location line="+8"/> <source>Unable to prepare statement</source> <translation>プリペアステートメントを使えません</translation> </message> <message> - <location line="+34"/> + <location line="+36"/> <source>Unable to reset statement</source> <translation>ステートメントをリセットできません</translation> </message> @@ -2893,14 +2934,14 @@ Do you want to delete it anyway?</source> <translation>ステートメントの実行結果を記録できません</translation> </message> <message> - <location line="-253"/> + <location line="-257"/> <source>Unable to execute next query</source> - <translation type="unfinished"></translation> + <translation>次のクエリーを実行できません</translation> </message> <message> <location line="+10"/> <source>Unable to store next result</source> - <translation type="unfinished"></translation> + <translation>次の結果を記録できません</translation> </message> </context> <context> @@ -2908,7 +2949,7 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/> <source>(Untitled)</source> - <translation type="unfinished"></translation> + <translation>(タイトルなし)</translation> </message> </context> <context> @@ -2916,92 +2957,93 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/> <source>%1 - [%2]</source> - <translation type="unfinished">%1 - [%2]</translation> + <translation>%1 - [%2]</translation> </message> <message> <location line="+72"/> <source>Close</source> - <translation type="unfinished">閉じる</translation> + <translation>閉じる</translation> </message> <message> <location line="-18"/> <source>Minimize</source> - <translation type="unfinished">最小化</translation> + <translation>最小化</translation> </message> <message> <location line="+13"/> <source>Restore Down</source> - <translation type="unfinished">元に戻す</translation> + <translation>元に戻す</translation> </message> <message> <location line="+707"/> <source>&Restore</source> - <translation type="unfinished">元に戻す(&R)</translation> + <translation>元に戻す(&R)</translation> </message> <message> <location line="+3"/> <source>&Move</source> - <translation type="unfinished">移動(&M)</translation> + <translation>移動(&M)</translation> </message> <message> <location line="+1"/> <source>&Size</source> - <translation type="unfinished"></translation> + <translation>サイズ(&S)</translation> </message> <message> <location line="+1"/> <source>Mi&nimize</source> - <translation type="unfinished">最小化(&N)</translation> + <translation>最小化(&N)</translation> </message> <message> <location line="+2"/> <source>Ma&ximize</source> - <translation type="unfinished">最大化(&X)</translation> + <translation>最大化(&X)</translation> </message> <message> <location line="+2"/> <source>Stay on &Top</source> - <translation type="unfinished">常に手前に表示(&T)</translation> + <translation>常に手前に表示(&T)</translation> </message> <message> <location line="+3"/> <source>&Close</source> - <translation type="unfinished">閉じる(&C)</translation> + <translation>閉じる(&C)</translation> </message> <message> <location line="-787"/> <source>- [%1]</source> - <translation type="unfinished"></translation> + <translation>- [%1]</translation> </message> <message> <location line="+58"/> <source>Maximize</source> - <translation type="unfinished">最大化</translation> + <translation>最大化</translation> </message> <message> <location line="+3"/> <source>Unshade</source> - <translation type="unfinished"></translation> + <translatorcomment>たぶん選択・非選択状態のウィンドウのことだと思うけど。fvwmなどのx11で使われている用語</translatorcomment> + <translation>非選択</translation> </message> <message> <location line="+3"/> <source>Shade</source> - <translation type="unfinished"></translation> + <translation>選択</translation> </message> <message> <location line="+6"/> <source>Restore</source> - <translation type="unfinished"></translation> + <translation>元に戻す</translation> </message> <message> <location line="+6"/> <source>Help</source> - <translation type="unfinished">ヘルプ</translation> + <translation>ヘルプ</translation> </message> <message> <location line="+3"/> <source>Menu</source> - <translation type="unfinished">メニュー</translation> + <translation>メニュー</translation> </message> </context> <context> @@ -3082,7 +3124,32 @@ Do you want to delete it anyway?</source> <message> <location line="+1570"/> <source><h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://www.qtsoftware.com/products/licensing">www.qtsoftware.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://www.qtsoftware.com/qt/">www.qtsoftware.com/qt</a> for more information.</p></source> - <translation type="unfinished"></translation> + <translation><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://www.qtsoftware.com/products/licensing">www.qtsoftware.com/products/licensing</a> +を参照してください。</p> +<p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p> +<p>Qt は Nokia の製品です。詳細については<a href="http://www.qtsoftware.com/qt/">www.qtsoftware.com/qt</a> を参照してください。</p> +<p> +訳注: ライセンスはここにある翻訳は参考のためのものであり、オリジナルの(英語の)ものが正式なものとなります。 +</p></translation> </message> </context> <context> @@ -3090,7 +3157,7 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/> <source>Select IM</source> - <translation>入力メソッドを選択</translation> + <translation>インプットメソッドを選択</translation> </message> </context> <context> @@ -3098,12 +3165,12 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/> <source>Multiple input method switcher</source> - <translation>複数の入力メソッドを切り替え</translation> + <translation>複数のインプットメソッドを切り替え</translation> </message> <message> <location line="+7"/> <source>Multiple input method switcher that uses the context menu of the text widgets</source> - <translation>テキストウィジェットのコンテキストメニューを使った複数の入力メソッドの切り替えです</translation> + <translation>テキストウィジェットのコンテキストメニューを使った複数のインプットメソッドの切り替えです</translation> </message> </context> <context> @@ -3111,7 +3178,7 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/network/socket/qnativesocketengine.cpp" line="+197"/> <source>Unable to initialize non-blocking socket</source> - <translation>ノンブロッキングソケットを初期化できません</translation> + <translation>非ブロック型ソケットを初期化できません</translation> </message> <message> <location line="+3"/> @@ -3236,7 +3303,7 @@ Do you want to delete it anyway?</source> <message> <location line="-3"/> <source>The proxy type is invalid for this operation</source> - <translation type="unfinished"></translation> + <translation>このプロキシーは、この操作に対応していません</translation> </message> </context> <context> @@ -3244,93 +3311,101 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/> <source>Error opening %1</source> - <translation type="unfinished"></translation> + <translation>オープンのエラー %1</translation> + </message> +</context> +<context> + <name>QNetworkAccessDebugPipeBackend</name> + <message> + <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+191"/> + <source>Write error writing to %1: %2</source> + <translation>%1 への書き込み時にエラーが発生しました: %2</translation> </message> </context> <context> <name>QNetworkAccessFileBackend</name> <message> - <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/> + <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/> <source>Request for opening non-local file %1</source> - <translation type="unfinished"></translation> + <translation>非ローカルファイル %1 をオープンするよう要求されましたが、ローカルファイルのみオープンできます</translation> </message> <message> - <location line="+42"/> + <location line="+45"/> <source>Error opening %1: %2</source> - <translation type="unfinished"></translation> + <translation>%1 をオープンする時にエラーが発生しました: %2</translation> </message> <message> - <location line="+56"/> + <location line="+38"/> <source>Write error writing to %1: %2</source> - <translation type="unfinished"></translation> + <translation>%1 への書き込み時にエラーが発生しました: %2</translation> </message> <message> - <location line="+33"/> + <location line="+48"/> <source>Cannot open %1: Path is a directory</source> - <translation type="unfinished"></translation> + <translation>%1 をオープンできません。指定されたパスはディレクトリです</translation> </message> <message> <location line="+21"/> <source>Read error reading from %1: %2</source> - <translation type="unfinished"></translation> + <translation>%1 を読み込み時にエラーが発生しました: %2</translation> </message> </context> <context> <name>QNetworkAccessFtpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/> + <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/> <source>No suitable proxy found</source> - <translation type="unfinished"></translation> + <translation>適切なプロキシーがみつかりません</translation> </message> <message> <location line="+14"/> <source>Cannot open %1: is a directory</source> - <translation type="unfinished"></translation> + <translation>%1 をオープンできません。指定されたパスはディレクトリです</translation> </message> <message> - <location line="+130"/> + <location line="+112"/> <source>Logging in to %1 failed: authentication required</source> - <translation type="unfinished"></translation> + <translation>%1 へのログインに失敗しました。認証が必要です</translation> </message> <message> <location line="+39"/> <source>Error while downloading %1: %2</source> - <translation type="unfinished"></translation> + <translation>%1 をダウンロード中にエラーが発生しました: %2</translation> </message> <message> <location line="+2"/> <source>Error while uploading %1: %2</source> - <translation type="unfinished"></translation> + <translation>%1 をアップロード中にエラーが発生しました: %2</translation> </message> </context> <context> <name>QNetworkAccessHttpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+567"/> <source>No suitable proxy found</source> - <translation type="unfinished"></translation> + <translation>適切なプロキシーがみつかりません</translation> </message> </context> <context> <name>QNetworkReply</name> <message> - <location line="+128"/> + <location line="+88"/> <source>Error downloading %1 - server replied: %2</source> - <translation type="unfinished"></translation> + <translation>%1 をダウンロード中にエラーが発生しました。サーバの返答: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+75"/> <source>Protocol "%1" is unknown</source> - <translation type="unfinished"></translation> + <translation>プロトコル "%1" はサポートされていません</translation> </message> </context> <context> <name>QNetworkReplyImpl</name> <message> - <location line="+432"/> + <location line="+459"/> <location line="+22"/> <source>Operation canceled</source> - <translation type="unfinished"></translation> + <translation>操作はキャンセルされました</translation> </message> </context> <context> @@ -3349,17 +3424,17 @@ Do you want to delete it anyway?</source> <message> <location line="+71"/> <source>Unable to begin transaction</source> - <translation type="unfinished">トランザクションを開始できません</translation> + <translation>トランザクションを開始できません</translation> </message> <message> <location line="+19"/> <source>Unable to commit transaction</source> - <translation type="unfinished">トランザクションをコミットできません</translation> + <translation>トランザクションをコミットできません</translation> </message> <message> <location line="+19"/> <source>Unable to rollback transaction</source> - <translation type="unfinished">トランザクションをロールバックできません</translation> + <translation>トランザクションをロールバックできません</translation> </message> </context> <context> @@ -3409,7 +3484,7 @@ Do you want to delete it anyway?</source> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1781"/> <source>Unable to connect</source> <translation>接続できません</translation> </message> @@ -3466,29 +3541,29 @@ Do you want to delete it anyway?</source> <location line="-635"/> <location line="+349"/> <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> - <translation>QODBCResult::reset: ステートメントの属性として 'SQL_CURSOR_STATUS' を設定できません。ODBC ドライバの構成をチェックしてください。</translation> + <translation>QODBCResult::reset: ステートメントの属性として 'SQL_CURSOR_STATUS' を設定できません。ODBC ドライバの構成をチェックしてください</translation> </message> <message> <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/> <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-189"/> <location line="+578"/> <source>Unable to fetch last</source> - <translation type="unfinished"></translation> + <translation>リストを取得できません</translation> </message> <message> <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/> <source>Unable to fetch</source> - <translation type="unfinished"></translation> + <translation>フェッチできません</translation> </message> <message> <location line="+44"/> <source>Unable to fetch first</source> - <translation type="unfinished">最初のレコードをフェッチできません</translation> + <translation>最初のレコードをフェッチできません</translation> </message> <message> <location line="+19"/> <source>Unable to fetch previous</source> - <translation type="unfinished"></translation> + <translation>前のレコードをフェッチできません</translation> </message> </context> <context> @@ -3509,56 +3584,41 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/> <source>Operation not supported on %1</source> - <translation type="unfinished"></translation> + <translation>%1 ではこの操作はサポートされていません</translation> </message> <message> <location line="+53"/> <source>Invalid URI: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/> - <source>Write error writing to %1: %2</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+57"/> - <source>Read error reading from %1: %2</source> - <translation type="unfinished"></translation> + <translation>無効なURIです: %1</translation> </message> <message> - <location line="+31"/> + <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/> <source>Socket error on %1: %2</source> - <translation type="unfinished"></translation> + <translation>%1 のソケットにおいてエラーが発生しました: %2</translation> </message> <message> <location line="+15"/> <source>Remote host closed the connection prematurely on %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+53"/> - <source>Protocol error: packet of size 0 received</source> - <translation type="unfinished"></translation> + <translation>リモートホスト %1 との接続が通信の終了前に切断されました</translation> </message> <message> <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/> <location line="+57"/> <source>No host name given</source> - <translation type="unfinished"></translation> + <translation>ホストネームが与えられていません</translation> </message> </context> <context> <name>QPPDOptionsModel</name> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/> <source>Name</source> - <translation type="unfinished">名前</translation> + <translation>名前</translation> </message> <message> <location line="+2"/> <source>Value</source> - <translation type="unfinished">値</translation> + <translation>値</translation> </message> </context> <context> @@ -3586,12 +3646,12 @@ Do you want to delete it anyway?</source> <message> <location line="+358"/> <source>Unable to subscribe</source> - <translation type="unfinished"></translation> + <translation>subscribe できません</translation> </message> <message> <location line="+32"/> <source>Unable to unsubscribe</source> - <translation type="unfinished"></translation> + <translation>unsubscribe できません</translation> </message> </context> <context> @@ -3604,7 +3664,7 @@ Do you want to delete it anyway?</source> <message> <location line="+374"/> <source>Unable to prepare statement</source> - <translation type="unfinished">プリペアステートメントを使えません</translation> + <translation>プリペアステートメントを使えません</translation> </message> </context> <context> @@ -3612,102 +3672,1151 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/> <source>Centimeters (cm)</source> - <translation type="unfinished"></translation> + <translation>センチメートル (cm)</translation> </message> <message> <location line="+0"/> <source>Millimeters (mm)</source> - <translation type="unfinished"></translation> + <translation>ミリメートル (mm)</translation> </message> <message> <location line="+0"/> <source>Inches (in)</source> - <translation type="unfinished"></translation> + <translation>インチ (in)</translation> </message> <message> <location line="+0"/> <source>Points (pt)</source> - <translation type="unfinished"></translation> + <translation>ポイント (pt)</translation> </message> <message> <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/> <source>Form</source> - <translation type="unfinished"></translation> + <translation>書式設定</translation> </message> <message> <location/> <source>Paper</source> - <translation type="unfinished"></translation> + <translation>用紙</translation> </message> <message> <location/> <source>Page size:</source> - <translation type="unfinished">ページサイズ:</translation> + <translation>ページサイズ:</translation> </message> <message> <location/> <source>Width:</source> - <translation type="unfinished"></translation> + <translation>幅:</translation> </message> <message> <location/> <source>Height:</source> - <translation type="unfinished"></translation> + <translation>高さ:</translation> </message> <message> <location/> <source>Paper source:</source> - <translation type="unfinished">給紙装置:</translation> + <translation>給紙装置:</translation> </message> <message> <location/> <source>Orientation</source> - <translation type="unfinished"></translation> + <translation>印刷方向</translation> </message> <message> <location/> <source>Portrait</source> - <translation type="unfinished">縦</translation> + <translation>縦 (ポートレート)</translation> </message> <message> <location/> <source>Landscape</source> - <translation type="unfinished">横</translation> + <translation>横 (ランドスケープ)</translation> </message> <message> <location/> <source>Reverse landscape</source> - <translation type="unfinished"></translation> + <translation>横 反転 (リバースランドスケープ)</translation> </message> <message> <location/> <source>Reverse portrait</source> - <translation type="unfinished"></translation> + <translation>縦 反転 (リバースポートレート)</translation> </message> <message> <location/> <source>Margins</source> - <translation type="unfinished"></translation> + <translation>余白</translation> </message> <message> <location/> <source>top margin</source> - <translation type="unfinished"></translation> + <translation>上端余白</translation> </message> <message> <location/> <source>left margin</source> - <translation type="unfinished"></translation> + <translation>左端余白</translation> </message> <message> <location/> <source>right margin</source> - <translation type="unfinished"></translation> + <translation>右端余白</translation> </message> <message> <location/> <source>bottom margin</source> - <translation type="unfinished"></translation> + <translation>下端余白</translation> + </message> +</context> +<context> + <name>QPatternist::QtXmlPatterns</name> + <message> + <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/> + <source>An %1-attribute with value %2 has already been declared.</source> + <translation type="unfinished">属性 %1 の値 %2 は既に宣言されています。</translation> + </message> + <message> + <location line="+13"/> + <source>An %1-attribute must have a valid %2 as value, which %3 isn't.</source> + <translation type="unfinished">属性 %1 の値は %2 の型でなければなりませんが、 %3 が指定されました。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/> + <source>%1 is an unsupported encoding.</source> + <translation type="unfinished">%1 はサポートされていないエンコーディングです。</translation> + </message> + <message> + <location line="+16"/> + <source>%1 contains octets which are disallowed in the requested encoding %2.</source> + <translation type="unfinished">エンコーディング %2 では許可されていないオクテットが %1 に含まれています。</translation> + </message> + <message> + <location line="+18"/> + <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source> + <translation type="unfinished">%2 で使用されているエンコード %3 では、コードポイント %1 は有効な XML 表現ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/> + <source>Network timeout.</source> + <translation type="unfinished">ネットワーク接続がタイムアウトしました。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/> + <source>Element %1 can't be serialized because it appears outside the document element.</source> + <translation type="unfinished">エレメント %1 はシリアライズできません。このドキュメントの範囲を越えるエレメントを含んでいます。</translation> + </message> + <message> + <location line="+60"/> + <source>Attribute %1 can't be serialized because it appears at the top level.</source> + <translation type="unfinished">属性 %1 はシリアライズできません。トップレベルに現れているためです。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/> + <source>Year %1 is invalid because it begins with %2.</source> + <translation type="unfinished">%1 年はむこうです。%2 で始まっています。</translation> + </message> + <message> + <location line="+19"/> + <source>Day %1 is outside the range %2..%3.</source> + <translation type="unfinished">%1 日は、有効な範囲 %2..%3 を逸脱しています。</translation> + </message> + <message> + <location line="+7"/> + <source>Month %1 is outside the range %2..%3.</source> + <translation type="unfinished">%1 月は、有効な範囲 %2..%3 を逸脱しています。</translation> + </message> + <message> + <location line="+10"/> + <source>Overflow: Can't represent date %1.</source> + <translation type="unfinished">オーバーフロー: 日付 %1 を再現できません。</translation> + </message> + <message> + <location line="+9"/> + <source>Day %1 is invalid for month %2.</source> + <translation type="unfinished">%2 月には、%1 日は存在しません。</translation> + </message> + <message> + <location line="+49"/> + <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> + <translation type="unfinished">24:%1:%2.%3 は無効です。24時0分0秒のみ使用できます</translation> + </message> + <message> + <location line="+13"/> + <source>Time %1:%2:%3.%4 is invalid.</source> + <translation type="unfinished">時刻 %1時%2分%3.%4秒は無効です。</translation> + </message> + <message> + <location line="+115"/> + <source>Overflow: Date can't be represented.</source> + <translation type="unfinished">オーバーフロー: 日付を再現できません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> + <location line="+15"/> + <source>At least one component must be present.</source> + <translation type="unfinished">年、月、日のうちいずれかを指定しなければなりません。</translation> + </message> + <message> + <location line="-7"/> + <source>At least one time component must appear after the %1-delimiter.</source> + <translation type="unfinished">%1 の後には、時刻を指定しなければなりません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/> + <source>No operand in an integer division, %1, can be %2.</source> + <translatorcomment>ゼロ除算? NaN?</translatorcomment> + <translation type="unfinished">整数の除算のためのオペランドが不足しています。%1 は %2 でなければなりません。</translation> + </message> + <message> + <location line="+7"/> + <source>The first operand in an integer division, %1, cannot be infinity (%2).</source> + <translation type="unfinished">整数の除算における最初のオペランド %1 を認識できません (%2)。</translation> + </message> + <message> + <location line="+6"/> + <source>The second operand in a division, %1, cannot be zero (%2).</source> + <translation type="unfinished">整数の除算における二つ目のオペランド %1 はゼロであってはいけまん(%2)。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> + <source>%1 is not a valid value of type %2.</source> + <translation type="unfinished">%1 は、%2 の型に対して有効な値ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> + <source>When casting to %1 from %2, the source value cannot be %3.</source> + <translation type="unfinished">%2 から %1 への型変換に際しては、値 %3 は有効な値ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/> + <source>Integer division (%1) by zero (%2) is undefined.</source> + <translation type="unfinished">整数の除算において %1 をゼロ (%2) で割った結果は定義されていません。</translation> + </message> + <message> + <location line="+7"/> + <source>Division (%1) by zero (%2) is undefined.</source> + <translation type="unfinished">除算において %1 をゼロ (%2) で割った結果は定義されていません。</translation> + </message> + <message> + <location line="+7"/> + <source>Modulus division (%1) by zero (%2) is undefined.</source> + <translation type="unfinished">剰余を求めるに際し、%1 をゼロ (%2) で除した結果は定義されていません。</translation> + </message> + <message> + <location line="+122"/> + <location line="+32"/> + <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> + <translation type="unfinished">型 %1 を非数 %2 (NaN) で除すことはできません。</translation> + </message> + <message> + <location line="-20"/> + <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source> + <translation type="unfinished">型 %1 を%2 または %3 (正または負のゼロ) で除することはできません。</translation> + </message> + <message> + <location line="+32"/> + <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source> + <translation type="unfinished">型 %1 を %2 または %3 (正または負のゼロ)で乗ずることはできません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/> + <source>A value of type %1 cannot have an Effective Boolean Value.</source> + <translation type="unfinished">型 %1 は有効な論理型(bool)ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> + <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> + <translatorcomment>??</translatorcomment> + <translation type="unfinished">論理型は、論理型以外の複数の値からなる計算によって求めることはできません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/> + <source>Value %1 of type %2 exceeds maximum (%3).</source> + <translation type="unfinished">型 %2 の値 %1 は、上限 (%3) を越えています。</translation> + </message> + <message> + <location line="+9"/> + <source>Value %1 of type %2 is below minimum (%3).</source> + <translation type="unfinished">型 %2 の値 %1 は、下限 (%3) を越えています。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/> + <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source> + <translation type="unfinished">型 %1 の値は偶数個の十進数文字を必要とします。しかし、%2 はそうではありません。</translation> + </message> + <message> + <location line="+19"/> + <source>%1 is not valid as a value of type %2.</source> + <translation type="unfinished">型 %2 に対して、値 %1 は有効ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/> + <source>Ambiguous rule match.</source> + <translation type="unfinished">曖昧なルールにマッチしました。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/> + <source>Operator %1 cannot be used on type %2.</source> + <translation type="unfinished">型 %2 に対して、オペレータ %1 は使用できません。</translation> + </message> + <message> + <location line="+17"/> + <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source> + <translation type="unfinished">アトミックな型 %2 と %3 に対して、オペレータ %1 は使用できません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/> + <source>The namespace URI in the name for a computed attribute cannot be %1.</source> + <translatorcomment>computed attrib. ってなんてやくすのが適当かな。</translatorcomment> + <translation type="unfinished">結合された属性に対する名前空間のURIとして、%1 を使用することはできません。</translation> + </message> + <message> + <location line="+9"/> + <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source> + <translation type="unfinished">結合された属性の名前空間URI %1 は、ローカルな名前である %2 と併用できません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/> + <source>Type error in cast, expected %1, received %2.</source> + <translation type="unfinished">型変換時のエラーです。望んでいた %1 ではなく、%2 になりました。</translation> + </message> + <message> + <location line="+29"/> + <source>When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed.</source> + <translation type="unfinished">%1 またはそれを継承している型への型変換においては、元の値の型は同じ型か、リテラルな文字列である必要があります。型 %2 は許可されていません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/> + <source>No casting is possible with %1 as the target type.</source> + <translation type="unfinished">目標とする型に %1 を型変換することはできません。</translation> + </message> + <message> + <location line="+15"/> + <source>It is not possible to cast from %1 to %2.</source> + <translation type="unfinished">型 %1 を型 %2 に型変換することはできません。</translation> + </message> + <message> + <location line="+27"/> + <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source> + <translation type="unfinished">型 %1 への型変換はできません。抽象型であり、インスタンス化することができないからです。</translation> + </message> + <message> + <location line="+23"/> + <source>It's not possible to cast the value %1 of type %2 to %3</source> + <translation type="unfinished">型 %2 の値 %1 を、型 %3 に型変換することはできません</translation> + </message> + <message> + <location line="+8"/> + <source>Failure when casting from %1 to %2: %3</source> + <translation type="unfinished">%1 を %2 に型変換することができません: %3</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/> + <source>A comment cannot contain %1</source> + <translation type="unfinished">コメントが %1 を含むことはできません</translation> + </message> + <message> + <location line="+6"/> + <source>A comment cannot end with a %1.</source> + <translation type="unfinished">コメントは %1 で終了することはできません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/> + <source>No comparisons can be done involving the type %1.</source> + <translation type="unfinished">型 %1 に対して比較を行うことはできません。</translation> + </message> + <message> + <location line="+14"/> + <source>Operator %1 is not available between atomic values of type %2 and %3.</source> + <translation type="unfinished">オペレータ %1 は、アトミックな型である %2 と %3 には適用できません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/> + <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source> + <translation type="unfinished">名前空間のスントラクトにおいて、空白の文字列を名前空間の値として使用することはできません。</translation> + </message> + <message> + <location line="+11"/> + <source>The prefix must be a valid %1, which %2 is not.</source> + <translation type="unfinished">プレフィックスは %1 でなければなりません。%2 は無効です。</translation> + </message> + <message> + <location line="+14"/> + <source>The prefix %1 cannot be bound.</source> + <translation type="unfinished">プレフィックス %1 はバウンドできません。</translation> + </message> + <message> + <location line="+10"/> + <source>Only the prefix %1 can be bound to %2 and vice versa.</source> + <translation type="unfinished">プレフィックス %1 は、%2 にのみバウンドできます。逆も同じです。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/> + <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source> + <translation type="unfinished">ドキュメントノードの子として属性ノードを指定することはできません。属性 %1 は誤った場所にあります。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/> + <source>Circularity detected</source> + <translation type="unfinished">循環を検出しました</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/> + <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> + <translation type="unfinished">ライブラリモジュールを直接評価することはできません。メインモジュールからインポートする必要があります。</translation> + </message> + <message> + <location line="+40"/> + <source>No template by name %1 exists.</source> + <translation type="unfinished">テンプレート名 %1 は存在しません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+106"/> + <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source> + <translation type="unfinished">型 %1 は述部として使用できません。数値型か、論理型である必要があります。</translation> + </message> + <message> + <location line="+32"/> + <source>A positional predicate must evaluate to a single numeric value.</source> + <translatorcomment>positional?</translatorcomment> + <translation type="unfinished">述部は評価されたとき、単一の数値になるようにしなければなりません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/> + <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source> + <translation type="unfinished">ターゲットとしている名前は、%1 であってはなりません。%2 は無効です。</translation> + </message> + <message> + <location line="+24"/> + <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source> + <translation type="unfinished">%1 はターゲットとして無効です。%2 である必要があります。例えば "%3" のようにです。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/> + <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source> + <translation type="unfinished">バスの末端であるリーフは、単一のノードかアトミックな値である必要があります。複数の型の組み合わせであってはいけません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> + <source>The data of a processing instruction cannot contain the string %1</source> + <translation type="unfinished">処理中のデータは、以下の文字列を含んでいてはなりません: %1</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/> + <source>No namespace binding exists for the prefix %1</source> + <translation type="unfinished">プレフィックス %1 にバインドされたネームスペースがありません</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/> + <source>No namespace binding exists for the prefix %1 in %2</source> + <translation type="unfinished">%2 におけるプレフィックス %1 にバインディングされたネームスペースが存在しません</translation> + </message> + <message> + <location line="+12"/> + <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> + <source>%1 is an invalid %2</source> + <translation type="unfinished">型 %2 に対し、値 %1 は無効です</translation> + </message> + <message> + <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+74"/> + <source>The parameter %1 is passed, but no corresponding %2 exists.</source> + <translation type="unfinished">パラメータ %1 を処理しました。しかし、対応する %2 が存在しません。</translation> + </message> + <message> + <location line="+71"/> + <source>The parameter %1 is required, but no corresponding %2 is supplied.</source> + <translation type="unfinished">パメータ %1 が必要です。しかし、対応する %2 がありません。</translation> + </message> + <message numerus="yes"> + <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> + <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> + <translation type="unfinished"> + <numerusform>%1 は、最大で %n 個の引数をとることができます。%2 は無効です。</numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+11"/> + <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> + <translation type="unfinished"> + <numerusform>%1 は、少くとも %n 個の引数を必要とします。%2 は無効です。</numerusform> + </translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/> + <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> + <translation type="unfinished">%1 への最初の引数は、型 %2 であってはなりません。数値型、xs:yerMonthDuration、xs:dayTimeDurationである必要があります。</translation> + </message> + <message> + <location line="+74"/> + <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> + <translation type="unfinished">%1 への最初の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。</translation> + </message> + <message> + <location line="+91"/> + <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> + <translation type="unfinished">%1 への二つ目の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> + <source>%1 is not a valid XML 1.0 character.</source> + <translation type="unfinished">%1 は XML 1.0 において有効な文字ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/> + <source>The first argument to %1 cannot be of type %2.</source> + <translation type="unfinished">%1 への最初の引数は、型 %2 であってはなりません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> + <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> + <translation type="unfinished">%1 への二つ目の引数のルートノードは、ドキュメントノードでなければなりません。しかし、%2 はドキュメントノードではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/> + <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> + <translatorcomment>ゾーンオフセットってなに? xmlにそんなのあったっけ?</translatorcomment> + <translation type="unfinished">もし二つの値がゾーンオフセットをもつ場合、両者は同じゾーンオフセットでなければなりません。%1 と %2 は同一ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> + <source>%1 was called.</source> + <translation type="unfinished">%1 が呼ばれました。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/> + <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> + <translation type="unfinished">%1 の後には、%2 か %3 が続かなければなりません。</translation> + </message> + <message> + <location line="+39"/> + <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> + <translation type="unfinished">置換操作において、%1 には少くとも一文字以上の数値が続く必要があります(エスケープされている場合を除く)。</translation> + </message> + <message> + <location line="+26"/> + <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> + <translation type="unfinished">置換操作において、%1 はそれ自身または %2 をエスケープする為にのみ使用できます。%3 に対しては使用できません</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> + <source>%1 matches newline characters</source> + <translation type="unfinished">%1 は改行文字(列)にマッチしました</translation> + </message> + <message> + <location line="+4"/> + <source>%1 and %2 match the start and end of a line.</source> + <translation type="unfinished">%1 と %2 は、行の先頭と末尾にマッチしました。</translation> + </message> + <message> + <location line="+6"/> + <source>Matches are case insensitive</source> + <translation type="unfinished">マッチは大文字小文字を区別しません</translation> + </message> + <message> + <location line="+4"/> + <source>Whitespace characters are removed, except when they appear in character classes</source> + <translatorcomment>CDATA?</translatorcomment> + <translation type="unfinished">空白文字は削除されました。ただし、キャラクタークラスに属するものは除きます</translation> + </message> + <message> + <location line="+99"/> + <source>%1 is an invalid regular expression pattern: %2</source> + <translation type="unfinished">%1 は有効な正規表現ではありません。: %2</translation> + </message> + <message> + <location line="+30"/> + <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> + <translation type="unfinished">%1 は正規表現において無効なフラグです。使用可能なフラグは次の通りです:</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+17"/> + <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source> + <translation type="unfinished">もし、最初の引数が空白からなる文字列か、長さが0 (名前空間をともなわない)である場合、プレフィックスを指定することはできません。しかし、プレフィックスとして %1 が指定されています。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/> + <source>It will not be possible to retrieve %1.</source> + <translation type="unfinished">%1 を取得することはできないかもしれません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/> + <source>The default collection is undefined</source> + <translation type="unfinished">デフォルトのコレクションが定義されていません</translation> + </message> + <message> + <location line="+13"/> + <source>%1 cannot be retrieved</source> + <translation type="unfinished">%1 を取得できません</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/> + <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> + <translatorcomment>つまり、空白の文字です、はどうでもいいよね。</translatorcomment> + <translation type="unfinished">正規化された表現 %1 はサポートされていません。サポートされている表現は、%2, %3, %4, %5 のみです。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/> + <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source> + <translation type="unfinished">ゾーンオフセットは、%1 から %2 の範囲である必要があります(境界を含む)。%3 は範囲外です。</translation> + </message> + <message> + <location line="+12"/> + <source>%1 is not a whole number of minutes.</source> + <translation type="unfinished">%1 は、分を現す値ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/> + <source>The URI cannot have a fragment</source> + <translation type="unfinished">この URI はフラグメントをもつことはできません</translation> + </message> + <message> + <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/> + <source>Required cardinality is %1; got cardinality %2.</source> + <translation type="unfinished">カーディナリティ %1 が必要です。%2 ではありません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> + <source>The item %1 did not match the required type %2.</source> + <translation type="unfinished">アイテム %1 は、要求された型 %2 にマッチしません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/> + <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source> + <translation type="unfinished">エレメント %2 に属性 %1 を指定することはできません。標準の属性のみが許可されています。</translation> + </message> + <message> + <location line="+6"/> + <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source> + <translation type="unfinished">エレメント %2 に属性 %1 を指定することはできません。%3 と標準の属性のみが許可されています。</translation> + </message> + <message> + <location line="+8"/> + <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source> + <translation type="unfinished">エレメント %2 に属性 %1 を指定することはできません。%3, %4 と標準の属性のみが許可されています。</translation> + </message> + <message> + <location line="+9"/> + <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source> + <translation type="unfinished">エレメント %2 に %1 は指定できません。%3 と標準の属性のみが指定できます。</translation> + </message> + <message> + <location line="+13"/> + <source>XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is.</source> + <translation type="unfinished">XSLT エレメントに対するXSLT属性は、名前空間がnullでなければなりません。%1 は使用できません。</translation> + </message> + <message> + <location line="+12"/> + <source>The attribute %1 must appear on element %2.</source> + <translation type="unfinished">属性 %1 は、エレメント %2 にのみ記述できます。</translation> + </message> + <message> + <location line="+8"/> + <source>The element with local name %1 does not exist in XSL-T.</source> + <translation type="unfinished">ローカル名 %1 のエレメントは、XSLTに存在しません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> + <source>The variable %1 is unused</source> + <translation type="unfinished">値 %1 は使用されませんでした</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+330"/> + <source>A construct was encountered which only is allowed in XQuery.</source> + <translation type="unfinished">XQuery でのみ許可されている construct に遭遇しました。</translation> + </message> + <message> + <location line="+49"/> + <location line="+7253"/> + <source>%1 is an unknown schema type.</source> + <translation type="unfinished">%1 はサポートされていないスキーマのタイプです。</translation> + </message> + <message> + <location line="-7184"/> + <source>A template by name %1 has already been declared.</source> + <translation type="unfinished">テンプレート名 '%1' は、既に宣言されています。</translation> + </message> + <message> + <location line="+26"/> + <source>%1 is not a valid numeric literal.</source> + <translation type="unfinished">%1 は数値リテラルとして無効です。</translation> + </message> + <message> + <location line="+187"/> + <source>Only one %1 declaration can occur in the query prolog.</source> + <translation type="unfinished">クェリーのプロローグでは、%1 は一回のみ宣言できます。</translation> + </message> + <message> + <location line="+188"/> + <source>The initialization of variable %1 depends on itself</source> + <translatorcomment>再帰?</translatorcomment> + <translation type="unfinished">値 %1 の初期化は、それ自身に依存しています</translation> + </message> + <message> + <location line="+63"/> + <source>No variable by name %1 exists</source> + <translation type="unfinished">変数 %1 は存在しません</translation> + </message> + <message> + <location line="+2841"/> + <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> + <translation type="unfinished">バージョン %1 はサポートされていません。XQuery バージョン 1.0 のみサポートされています。</translation> + </message> + <message> + <location line="+16"/> + <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> + <translation type="unfinished">エンコーディング '%1' は無効です。ラテン文字 (空白を除く) からなるもので、正規表現 '%2' にマッチするもののみ使用できます。</translation> + </message> + <message> + <location line="+55"/> + <source>No function with signature %1 is available</source> + <translation type="unfinished">シグネチャ %1 をもつ関数がみつかりません</translation> + </message> + <message> + <location line="+72"/> + <location line="+10"/> + <source>A default namespace declaration must occur before function, variable, and option declarations.</source> + <translation type="unfinished">標準の名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。</translation> + </message> + <message> + <location line="+10"/> + <source>Namespace declarations must occur before function, variable, and option declarations.</source> + <translation type="unfinished">名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。</translation> + </message> + <message> + <location line="+11"/> + <source>Module imports must occur before function, variable, and option declarations.</source> + <translation type="unfinished">モジュールのインポートは、関数、変数、オプションの宣言の前にしなければなりません。</translation> + </message> + <message> + <location line="+102"/> + <source>The keyword %1 cannot occur with any other mode name.</source> + <translation type="unfinished">キーワード %1 は、他の名をともなって使用することはできません。</translation> + </message> + <message> + <location line="+29"/> + <source>The value of attribute %1 must of type %2, which %3 isn't.</source> + <translation type="unfinished">属性 '%1' の値として '%3' が指定されましたが、型 '%2' でなければなりません。</translation> + </message> + <message> + <location line="+69"/> + <source>It is not possible to redeclare prefix %1.</source> + <translation type="unfinished">プレフィックス '%1' を再定義することはできません。</translation> + </message> + <message> + <location line="+6"/> + <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source> + <translation type="unfinished">プレフィックス '%1' はバウンドできません。デフォルトでは、それは既に名前空間 '%2' にバウンドされています。</translation> + </message> + <message> + <location line="+12"/> + <source>Prefix %1 is already declared in the prolog.</source> + <translation type="unfinished">プロローグ部において、プレフィックス '%1' はすでに宣言されています。</translation> + </message> + <message> + <location line="+95"/> + <source>The name of an option must have a prefix. There is no default namespace for options.</source> + <translation type="unfinished">オプションの名前はプレフィックスをもたなければなりません。このオプションに対するデフォルトの名前空間は存在しません。</translation> + </message> + <message> + <location line="+171"/> + <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> + <translation type="unfinished">このスキーマのインポート機能は使用できません。また、'%1' 宣言も使用できません。</translation> + </message> + <message> + <location line="+13"/> + <source>The target namespace of a %1 cannot be empty.</source> + <translation type="unfinished">名前空間 '%1' は、空であってはなりません。</translation> + </message> + <message> + <location line="+8"/> + <source>The module import feature is not supported</source> + <translation type="unfinished">モジュールインポートの機能はサポートされていません</translation> + </message> + <message> + <location line="+13"/> + <source>A variable by name %1 has already been declared.</source> + <translation type="unfinished">名前 '%1' の変数は、すでに宣言されています。</translation> + </message> + <message> + <location line="+39"/> + <source>No value is available for the external variable by name %1.</source> + <translation type="unfinished">外部変数 '%1' の値がみつかりません。</translation> + </message> + <message> + <location line="+96"/> + <source>A stylesheet function must have a prefixed name.</source> + <translation type="unfinished">スタイルシート関数は、プレフィックス名を持たなければなりません。</translation> + </message> + <message> + <location line="+9"/> + <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> + <translation type="unfinished">ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス '%1' が使用できます)</translation> + </message> + <message> + <location line="+9"/> + <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> + <translation type="unfinished">名前空間 '%1' は予約済です。ユーザ定義の関数では使用することはできません。プレフィックス '%2' が使用できます。</translation> + </message> + <message> + <location line="+12"/> + <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> + <translation type="unfinished">ライブラリモジュールで使用されている名前空間は、モジュールの名前空間と同一でなければなりません。つまり、'%2' ではなく、'%1' でなければなりません</translation> + </message> + <message> + <location line="+34"/> + <source>A function already exists with the signature %1.</source> + <translation type="unfinished">シグネチャー '%1' の関数はすでに存在しています。</translation> + </message> + <message> + <location line="+23"/> + <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> + <translation type="unfinished">外部関数はサポートされていません。すべてのサポートされている関数は、外部宣言をすることなく、直接使用することができます</translation> + </message> + <message> + <location line="+37"/> + <source>An argument by name %1 has already been declared. Every argument name must be unique.</source> + <translation type="unfinished">引数名 '%1' は既に宣言されています。すべての引数名はユニークである必要があります。</translation> + </message> + <message> + <location line="+179"/> + <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source> + <translation type="unfinished">パターン一致の内側で関数 '%1' を使用する場合、引数はリテラルな文字列を参照する値でなければなりません。</translation> + </message> + <message> + <location line="+11"/> + <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source> + <translation type="unfinished">XSL-T パターンマッチングにおいて、関数 '%1' の最初の引数は、リテラルな文字列でなければなりません。</translation> + </message> + <message> + <location line="+14"/> + <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source> + <translatorcomment>variable ref?</translatorcomment> + <translation type="unfinished">XSL-T パターンマッチングにおいて、関数 '%1' への最初の引数は、リテラルか変数でなければなりません。</translation> + </message> + <message> + <location line="+9"/> + <source>In an XSL-T pattern, function %1 cannot have a third argument.</source> + <translation type="unfinished">XSL-T パターンにおいて、関数 '%1' は三つの引数をもつことはできません。</translation> + </message> + <message> + <location line="+10"/> + <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source> + <translation type="unfinished">XSL-T パターンマッチングにおいて、関数 '%1' と '%2' のみ使用できます。'%3' は使用できません。</translation> + </message> + <message> + <location line="+63"/> + <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source> + <translation type="unfinished">XSL-T パターンにおいて、axis %1 は使用できません。%2 または %3 のみ使用できます。</translation> + </message> + <message> + <location line="+126"/> + <source>%1 is an invalid template mode name.</source> + <translation type="unfinished">%1 はテンプレートモジュール名として無効です。</translation> + </message> + <message> + <location line="+44"/> + <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> + <translation type="unfinished">for 構文において使用する変数は、場所に関する変数とは異なる必要があります。つまり、'%1' が重複して使用されています。</translation> + </message> + <message> + <location line="+758"/> + <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> + <translation type="unfinished">スキーマの検証機能はサポートされていません。よって、'%1' 構文は使用できません。</translation> + </message> + <message> + <location line="+39"/> + <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> + <translation type="unfinished">pragma 構文はサポートされていません。fallback 構文でなければなりません</translation> + </message> + <message> + <location line="+267"/> + <source>Each name of a template parameter must be unique; %1 is duplicated.</source> + <translation type="unfinished">テンプレートパラメータ名はユニークである必要があります。'%1' は重複しています。</translation> + </message> + <message> + <location line="+129"/> + <source>The %1-axis is unsupported in XQuery</source> + <translation type="unfinished">XQuery において、%1 axis はサポートされていません</translation> + </message> + <message> + <location line="+286"/> + <source>No function by name %1 is available.</source> + <translation type="unfinished">関数名 '%1' はみつかりません。</translation> + </message> + <message> + <location line="+102"/> + <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> + <translation type="unfinished">プレフィックス '%1' にバインディングする名前空間の URI は、空であってはなりません。</translation> + </message> + <message> + <location line="+7"/> + <source>%1 is an invalid namespace URI.</source> + <translation type="unfinished">%1 は名前空間 URI として無効です。</translation> + </message> + <message> + <location line="+6"/> + <source>It is not possible to bind to the prefix %1</source> + <translation type="unfinished">プレフィックス %1 にバインドすることはできません</translation> + </message> + <message> + <location line="+7"/> + <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translatorcomment>?</translatorcomment> + <translation type="unfinished">名前空間 %1 は %2 にのみバウンドできます。</translation> + </message> + <message> + <location line="+8"/> + <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation type="unfinished">プリフィックス %1 は %2 にのみバウンドできます。</translation> + </message> + <message> + <location line="+15"/> + <source>Two namespace declaration attributes have the same name: %1.</source> + <translation type="unfinished">二つの名前空間宣言の属性が、同じ名前 '%1' をもっています。</translation> + </message> + <message> + <location line="+89"/> + <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> + <translation type="unfinished">名前空間 URI は、constantでなければなりません。式を含むことはできません。</translation> + </message> + <message> + <location line="+16"/> + <source>An attribute by name %1 has already appeared on this element.</source> + <translation type="unfinished">属性名 '%1' は、すでにこのエレメントで使用されています。</translation> + </message> + <message> + <location line="+61"/> + <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> + <translation type="unfinished">直積的な指定のエレメントがwell formedではありません。'%1' が、'%2' で終わっています。</translation> + </message> + <message> + <location line="+458"/> + <source>The name %1 does not refer to any schema type.</source> + <translation type="unfinished">名前 '%1' は、なんのスキーマタイプも参照していません。</translation> + </message> + <message> + <location line="+10"/> + <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> + <translation type="unfinished">'%1' は complex 型です。complex 型への型変換はできません。しかし、アトミックな型である '%2' への変換はできます。</translation> + </message> + <message> + <location line="+9"/> + <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> + <translation type="unfinished">'%1' はアトミックな型ではありません。型変換はアトミックな型に対してのみ可能です。</translation> + </message> + <message> + <location line="+76"/> + <source>%1 is not a valid name for a processing-instruction.</source> + <translation type="unfinished">処理指定において、'%1' は無効です。</translation> + </message> + <message> + <location line="+69"/> + <location line="+71"/> + <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> + <translation type="unfinished">'%1' は、スコープ属性宣言ではありません。スキーマインポート機能はサポートされていません。</translation> + </message> + <message> + <location line="+48"/> + <source>The name of an extension expression must be in a namespace.</source> + <translation type="unfinished">拡張式 (extension expression) の名前は、名前空間の中になければなりません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/> + <source>Element %1 is not allowed at this location.</source> + <translation type="unfinished">この場所にエレメント '%1' をおくことは許されていません。</translation> + </message> + <message> + <location line="+9"/> + <source>Text nodes are not allowed at this location.</source> + <translation type="unfinished">この場所にテキストノードをおくことは許されていません。</translation> + </message> + <message> + <location line="+20"/> + <source>Parse error: %1</source> + <translation type="unfinished">パースエラー: %1</translation> + </message> + <message> + <location line="+62"/> + <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn't.</source> + <translation type="unfinished">XSL-T バージョン属性の値は、'%1' 型でなければなりません。'%2' はそうではありません。</translation> + </message> + <message> + <location line="+20"/> + <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source> + <translation type="unfinished">XSL-T 1.0 のスタイルシートを 2.0 のプロセッサで使用します。</translation> + </message> + <message> + <location line="+108"/> + <source>Unknown XSL-T attribute %1.</source> + <translation type="unfinished">未知の XSL-T 属性 %1 があります。</translation> + </message> + <message> + <location line="+23"/> + <source>Attribute %1 and %2 are mutually exclusive.</source> + <translation type="unfinished">属性 '%1' と '%2' は排他的にのみ使用できます。</translation> + </message> + <message> + <location line="+166"/> + <source>In a simplified stylesheet module, attribute %1 must be present.</source> + <translation type="unfinished">simplified stylesheet モジュールにおいては、属性 '%1' を指定されなければなりません。</translation> + </message> + <message> + <location line="+72"/> + <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source> + <translation type="unfinished">エレメント '%1' が属性 '%2' を持たない場合は、属性 '%3' や '%4' を使用することはできません。</translation> + </message> + <message> + <location line="+9"/> + <source>Element %1 must have at least one of the attributes %2 or %3.</source> + <translation type="unfinished">エレメント '%1' は、属性 '%2' か '%3' のいずれかを持たなければなりません。</translation> + </message> + <message> + <location line="+28"/> + <source>At least one mode must be specified in the %1-attribute on element %2.</source> + <translation type="unfinished">エレメント '%2' において、'%1' 属性は少くとも一つのモードを指定しなければなりません。</translation> + </message> + <message> + <location line="+123"/> + <source>Element %1 must come last.</source> + <translation type="unfinished">エレメント %1 は最後になければなりません。</translation> + </message> + <message> + <location line="+24"/> + <source>At least one %1-element must occur before %2.</source> + <translation type="unfinished">%2 の前に、少くとも一つは %1 エレメントが存在しなければなりません。</translation> + </message> + <message> + <location line="+7"/> + <source>Only one %1-element can appear.</source> + <translation type="unfinished">%1 エレメントは一つのみ存在しなければなりません。</translation> + </message> + <message> + <location line="+31"/> + <source>At least one %1-element must occur inside %2.</source> + <translation type="unfinished">%2 の内側には、少くとも一つの '%1' エレメントが存在しなければなりません。</translation> + </message> + <message> + <location line="+58"/> + <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source> + <translation type="unfinished">%2 に属性 %1 がある場合、sequence constructor は使用できません。</translation> + </message> + <message> + <location line="+13"/> + <source>Element %1 must have either a %2-attribute or a sequence constructor.</source> + <translation type="unfinished">エレメント %1 には、%2 属性またはsequence constructorがなければなりません。</translation> + </message> + <message> + <location line="+125"/> + <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source> + <translation type="unfinished">パラメータが要求されているときには、デフォルトの値は、%1 属性または sequence constructor によって指定されていてはなりません。</translation> + </message> + <message> + <location line="+270"/> + <source>Element %1 cannot have children.</source> + <translation type="unfinished">エレメント %1 は、子要素を持つことができません。</translation> + </message> + <message> + <location line="+434"/> + <source>Element %1 cannot have a sequence constructor.</source> + <translation type="unfinished">エレメント %1 は、sequence constructor を含むことができません。</translation> + </message> + <message> + <location line="+86"/> + <location line="+9"/> + <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source> + <translation type="unfinished">%2 が %3 の子要素であるときは、属性 %1 を使用してはなりません。</translation> + </message> + <message> + <location line="+15"/> + <source>A parameter in a function cannot be declared to be a tunnel.</source> + <translation type="unfinished">関数へのパラメータは、トンネルであってはなりません。</translation> + </message> + <message> + <location line="+149"/> + <source>This processor is not Schema-aware and therefore %1 cannot be used.</source> + <translation type="unfinished">この処理系は、Schema-aware ではありません。よって、%1 は使用できません。</translation> + </message> + <message> + <location line="+57"/> + <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn't.</source> + <translation type="unfinished">トップレベルのスタイルシートのエレメントは、non-nullな名前空間を持っていなければなりません。しかし、%1 はそうではありません。</translation> + </message> + <message> + <location line="+48"/> + <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source> + <translation type="unfinished">エレメント %2 の属性 %1 の値は、%3 または %4 でなければなりません。%5 は異なります。</translation> + </message> + <message> + <location line="+20"/> + <source>Attribute %1 cannot have the value %2.</source> + <translation type="unfinished">属性 %1 に、値 %2 を指定することはできません。</translation> + </message> + <message> + <location line="+58"/> + <source>The attribute %1 can only appear on the first %2 element.</source> + <translation type="unfinished">属性 %1 は、最初の %2 エレメントにのみ指定できます。</translation> + </message> + <message> + <location line="+99"/> + <source>At least one %1 element must appear as child of %2.</source> + <translation type="unfinished">%2 の子要素としては、少くとも一つは %1 エレメントがなければなりません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> + <source>empty</source> + <translation type="unfinished">空</translation> + </message> + <message> + <location line="+2"/> + <source>zero or one</source> + <translation type="unfinished">ゼロまたは一つ</translation> + </message> + <message> + <location line="+2"/> + <source>exactly one</source> + <translation type="unfinished">厳密に一つ</translation> + </message> + <message> + <location line="+2"/> + <source>one or more</source> + <translation type="unfinished">一つまたは複数</translation> + </message> + <message> + <location line="+2"/> + <source>zero or more</source> + <translation type="unfinished">ゼロまたはそれ以上</translation> + </message> + <message> + <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/> + <source>Required type is %1, but %2 was found.</source> + <translation type="unfinished">要求されている型は %1 ですが、 %2 があります。</translation> + </message> + <message> + <location line="+44"/> + <source>Promoting %1 to %2 may cause loss of precision.</source> + <translation type="unfinished">%1 を %2 に変換する際に、精度のロスが生じます。</translation> + </message> + <message> + <location line="+49"/> + <source>The focus is undefined.</source> + <translation type="unfinished">フォーカスが定義されていません。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/> + <source>It's not possible to add attributes after any other kind of node.</source> + <translation type="unfinished">他の種類のノードの中では、属性を追加することはできません。</translation> + </message> + <message> + <location line="+7"/> + <source>An attribute by name %1 has already been created.</source> + <translation type="unfinished">名前 '%1' の属性は、すでに生成されています。</translation> + </message> + <message> + <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> + <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> + <translation type="unfinished">UNICODE Codepoint Collection のみ使用できます(%1)。 %2 はサポートされていません。</translation> </message> </context> <context> @@ -3720,7 +4829,7 @@ Do you want to delete it anyway?</source> <message> <location line="-68"/> <source>The plugin was not loaded.</source> - <translation type="unfinished"></translation> + <translation>そのプラグインはロードされていません。</translation> </message> </context> <context> @@ -4036,219 +5145,221 @@ Do you want to overwrite it?</source> <message> <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-210"/> <source>File exists</source> - <translation type="unfinished"></translation> + <translation>ファイルは既に存在しています</translation> </message> <message> <location line="+1"/> <source><qt>Do you want to overwrite it?</qt></source> - <translation type="unfinished"></translation> + <translation><qt>ファイルを上書きしてもよろしいですか?</qt></translation> </message> <message> <location line="+227"/> <source>Print selection</source> - <translation type="unfinished"></translation> + <translation>選択された範囲を印刷</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-8"/> <source>%1 is a directory. Please choose a different file name.</source> - <translation type="unfinished"></translation> + <translation>%1 はディレクトリです。 +ファイル名を指定してください。</translation> </message> <message> <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/> <source>A0</source> - <translation type="unfinished"></translation> + <translation>A0</translation> </message> <message> <location line="+1"/> <source>A1</source> - <translation type="unfinished"></translation> + <translation>A1</translation> </message> <message> <location line="+1"/> <source>A2</source> - <translation type="unfinished"></translation> + <translation>A2</translation> </message> <message> <location line="+1"/> <source>A3</source> - <translation type="unfinished"></translation> + <translation>A3</translation> </message> <message> <location line="+1"/> <source>A4</source> - <translation type="unfinished"></translation> + <translation>A4</translation> </message> <message> <location line="+1"/> <source>A5</source> - <translation type="unfinished"></translation> + <translation>A5</translation> </message> <message> <location line="+1"/> <source>A6</source> - <translation type="unfinished"></translation> + <translation>A6</translation> </message> <message> <location line="+1"/> <source>A7</source> - <translation type="unfinished"></translation> + <translation>A7</translation> </message> <message> <location line="+1"/> <source>A8</source> - <translation type="unfinished"></translation> + <translation>A8</translation> </message> <message> <location line="+1"/> <source>A9</source> - <translation type="unfinished"></translation> + <translation>A9</translation> </message> <message> <location line="+1"/> <source>B0</source> - <translation type="unfinished"></translation> + <translation>B0</translation> </message> <message> <location line="+1"/> <source>B1</source> - <translation type="unfinished"></translation> + <translation>B1</translation> </message> <message> <location line="+1"/> <source>B2</source> - <translation type="unfinished"></translation> + <translation>B2</translation> </message> <message> <location line="+1"/> <source>B3</source> - <translation type="unfinished"></translation> + <translation>B3</translation> </message> <message> <location line="+1"/> <source>B4</source> - <translation type="unfinished"></translation> + <translation>B4</translation> </message> <message> <location line="+1"/> <source>B5</source> - <translation type="unfinished"></translation> + <translation>B5</translation> </message> <message> <location line="+1"/> <source>B6</source> - <translation type="unfinished"></translation> + <translation>B6</translation> </message> <message> <location line="+1"/> <source>B7</source> - <translation type="unfinished"></translation> + <translation>B7</translation> </message> <message> <location line="+1"/> <source>B8</source> - <translation type="unfinished"></translation> + <translation>B8</translation> </message> <message> <location line="+1"/> <source>B9</source> - <translation type="unfinished"></translation> + <translation>B9</translation> </message> <message> <location line="+1"/> <source>B10</source> - <translation type="unfinished"></translation> + <translation>B10</translation> </message> <message> <location line="+1"/> <source>C5E</source> - <translation type="unfinished"></translation> + <translation>C5E</translation> </message> <message> <location line="+1"/> <source>DLE</source> - <translation type="unfinished"></translation> + <translation>DLE</translation> </message> <message> <location line="+1"/> <source>Executive</source> - <translation type="unfinished"></translation> + <translation>Exclusive</translation> </message> <message> <location line="+1"/> <source>Folio</source> - <translation type="unfinished"></translation> + <translation>Folio</translation> </message> <message> <location line="+1"/> <source>Ledger</source> - <translation type="unfinished"></translation> + <translation>Ledger</translation> </message> <message> <location line="+1"/> <source>Legal</source> - <translation type="unfinished"></translation> + <translation>リーガルサイズ</translation> </message> <message> <location line="+1"/> <source>Letter</source> - <translation type="unfinished"></translation> + <translation>レターサイズ</translation> </message> <message> <location line="+1"/> <source>Tabloid</source> - <translation type="unfinished"></translation> + <translation>タブロイドサイズ</translation> </message> <message> <location line="+1"/> <source>US Common #10 Envelope</source> - <translation type="unfinished"></translation> + <translation>US標準#10封筒</translation> </message> <message> <location line="+1"/> <source>Custom</source> - <translation type="unfinished"></translation> + <translation>カスタム</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-522"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-524"/> <location line="+68"/> <source>&Options >></source> - <translation type="unfinished"></translation> + <translation>オプション(&O) >></translation> </message> <message> <location line="-63"/> <source>&Print</source> - <translation type="unfinished"></translation> + <translation>印刷(&P)</translation> </message> <message> <location line="+67"/> <source>&Options <<</source> - <translation type="unfinished"></translation> + <translation>オプション(&O) <<</translation> </message> <message> <location line="+253"/> <source>Print to File (PDF)</source> - <translation type="unfinished"></translation> + <translation>PDFファイルに出力</translation> </message> <message> <location line="+1"/> <source>Print to File (Postscript)</source> - <translation type="unfinished"></translation> + <translation>Postscriptファイルに出力</translation> </message> <message> - <location line="+45"/> + <location line="+47"/> <source>Local file</source> - <translation type="unfinished"></translation> + <translation>ローカルファイル</translation> </message> <message> <location line="+1"/> <source>Write %1 file</source> - <translation type="unfinished"></translation> + <translation>ファイル %1 に書き込みました</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/> <source>The 'From' value cannot be greater than the 'To' value.</source> - <translation type="unfinished"></translation> + <translatorcomment>QPrintPropertiesWidgetにFromとToがあってそれを指している</translatorcomment> + <translation>印刷開始ページ番号は、印刷終了ページ番号より小さくなければなりません。</translation> </message> </context> <context> @@ -4257,107 +5368,106 @@ Please choose a different file name.</source> <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/> <location line="+12"/> <source>Page Setup</source> - <translation type="unfinished"></translation> + <translation>ページの設定</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/> + <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+246"/> <source>%1%</source> - <translation type="unfinished"></translation> + <translation>%1%</translation> </message> <message> - <location line="+79"/> + <location line="+68"/> <source>Print Preview</source> - <translation type="unfinished"></translation> + <translation>印刷のプレビュー</translation> </message> <message> - <location line="+29"/> + <location line="+30"/> <source>Next page</source> - <translation type="unfinished"></translation> + <translation>次のページ</translation> </message> <message> <location line="+1"/> <source>Previous page</source> - <translation type="unfinished"></translation> + <translation>前のページ</translation> </message> <message> <location line="+1"/> <source>First page</source> - <translation type="unfinished"></translation> + <translation>最初のページ</translation> </message> <message> <location line="+1"/> <source>Last page</source> - <translation type="unfinished"></translation> + <translation>最後のページ</translation> </message> <message> <location line="+9"/> <source>Fit width</source> - <translation type="unfinished"></translation> + <translation>幅をあわせる</translation> </message> <message> <location line="+1"/> <source>Fit page</source> - <translation type="unfinished"></translation> + <translation>高さをあわせる</translation> </message> <message> <location line="+11"/> <source>Zoom in</source> - <translation type="unfinished"></translation> + <translation>拡大</translation> </message> <message> <location line="+1"/> <source>Zoom out</source> - <translation type="unfinished"></translation> + <translation>縮小</translation> </message> <message> <location line="+6"/> <source>Portrait</source> - <translation type="unfinished">縦</translation> + <translation>縦</translation> </message> <message> <location line="+1"/> <source>Landscape</source> - <translation type="unfinished">横</translation> + <translation>横</translation> </message> <message> <location line="+10"/> <source>Show single page</source> - <translation type="unfinished"></translation> + <translation>一枚のページを表示する</translation> </message> <message> <location line="+1"/> <source>Show facing pages</source> - <translation type="unfinished"></translation> + <translation>見開きのページを表示する</translation> </message> <message> <location line="+1"/> <source>Show overview of all pages</source> - <translation type="unfinished"></translation> + <translation>すべてのページを表示する</translation> </message> <message> <location line="+15"/> <source>Print</source> - <translation type="unfinished"></translation> + <translation>印刷</translation> </message> <message> <location line="+1"/> <source>Page setup</source> - <translation type="unfinished"></translation> + <translation>ページの設定</translation> </message> <message> - <location line="+1"/> <source>Close</source> - <translation type="unfinished">閉じる</translation> + <translation type="obsolete">閉じる</translation> </message> <message> - <location line="+151"/> + <location line="+150"/> <source>Export to PDF</source> - <translation type="unfinished"></translation> + <translation>PDFに出力</translation> </message> <message> <location line="+3"/> <source>Export to PostScript</source> - <translation type="unfinished"></translation> + <translation>Postscriptに出力</translation> </message> </context> <context> @@ -4380,17 +5490,17 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/> <source>Form</source> - <translation type="unfinished"></translation> + <translation>書式</translation> </message> <message> <location/> <source>Page</source> - <translation type="unfinished"></translation> + <translation>ページ</translation> </message> <message> <location/> <source>Advanced</source> - <translation type="unfinished"></translation> + <translation>高度な設定</translation> </message> </context> <context> @@ -4398,97 +5508,97 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/> <source>Form</source> - <translation type="unfinished"></translation> + <translation>書式</translation> </message> <message> <location/> <source>Copies</source> - <translation type="unfinished">印刷部数</translation> + <translation>印刷部数</translation> </message> <message> <location/> <source>Print range</source> - <translation type="unfinished">印刷範囲</translation> + <translation>印刷範囲</translation> </message> <message> <location/> <source>Print all</source> - <translation type="unfinished">すべて印刷</translation> + <translation>すべて印刷</translation> </message> <message> <location/> <source>Pages from</source> - <translation type="unfinished">先頭のページ:</translation> + <translation>先頭のページ</translation> </message> <message> <location/> <source>to</source> - <translation type="unfinished">末尾のページ:</translation> + <translation>末尾のページ</translation> </message> <message> <location/> <source>Selection</source> - <translation type="unfinished">選択した部分を印刷</translation> + <translation>選択した部分を印刷</translation> </message> <message> <location/> <source>Output Settings</source> - <translation type="unfinished"></translation> + <translation>出力設定</translation> </message> <message> <location/> <source>Copies:</source> - <translation type="unfinished"></translation> + <translation>印刷部数:</translation> </message> <message> <location/> <source>Collate</source> - <translation type="unfinished">丁合い</translation> + <translation>丁合い</translation> </message> <message> <location/> <source>Reverse</source> - <translation type="unfinished"></translation> + <translation>逆順</translation> </message> <message> <location/> <source>Options</source> - <translation type="unfinished"></translation> + <translation>オプション</translation> </message> <message> <location/> <source>Color Mode</source> - <translation type="unfinished"></translation> + <translation>色</translation> </message> <message> <location/> <source>Color</source> - <translation type="unfinished"></translation> + <translation>カラー</translation> </message> <message> <location/> <source>Grayscale</source> - <translation type="unfinished"></translation> + <translation>グレースケール</translation> </message> <message> <location/> <source>Duplex Printing</source> - <translation type="unfinished"></translation> + <translation>両面印刷</translation> </message> <message> <location/> <source>None</source> - <translation type="unfinished"></translation> + <translation>なし</translation> </message> <message> <location/> <source>Long side</source> - <translation type="unfinished"></translation> + <translation>長辺綴じ</translation> </message> <message> <location/> <source>Short side</source> - <translation type="unfinished"></translation> + <translation>短辺綴じ</translation> </message> </context> <context> @@ -4496,47 +5606,47 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/dialogs/qprintwidget.ui"/> <source>Form</source> - <translation type="unfinished"></translation> + <translation>書式</translation> </message> <message> <location/> <source>Printer</source> - <translation type="unfinished">プリンタ</translation> + <translation>プリンタ</translation> </message> <message> <location/> <source>&Name:</source> - <translation type="unfinished"></translation> + <translation>名前(&N):</translation> </message> <message> <location/> <source>P&roperties</source> - <translation type="unfinished"></translation> + <translation>プロパティ(&r)</translation> </message> <message> <location/> <source>Location:</source> - <translation type="unfinished"></translation> + <translation>設置場所:</translation> </message> <message> <location/> <source>Preview</source> - <translation type="unfinished"></translation> + <translation>プレビュー</translation> </message> <message> <location/> <source>Type:</source> - <translation type="unfinished"></translation> + <translation>タイプ:</translation> </message> <message> <location/> <source>Output &file:</source> - <translation type="unfinished"></translation> + <translation>出力ファイル名(&f):</translation> </message> <message> <location/> <source>...</source> - <translation type="unfinished"></translation> + <translation>...</translation> </message> </context> <context> @@ -4545,61 +5655,61 @@ Please choose a different file name.</source> <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/> <source>Could not open input redirection for reading</source> - <translation type="unfinished"></translation> + <translation>標準入力リダイレクトを読み込みのためにオープンすることができません</translation> </message> <message> <location line="+12"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="+36"/> <source>Could not open output redirection for writing</source> - <translation type="unfinished"></translation> + <translation>標準出力リダイレクトを書き込みのためにオープンすることができません</translation> </message> <message> - <location line="+235"/> + <location line="+241"/> <source>Resource error (fork failure): %1</source> - <translation type="unfinished"></translation> + <translation>リソースエラー (fork に失敗しました): %1</translation> </message> <message> <location line="+259"/> <location line="+53"/> <location line="+74"/> <location line="+67"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+422"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+447"/> <location line="+50"/> <location line="+75"/> <location line="+42"/> <location line="+54"/> <source>Process operation timed out</source> - <translation type="unfinished"></translation> + <translation>プロセス処理がタイムアウトしました</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+533"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+558"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> <source>Error reading from process</source> - <translation type="unfinished"></translation> + <translation>プロセスからの読み込みにおいてエラーが発生しました</translation> </message> <message> <location line="+47"/> - <location line="+779"/> + <location line="+833"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/> <source>Error writing to process</source> - <translation type="unfinished"></translation> + <translation>プロセスへの書き込みにおいてエラーが発生しました</translation> </message> <message> - <location line="-709"/> + <location line="-763"/> <source>Process crashed</source> - <translation type="unfinished"></translation> + <translation>プロセスがクラッシュしました</translation> </message> <message> - <location line="+912"/> + <location line="+966"/> <source>No program defined</source> - <translation type="unfinished"></translation> + <translation>プログラム名が指定されていません</translation> </message> <message> <location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/> <source>Process failed to start</source> - <translation type="unfinished"></translation> + <translation>プロセスのスタートに失敗しました</translation> </message> </context> <context> @@ -4739,7 +5849,7 @@ Please choose a different file name.</source> <message> <location line="+15"/> <source>Unable to rollback transaction</source> - <translation type="unfinished">トランザクションをロールバックできません</translation> + <translation>トランザクションをロールバックできません</translation> </message> </context> <context> @@ -4774,7 +5884,7 @@ Please choose a different file name.</source> <message> <location line="-208"/> <source>No query</source> - <translation type="unfinished"></translation> + <translation>クェリーがありません</translation> </message> </context> <context> @@ -4867,105 +5977,109 @@ Please choose a different file name.</source> <message> <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/> <source>%1: unable to set key on lock</source> - <translation type="unfinished"></translation> + <translatorcomment>共有メモリ関連</translatorcomment> + <translation>%1: ロックするためのキーを設定できません</translation> </message> <message> <location line="+81"/> <source>%1: create size is less then 0</source> - <translation type="unfinished"></translation> + <translation>%1: 0より小さいサイズの共有メモリは作成できません</translation> </message> <message> <location line="+168"/> <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/> <source>%1: unable to lock</source> - <translation type="unfinished"></translation> + <translation>%1: ロックできません</translation> </message> <message> <location line="+22"/> <source>%1: unable to unlock</source> - <translation type="unfinished"></translation> + <translation>%1: アンロックできません</translation> </message> <message> - <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+77"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/> <source>%1: permission denied</source> - <translation type="unfinished"></translation> + <translation>%1: 許可されていません</translation> </message> <message> <location line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/> <source>%1: already exists</source> - <translation type="unfinished"></translation> + <translation>%1: 既に存在します</translation> </message> <message> <location line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/> <source>%1: doesn't exists</source> - <translation type="unfinished"></translation> + <translation>%1: 存在しません</translation> </message> <message> <location line="+6"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/> <source>%1: out of resources</source> - <translation type="unfinished"></translation> + <translation>%1: リソース不足です</translation> </message> <message> <location line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/> <source>%1: unknown error %2</source> - <translation type="unfinished"></translation> + <translation>%1: 未知のエラー %2</translation> </message> <message> <location line="+21"/> <source>%1: key is empty</source> - <translation type="unfinished"></translation> + <translation>%1: キーが空です</translation> </message> <message> <location line="+8"/> <source>%1: unix key file doesn't exists</source> - <translation type="unfinished"></translation> + <translatorcomment>?</translatorcomment> + <translation>%1: UNIX key file が存在しません</translation> </message> <message> <location line="+7"/> <source>%1: ftok failed</source> - <translation type="unfinished"></translation> + <translation>%1: fork に失敗しました</translation> </message> <message> <location line="+51"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/> <source>%1: unable to make key</source> - <translation type="unfinished"></translation> + <translation>%1: キーを作成できません</translation> </message> <message> <location line="+20"/> <source>%1: system-imposed size restrictions</source> - <translation type="unfinished"></translation> + <translatorcomment>EINVAL</translatorcomment> + <translation>%1: 指定されたサイズはシステムにより拒否されました</translation> </message> <message> <location line="+53"/> <source>%1: not attached</source> - <translation type="unfinished"></translation> + <translation>%1: アタッチしていません</translation> </message> <message> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-27"/> <source>%1: invalid size</source> - <translation type="unfinished"></translation> + <translation>%1: 無効なサイズです</translation> </message> <message> <location line="+68"/> <source>%1: key error</source> - <translation type="unfinished"></translation> + <translatorcomment>safekey.isEmpty()==true</translatorcomment> + <translation>%1: キーかありません</translation> </message> <message> <location line="+38"/> <source>%1: size query failed</source> - <translation type="unfinished"></translation> + <translation>%1: サイズのクェリーに失敗しました</translation> </message> </context> <context> <name>QShortcut</name> <message> - <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/> + <location filename="../src/gui/kernel/qkeysequence.cpp" line="+394"/> <source>Space</source> <translation>Space</translation> </message> @@ -5395,36 +6509,36 @@ Please choose a different file name.</source> <translation>Flip</translation> </message> <message> - <location line="+527"/> - <location line="+122"/> + <location line="+559"/> + <location line="+135"/> <source>Ctrl</source> <translation>Ctrl</translation> </message> <message> - <location line="-121"/> - <location line="+125"/> + <location line="-134"/> + <location line="+138"/> <source>Shift</source> <translation>Shift</translation> </message> <message> - <location line="-124"/> - <location line="+122"/> + <location line="-137"/> + <location line="+135"/> <source>Alt</source> <translation>Alt</translation> </message> <message> - <location line="-121"/> - <location line="+117"/> + <location line="-134"/> + <location line="+130"/> <source>Meta</source> <translation>Meta</translation> </message> <message> - <location line="-25"/> + <location line="-40"/> <source>+</source> <translation>+</translation> </message> <message> - <location line="+46"/> + <location line="+61"/> <source>F%1</source> <translation>F%1</translation> </message> @@ -5449,8 +6563,7 @@ Please choose a different file name.</source> <message> <location line="+3"/> <source>Page right</source> - <translation>1ページ右へスクロール -</translation> + <translation>1ページ右へスクロール</translation> </message> <message> <location line="+0"/> @@ -5463,67 +6576,68 @@ Please choose a different file name.</source> <message> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/> <source>Connection to proxy refused</source> - <translation type="unfinished"></translation> + <translation>プロキシーへの接続が拒否されました</translation> </message> <message> <location line="+4"/> <source>Connection to proxy closed prematurely</source> - <translation type="unfinished"></translation> + <translation>プロキシーの接続が通信の終了前に切断されました</translation> </message> <message> <location line="+4"/> <source>Proxy host not found</source> - <translation type="unfinished"></translation> + <translation>プロキシーホストが見つかりません</translation> </message> <message> <location line="+5"/> <source>Connection to proxy timed out</source> - <translation type="unfinished"></translation> + <translation>プロキシーとの接続がタイムアウトしました</translation> </message> <message> <location line="+17"/> <source>Proxy authentication failed</source> - <translation type="unfinished"></translation> + <translation>プロキシーの認証に失敗しました</translation> </message> <message> <location line="+1"/> <source>Proxy authentication failed: %1</source> - <translation type="unfinished"></translation> + <translation>プロキシーの認証に失敗しました: %1</translation> </message> <message> <location line="+9"/> <source>SOCKS version 5 protocol error</source> - <translation type="unfinished"></translation> + <translation>SOCKS バージョン 5 プロトコルのエラーです</translation> </message> <message> <location line="+19"/> <source>General SOCKSv5 server failure</source> - <translation type="unfinished"></translation> + <translation>SOCKS バージョン 5 サーバのエラーです</translation> </message> <message> <location line="+4"/> <source>Connection not allowed by SOCKSv5 server</source> - <translation type="unfinished"></translation> + <translation>SOCKSv5 サーバより接続を拒否されました</translation> </message> <message> <location line="+16"/> <source>TTL expired</source> - <translation type="unfinished"></translation> + <translatorcomment>実際はホップ数です</translatorcomment> + <translation>有効期限(TTL)がきれました</translation> </message> <message> <location line="+4"/> <source>SOCKSv5 command not supported</source> - <translation type="unfinished"></translation> + <translation>この SOCKSv5 コマンドはサポートされていません</translation> </message> <message> <location line="+4"/> <source>Address type not supported</source> - <translation type="unfinished"></translation> + <translation>指定されたアドレスタイプはサポートされていません</translation> </message> <message> <location line="+5"/> <source>Unknown SOCKSv5 proxy error code 0x%1</source> - <translation type="unfinished"></translation> + <translation>未知の SOCKSv5 プロキシーエラーです: 0x%1</translation> </message> <message> <source>Socks5 timeout error connecting to socks server</source> @@ -5532,7 +6646,7 @@ Please choose a different file name.</source> <message> <location line="+685"/> <source>Network operation timed out</source> - <translation type="unfinished">ネットワーク操作がタイムアウトしました</translation> + <translation>ネットワーク操作がタイムアウトしました</translation> </message> </context> <context> @@ -5610,57 +6724,57 @@ Please choose a different file name.</source> <message> <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+260"/> <source>Error creating SSL context (%1)</source> - <translation type="unfinished"></translation> + <translation>SSL content の作成に失敗しました (%1)</translation> </message> <message> <location line="+25"/> <source>Invalid or empty cipher list (%1)</source> - <translation type="unfinished"></translation> + <translation>暗号方式リストが無効または空です (%1)</translation> </message> <message> <location line="+16"/> <source>Cannot provide a certificate with no key, %1</source> - <translation type="unfinished"></translation> + <translation>鍵が指定されていないため、証明書を扱えません。 %1</translation> </message> <message> <location line="+7"/> <source>Error loading local certificate, %1</source> - <translation type="unfinished"></translation> + <translation>ローカルの証明書をロードできません。 %1</translation> </message> <message> <location line="+12"/> <source>Error loading private key, %1</source> - <translation type="unfinished"></translation> + <translation>プライベートキーをロードできません。 %1</translation> </message> <message> <location line="+7"/> <source>Private key does not certificate public key, %1</source> - <translation type="unfinished"></translation> + <translation>プライベートキーが、パブリックキーの証明書となっていません %1</translation> </message> <message> <location line="+20"/> <source>Error creating SSL session, %1</source> - <translation type="unfinished"></translation> + <translation>SSL セッションを作成できません。 %1</translation> </message> <message> <location line="+15"/> <source>Error creating SSL session: %1</source> - <translation type="unfinished"></translation> + <translation>SSL セッションを作成できません: %1</translation> </message> <message> <location line="+207"/> <source>Unable to write data: %1</source> - <translation type="unfinished"></translation> + <translation>書き込みできません: %1</translation> </message> <message> <location line="+119"/> <source>Error while reading: %1</source> - <translation type="unfinished"></translation> + <translation>読み込み時にエラーが発生しました: %1</translation> </message> <message> <location line="+96"/> <source>Error during SSL handshake: %1</source> - <translation type="unfinished"></translation> + <translation>SSL ハンドシェーク時にエラーが発生しました: %1</translation> </message> </context> <context> @@ -5669,29 +6783,29 @@ Please choose a different file name.</source> <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/> <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/> <source>%1: out of resources</source> - <translation type="unfinished"></translation> + <translation>%1: リソース不足です</translation> </message> <message> <location line="-13"/> <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/> <source>%1: permission denied</source> - <translation type="unfinished"></translation> + <translation>%1: 許可されていません</translation> </message> <message> <location line="+4"/> <source>%1: already exists</source> - <translation type="unfinished"></translation> + <translation>%1: 既に存在します</translation> </message> <message> <location line="+4"/> <source>%1: does not exist</source> - <translation type="unfinished"></translation> + <translation>%1: 存在しません</translation> </message> <message> <location line="+9"/> <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/> <source>%1: unknown error %2</source> - <translation type="unfinished"></translation> + <translation>%1: 未知のエラーです %2</translation> </message> </context> <context> @@ -5729,7 +6843,7 @@ Please choose a different file name.</source> <message> <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/> <source>Operation on socket is not supported</source> - <translation type="unfinished"></translation> + <translation>このソケットへの操作はサポートされていません</translation> </message> </context> <context> @@ -5837,52 +6951,52 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/text/qtextcontrol.cpp" line="+884"/> <source>LRM Left-to-right mark</source> - <translation type="unfinished"></translation> + <translation>LRM (左横書き指定)</translation> </message> <message> <location line="+1"/> <source>RLM Right-to-left mark</source> - <translation type="unfinished"></translation> + <translation>RLM (右横書き指定)</translation> </message> <message> <location line="+1"/> <source>ZWJ Zero width joiner</source> - <translation type="unfinished"></translation> + <translation>ZWJ (幅のない接続文字)</translation> </message> <message> <location line="+1"/> <source>ZWNJ Zero width non-joiner</source> - <translation type="unfinished"></translation> + <translation>ZWNJ (幅のない非接続文字)</translation> </message> <message> <location line="+1"/> <source>ZWSP Zero width space</source> - <translation type="unfinished"></translation> + <translation>ZWSP (幅の無い空白)</translation> </message> <message> <location line="+1"/> <source>LRE Start of left-to-right embedding</source> - <translation type="unfinished"></translation> + <translation>LRE (左横書き開始指定)</translation> </message> <message> <location line="+1"/> <source>RLE Start of right-to-left embedding</source> - <translation type="unfinished"></translation> + <translation>RLE (右横書き開始指定)</translation> </message> <message> <location line="+1"/> <source>LRO Start of left-to-right override</source> - <translation type="unfinished"></translation> + <translation>LRO (左横書き上書き開始指定)</translation> </message> <message> <location line="+1"/> <source>RLO Start of right-to-left override</source> - <translation type="unfinished"></translation> + <translation>RLO (右横書き上書き開始指定)</translation> </message> <message> <location line="+1"/> <source>PDF Pop directional formatting</source> - <translation type="unfinished"></translation> + <translation>PDF (方向上書きの終了指定)</translation> </message> <message> <location line="+6"/> @@ -5895,572 +7009,574 @@ Please choose a different file name.</source> <message> <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/> <source>Request cancelled</source> - <translation type="unfinished"></translation> + <translation>リクエストはキャンセルされました</translation> </message> <message> <location line="+17"/> <source>Request blocked</source> - <translation type="unfinished"></translation> + <translation>リクエストはブロックされました</translation> </message> <message> <location line="+7"/> <source>Cannot show URL</source> - <translation type="unfinished"></translation> + <translation>URL を表示できません</translation> </message> <message> <location line="+6"/> <source>Frame load interruped by policy change</source> - <translation type="unfinished"></translation> + <translation>ポリシーの変更により、フレームのロードが中断しました</translation> </message> <message> <location line="+6"/> <source>Cannot show mimetype</source> - <translation type="unfinished"></translation> + <translation>MIME Type を表示できません</translation> </message> <message> <location line="+6"/> <source>File does not exist</source> - <translation type="unfinished"></translation> + <translation>ファイルが存在しません</translation> </message> </context> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+382"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+384"/> <source>Bad HTTP request</source> - <translation type="unfinished"></translation> + <translation>誤った HTTP のリクエストです</translation> </message> <message> <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> - <translation type="unfinished"></translation> + <translation>送信</translation> </message> <message> <location line="+5"/> <source>Submit</source> <comment>Submit (input element) alt text for <input> elements with no alt, title, or value</comment> - <translation type="unfinished"></translation> + <translation>送信</translation> </message> <message> <location line="+5"/> <source>Reset</source> <comment>default label for Reset buttons in forms on web pages</comment> - <translation type="unfinished">リセット</translation> + <translation>リセット</translation> </message> <message> <location line="+10"/> <source>This is a searchable index. Enter search keywords: </source> <comment>text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'</comment> - <translation type="unfinished"></translation> + <translation>検索が可能です。検索のためのキーワードを入力してください: </translation> </message> <message> <location line="+5"/> <source>Choose File</source> <comment>title for file button used in HTML forms</comment> - <translation type="unfinished"></translation> + <translation>ファイルを選ぶ</translation> </message> <message> <location line="+5"/> <source>No file selected</source> <comment>text to display in file button used in HTML forms when no file is selected</comment> - <translation type="unfinished"></translation> + <translation>ファイルが選択されていません</translation> </message> <message> <location line="+5"/> <source>Open in New Window</source> <comment>Open in New Window context menu item</comment> - <translation type="unfinished"></translation> + <translation>新しいウィンドウで開く</translation> </message> <message> <location line="+5"/> <source>Save Link...</source> <comment>Download Linked File context menu item</comment> - <translation type="unfinished"></translation> + <translation>リンク先を保存...</translation> </message> <message> <location line="+5"/> <source>Copy Link</source> <comment>Copy Link context menu item</comment> - <translation type="unfinished"></translation> + <translation>リンク先をコピー</translation> </message> <message> <location line="+5"/> <source>Open Image</source> <comment>Open Image in New Window context menu item</comment> - <translation type="unfinished"></translation> + <translation>イメージを開く</translation> </message> <message> <location line="+5"/> <source>Save Image</source> <comment>Download Image context menu item</comment> - <translation type="unfinished"></translation> + <translation>画像を保存</translation> </message> <message> <location line="+5"/> <source>Copy Image</source> <comment>Copy Link context menu item</comment> - <translation type="unfinished"></translation> + <translation>画像をコピー</translation> </message> <message> <location line="+5"/> <source>Open Frame</source> <comment>Open Frame in New Window context menu item</comment> - <translation type="unfinished"></translation> + <translation>フレームを新しいウィンドウで開く</translation> </message> <message> <location line="+5"/> <source>Copy</source> <comment>Copy context menu item</comment> - <translation type="unfinished"></translation> + <translation>コピー</translation> </message> <message> <location line="+5"/> <source>Go Back</source> <comment>Back context menu item</comment> - <translation type="unfinished"></translation> + <translation>戻る</translation> </message> <message> <location line="+5"/> <source>Go Forward</source> <comment>Forward context menu item</comment> - <translation type="unfinished"></translation> + <translation>進む</translation> </message> <message> <location line="+5"/> <source>Stop</source> <comment>Stop context menu item</comment> - <translation type="unfinished">停止</translation> + <translation>停止</translation> </message> <message> <location line="+5"/> <source>Reload</source> <comment>Reload context menu item</comment> - <translation type="unfinished"></translation> + <translation>リロード</translation> </message> <message> <location line="+5"/> <source>Cut</source> <comment>Cut context menu item</comment> - <translation type="unfinished"></translation> + <translation>切り取り</translation> </message> <message> <location line="+5"/> <source>Paste</source> <comment>Paste context menu item</comment> - <translation type="unfinished"></translation> + <translation>貼り付け</translation> </message> <message> <location line="+5"/> <source>No Guesses Found</source> <comment>No Guesses Found context menu item</comment> - <translation type="unfinished"></translation> + <translation>推測候補はありません</translation> </message> <message> <location line="+5"/> <source>Ignore</source> <comment>Ignore Spelling context menu item</comment> - <translation type="unfinished">無視</translation> + <translation>無視</translation> </message> <message> <location line="+5"/> <source>Add To Dictionary</source> <comment>Learn Spelling context menu item</comment> - <translation type="unfinished"></translation> + <translation>辞書に追加</translation> </message> <message> <location line="+5"/> <source>Search The Web</source> <comment>Search The Web context menu item</comment> - <translation type="unfinished"></translation> + <translation>Web を検索</translation> </message> <message> <location line="+5"/> <source>Look Up In Dictionary</source> <comment>Look Up in Dictionary context menu item</comment> - <translation type="unfinished"></translation> + <translation>辞書から探す</translation> </message> <message> <location line="+5"/> <source>Open Link</source> <comment>Open Link context menu item</comment> - <translation type="unfinished"></translation> + <translation>リンクを開く</translation> </message> <message> <location line="+5"/> <source>Ignore</source> <comment>Ignore Grammar context menu item</comment> - <translation type="unfinished">無視</translation> + <translation>無視</translation> </message> <message> <location line="+5"/> <source>Spelling</source> <comment>Spelling and Grammar context sub-menu item</comment> - <translation type="unfinished"></translation> + <translation>スペル</translation> </message> <message> <location line="+5"/> <source>Show Spelling and Grammar</source> <comment>menu item title</comment> - <translation type="unfinished"></translation> + <translation>スペルと文法を表示</translation> </message> <message> <location line="+1"/> <source>Hide Spelling and Grammar</source> <comment>menu item title</comment> - <translation type="unfinished"></translation> + <translation>スペルと文法を隠す</translation> </message> <message> <location line="+5"/> <source>Check Spelling</source> <comment>Check spelling context menu item</comment> - <translation type="unfinished"></translation> + <translation>スペルをチェックする</translation> </message> <message> <location line="+5"/> <source>Check Spelling While Typing</source> <comment>Check spelling while typing context menu item</comment> - <translation type="unfinished"></translation> + <translation>入力中にスペルをチェックする</translation> </message> <message> <location line="+5"/> <source>Check Grammar With Spelling</source> <comment>Check grammar with spelling context menu item</comment> - <translation type="unfinished"></translation> + <translation>スペルおよび文法をチェックする</translation> </message> <message> <location line="+5"/> <source>Fonts</source> <comment>Font context sub-menu item</comment> - <translation type="unfinished"></translation> + <translation>フォント</translation> </message> <message> <location line="+5"/> <source>Bold</source> <comment>Bold context menu item</comment> - <translation type="unfinished"></translation> + <translation>太字</translation> </message> <message> <location line="+5"/> <source>Italic</source> <comment>Italic context menu item</comment> - <translation type="unfinished"></translation> + <translation>イタリック</translation> </message> <message> <location line="+5"/> <source>Underline</source> <comment>Underline context menu item</comment> - <translation type="unfinished"></translation> + <translation>下線</translation> </message> <message> <location line="+5"/> <source>Outline</source> <comment>Outline context menu item</comment> - <translation type="unfinished"></translation> + <translation>アウトライン</translation> </message> <message> <location line="+5"/> <source>Direction</source> <comment>Writing direction context sub-menu item</comment> - <translation type="unfinished"></translation> + <translation>方向</translation> </message> <message> <location line="+5"/> <source>Text Direction</source> <comment>Text direction context sub-menu item</comment> - <translation type="unfinished"></translation> + <translation>テキストの方向</translation> </message> <message> <location line="+5"/> <source>Default</source> <comment>Default writing direction context menu item</comment> - <translation type="unfinished"></translation> + <translation>デフォルト</translation> </message> <message> <location line="+5"/> <source>LTR</source> <comment>Left to Right context menu item</comment> - <translation type="unfinished"></translation> + <translation>左横書き</translation> </message> <message> <location line="+5"/> <source>RTL</source> <comment>Right to Left context menu item</comment> - <translation type="unfinished"></translation> + <translation>右横書き</translation> </message> <message> <location line="+5"/> <source>Inspect</source> <comment>Inspect Element context menu item</comment> - <translation type="unfinished"></translation> + <translatorcomment>?</translatorcomment> + <translation>検査</translation> </message> <message> <location line="+5"/> <source>No recent searches</source> <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment> - <translation type="unfinished"></translation> + <translation>検索の履歴はありません</translation> </message> <message> <location line="+5"/> <source>Recent searches</source> <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment> - <translation type="unfinished"></translation> + <translation>検索の履歴</translation> </message> <message> <location line="+5"/> <source>Clear recent searches</source> <comment>menu item in Recent Searches menu that empties menu's contents</comment> - <translation type="unfinished"></translation> + <translation>検索の履歴をクリア</translation> </message> <message> <location line="+75"/> <source>Unknown</source> <comment>Unknown filesize FTP directory listing item</comment> - <translation type="unfinished">不明</translation> + <translation>不明</translation> </message> <message> <location line="+5"/> <source>%1 (%2x%3 pixels)</source> <comment>Title string for images</comment> - <translation type="unfinished"></translation> + <translation>%1 (%2x%3 ピクセル)</translation> </message> <message> <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+185"/> <source>Web Inspector - %2</source> - <translation type="unfinished"></translation> + <translation>Web の検査 - %2</translation> </message> <message> <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/> <source>Scroll here</source> - <translation type="unfinished">ここにスクロール</translation> + <translation>ここにスクロール</translation> </message> <message> <location line="+3"/> <source>Left edge</source> - <translation type="unfinished">左端</translation> + <translation>左端</translation> </message> <message> <location line="+0"/> <source>Top</source> - <translation type="unfinished">上端</translation> + <translation>上端</translation> </message> <message> <location line="+1"/> <source>Right edge</source> - <translation type="unfinished">右端</translation> + <translation>右端</translation> </message> <message> <location line="+0"/> <source>Bottom</source> - <translation type="unfinished">下端</translation> + <translation>下端</translation> </message> <message> <location line="+3"/> <source>Page left</source> - <translation type="unfinished">1ページ左へスクロール</translation> + <translation>1ページ左へスクロール</translation> </message> <message> <location line="+0"/> <source>Page up</source> - <translation type="unfinished">1ページ戻る</translation> + <translation>1ページ戻る</translation> </message> <message> <location line="+1"/> <source>Page right</source> - <translation type="unfinished"></translation> + <translation>1ページ右へスクロール</translation> </message> <message> <location line="+0"/> <source>Page down</source> - <translation type="unfinished">1ページ進む</translation> + <translation>1ページ進む</translation> </message> <message> <location line="+3"/> <source>Scroll left</source> - <translation type="unfinished">左へスクロール</translation> + <translation>左へスクロール</translation> </message> <message> <location line="+0"/> <source>Scroll up</source> - <translation type="unfinished">上へスクロール</translation> + <translation>上へスクロール</translation> </message> <message> <location line="+1"/> <source>Scroll right</source> - <translation type="unfinished">右へスクロール</translation> + <translation>右へスクロール</translation> </message> <message> <location line="+0"/> <source>Scroll down</source> - <translation type="unfinished">下へスクロール</translation> + <translation>下へスクロール</translation> </message> <message numerus="yes"> <location filename="../src/3rdparty/webkit/WebCore/platform/qt/FileChooserQt.cpp" line="+45"/> <source>%n file(s)</source> <comment>number of chosen file</comment> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n 個のファイル</numerusform> </translation> </message> <message> <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/> <source>JavaScript Alert - %1</source> - <translation type="unfinished"></translation> + <translation>JavaScript アラート - %1</translation> </message> <message> <location line="+15"/> <source>JavaScript Confirm - %1</source> - <translation type="unfinished"></translation> + <translation>JavaScript 確認 - %1</translation> </message> <message> <location line="+17"/> <source>JavaScript Prompt - %1</source> - <translation type="unfinished"></translation> + <translation>JavaScript 質問 - %1</translation> </message> <message> - <location line="+333"/> + <location line="+340"/> <source>Move the cursor to the next character</source> - <translation type="unfinished"></translation> + <translation>次の文字へカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the previous character</source> - <translation type="unfinished"></translation> + <translation>前の文字にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the next word</source> - <translation type="unfinished"></translation> + <translation>次の単語にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the previous word</source> - <translation type="unfinished"></translation> + <translation>前の単語にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the next line</source> - <translation type="unfinished"></translation> + <translation>次の行にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the previous line</source> - <translation type="unfinished"></translation> + <translation>前の行にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the start of the line</source> - <translation type="unfinished"></translation> + <translatorcomment>文なのか行なのか</translatorcomment> + <translation>文頭にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the end of the line</source> - <translation type="unfinished"></translation> + <translation>文末にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the start of the block</source> - <translation type="unfinished"></translation> + <translation>ブロックの先頭にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the end of the block</source> - <translation type="unfinished"></translation> + <translation>ブロックの末尾にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the start of the document</source> - <translation type="unfinished"></translation> + <translation>文章の先頭にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Move the cursor to the end of the document</source> - <translation type="unfinished"></translation> + <translation>文章の末尾にカーソルを移動</translation> </message> <message> <location line="+3"/> <source>Select all</source> - <translation type="unfinished"></translation> + <translation>すべてを選択</translation> </message> <message> <location line="+3"/> <source>Select to the next character</source> - <translation type="unfinished"></translation> + <translation>次の文字を選択</translation> </message> <message> <location line="+3"/> <source>Select to the previous character</source> - <translation type="unfinished"></translation> + <translation>前の文字を選択</translation> </message> <message> <location line="+3"/> <source>Select to the next word</source> - <translation type="unfinished"></translation> + <translation>次の単語を選択</translation> </message> <message> <location line="+3"/> <source>Select to the previous word</source> - <translation type="unfinished"></translation> + <translation>前の単語を選択</translation> </message> <message> <location line="+3"/> <source>Select to the next line</source> - <translation type="unfinished"></translation> + <translation>次の行を選択</translation> </message> <message> <location line="+3"/> <source>Select to the previous line</source> - <translation type="unfinished"></translation> + <translation>前の行を選択</translation> </message> <message> <location line="+3"/> <source>Select to the start of the line</source> - <translation type="unfinished"></translation> + <translation>文頭から選択</translation> </message> <message> <location line="+3"/> <source>Select to the end of the line</source> - <translation type="unfinished"></translation> + <translation>文末まで選択</translation> </message> <message> <location line="+3"/> <source>Select to the start of the block</source> - <translation type="unfinished"></translation> + <translation>ブロックの先頭から選択</translation> </message> <message> <location line="+3"/> <source>Select to the end of the block</source> - <translation type="unfinished"></translation> + <translation>ブロックの末尾まで選択</translation> </message> <message> <location line="+3"/> <source>Select to the start of the document</source> - <translation type="unfinished"></translation> + <translation>ドキュメントの先頭から選択</translation> </message> <message> <location line="+3"/> <source>Select to the end of the document</source> - <translation type="unfinished"></translation> + <translation>ドキュメントの末尾まで選択</translation> </message> <message> <location line="+3"/> <source>Delete to the start of the word</source> - <translation type="unfinished"></translation> + <translation>単語の先頭まで削除</translation> </message> <message> <location line="+3"/> <source>Delete to the end of the word</source> - <translation type="unfinished"></translation> + <translation>単語の末尾まで削除</translation> </message> <message> <location line="+33"/> <source>Insert a new paragraph</source> - <translation type="unfinished"></translation> + <translation>新しい段落を挿入</translation> </message> <message> <location line="+3"/> <source>Insert a new line</source> - <translation type="unfinished"></translation> + <translation>新しい行を挿入</translation> </message> </context> <context> @@ -6468,13 +7584,13 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/> <source>What's This?</source> - <translation>ヒント</translation> + <translation>ヒント?</translation> </message> </context> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5288"/> <source>*</source> <translation>*</translation> </message> @@ -6484,57 +7600,57 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/> <source>Go Back</source> - <translation type="unfinished"></translation> + <translation>戻る</translation> </message> <message> <location line="+3"/> <source>Continue</source> - <translation type="unfinished"></translation> + <translation>続き</translation> </message> <message> <location line="+5"/> <source>Commit</source> - <translation type="unfinished"></translation> + <translation>適用</translation> </message> <message> <location line="+2"/> <source>Done</source> - <translation type="unfinished"></translation> + <translation>終了</translation> </message> <message> <location line="+4"/> <source>Help</source> - <translation type="unfinished">ヘルプ</translation> + <translation>ヘルプ</translation> </message> <message> <location line="-14"/> <source>< &Back</source> - <translation type="unfinished">< 戻る(&B)</translation> + <translation>< 戻る(&B)</translation> </message> <message> <location line="+10"/> <source>&Finish</source> - <translation type="unfinished">完了(&F)</translation> + <translation>完了(&F)</translation> </message> <message> <location line="+2"/> <source>Cancel</source> - <translation type="unfinished">キャンセル</translation> + <translation>キャンセル</translation> </message> <message> <location line="+2"/> <source>&Help</source> - <translation type="unfinished">ヘルプ(&H)</translation> + <translation>ヘルプ(&H)</translation> </message> <message> <location line="-8"/> <source>&Next</source> - <translation type="unfinished"></translation> + <translation>次へ(&N)</translation> </message> <message> <location line="+0"/> <source>&Next ></source> - <translation type="unfinished">次へ(&N) ></translation> + <translation>次へ(&N) ></translation> </message> </context> <context> @@ -6729,145 +7845,148 @@ Please choose a different file name.</source> <name>QXmlStream</name> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/> - <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/> + <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1770"/> <source>Extra content at end of document.</source> - <translation type="unfinished"></translation> + <translation>ドキュメントの末尾に余計なものがついています。</translation> </message> <message> <location line="+222"/> <source>Invalid entity value.</source> - <translation type="unfinished"></translation> + <translation>エンティティの値が無効です。</translation> </message> <message> <location line="+107"/> <source>Invalid XML character.</source> - <translation type="unfinished"></translation> + <translation>無効な XML 文字です。</translation> </message> <message> <location line="+259"/> <source>Sequence ']]>' not allowed in content.</source> - <translation type="unfinished"></translation> + <translation>このコンテキストでは、']]>' は許可されていません。</translation> </message> <message> <location line="+279"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-691"/> <source>Encountered incorrectly encoded content.</source> - <translation type="unfinished"></translation> + <translation>正しくないエンコードの文脈に遭遇しました。</translation> </message> <message> <location line="+30"/> <source>Namespace prefix '%1' not declared</source> - <translation type="unfinished"></translation> + <translation>名前空間のブリフィックス '%1' は宣言されていません</translation> </message> <message> <location line="+78"/> <source>Attribute redefined.</source> - <translation type="unfinished"></translation> + <translation>属性が再度指定されています。</translation> </message> <message> <location line="+115"/> <source>Unexpected character '%1' in public id literal.</source> - <translation type="unfinished"></translation> + <translatorcomment>DTD宣言の部分</translatorcomment> + <translation>公開 ID 指定に使用できない文字 '%1' が使用されています。</translation> </message> <message> <location line="+28"/> <source>Invalid XML version string.</source> - <translation type="unfinished"></translation> + <translation>無効な XML バージョン指定です。</translation> </message> <message> <location line="+2"/> <source>Unsupported XML version.</source> - <translation type="unfinished"></translation> + <translation>この XML のバージョンはサポートされていません。</translation> </message> <message> <location line="+21"/> <source>The standalone pseudo attribute must appear after the encoding.</source> - <translation type="unfinished"></translation> + <translatorcomment>&ddd; は、エンコーディングを指定していないと使えないということかな。utf8だとおもうけど。</translatorcomment> + <translation>仮想属性指定は、エンコーディング指定の後にのみ使用できます。</translation> </message> <message> <location line="+2"/> <source>%1 is an invalid encoding name.</source> - <translation type="unfinished"></translation> + <translation>%1 は無効なエンコーディングの名前です。</translation> </message> <message> <location line="+7"/> <source>Encoding %1 is unsupported</source> - <translation type="unfinished"></translation> + <translation>エンコーディング '%1' はサポートされていません</translation> </message> <message> <location line="+16"/> <source>Standalone accepts only yes or no.</source> - <translation type="unfinished"></translation> + <translation>standalone の指定は yes または no のみ指定できます。</translation> </message> <message> <location line="+2"/> <source>Invalid attribute in XML declaration.</source> - <translation type="unfinished"></translation> + <translation>XML 宣言に無効な属性がついています。</translation> </message> <message> <location line="+16"/> <source>Premature end of document.</source> - <translation type="unfinished"></translation> + <translation>ドキュメントが途中で終わっています。</translation> </message> <message> <location line="+2"/> <source>Invalid document.</source> - <translation type="unfinished"></translation> + <translation>無効なドキュメントです。</translation> </message> <message> <location line="+40"/> <source>Expected </source> - <translation type="unfinished"></translation> + <translation>予期していた表現は、</translation> </message> <message> <location line="+11"/> <source>, but got '</source> - <translation type="unfinished"></translation> + <translation>ですが、取得した表現は以下のものでした '</translation> </message> <message> <location line="+4"/> <source>Unexpected '</source> - <translation type="unfinished"></translation> + <translation>予期していなかった表現 '</translation> </message> <message> <location line="+210"/> <source>Expected character data.</source> - <translation type="unfinished"></translation> + <translation>予期していた文字列。</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-304"/> <source>Recursive entity detected.</source> - <translation type="unfinished"></translation> + <translation>再帰しているエンティティを発見しました。</translation> </message> <message> <location line="+516"/> <source>Start tag expected.</source> - <translation type="unfinished"></translation> + <translation>開始タグをよきしていましたが、みつかりません。</translation> </message> <message> <location line="+191"/> <source>NDATA in parameter entity declaration.</source> - <translation type="unfinished"></translation> + <translation>パラメータエンティティの宣言において NDATA があります。</translation> </message> <message> <location line="+31"/> <source>XML declaration not at start of document.</source> - <translation type="unfinished"></translation> + <translation>XML 宣言がドキュメントの先頭にありません。</translation> </message> <message> <location line="+3"/> <source>%1 is an invalid processing instruction name.</source> - <translation type="unfinished"></translation> + <translatorcomment>XMLにそんなのあったっけ?</translatorcomment> + <translation>%1 は無効な処理指定の名前です。</translation> </message> <message> <location line="+11"/> <source>Invalid processing instruction name.</source> - <translation type="unfinished"></translation> + <translation>無効な処理命令です。</translation> </message> <message> <location line="+114"/> <source>%1 is an invalid PUBLIC identifier.</source> - <translation type="unfinished"></translation> + <translation>%1 は、公開 (PUBLIC) 識別子として無効です。</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="-521"/> @@ -6875,1092 +7994,39 @@ Please choose a different file name.</source> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+50"/> <location line="+53"/> <source>Illegal namespace declaration.</source> - <translation type="unfinished"></translation> + <translation>無効な名前空間の指定です。</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/> <source>Invalid XML name.</source> - <translation type="unfinished"></translation> + <translation>無効な XML 名です。</translation> </message> <message> <location line="+23"/> <source>Opening and ending tag mismatch.</source> - <translation type="unfinished"></translation> + <translation>開始タグと、終了タグがマッチしません。</translation> </message> <message> <location line="+18"/> <source>Reference to unparsed entity '%1'.</source> - <translation type="unfinished"></translation> + <translation>まだパースしていないエンティティ '%1' を参照しています。</translation> </message> <message> <location line="-13"/> <location line="+61"/> <location line="+40"/> <source>Entity '%1' not declared.</source> - <translation type="unfinished"></translation> + <translation>エンティティ '%1' は宣言されていません。</translation> </message> <message> <location line="-26"/> <source>Reference to external entity '%1' in attribute value.</source> - <translation type="unfinished"></translation> + <translation>属性値として、外部エンティティ '%1' を再度指定しています。</translation> </message> <message> <location line="+40"/> <source>Invalid character reference.</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QtXmlPatterns</name> - <message> - <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/> - <source>An %1-attribute with value %2 has already been declared.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>An %1-attribute must have a valid %2 as value, which %3 isn't.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/> - <source>Network timeout.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/> - <source>Element %1 can't be serialized because it appears outside the document element.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+60"/> - <source>Attribute %1 can't be serialized because it appears at the top level.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/> - <source>Year %1 is invalid because it begins with %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+19"/> - <source>Day %1 is outside the range %2..%3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>Month %1 is outside the range %2..%3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+10"/> - <source>Overflow: Can't represent date %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>Day %1 is invalid for month %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+49"/> - <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>Time %1:%2:%3.%4 is invalid.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+115"/> - <source>Overflow: Date can't be represented.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> - <location line="+15"/> - <source>At least one component must be present.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-7"/> - <source>At least one time component must appear after the %1-delimiter.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/> - <source>No operand in an integer division, %1, can be %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>The first operand in an integer division, %1, cannot be infinity (%2).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>The second operand in a division, %1, cannot be zero (%2).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> - <source>%1 is not a valid value of type %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> - <source>When casting to %1 from %2, the source value cannot be %3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/> - <source>Integer division (%1) by zero (%2) is undefined.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>Division (%1) by zero (%2) is undefined.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>Modulus division (%1) by zero (%2) is undefined.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+122"/> - <location line="+32"/> - <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-20"/> - <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+32"/> - <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/> - <source>A value of type %1 cannot have an Effective Boolean Value.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> - <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/> - <source>Value %1 of type %2 exceeds maximum (%3).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>Value %1 of type %2 is below minimum (%3).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/> - <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+19"/> - <source>%1 is not valid as a value of type %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/> - <source>Operator %1 cannot be used on type %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+17"/> - <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/> - <source>The namespace URI in the name for a computed attribute cannot be %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/> - <source>Type error in cast, expected %1, received %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+29"/> - <source>When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/> - <source>No casting is possible with %1 as the target type.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+15"/> - <source>It is not possible to cast from %1 to %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+27"/> - <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+23"/> - <source>It's not possible to cast the value %1 of type %2 to %3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+8"/> - <source>Failure when casting from %1 to %2: %3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/> - <source>A comment cannot contain %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>A comment cannot end with a %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/> - <source>No comparisons can be done involving the type %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+14"/> - <source>Operator %1 is not available between atomic values of type %2 and %3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/> - <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/> - <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+40"/> - <source>No template by name %1 exists.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+106"/> - <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+32"/> - <source>A positional predicate must evaluate to a single numeric value.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/> - <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+24"/> - <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/> - <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> - <source>The data of a processing instruction cannot contain the string %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/> - <source>No namespace binding exists for the prefix %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/> - <source>No namespace binding exists for the prefix %1 in %2</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+12"/> - <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> - <source>%1 is an invalid %2</source> - <translation type="unfinished"></translation> - </message> - <message numerus="yes"> - <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> - <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> - <translation type="unfinished"> - <numerusform></numerusform> - </translation> - </message> - <message numerus="yes"> - <location line="+11"/> - <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> - <translation type="unfinished"> - <numerusform></numerusform> - </translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/> - <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+74"/> - <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+91"/> - <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> - <source>%1 is not a valid XML 1.0 character.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/> - <source>The first argument to %1 cannot be of type %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/> - <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> - <source>%1 was called.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/> - <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+39"/> - <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+26"/> - <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> - <source>%1 matches newline characters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+4"/> - <source>%1 and %2 match the start and end of a line.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>Matches are case insensitive</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+4"/> - <source>Whitespace characters are removed, except when they appear in character classes</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+99"/> - <source>%1 is an invalid regular expression pattern: %2</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+30"/> - <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+17"/> - <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/> - <source>It will not be possible to retrieve %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> - <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/> - <source>The default collection is undefined</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>%1 cannot be retrieved</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/> - <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/> - <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+12"/> - <source>%1 is not a whole number of minutes.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/> - <source>Required cardinality is %1; got cardinality %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> - <source>The item %1 did not match the required type %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/> - <location line="+7253"/> - <source>%1 is an unknown schema type.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-6971"/> - <source>Only one %1 declaration can occur in the query prolog.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+188"/> - <source>The initialization of variable %1 depends on itself</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+63"/> - <source>No variable by name %1 exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> - <source>The variable %1 is unused</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2841"/> - <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+16"/> - <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+55"/> - <source>No function with signature %1 is available</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+72"/> - <location line="+10"/> - <source>A default namespace declaration must occur before function, variable, and option declarations.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+10"/> - <source>Namespace declarations must occur before function, variable, and option declarations.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+11"/> - <source>Module imports must occur before function, variable, and option declarations.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+200"/> - <source>It is not possible to redeclare prefix %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+18"/> - <source>Prefix %1 is already declared in the prolog.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+95"/> - <source>The name of an option must have a prefix. There is no default namespace for options.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+171"/> - <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>The target namespace of a %1 cannot be empty.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+8"/> - <source>The module import feature is not supported</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+52"/> - <source>No value is available for the external variable by name %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-4154"/> - <source>A construct was encountered which only is allowed in XQuery.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+118"/> - <source>A template by name %1 has already been declared.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+3581"/> - <source>The keyword %1 cannot occur with any other mode name.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+29"/> - <source>The value of attribute %1 must of type %2, which %3 isn't.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+75"/> - <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+312"/> - <source>A variable by name %1 has already been declared.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+135"/> - <source>A stylesheet function must have a prefixed name.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+12"/> - <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+34"/> - <source>A function already exists with the signature %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+23"/> - <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+37"/> - <source>An argument by name %1 has already been declared. Every argument name must be unique.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+179"/> - <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+11"/> - <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+14"/> - <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>In an XSL-T pattern, function %1 cannot have a third argument.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+10"/> - <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+63"/> - <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+126"/> - <source>%1 is an invalid template mode name.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+44"/> - <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+758"/> - <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+39"/> - <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+267"/> - <source>Each name of a template parameter must be unique; %1 is duplicated.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+129"/> - <source>The %1-axis is unsupported in XQuery</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+1150"/> - <source>%1 is not a valid name for a processing-instruction.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-7029"/> - <source>%1 is not a valid numeric literal.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6165"/> - <source>No function by name %1 is available.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+102"/> - <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>%1 is an invalid namespace URI.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>It is not possible to bind to the prefix %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+8"/> - <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+15"/> - <source>Two namespace declaration attributes have the same name: %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+89"/> - <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+16"/> - <source>An attribute by name %1 has already appeared on this element.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+61"/> - <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+458"/> - <source>The name %1 does not refer to any schema type.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+10"/> - <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+145"/> - <location line="+71"/> - <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+48"/> - <source>The name of an extension expression must be in a namespace.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> - <source>empty</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>zero or one</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>exactly one</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>one or more</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>zero or more</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/> - <source>Required type is %1, but %2 was found.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+44"/> - <source>Promoting %1 to %2 may cause loss of precision.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+49"/> - <source>The focus is undefined.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/> - <source>It's not possible to add attributes after any other kind of node.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>An attribute by name %1 has already been created.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> - <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/> - <source>%1 is an unsupported encoding.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+16"/> - <source>%1 contains octets which are disallowed in the requested encoding %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+18"/> - <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/> - <source>Ambiguous rule match.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/> - <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+11"/> - <source>The prefix must be a valid %1, which %2 is not.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+14"/> - <source>The prefix %1 cannot be bound.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+10"/> - <source>Only the prefix %1 can be bound to %2 and vice versa.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/> - <source>Circularity detected</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/> - <source>The parameter %1 is required, but no corresponding %2 is supplied.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-71"/> - <source>The parameter %1 is passed, but no corresponding %2 exists.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/> - <source>The URI cannot have a fragment</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/> - <source>Element %1 is not allowed at this location.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>Text nodes are not allowed at this location.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+20"/> - <source>Parse error: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+62"/> - <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn't.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+20"/> - <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+108"/> - <source>Unknown XSL-T attribute %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+23"/> - <source>Attribute %1 and %2 are mutually exclusive.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+166"/> - <source>In a simplified stylesheet module, attribute %1 must be present.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+72"/> - <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>Element %1 must have at least one of the attributes %2 or %3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+28"/> - <source>At least one mode must be specified in the %1-attribute on element %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/> - <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+8"/> - <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+9"/> - <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+12"/> - <source>The attribute %1 must appear on element %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+8"/> - <source>The element with local name %1 does not exist in XSL-T.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+123"/> - <source>Element %1 must come last.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+24"/> - <source>At least one %1-element must occur before %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>Only one %1-element can appear.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+31"/> - <source>At least one %1-element must occur inside %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+58"/> - <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>Element %1 must have either a %2-attribute or a sequence constructor.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+125"/> - <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+270"/> - <source>Element %1 cannot have children.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+434"/> - <source>Element %1 cannot have a sequence constructor.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+86"/> - <location line="+9"/> - <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+15"/> - <source>A parameter in a function cannot be declared to be a tunnel.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+149"/> - <source>This processor is not Schema-aware and therefore %1 cannot be used.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+57"/> - <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn't.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+48"/> - <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+20"/> - <source>Attribute %1 cannot have the value %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+58"/> - <source>The attribute %1 can only appear on the first %2 element.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+99"/> - <source>At least one %1 element must appear as child of %2.</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>VolumeSlider</name> - <message> - <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+67"/> - <source>Muted</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+5"/> - <location line="+15"/> - <source>Volume: %1%</source> - <translation type="unfinished"></translation> + <translation>無効な文字への参照です。</translation> </message> </context> </TS> diff --git a/util/webkit/mkdist-webkit b/util/webkit/mkdist-webkit index 6e8add9..62264ec 100755 --- a/util/webkit/mkdist-webkit +++ b/util/webkit/mkdist-webkit @@ -188,7 +188,7 @@ fi rev=`git ls-remote $repository | grep -E "^.+$tag$" | awk '{print $1}'` -tarball=`mktemp /tmp/webkit-snapshot.tar` || exit 1 +tarball=`mktemp /tmp/webkit-snapshot.tar.XXXXXX` || exit 1 echo "creating $tarball" echo "archiving webkit from $repository $tag ( $rev )" |