summaryrefslogtreecommitdiffstats
path: root/doc/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2009-09-29 12:37:15 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2009-09-29 12:37:15 (GMT)
commit86b4c125372f02c21be81fff376817852c28afa9 (patch)
tree65988a37ffaa6c75a72395365aa695c052df2149 /doc/src
parent36304a764fb4ee0cc7cc26033c05c8d70c87b4b5 (diff)
parent82ad1edea9fd6d6955ab9e3f661c625f7ba5ed78 (diff)
downloadQt-86b4c125372f02c21be81fff376817852c28afa9.zip
Qt-86b4c125372f02c21be81fff376817852c28afa9.tar.gz
Qt-86b4c125372f02c21be81fff376817852c28afa9.tar.bz2
Merge branch '4.6'
Conflicts: doc/src/qt4-intro.qdoc
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/development/designer-manual.qdoc122
-rw-r--r--doc/src/development/qmake-manual.qdoc5
-rw-r--r--doc/src/examples/audioinput.qdoc2
-rw-r--r--doc/src/examples/hellogl.qdoc77
-rw-r--r--doc/src/examples/overpainting.qdoc19
-rw-r--r--doc/src/examples/rogue.qdoc2
-rw-r--r--doc/src/external-resources.qdoc10
-rw-r--r--doc/src/frameworks-technologies/containers.qdoc5
-rw-r--r--doc/src/frameworks-technologies/statemachine.qdoc35
-rw-r--r--doc/src/getting-started/examples.qdoc2
-rw-r--r--doc/src/getting-started/how-to-learn-qt.qdoc52
-rw-r--r--doc/src/howtos/appicon.qdoc9
-rw-r--r--doc/src/howtos/openvg.qdoc8
-rw-r--r--doc/src/images/browser-demo.pngbin157205 -> 144715 bytes
-rw-r--r--doc/src/images/gestures-examples.pngbin0 -> 28873 bytes
-rw-r--r--doc/src/index.qdoc18
-rw-r--r--doc/src/modules.qdoc2
-rw-r--r--doc/src/platforms/supported-platforms.qdoc8
-rw-r--r--doc/src/qt-webpages.qdoc2
-rw-r--r--doc/src/qt4-intro.qdoc360
-rw-r--r--doc/src/snippets/audio/main.cpp3
-rw-r--r--doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc78
-rw-r--r--doc/src/snippets/code/src_corelib_global_qglobal.cpp3
-rw-r--r--doc/src/snippets/statemachine/eventtest.cpp2
-rw-r--r--doc/src/snippets/widgets-tutorial/template.cpp2
-rw-r--r--doc/src/sql-programming/sql-driver.qdoc11
-rw-r--r--doc/src/tutorials/widgets-tutorial.qdoc2
-rw-r--r--doc/src/xml-processing/xquery-introduction.qdoc40
28 files changed, 564 insertions, 315 deletions
diff --git a/doc/src/development/designer-manual.qdoc b/doc/src/development/designer-manual.qdoc
index 65b6baa..4f4db85 100644
--- a/doc/src/development/designer-manual.qdoc
+++ b/doc/src/development/designer-manual.qdoc
@@ -61,8 +61,8 @@
\l{Getting To Know Qt Designer} document. For a quick tutorial on how to
use \QD, refer to \l{A Quick Start to Qt Designer}.
- Qt Designer 4.5 boasts a long list of improvements. For a detailed list of
- what is new, refer \l{What's New in Qt Designer 4.5}.
+ Qt Designer 4.6 boasts a long list of improvements. For a detailed list of
+ what is new, refer \l{What's New in Qt Designer 4.6}.
\image designer-multiple-screenshot.png
@@ -114,124 +114,6 @@
*/
-
-/*!
- \page designer-whats-new.html
- \contentspage {Qt Designer Manual}{Contents}
-
-
- \title What's New in Qt Designer 4.5
-
- \section1 General Changes
-
-
- \table
- \header
- \i Widget Filter Box
- \i Widget Morphing
- \i Disambiguation Field
- \row
- \i \inlineimage designer-widget-filter.png
- \i \inlineimage designer-widget-morph.png
- \i \inlineimage designer-disambiguation.png
- \endtable
-
- \list 1
- \i Displaying only icons in the \gui{Widget Box}: It is now possible
- for the \gui{Widget Box} to display icons only. Simply select
- \gui{Icon View} from the context menu.
- \i Filter for \gui{Widget Box}: A filter is now provided to quickly
- locate the widget you need. If you use a particular widget
- frequently, you can always add it to the
- \l{Getting to Know Qt Designer#WidgetBox}{scratch pad}.
- \i Support for QButtonGroup: It is available via the context
- menu of a selection of QAbstractButton objects.
- \i Improved support for item widgets: The item widgets' (e.g.,
- QListWidget, QTableWidget, and QTreeWidget) contents dialogs have
- been improved. You can now add translation comments and also modify
- the header properties.
- \i Widget morphing: A widget can now be morphed from one type to
- another with its layout and properties preserved. To begin, click
- on your widget and select \gui{Morph into} from the context menu.
- \i Disambiguation field: The property editor now shows this extra
- field under the \gui{accessibleDescription} property. This field
- has been introduced to aid translators in the case of two source
- texts being the same but used for different purposes. For example,
- a dialog could have two \gui{Add} buttons for two different
- reasons. \note To maintain compatibility, comments in UI files
- created prior to Qt 4.5 will be listed in the \gui{Disambiguation}
- field.
- \endlist
-
-
-
- \section1 Improved Shortcuts for the Editing Mode
-
- \list
- \i The \key{Shift+Click} key combination now selects the ancestor for
- nested layouts. This iterates from one ancestor to the other.
-
- \i The \key{Ctrl} key is now used to toggle and copy drag. Previously
- this was done with the \key{Shift} key but is now changed to
- conform to standards.
-
- \i The left mouse button does rubber band selection for form windows;
- the middle mouse button does rubber band selection everywhere.
- \endlist
-
-
- \section1 Layouts
- \list
- \i It is now possible to switch a widget's layout without breaking it
- first. Simply select the existing layout and change it to another
- type using the context menu or the layout buttons on the toolbar.
-
- \i To quickly populate a \gui{Form Layout}, you can now use the
- \gui{Add form layout row...} item available in the context menu or
- double-click on the red layout.
- \endlist
-
-
- \section1 Support for Embedded Design
-
- \table
- \header
- \i Comboboxes to Select a Device Profile
- \row
- \i \inlineimage designer-embedded-preview.png
- \endtable
-
- It is now possible to specify embedded device profiles, e.g., Style, Font,
- Screen DPI, resolution, default font, etc., in \gui{Preferences}. These
- settings will affect the \gui{Form Editor}. The profiles will also be
- visible with \gui{Preview}.
-
-
- \section1 Related Classes
-
- \list
- \i QUiLoader \mdash forms loaded with this class will now react to
- QEvent::LanguageChange if QUiLoader::setLanguageChangeEnabled() or
- QUiLoader::isLanguageChangeEnabled() is set to true.
-
- \i QDesignerCustomWidgetInterface \mdash the
- \l{QDesignerCustomWidgetInterface::}{domXml()} function now has new
- attributes for its \c{<ui>} element. These attributes are
- \c{language} and \c{displayname}. The \c{language} element can be
- one of the following "", "c++", "jambi". If this element is
- specified, it must match the language in which Designer is running.
- Otherwise, this element will not be available. The \c{displayname}
- element represents the name that will be displayed in the
- \gui{Widget Box}. Previously this was hardcoded to be the class
- name.
-
- \i QWizard \mdash QWizard's page now has a string \c{id} attribute that
- can be used to fill in enumeration values to be used by the
- \c{uic}. However, this attribute has no effect on QUiLoader.
- \endlist
-*/
-
-
/*!
\page designer-to-know.html
\contentspage {Qt Designer Manual}{Contents}
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 1bd85b0..f2cae5b 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -959,7 +959,8 @@
General compiler options can as usual be set using \c QMAKE_CFLAGS and \c QMAKE_CXXFLAGS.
In order to set specific compiler options, \c QMAKE_CFLAGS.<compiler> and
\c QMAKE_CXXFLAGS.<compiler> can be used. \c <compiler> can be either \c CW for the WINSCW
- architecture (emulator), or \c ARMCC for the ARMv5 architecture (hardware).
+ architecture (emulator), or \c ARMCC for the ARMv5 architecture (hardware), or \c GCCE for
+ the ARMv5 architecture (hardware).
Here is an example:
@@ -4055,6 +4056,8 @@
You can test for any other platform-compiler combination as long as a
specification exists for it in the \c mkspecs directory.
+ The scope \c unix is true for the Symbian platform.
+
\section1 Variables
Many of the variables used in project files are special variables that
diff --git a/doc/src/examples/audioinput.qdoc b/doc/src/examples/audioinput.qdoc
index 0b1b551..ac44d75 100644
--- a/doc/src/examples/audioinput.qdoc
+++ b/doc/src/examples/audioinput.qdoc
@@ -49,6 +49,6 @@
Qt provides the QAudioInput class to enable audio functionality within
a standard application user interface.
- This example uses a fast-fourier transform on the input audio from the microphone
+ This example calculates the maximum linear value of the input audio from the microphone
and displays the output.
*/
diff --git a/doc/src/examples/hellogl.qdoc b/doc/src/examples/hellogl.qdoc
index 6dc9e26..5fd2c6f 100644
--- a/doc/src/examples/hellogl.qdoc
+++ b/doc/src/examples/hellogl.qdoc
@@ -65,7 +65,8 @@
\snippet examples/opengl/hellogl/glwidget.h 0
We use a destructor to ensure that any OpenGL-specific data structures
- are deleted when the widget is no longer needed.
+ are deleted when the widget is no longer needed (although in this case nothing
+ needs cleaning up).
\snippet examples/opengl/hellogl/glwidget.h 1
@@ -84,8 +85,8 @@
The rest of the class contains utility functions and variables that are
used to construct and hold orientation information for the scene. The
- \c object variable will be used to hold an identifier for an OpenGL
- display list.
+ \c logo variable will be used to hold a pointer to the QtLogo object which
+ contains all the geometry.
\section1 GLWidget Class Implementation
@@ -95,8 +96,9 @@
\section2 Widget Construction and Sizing
- The constructor provides default rotation angles for the scene, initializes
- the variable used for the display list, and sets up some colors for later use.
+ The constructor provides default rotation angles for the scene, sets
+ the pointer to the QtLogo object to null, and sets up some colors for
+ later use.
\snippet examples/opengl/hellogl/glwidget.cpp 0
@@ -105,7 +107,7 @@
\snippet examples/opengl/hellogl/glwidget.cpp 1
- The destructor ensures that the display list is deleted properly.
+ In this case nothing requires cleaning up.
We provide size hint functions to ensure that the widget is shown at a
reasonable size:
@@ -139,9 +141,9 @@
\snippet examples/opengl/hellogl/glwidget.cpp 6
In this example, we reimplement the function to set the background color,
- create a display list containing information about the object we want to
+ create a QtLogo object instance which will contain all the geometry to
display, and set up the rendering process to use a particular shading model
- and rendering flags:
+ and rendering flags.
\section2 Resizing the Viewport
@@ -172,8 +174,8 @@
In this example, we clear the widget using the background color that
we defined in the \l{QGLWidget::initializeGL()}{initializeGL()} function,
- set up the frame of reference for the object we want to display, and call
- the display list containing the rendering commands for the object.
+ set up the frame of reference for the geometry we want to display, and
+ call the draw method of the QtLogo object to render the scene.
\section2 Mouse Handling
@@ -196,12 +198,57 @@
cursor to rotate the object, the cursor's position is updated every time
a move event is received.
- \section2 Utility Functions
+ \section1 QtLogo Class
- We have omitted the utility functions, \c makeObject(), \c quad(),
- \c extrude(), and \c normalizeAngle() from our discussion. These can be
- viewed in the quoted source for \c glwidget.cpp via the link at the
- start of this document.
+ This class encapsulates the OpenGL geometry data which will be rendered
+ in the basic 3D scene.
+
+ \snippet examples/opengl/shared/qtlogo.h 0
+
+ The geometry is divided into a list of parts which may be rendered in
+ different ways. The data itself is contained in a Geometry structure that
+ includes the vertices, their lighting normals and index values which
+ point into the vertices, grouping them into faces.
+
+ \snippet examples/opengl/shared/qtlogo.cpp 0
+
+ The data in the Geometry class is stored in QVector<QVector3D> members
+ which are convenient for use with OpenGL because they expose raw
+ contiguous floating point values via the constData() method. Methods
+ are included for adding new vertex data, either with smooth normals, or
+ facetted normals; and for enabling the geometry ready for rendering.
+
+ \snippet examples/opengl/shared/qtlogo.cpp 1
+
+ The higher level Patch class has methods for accumulating the geometry
+ one face at a time, and treating collections of faces or "patches" with
+ transformations, applying different colors or smoothing. Although faces
+ may be added as triangles or quads, at the OpenGL level all data is
+ treated as triangles for compatibility with OpenGL/ES.
+
+ \snippet examples/opengl/shared/qtlogo.cpp 2
+
+ Drawing a Patch is simply acheived by applying any transformation,
+ and material effect, then drawing the data using the index range for
+ the patch. The model-view matrix is saved and then restored so that
+ any transformation does not affect other parts of the scene.
+
+ \snippet examples/opengl/shared/qtlogo.cpp 3
+
+ The geometry is built once on construction of the QtLogo, and it is
+ paramaterized on a number of divisions - which controls how "chunky" the
+ curved section of the logo looks - and on a scale, so larger and smaller
+ QtLogo objects can be created without having to use OpenGL scaling
+ (which would force normal recalculation).
+
+ The building process is done by helper classes (read the source for full
+ details) which only exist during the build phase, to assemble the parts
+ of the scene.
+
+ \snippet examples/opengl/shared/qtlogo.cpp 4
+
+ Finally the complete QtLogo scene is simply drawn by enabling the data arrays
+ and then iterating over the parts, calling draw() on each one.
\section1 Window Class Definition
diff --git a/doc/src/examples/overpainting.qdoc b/doc/src/examples/overpainting.qdoc
index 52bb160..e00ec91 100644
--- a/doc/src/examples/overpainting.qdoc
+++ b/doc/src/examples/overpainting.qdoc
@@ -53,7 +53,7 @@
yet also behaves like any other standard Qt widget with support for
signals and slots, properties, and Qt's action system.
- Usually, QGLWidget is subclassed to display a pure 3D scene; the
+ Usually, QGLWidget is subclassed to display a pure 3D scene. The
developer reimplements \l{QGLWidget::initializeGL()}{initializeGL()}
to initialize any required resources, \l{QGLWidget::resizeGL()}{resizeGL()}
to set up the projection and viewport, and
@@ -83,7 +83,7 @@
\snippet examples/opengl/overpainting/glwidget.h 4
As usual, the widget uses \l{QGLWidget::initializeGL()}{initializeGL()}
- to set up objects for our scene and perform other OpenGL initialization tasks.
+ to set up geometry for our scene and perform OpenGL initialization tasks.
The \l{QGLWidget::resizeGL()}{resizeGL()} function is used to ensure that
the 3D graphics in the scene are transformed correctly to the 2D viewport
displayed in the widget.
@@ -100,7 +100,7 @@
\c animationTimer to update the widget; the \c createBubbles() function
initializes the \c bubbles list with instances of a helper class used to
draw the animation; the \c drawInstructions() function is responsible for
- a semi-transparent messages that is also overpainted onto the OpenGL scene.
+ a semi-transparent message that is also overpainted onto the OpenGL scene.
\section1 GLWidget Class Implementation
@@ -119,8 +119,9 @@
\snippet examples/opengl/overpainting/glwidget.cpp 1
- The \c initializeGL() function is fairly minimal, only setting up the display
- list used in the scene.
+ The \c initializeGL() function is fairly minimal, only setting up the QtLogo
+ object used in the scene. See the \l{Hello GL Example}{Hello GL} example
+ for details of the QtLogo class.
\snippet examples/opengl/overpainting/glwidget.cpp 2
@@ -159,7 +160,7 @@
\snippet examples/opengl/overpainting/glwidget.cpp 7
- Once the list containing the object has been executed, the GL
+ Once the QtLogo object's draw method has been executed, the GL
states we changed and the matrix stack needs to be restored to its
original state at the start of this function before we can begin
overpainting:
@@ -176,6 +177,12 @@
When QPainter::end() is called, suitable OpenGL-specific calls are made to
write the scene, and its additional contents, onto the widget.
+ With \l{QGLWidget::paintGL()}{paintGL()} the
+ \l{QGLWidget::swapBuffers()}{swapBuffers()} call is done for us. But an explicit
+ call to swapBuffers() is still not required because in the
+ \l{QWidget::paintEvent()}{paintEvent()} method the QPainter on the OpenGL
+ widget takes care of this for us.
+
The implementation of the \l{QGLWidget::resizeGL()}{resizeGL()} function
sets up the dimensions of the viewport and defines a projection
transformation:
diff --git a/doc/src/examples/rogue.qdoc b/doc/src/examples/rogue.qdoc
index 3eb9249..4f9dc3f 100644
--- a/doc/src/examples/rogue.qdoc
+++ b/doc/src/examples/rogue.qdoc
@@ -194,7 +194,7 @@
\snippet examples/statemachine/rogue/movementtransition.h 1
- The KeyPress events come wrapped in \l{QWrappedEvent}s. \c event
+ The KeyPress events come wrapped in \l{QStateMachine::WrappedEvent}s. \c event
must be confirmed to be a wrapped event because Qt uses other
events internally. After that, it is simply a matter of checking
which key has been pressed.
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index cc5a24f..ad6731b 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -357,3 +357,13 @@
\externalpage http://developers.sun.com/sunstudio/downloads/patches/index.jsp
\title Sun Studio Patches
*/
+
+/*!
+ \externalpage http://www.qtcentre.org
+ \title Qt Centre
+*/
+
+/*!
+ \externalpage http://www.kde.org
+ \title KDE
+*/
diff --git a/doc/src/frameworks-technologies/containers.qdoc b/doc/src/frameworks-technologies/containers.qdoc
index d29ca0e..0ac9732 100644
--- a/doc/src/frameworks-technologies/containers.qdoc
+++ b/doc/src/frameworks-technologies/containers.qdoc
@@ -267,7 +267,10 @@
Iterators provide a uniform means to access items in a container.
Qt's container classes provide two types of iterators: Java-style
- iterators and STL-style iterators.
+ iterators and STL-style iterators. Iterators of both types are
+ invalidated when the data in the container is modified or detached
+ from \l{Implicit Sharing}{implicitly shared copies} due to a call
+ to a non-const member function.
\section2 Java-Style Iterators
diff --git a/doc/src/frameworks-technologies/statemachine.qdoc b/doc/src/frameworks-technologies/statemachine.qdoc
index 904b551..ed8bc85 100644
--- a/doc/src/frameworks-technologies/statemachine.qdoc
+++ b/doc/src/frameworks-technologies/statemachine.qdoc
@@ -304,13 +304,42 @@
For parallel state groups, the QState::finished() signal is emitted when \e
all the child states have entered final states.
+ \section1 Targetless Transitions
+
+ A transition need not have a target state. A transition without a target can
+ be triggered the same way as any other transition; the difference is that
+ when a targetless transition is triggered, it doesn't cause any state
+ changes. This allows you to react to a signal or event when your machine is
+ in a certain state, without having to leave that state. Example:
+
+ \code
+ QStateMachine machine;
+ QState *s1 = new QState(&machine);
+
+ QPushButton button;
+ QSignalTransition *trans = new QSignalTransition(&button, SIGNAL(clicked()));
+ s1->addTransition(trans);
+
+ QMessageBox msgBox;
+ msgBox.setText("The button was clicked; carry on.");
+ QObject::connect(trans, SIGNAL(triggered()), &msgBox, SLOT(exec()));
+
+ machine.setInitialState(s1);
+ \endcode
+
+ The message box will be displayed each time the button is clicked, but the
+ state machine will remain in its current state (s1). If the target state
+ were explicitly set to s1, however, s1 would be exited and re-entered each
+ time (e.g. the QAbstractState::entered() and QAbstractState::exited()
+ signals would be emitted).
+
\section1 Events, Transitions and Guards
A QStateMachine runs its own event loop. For signal transitions
(QSignalTransition objects), QStateMachine automatically posts a
- QSignalEvent to itself when it intercepts the corresponding signal;
- similarly, for QObject event transitions (QEventTransition objects) a
- QWrappedEvent is posted.
+ QStateMachine::SignalEvent to itself when it intercepts the corresponding
+ signal; similarly, for QObject event transitions (QEventTransition objects)
+ a QStateMachine::WrappedEvent is posted.
You can post your own events to the state machine using
QStateMachine::postEvent().
diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc
index 9e72ab4..543a2e1 100644
--- a/doc/src/getting-started/examples.qdoc
+++ b/doc/src/getting-started/examples.qdoc
@@ -300,7 +300,7 @@
\o{2,1} \l{Gestures Examples}{\bold{Gestures}}
\o{2,1} \l{D-Bus Examples}{\bold{D-Bus}}
\row
- \o \image gestures.png
+ \o \image gestures-examples.png
\o
Applications can be written to respond to gestures as a natural input method.
These examples show how to enable support for standard and custom gestures in
diff --git a/doc/src/getting-started/how-to-learn-qt.qdoc b/doc/src/getting-started/how-to-learn-qt.qdoc
index 5a83975..9df6f1f 100644
--- a/doc/src/getting-started/how-to-learn-qt.qdoc
+++ b/doc/src/getting-started/how-to-learn-qt.qdoc
@@ -43,22 +43,14 @@
\page how-to-learn-qt.html
\title How to Learn Qt
\brief Links to guides and resources for learning Qt.
-
\nextpage Tutorials
+ \section1 Getting Started
+
We assume that you already know C++ and will be using it for Qt
development. See the \l{Qt website} for more information about
using other programming languages with Qt.
- The best way to learn Qt is to read the official Qt book,
- \l{http://www.amazon.com/gp/product/0132354160/ref=ase_trolltech/}{C++
- GUI Programming with Qt 4, Second Edition} (ISBN 0-13-235416-0). This book
- provides comprehensive coverage of Qt programming all the way
- from "Hello Qt" to advanced features such as multithreading, 2D and
- 3D graphics, networking, item view classes, and XML. (The first edition,
- which is based on Qt 4.1, is available
- \l{http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip}{online}.)
-
If you want to program purely in C++, designing your interfaces
in code without the aid of any design tools, take a look at the
\l{Tutorials}. These are designed to get you into Qt programming,
@@ -73,6 +65,12 @@
overviews to deepen your understanding of Qt: \l{Qt Object Model}
and \l{Signals and Slots}.
+ \beginfloatleft
+ \inlineimage qtdemo-small.png
+ \endfloat
+
+ \section1 Getting an Overview
+
At this point, we recommend looking at the
\l{All Overviews and HOWTOs}{overviews} and reading those that are
relevant to your projects. You may also find it useful to browse the
@@ -80,18 +78,14 @@
common with your projects. You can also read Qt's source code since
this is supplied.
- \table 50%
- \header
- \o {2,1} Getting an Overview
- \row
- \o \inlineimage qtdemo-small.png
- \o
If you run the \l{Examples and Demos Launcher}, you'll see many of Qt's
widgets in action.
The \l{Qt Widget Gallery} also provides overviews of selected Qt
widgets in each of the styles used on various supported platforms.
- \endtable
+ \clearfloat
+
+ \section1 Books and Learning Materials
Qt comes with extensive documentation, with hypertext
cross-references throughout, so you can easily click your way to
@@ -103,16 +97,32 @@
this tool is supplied with Qt and provides access to the entire
Qt API, and it provides a full text search facility.
- There are also a growing number of books about Qt programming; see
- \l{Books about Qt Programming} for a complete list of Qt books,
+ There are also a growing number of books about Qt programming.
+ We recommend the official Qt book,
+ \l{http://www.amazon.com/gp/product/0132354160/ref=ase_trolltech/}{C++
+ GUI Programming with Qt 4, Second Edition} (ISBN 0-13-235416-0). This book
+ provides comprehensive coverage of Qt programming all the way
+ from "Hello Qt" to advanced features such as multithreading, 2D and
+ 3D graphics, networking, item view classes, and XML. (The first edition,
+ which is based on Qt 4.1, is available
+ \l{http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip}{online}.)
+
+ See \l{Books about Qt Programming} for a complete list of Qt books,
including translations to various languages.
Another valuable source of example code and explanations of Qt
- features is the archive of articles from \l {http://qt.nokia.com/doc/qq}
- {Qt Quarterly}, a quarterly newsletter for users of Qt.
+ features is the archive of articles from \l{Qt Quarterly}, a quarterly newsletter for users of Qt.
For documentation on specific Qt modules and other guides, refer to
\l{All Overviews and HOWTOs}.
+ \section1 Further Reading
+
+ Qt has an active and helpful user community who communicate using
+ the \l{Qt Mailing Lists}{qt-interest} mailing list, the \l{Qt Centre}
+ Web site, and a number of other community Web sites and Weblogs.
+ In addition, many Qt developers are active members of the
+ \l{KDE}{KDE community}.
+
Good luck, and have fun!
*/
diff --git a/doc/src/howtos/appicon.qdoc b/doc/src/howtos/appicon.qdoc
index ba567b7..ece2dcf 100644
--- a/doc/src/howtos/appicon.qdoc
+++ b/doc/src/howtos/appicon.qdoc
@@ -215,12 +215,13 @@
\section1 Setting the Application Icon on S60 platforms
- In order to set application icon for S60 application you need SVG-T icon.
- How to create such SVG-T, please refer to
+ In order to set the application icon for S60 applications, you need
+ an SVG-T icon. For information on how to create SVG-T compliant icons,
+ please refer to
\l{http://wiki.forum.nokia.com/index.php/How_to_create_application_icon(SVG)_in_S60_3rd_edition/}
- Once you have icon in correct format and assuming you are using
- \c qmake to generate your makefiles, you only need to add a single
+ Once the icon is available in the correct format and assuming you are
+ using \c qmake to generate your makefiles, you only need to add a single
line to your \c .pro project file. For example, if the name of your
icon file is \c{myapp.svg}, and your project file is \c{myapp.pro},
add this line to \c{myapp.pro}:
diff --git a/doc/src/howtos/openvg.qdoc b/doc/src/howtos/openvg.qdoc
index 0a0724b..42d2357 100644
--- a/doc/src/howtos/openvg.qdoc
+++ b/doc/src/howtos/openvg.qdoc
@@ -191,10 +191,10 @@
\section2 Rectangles, lines, and points
- Rectangles and lines use cached VGPath objects to try to accelerate
- drawing operations. vgModifyPathCoords() is used to modify the
- co-ordinates in the cached VGPath object each time fillRect(),
- drawRects(), or drawLines() is called.
+ Rectangles, lines, and rounded rectangles use cached VGPath objects
+ to try to accelerate drawing operations. vgModifyPathCoords() is used
+ to modify the co-ordinates in the cached VGPath object each time
+ fillRect(), drawRects(), drawLines(), or drawRoundedRect() is called.
If the engine does not implement vgModifyPathCoords() properly, then the
QVG_NO_MODIFY_PATH define can be set to disable path caching. This will
diff --git a/doc/src/images/browser-demo.png b/doc/src/images/browser-demo.png
index 466f218..5e0c0be 100644
--- a/doc/src/images/browser-demo.png
+++ b/doc/src/images/browser-demo.png
Binary files differ
diff --git a/doc/src/images/gestures-examples.png b/doc/src/images/gestures-examples.png
new file mode 100644
index 0000000..d4a006b
--- /dev/null
+++ b/doc/src/images/gestures-examples.png
Binary files differ
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index 3c983ed..13cf063 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -43,24 +43,8 @@
\page index.html
\keyword Qt Reference Documentation
- \if defined(opensourceedition)
- \title Qt Reference Documentation (Open Source Edition)
- \endif
-
- \if defined(desktoplightedition)
- \title Qt Reference Documentation (GUI Framework Edition)
- \endif
-
- \if defined(desktopedition)
- \title Qt Reference Documentation (Full Framework Edition)
- \endif
-
- \if !defined(opensourceedition) \
- && !defined(desktoplightedition) \
- && !defined(desktopedition)
\title Qt Reference Documentation
- \endif
-
+
\raw HTML
<table cellpadding="2" cellspacing="1" border="0" width="95%" class="indextable" align="center">
<tr>
diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc
index a9eee36..d28c2bc 100644
--- a/doc/src/modules.qdoc
+++ b/doc/src/modules.qdoc
@@ -636,10 +636,8 @@
This module is part of the \l{Qt Full Framework Edition} and the
\l{Open Source Versions of Qt}. Most classes offered by this module are
also part of the \l{Qt GUI Framework Edition}.
-\if defined(opensourceedition) || defined(desktoplightedition)
Classes that are not available for \l{Qt GUI Framework Edition}
users are marked as such in the class documentation.
-\endif
\sa {Porting to Qt 4}
*/
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index 61bd779..5f72ce3 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -104,6 +104,12 @@
\table
\header \o Platform
\o Compilers
+ \omit
+ \row \o Windows 7
+ \o MSVC 2008
+ \endomit
+ \row \o Apple Mac OS X 10.6 "Snow Leopard"
+ \o As provided by Apple
\row \o Apple Mac OS X 10.4 "Tiger"
\o As provided by Apple
\row \o HPUXi 11.11
@@ -128,7 +134,7 @@
All platforms not specifically listed above are not supported by Nokia. Nokia does
not run its unit test suite or perform any other internal tests on platforms not
- listed above. Qt users should note, however, that there may be various open source
+ listed above. Qt users should note, however, that there may be various open source
projects, community users and/or Qt partners who are able to provide assistance with
platforms not supported by Nokia.
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index 68658ae..e02cd19 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -180,7 +180,7 @@
*/
/*!
- \externalpage http://qt.nokia.com/lists
+ \externalpage http://lists.trolltech.com
\title Qt Mailing Lists
*/
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index fd51f5c..03d9b29 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -225,9 +225,9 @@
\row \o \l{Qt3Support} \o Qt 3 support classes
\row \o \l{QAxContainer} \o ActiveQt client extension
\row \o \l{QAxServer} \o ActiveQt server extension
- \row \o \l{QtHelp} \o Classes for integrating online documentation in applications
+ \row \o \l{QtAssistant} \o Classes for launching Qt Assistant
\row \o \l{QtDesigner} \o Classes for extending and embedding Qt Designer
- \row \o \l{QtUiTools} \o Classes for dynamic GUI generation
+ \row \o \l{QtUiTools} \o Classes for dynamic GUI generation
\row \o \l{QtTest} \o Tool classes for unit testing
\endtable
@@ -457,16 +457,16 @@
*/
/*!
- \page qt4-7-intro.html
- \title What's New in Qt 4.7
+ \page qt4-6-intro.html
+ \title What's New in Qt 4.6
- Qt 4.7 provides many improvements and enhancements over the
+ Qt 4.6 provides many improvements and enhancements over the
previous releases in the Qt 4 series. This document covers the
most important features in this release, separated by category.
- A comprehensive list of changes between Qt 4.6 and Qt 4.7 is
- included in the \c changes-4.7.0 file
- \l{http://qt.nokia.com/developer/changes/changes-4.7.0}{available
+ A comprehensive list of changes between Qt 4.5 and Qt 4.6 is
+ included in the \c changes-4.6.0 file
+ \l{http://qt.nokia.com/developer/changes/changes-4.6.0}{available
online}. A \l{Known Issues in %VERSION%}{list of known issues}
for this release is also available.
@@ -481,13 +481,349 @@
\tableofcontents
- \section1 New Feature 1
+ \section1 Animation Framework
- Describe New Feature 1.
+ The animation framework helps build highly animated,
+ high-performance GUIs without the hassle of managing complex
+ structures, timers, and easing curves, not to mention the large
+ state graphs that all animated GUIs tend to be full of.
+ The framework makes it easy to animate \l{QObject}s, including
+ QWidgets, by allowing Qt properties to be animated. It also allows
+ creating custom animations and interpolation functions. Graphics
+ views are not left out--one can animate \l{QGraphicsWidget}s,
+ which inherits from QObject (and thereby enables properties).
- \section1 New Feature 2
+ Animations are controlled using easing curves and can be grouped
+ together. This enables animations of arbitrary complexity.
- Describe New Feature 2.
+ The API is easy to grasp with functions such as start(), stop(),
+ pause(), and currentTime(). Here is an image from one of the
+ examples that come with the framework:
+ \image whatsnewanimatedtiles.png
+
+ The animation framework also plugs into the new Qt Statemachine by
+ allowing an animation to be played when transitions are triggered.
+ The state machine framework is introduced in 4.6 and is described
+ below.
+
+ \section1 State Machine Framework
+
+ The state machine framework provides a robust state chart
+ implementation based on Harel statecharts and SCXML. Qt's API lets
+ you construct such state graphs and execute them. The key benefits
+ of a state machine are:
+
+ \list
+ \o Simplify complex application semantics.
+ \o Use of states to reduce code bloat.
+ \o Use states to improve maintainability.
+ \o Makes event-driven programming robust and more
+ reusable.
+ \endlist
+
+ It is especially the last item here that makes using a state
+ machine worthwhile. A key characteristic of event-driven systems
+ (such as Qt applications) is that behavior often depends not only
+ on the last or current event, but also the events that preceded
+ it. With statecharts, this information is easy to express.
+
+ The framework fits neatly into Qt by allowing transitions to
+ trigger on signals and \l{QEvent}s. By inserting animations into
+ the state machine, it is also easier to use the framework for
+ animating GUIs, for instance.
+
+ \section1 Multi-touch & Gestures
+
+ The new multi-touch and gestures support enables user interaction
+ with more than one finger, and combines sequential touch inputs to
+ a 'gesture'.
+
+ \image gestures.png
+
+ The main benefits of this new functionality are:
+
+ \list
+ \o Allow users to interact with applications in better ways.
+ \o Simplify finger-based interaction with UI components.
+ \o Allowing common basic gestures and multi-touch
+ gestures.
+ \o Enable extensibility.
+ \endlist
+
+ \section1 DOM access API
+
+ Web pages and XML both have very complex document object models.
+ The W3C selector API provides a very simple way to access and
+ manipulate such structures. This API makes it intuitive to access
+ DOM, helps reuse CSS selector knowledge, and gives little
+ maintenance or footprint overhead.
+
+ \code
+ QWebElement document = frame->documentElement();
+ QList<QWebElement> allSpans = document.findAll("span");
+ QList<QWebElement> introSpans = document.findAll("p.intro span");
+ \endcode
+
+ \section1 Qt3D enablers
+
+ As more of Qt, and more of the applications built on Qt go 3D,
+ API's should be provided to simplify this. Mainly, the new API
+ aims to make it more easy to create 3D applications with OpenGL.
+ It will also unify the Qt OpenGL codebase, and enable
+ cross-platform 3D codebase.
+
+ The main features of the Qt3D enablers are currently: Math
+ primitives for matrix multiplication, vectors, quaternions
+ (client-side), and API for vertex and fragment shaders, GLSL/ES.
+ Future research will, among other things include stencils,
+ scissors, vertex buffers and arrays, texture manipulation, and
+ geometry shaders.
+
+ \section1 Performance Optimizations
+
+ As always, Qt continuously strive to optimize its performance.
+ For this release, we have:
+
+ \list
+ \o Rewritten the QGraphicsView rendering algorithm.
+ \o Made QPixmapCache support efficient Key datastructure.
+ \o Reduced overhead in QNetworkAccessManager.
+ \o Added the QContiguousCache class, which provides efficient caching of
+ contiguous data.
+ \o Removed Win9x support.
+ \endlist
+
+ \section1 Multimedia Audio Services
+
+ Qt 4.6 comes with new classes for handling audio. These classes
+ provide low-level access to the system's audio system. By
+ specifying the audio format (QAudioFormat) and supplying audio
+ data through a QIODevice, you get direct access to the
+ functionality of the sound device. The API also comes with
+ functions to query audio devices for which audio formats they
+ support.
+
+ \section1 Classes and Functions Introduced in 4.6
+
+ Links to class, function, and macro documentation.
+
+ \section2 Classes
+
+ Classes introduced in Qt 4.6.
+
+ \sincelist classes
+
+ \section2 Functions & Macros
+
+ Fuctions and macros introduced in Qt 4.6.
+
+ \sincelist functions
+
+*/
+
+/*
+ \page qt4-5-intro.html
+ \title What's New in Qt 4.5
+
+ Qt 4.5 provides many improvements and enhancements over the previous releases
+ in the Qt 4 series. This document covers the most important features in this
+ release, separated by category.
+
+ A comprehensive list of changes between Qt 4.4 and Qt 4.5 is included
+ in the \c changes-4.5.0 file
+ \l{http://qt.nokia.com/developer/changes/changes-4.5.0}{available online}.
+ A \l{Known Issues in %VERSION%}{list of known issues} for this release is also
+ available.
+
+ Changes between this release and the previous release are provided
+ in the \c{changes-%VERSION%} file (also
+ \l{http://qt.nokia.com/developer/changes/changes-%VERSION%}{available online}).
+
+ A list of other Qt 4 features can be found on the
+ \bold{\l{What's New in Qt 4}} page.
+
+ \bold{Highlights}
+
+ \tableofcontents
+
+ \section1 Qt WebKit Integration
+
+ \image webkit-netscape-plugin.png
+
+ The WebKit browser engine included with Qt has been upgraded to the latest
+ upstream (trunk) version of WebKit, bringing the latest features and
+ improvements to Qt applications. These include:
+
+ \list
+ \o Support for full page zooming, with appropriate rescaling of images and fonts.
+ \o The CSS-based transformation and animation features provided by a WebKit
+ extension.
+ \o Performance improvements due to faster JavaScript engine and optimized
+ page loading.
+ \endlist
+
+ Standards compatibility improvements include provision for the Netscape plugin
+ API, allowing most Netscape plugins to be used in-process, support for HTML 5
+ audio and video elements using Qt's Phonon integration, and
+ \l{Web Application Support}{facilities for client-side storage of Web content}.
+
+ \section1 Performance Improvements
+
+ The introduction of the QtBenchLib performance benchmarking library enables
+ performance benchmarking and regression testing. Core parts of Qt itself have
+ undergone focused re-engineering for improved graphics performance, including
+ paint engine and text rendering improvements, Graphics View and style sheet
+ performance improvements.
+
+ The X11 paint engine now uses XSHM (the X shared memory extension), resulting
+ in reduced overhead for painting operations.
+
+ A new OpenGL ES 2.0-based paint engine complements the existing OpenGL paint
+ engine, but with a focus on embedded devices.
+
+ Qt now features a pluggable graphics system, making it possible for users
+ and developers to select raster, OpenGL or native graphics systems to take
+ into account the specific needs of their applications and get the best
+ performance out of them.
+
+ \section1 Mac OS X Cocoa Support
+
+ \image mac-cocoa.png
+
+ Qt for Mac OS X has been substantially rewritten to use Apple's Cocoa API,
+ enabling Qt applications to be deployed on 64-bit Macintosh hardware.
+ In addition, the new QMacCocoaViewContainer and QMacNativeWidget classes
+ provide integration with Cocoa's own features and controls.
+
+ For many applications, a simple recompilation is all that is required
+ to produce an executable for 64-bit systems. Applications that use
+ specific features may require a few changes first.
+
+ \section1 Windows CE Feature Parity
+
+ Qt for Windows CE has been updated to bring features of Qt 4.4 and Qt 4.5
+ to the Windows CE platform, including:
+
+ \list
+ \o Phonon Multimedia Framework, using a Direct-Show based backend for audio
+ and video playback and a Simple WaveOut backend for devices without DirectShow.
+ \o The inclusion of Qt WebKit integration features previously unavailable for
+ Qt 4.4 on Windows CE.
+ \endlist
+
+ Support on all Windows CE platforms; recommended for WinCE 6 and higher.
+
+ The inclusion of these features enables developers to easily integrate Web and
+ multimedia content into Qt applications on Windows CE Standard Edition while
+ retaining full cross-platform compatibility with other Qt platforms.
+
+ \section1 XML Transformations with XSLT
+
+ The QtXmlPatterns module has been extended to cover XSLT, a transformation language
+ for XML documents. A common application of this is the transformation of XML data
+ into human-readable formats for reporting purposes.
+
+ XSLT makes it simple to reformat XML content without changing data structures,
+ removes the need for an intermediate DOM layer for presentation, and enables
+ rapid solutions to be created; for example, creating reports as HTML or PDF.
+
+ \section1 Qt Script Debugger
+
+ \image qtscript-debugger-small.png
+
+ Developers using Qt Script in their applications can take advantage of
+ the new \l{Qt Script Debugger Manual}{Qt Script Debugger} to provide
+ error reporting for scripts, and to let users track down bugs in their
+ own scripts.
+
+ Many standard features of GUI debugging tools are present, allowing the
+ developer to step through running script code, inspect variables,
+ automatically catch exceptions, and set conditional breakpoints.
+
+ \section1 OpenDocument File Format Support
+
+ Qt 4.5 includes support for writing rich text documents as OpenDocument files via
+ the newly-introduced QTextDocumentWriter class. This provides an generic mechanism
+ for file export that can be used to introduce support for additional formats in
+ future releases.
+
+ \section1 Improved Network Proxy Support
+
+ Qt's networking classes have been updated with
+ \l{QtNetwork Module#Support for Network Proxies}{improved proxy support}.
+ This includes improved integration with system proxy settings and the added
+ ability to handle non-trivial proxy cases.
+
+ \section1 Qt Designer Improvements
+
+ \image designer-screenshot-small.png
+
+ Qt Designer 4.5 boasts some improvements on usability, for example:
+
+ \list
+ \o \bold{Icon Mode} for the widget box which substantially reduces
+ scrolling.
+ \o \bold{Morphing Widgets} which lets you morph similar widget types,
+ e.g., a QWidget to a QFrame, types via the context menu's
+ \e{Morph into} entry.
+ \o \bold{Filters} for the \gui{Property Editor} that lets you find
+ properties or widgets quickly.
+ \o \bold{Find option} for the \gui{Object Inspector} that performs an
+ incremental search on the form's widgets. Also, the objects' layout
+ state is displayed here with using an icon on the left. Broken
+ layouts are represented with the same icon used for the
+ \e{Break Layout} action.
+ \endlist
+
+ In addition, Qt Designer now features an \gui{Embedded Design} tab that can
+ be found in the \gui Preferences dialog. Within this tab, you can define
+ embedded device profiles. These profiles contains screen settings, e.g.,
+ display resolution, default font and default style. Qt Designer will use
+ these settings when you edit forms.
+
+ More information about these improvements can be found in the
+ \l{What's New in Qt Designer 4.6} overview.
+
+ \section1 Qt Linguist Improvements
+
+ Qt Linguist can now load and edit multiple translation files simultaneously.
+
+ Support for XML Localization Interchange File Format (XLIFF) files, previously added
+ to the \c lupdate tool in Qt 4.3, has been improved and extended to the rest of the
+ Qt Linguist toolchain. This enables files stored in Qt's TS translation format to
+ be exported for use with other tools.
+
+ The GNU Gettext PO format, which is commonly used in Open Source projects,
+ is now supported by Qt Linguist.
+
+ Support for a new way to annotate messages, using comments in the source code,
+ has been added to the toolchain. See the QObject::tr() documentation for a detailed
+ description and examples.
+
+ The new \c lconvert filter tool facilitates conversion between file formats and
+ can be used to perform other transformations on collections of translatable strings.
+
+ \section1 Graphics Enhancements
+
+ In addition to the performance improvements in this release, a number of graphics
+ enhancements extend support for existing features to more platforms and expand Qt's
+ core set of features with successful add-ons.
+
+ Widget style sheets can now be used on Mac OS X, making this approach to theming
+ and styling viable for truly cross-platform applications.
+
+ Support for ARGB top-level widgets, previously available as a separate solution,
+ is now provided as an integral part of Qt. This makes it possible to create windows
+ with translucent regions on systems with the appropriate support from the user's
+ window system. See the \l{QWidget#Creating Translucent Windows}{Creating Translucent
+ Windows} section of the QWidget documentation for details of this feature.
+
+
+ \image gtk-style-screenshot.png
+
+ Improved GTK+ integration provided by the QGtkStyle class improves the look and feel
+ of Qt applications in GNOME and other GTK-based environments. The screenshot above
+ illustrates this clearly.
*/
diff --git a/doc/src/snippets/audio/main.cpp b/doc/src/snippets/audio/main.cpp
index e663115..0910865 100644
--- a/doc/src/snippets/audio/main.cpp
+++ b/doc/src/snippets/audio/main.cpp
@@ -98,8 +98,7 @@ private:
//![2]
format.setSampleType(QAudioFormat::SignedInt);
- QAudioDeviceId id = QAudioDeviceInfo::defaultOutputDevice();
- QAudioDeviceInfo info(id);
+ QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
if (!info.isFormatSupported(format))
format = info.nearestFormat(format);
diff --git a/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc b/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc
index 7f4c89b..2d5babb 100644
--- a/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc
+++ b/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc
@@ -248,8 +248,8 @@ declare variable $insertion := "example";
declare default element namespace "http://cookbook/namespace";
let $docURI := 'cookbook.xml'
return if(doc-available($docURI))
- then doc($docURI)//recipe/<resept>{./node()}</resept>
- else <resept>Failed to load {$docURI}</resept>
+ then doc($docURI)//recipe/<oppskrift>{./node()}</oppskrift>
+ else <oppskrift>Failed to load {$docURI}</oppskrift>
//! [40]
//! [41]
@@ -312,79 +312,5 @@ for $a in doc('doc.txt')//p
<p>f0</p>
//! [49]
-//! [100]
-<?xml version="1.0" encoding="UTF-8"?>
-<cookbook>
- <recipe xml:id="MushroomSoup">
- <title>Quick and Easy Mushroom Soup</title>
- <ingredient name="Fresh mushrooms"
- quantity="7"
- unit="pieces"/>
- <ingredient name="Garlic"
- quantity="1"
- unit="cloves"/>
- <ingredient name="Olive oil"
- quantity="2"
- unit="tablespoons"/>
- <ingredient name="Milk"
- quantity="200"
- unit="milliliters"/>
- <ingredient name="Water"
- quantity="200"
- unit="milliliters"/>
- <ingredient name="Cream"
- quantity="100"
- unit="milliliters"/>
- <ingredient name="Vegetable soup cube"
- quantity="1/2"
- unit="cubes"/>
- <ingredient name="Ground black pepper"
- quantity="1/2"
- unit="teaspoons"/>
- <ingredient name="Dried parsley"
- quantity="1"
- unit="teaspoons"/>
- <time quantity="20"
- unit="minutes"/>
- <method>
- <step>1. Slice mushrooms and garlic.</step>
- <step>2. Fry mushroom slices and garlic with olive oil.</step>
- <step>3. Once mushrooms are cooked, add milk, cream water. Stir.</step>
- <step>4. Add vegetable soup cube.</step>
- <step>5. Reduce heat, add pepper and parsley.</step>
- <step>6. Turn off the stove before the mixture boils.</step>
- <step>7. Blend the mixture.</step>
- </method>
- </recipe>
- <recipe xml:id="CheeseOnToast">
- <title>Cheese on Toast</title>
- <ingredient name="Bread"
- quantity="2"
- unit="slices"/>
- <ingredient name="Cheese"
- quantity="2"
- unit="slices"/>
- <time quantity="3"
- unit="minutes"/>
- <method>
- <step>1. Slice the bread and cheese.</step>
- <step>2. Grill one side of each slice of bread.</step>
- <step>3. Turn over the bread and place a slice of cheese on each piece.</step>
- <step>4. Grill until the cheese has started to melt.</step>
- <step>5. Serve and enjoy!</step>
- </method>
- </recipe>
- <recipe xml:id="HardBoiledEggs">
- <title>Hard-Boiled Eggs</title>
- <ingredient name="Eggs"
- quantity="3"
- unit="eggs"/>
- <time quantity="3"
- unit="minutes"/>
- <method/>
- </recipe>
-</cookbook>
-//! [100]
-
}
diff --git a/doc/src/snippets/code/src_corelib_global_qglobal.cpp b/doc/src/snippets/code/src_corelib_global_qglobal.cpp
index 3c61281..16b1073 100644
--- a/doc/src/snippets/code/src_corelib_global_qglobal.cpp
+++ b/doc/src/snippets/code/src_corelib_global_qglobal.cpp
@@ -529,3 +529,6 @@ class MyClass : public QObject
qFuzzyCompare(1 + 0.0, 1 + 1.0e-200); // This will return true
//! [46]
+//! [47]
+CApaApplication *myApplicationFactory();
+//! [47]
diff --git a/doc/src/snippets/statemachine/eventtest.cpp b/doc/src/snippets/statemachine/eventtest.cpp
index b6397ba..817dbfc 100644
--- a/doc/src/snippets/statemachine/eventtest.cpp
+++ b/doc/src/snippets/statemachine/eventtest.cpp
@@ -52,7 +52,7 @@ protected:
bool eventTest(QEvent *event)
{
if (event->type() == QEvent::Wrapped) {
- QEvent *wrappedEvent = static_cast<QWrappedEvent *>(event)->event();
+ QEvent *wrappedEvent = static_cast<QStateMachine::WrappedEvent *>(event)->event();
if (wrappedEvent->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(wrappedEvent);
// Do your event test
diff --git a/doc/src/snippets/widgets-tutorial/template.cpp b/doc/src/snippets/widgets-tutorial/template.cpp
index 19902cc..2ced971 100644
--- a/doc/src/snippets/widgets-tutorial/template.cpp
+++ b/doc/src/snippets/widgets-tutorial/template.cpp
@@ -39,6 +39,7 @@
**
****************************************************************************/
+//! [main.cpp body]
#include <QtGui>
// Include header files for application components.
@@ -53,3 +54,4 @@ int main(int argc, char *argv[])
return app.exec();
}
+//! [main.cpp body]
diff --git a/doc/src/sql-programming/sql-driver.qdoc b/doc/src/sql-programming/sql-driver.qdoc
index ea11bfb..84aea6c 100644
--- a/doc/src/sql-programming/sql-driver.qdoc
+++ b/doc/src/sql-programming/sql-driver.qdoc
@@ -77,6 +77,12 @@
\row \o \link #QTDS QTDS\endlink \o Sybase Adaptive Server
\endtable
+ SQLite is the in-process database system with the best test coverage
+ and support on all platforms. Oracle via OCI, and PostreSQL and MySQL
+ through either ODBC or a native driver are well-tested on Windows and
+ Linux. The completeness of the support for other systems depends on the
+ availability and quality of client libraries.
+
\bold{Note:} To build a driver plugin you need to have the appropriate
client library for your Database Management System (DBMS). This provides
access to the API exposed by the DBMS, and is typically shipped with it.
@@ -445,7 +451,7 @@
Sybase client library. Refer to the Sybase documentation for information on how to set up
a Sybase client configuration file to enable connections to databases on non-default ports.
- \section3 How to Build the QDTS Plugin on Unix and Mac OS X
+ \section3 How to Build the QTDS Plugin on Unix and Mac OS X
Under Unix, two libraries are available which support the TDS protocol:
@@ -609,7 +615,8 @@
The Qt InterBase plugin makes it possible to access the InterBase and
Firebird databases. InterBase can either be used as a client/server or
without a server in which case it operates on local files. The
- database file must exist before a connection can be established.
+ database file must exist before a connection can be established. Firebird
+ must be used with a server configuration.
Note that InterBase requires you to specify the full path to the
database file, no matter whether it is stored locally or on another
diff --git a/doc/src/tutorials/widgets-tutorial.qdoc b/doc/src/tutorials/widgets-tutorial.qdoc
index 31e2ba3..1d3ebfe 100644
--- a/doc/src/tutorials/widgets-tutorial.qdoc
+++ b/doc/src/tutorials/widgets-tutorial.qdoc
@@ -80,7 +80,7 @@
A typical \c main() function, written in \c{main.cpp}, looks like this:
- \quotefile doc/src/snippets/widgets-tutorial/template.cpp
+ \snippet doc/src/snippets/widgets-tutorial/template.cpp main.cpp body
We first construct a QApplication object which is configured using any
arguments passed in from the command line. After any widgets have been
diff --git a/doc/src/xml-processing/xquery-introduction.qdoc b/doc/src/xml-processing/xquery-introduction.qdoc
index 93a33c1..25fa13f 100644
--- a/doc/src/xml-processing/xquery-introduction.qdoc
+++ b/doc/src/xml-processing/xquery-introduction.qdoc
@@ -40,11 +40,11 @@
****************************************************************************/
/*!
- \page xquery-introduction.html
- \title A Short Path to XQuery
+\page xquery-introduction.html
+\title A Short Path to XQuery
- \startpage Using XML Technologies
- \target XQuery-introduction
+\startpage Using XML Technologies
+\target XQuery-introduction
XQuery is a language for querying XML data or non-XML data that can be
modeled as XML. XQuery is specified by the \l{http://www.w3.org}{W3C}.
@@ -119,7 +119,7 @@ following XQuery:
\snippet snippets/code/doc_src_qtxmlpatterns.qdoc 18
-The \c{doc()} function loads the file \l{cookbook.xml} and returns the
+The \c{doc()} function loads the \c{cookbook.xml} file and returns the
document node. The document node then becomes the focus for the next
step \c{//recipe}. Here the double slash means select all \c{<recipe>}
elements found below the document node, regardless of where they
@@ -535,7 +535,7 @@ methods is presented in the section on \l{Boolean Predicates}.
There are many more functions and operators defined for XQuery and
XPath. They are all \l{http://www.w3.org/TR/xpath-functions}
-{documented here}.
+{documented in the specification}.
\section2 Positional Predicates
@@ -688,12 +688,12 @@ XQueries wherever expressions are allowed.
\snippet snippets/code/doc_src_qtxmlpatterns.qdoc 40
-If \c{cookbook.xml} is loaded without error, a \c{<resept>} element
-(Norweigian word for recipe) is constructed for each \c{<recipe>}
+If \c{cookbook.xml} is loaded without error, a \c{<oppskrift>} element
+(Norwegian word for recipe) is constructed for each \c{<recipe>}
element in the cookbook, and the child nodes of the \c{<recipe>} are
-copied into the \c{<resept>} element. But if the cookbook document
+copied into the \c{<oppskrift>} element. But if the cookbook document
doesn't exist or does not contain well-formed XML, a single
-\c{<resept>} element is constructed containing an error message.
+\c{<oppskrift>} element is constructed containing an error message.
\section1 Constructing Atomic Values
@@ -727,26 +727,23 @@ Sending this XQuery through xmlpatterns produces:
\snippet snippets/code/doc_src_qtxmlpatterns.qdoc 40
-If \c{cookbook.xml} is loaded without error, a \c{<resept>} element
+If \c{cookbook.xml} is loaded without error, a \c{<oppskrift>} element
(Norweigian word for recipe) is constructed for each \c{<recipe>}
element in the cookbook, and the child nodes of the \c{<recipe>} are
-copied into the \c{<resept>} element. But if the cookbook document
+copied into the \c{<oppskrift>} element. But if the cookbook document
doesn't exist or does not contain well-formed XML, a single
-\c{<resept>} element is constructed containing an error message.
+\c{<oppskrift>} element is constructed containing an error message.
\section1 Running The Cookbook Examples
-Most of the XQuery examples in this document refer to the cookbook
-written in XML shown below. Save it as \c{cookbook.xml}. In the same
-directory, save one of the cookbook XQuery examples in a \c{.xq} file
-(e.g. \c{file.xq}). Run the XQuery using Qt's command line utility:
+Most of the XQuery examples in this document refer to the
+\c{cookbook.xml} example file from the \l{Recipes Example}.
+Copy the \c{cookbook.xml} to your current directory, save one of the
+cookbook XQuery examples in a \c{.xq} file (e.g., \c{file.xq}), and
+run the XQuery using Qt's command line utility:
\snippet snippets/code/doc_src_qtxmlpatterns.qdoc 6
-\section2 cookbook.xml
-
-\snippet snippets/code/doc_src_qtxmlpatterns.qdoc 100
-
\section1 Further Reading
There is much more to the XQuery language than we have presented in
@@ -1019,5 +1016,4 @@ you want to use \c{true} and \c{false}. The other way is to invoke the
boolean constructor:
\quotefile snippets/patternist/xsBooleanTrue.xq
-
*/