From bc82db4d08860735bbae584a54d1b591c760e38b Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Thu, 14 Jan 2010 10:44:24 +0100 Subject: Improve the behavior of expose events on Symbian. Previously when an expose was received from WSERV, we simply called BitBlt (for raster) or called flush on the window surface (for anything else). This behavior differs from other platforms which call syncBackingStore(). This difference means that we flush the backing store without actually updating the content first. This works for most cases because if there actually was new content, it would be updated when the widget's UpdateRequest event was handled. The problem arises when the backing store does not have the correct content. This can happen if the backing store was deleted, but only partially restored (see Task below). Another problem is with the OpenVG graphics system which assumes that beginPaint() is called before endPaint() is order to initialize the context and the surface size. The fix is to call syncBackingStore() like the other platforms, but introduce a bit field to prevent infinite recursion in the painting pipeline. Task-number: QTBUG-4921 Reviewed-by: axis Reviewed-by: Gareth Stockwell --- src/gui/kernel/qapplication_s60.cpp | 11 +++++++++-- src/gui/kernel/qwidget_p.h | 1 + src/gui/kernel/qwidget_s60.cpp | 1 + src/gui/painting/qwindowsurface_s60.cpp | 8 +++++--- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 3ee0a71..8c77728 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -807,6 +807,15 @@ TCoeInputCapabilities QSymbianControl::InputCapabilities() const void QSymbianControl::Draw(const TRect& controlRect) const { + // Set flag to avoid calling DrawNow in window surface + QWExtra *extra = qwidget->d_func()->extraData(); + if (extra && !extra->inExpose) { + extra->inExpose = true; + QRect exposeRect = qt_TRect2QRect(controlRect); + qwidget->d_func()->syncBackingStore(exposeRect); + extra->inExpose = false; + } + QWindowSurface *surface = qwidget->windowSurface(); QPaintEngine *engine = surface ? surface->paintDevice()->paintEngine() : NULL; @@ -855,8 +864,6 @@ void QSymbianControl::Draw(const TRect& controlRect) const default: Q_ASSERT(false); } - } else { - surface->flush(qwidget, QRegion(qt_TRect2QRect(backingStoreRect)), QPoint()); } if (sendNativePaintEvents) { diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index ec8d20f..b1eb3c3 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -229,6 +229,7 @@ struct QWExtra { #endif #elif defined(Q_OS_SYMBIAN) // <----------------------------------------------------- Symbian uint activated : 1; // RWindowBase::Activated has been called + uint inExpose : 1; // Prevents drawing recursion /** * Defines the behaviour of QSymbianControl::Draw. diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index c65a162..4c0e21e 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -883,6 +883,7 @@ void QWidgetPrivate::createSysExtra() extra->activated = 0; extra->nativePaintMode = QWExtra::Default; extra->receiveNativePaintEvents = 0; + extra->inExpose = 0; } void QWidgetPrivate::deleteSysExtra() diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp index b8eaead..b41dc2c 100644 --- a/src/gui/painting/qwindowsurface_s60.cpp +++ b/src/gui/painting/qwindowsurface_s60.cpp @@ -145,10 +145,12 @@ QImage* QS60WindowSurface::buffer(const QWidget *widget) void QS60WindowSurface::flush(QWidget *widget, const QRegion ®ion, const QPoint &) { - const QVector subRects = region.rects(); - for (int i = 0; i < subRects.count(); ++i) { - TRect tr = qt_QRect2TRect(subRects[i]); + QWExtra *extra = widget->d_func()->extraData(); + if (extra && !extra->inExpose) { + extra->inExpose = true; // Prevent DrawNow() from calling syncBackingStore() again + TRect tr = qt_QRect2TRect(region.boundingRect()); widget->winId()->DrawNow(tr); + extra->inExpose = false; } } -- cgit v0.12 From 0047fd3703fcec3afbbaff13e7a2d96d60f3f8f4 Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Thu, 14 Jan 2010 14:20:24 +0100 Subject: Enable surface transparency support on Symbian^4. On Symbian^4 systems where the window supports surface transparency, we use this for the Qt::WA_TranslucentBackground flag instead of the previous method. Task-number: QT-2026 Reviewed-by: Iain --- src/corelib/global/qglobal.h | 4 ++++ src/gui/kernel/qwidget_s60.cpp | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 52e9845..f350d1a 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2419,6 +2419,10 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf(); //enabling new graphics resources #define QT_SYMBIAN_SUPPORTS_SGIMAGE #define QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER + +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS +#define Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE +#endif #endif diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 4c0e21e..00f2213 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -389,9 +389,13 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de if (!isOpaque) { RWindow *const window = static_cast(drawableWindow); +#ifdef Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE + window->SetSurfaceTransparency(true); +#else const TDisplayMode displayMode = static_cast(window->SetRequiredDisplayMode(EColor16MA)); if (window->SetTransparencyAlphaChannel() == KErrNone) window->SetBackgroundColor(TRgb(255, 255, 255, 0)); +#endif } } @@ -707,12 +711,16 @@ void QWidgetPrivate::s60UpdateIsOpaque() RWindow *const window = static_cast(q->effectiveWinId()->DrawableWindow()); +#ifdef Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE + window->SetSurfaceTransparency(!isOpaque); +#else if (!isOpaque) { const TDisplayMode displayMode = static_cast(window->SetRequiredDisplayMode(EColor16MA)); if (window->SetTransparencyAlphaChannel() == KErrNone) window->SetBackgroundColor(TRgb(255, 255, 255, 0)); } else window->SetTransparentRegion(TRegionFix<1>()); +#endif } void QWidgetPrivate::setWindowIcon_sys(bool forceReset) -- cgit v0.12 From 4021faeaea0b6d0b35724c91b56b074c4a7c4410 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Fri, 15 Jan 2010 14:23:00 +1000 Subject: Remove unused file. --- tests/auto/tests.xml | 821 --------------------------------------------------- 1 file changed, 821 deletions(-) delete mode 100644 tests/auto/tests.xml diff --git a/tests/auto/tests.xml b/tests/auto/tests.xml deleted file mode 100644 index f197de0..0000000 --- a/tests/auto/tests.xml +++ /dev/null @@ -1,821 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v0.12 From 9ba9308a997bac90c30b766a48f44451e86e14d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Trond=20Kjern=C3=A5sen?= Date: Fri, 15 Jan 2010 10:28:34 +0100 Subject: Fixed the encoding of the Tile and Creator tags in the PDF engine. Task-number: QTBUG-7249 Reviewed-by: Kim --- src/gui/painting/qprintengine_pdf.cpp | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/gui/painting/qprintengine_pdf.cpp b/src/gui/painting/qprintengine_pdf.cpp index e3a2461..b8bf15e 100644 --- a/src/gui/painting/qprintengine_pdf.cpp +++ b/src/gui/painting/qprintengine_pdf.cpp @@ -931,14 +931,24 @@ void QPdfEnginePrivate::writeHeader() void QPdfEnginePrivate::writeInfo() { info = addXrefEntry(-1); - xprintf("<<\n" - "/Title (%s)\n" -// "/Author (%s)\n" - "/Creator (%s)\n" - "/Producer (Qt " QT_VERSION_STR " (C) 2009 Nokia Corporation and/or its subsidiary(-ies))\n", - title.toUtf8().constData(), -// author.toUtf8().constData(), - creator.toUtf8().constData()); + + // The 'text string' type in PDF is encoded either as PDFDocEncoding, or + // Unicode UTF-16 with a Unicode byte order mark as the first character + // (0xfeff), with the high-order byte first. + QByteArray array("<<\n/Title (\xfe\xff"); + const ushort *utf16Title = title.utf16(); + for (int i=0; i < title.size(); ++i) { + array.append((*(utf16Title + i)) >> 8); + array.append((*(utf16Title + i)) & 0xff); + } + array.append(")\n/Creator (\xfe\xff"); + const ushort *utf16Creator = creator.utf16(); + for (int i=0; i < creator.size(); ++i) { + array.append((*(utf16Creator + i)) >> 8); + array.append((*(utf16Creator + i)) & 0xff); + } + array.append(")\n/Producer (Qt " QT_VERSION_STR " (C) 2010 Nokia Corporation and/or its subsidiary(-ies))\n"); + write(array); QDateTime now = QDateTime::currentDateTime().toUTC(); QTime t = now.time(); -- cgit v0.12 From 3f396bdd8736014957ff2491d01ec495034c5c88 Mon Sep 17 00:00:00 2001 From: Adrian Constantin Date: Tue, 12 Jan 2010 16:10:34 +0200 Subject: Adding texture glyph cache default. In maemo mkspec added the definition QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH=1024. When sgx fix will be delivered remove from maemo mkspec that definition. Reviewed-by: Stefano Pironato Reviewed-by: Tom Cooksey --- mkspecs/linux-g++-maemo/qmake.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkspecs/linux-g++-maemo/qmake.conf b/mkspecs/linux-g++-maemo/qmake.conf index b0f3ca3..38c26a6 100644 --- a/mkspecs/linux-g++-maemo/qmake.conf +++ b/mkspecs/linux-g++-maemo/qmake.conf @@ -29,5 +29,7 @@ QMAKE_CXXFLAGS_RELEASE += -g -fno-omit-frame-pointer -fno-optimize-sibling-call # Work round PowerVR SGX 1.3 driver bug with glScissor & FBOs: DEFINES += QT_GL_NO_SCISSOR_TEST +# Work round SGX 1.4 driver bug (text corrupted), modify glyph cache width: +DEFINES += QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH=1024 load(qt_config) -- cgit v0.12 From 001ebdf49623641048122189d81cdbfe70652a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Trond=20Kjern=C3=A5sen?= Date: Fri, 15 Jan 2010 13:28:17 +0100 Subject: Clarify the docs slightly for QPainter::beginNativePainting(). Some complain that we don't reset every GL state in the GL engine in endNativePainting(). We simply can't do that as it would be a performance bump. The user is responsible for setting states they themselves change in a begin/endNativePainting() block, back to their default state. --- src/gui/painting/qpainter.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index a98ac10..a9dcea0 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -1984,9 +1984,14 @@ QPaintEngine *QPainter::paintEngine() const /*! \since 4.6 - Flushes the painting pipeline and prepares for the user issuing - commands directly to the underlying graphics context. Must be - followed by a call to endNativePainting(). + Flushes the painting pipeline and prepares for the user issuing commands + directly to the underlying graphics context. Must be followed by a call to + endNativePainting(). + + Note that only the states the underlying paint engine changes will be reset + to their respective default states. If, for example, the OpenGL polygon + mode is changed by the user inside a beginNativePaint()/endNativePainting() + block, it will not be reset to the default state by endNativePainting(). Here is an example that shows intermixing of painter commands and raw OpenGL commands: @@ -2010,9 +2015,9 @@ void QPainter::beginNativePainting() /*! \since 4.6 - Restores the painter after manually issuing native painting commands. - Lets the painter restore any native state that it relies on before - calling any other painter commands. + Restores the painter after manually issuing native painting commands. Lets + the painter restore any native state that it relies on before calling any + other painter commands. \sa beginNativePainting() */ -- cgit v0.12 From 7e22fb22acffe1d0f101a8ab3ef05a4ef7ad9b83 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Fri, 15 Jan 2010 15:10:08 +0100 Subject: Fixes: Cosmetic fix for maemo spin box Reviewed-by: rgriebl Description: We pass the wrong gtk style the the background. For most desktop styles this has no affect, but it breaks on Hildon. --- src/gui/styles/qgtkstyle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp index abb9e1e..211f4ce 100644 --- a/src/gui/styles/qgtkstyle.cpp +++ b/src/gui/styles/qgtkstyle.cpp @@ -1377,7 +1377,7 @@ void QGtkStyle::drawComplexControl(ComplexControl control, const QStyleOptionCom else { gtkCachedPainter.paintFlatBox(gtkEntry, "entry_bg", contentRect, option->state & State_Enabled ? GTK_STATE_NORMAL : GTK_STATE_INSENSITIVE, - GTK_SHADOW_NONE, gtkCombo->style, entryPath + QString::number(focus)); + GTK_SHADOW_NONE, gtkEntry->style, entryPath + QString::number(focus)); } gtkCachedPainter.paintShadow(gtkEntry, comboBox->editable ? "entry" : "frame", frameRect, frameState, -- cgit v0.12 From fdf827381a5e27c1c4ff6e075196befe88440fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Trond=20Kjern=C3=A5sen?= Date: Fri, 15 Jan 2010 16:50:54 +0100 Subject: Avoid an unnecessary copy in QImage::scaled(). This comes from the dark ages of Qt 3.x, where QImage was an explicitly shared class. Task-number: QTBUG-7231 Reviewed-by: Kim --- src/gui/image/qimage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 4e10b5b..4f5efa1 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -3992,7 +3992,7 @@ QImage QImage::scaled(const QSize& s, Qt::AspectRatioMode aspectMode, Qt::Transf QSize newSize = size(); newSize.scale(s, aspectMode); if (newSize == size()) - return copy(); + return *this; QTransform wm = QTransform::fromScale((qreal)newSize.width() / width(), (qreal)newSize.height() / height()); QImage img = transformed(wm, mode); -- cgit v0.12 From 51fe84689320f9443117196fec2ee25c6353b79b Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 15 Jan 2010 17:10:37 +0100 Subject: Doc: Added placeholder pages for new examples and updated the overviews. Reviewed-by: Trust Me --- doc/src/examples/graphicsview-anchorlayout.qdoc | 48 +++ doc/src/examples/graphicsview-flowlayout.qdoc | 50 +++ .../examples/graphicsview-simpleanchorlayout.qdoc | 48 +++ .../examples/graphicsview-weatheranchorlayout.qdoc | 48 +++ doc/src/examples/network-download.qdoc | 53 +++ doc/src/examples/network-downloadmanager.qdoc | 53 +++ doc/src/examples/script-marshal.qdoc | 48 +++ doc/src/examples/script-qscript.qdoc | 48 +++ doc/src/examples/script-qsdbg.qdoc | 48 +++ doc/src/examples/webkit-framecapture.qdoc | 51 +++ doc/src/examples/widgets-softkeys.qdoc | 47 +++ doc/src/examples/widgets-validators.qdoc | 47 +++ doc/src/getting-started/examples.qdoc | 377 ++++++++++++++------- tools/qdoc3/test/macros.qdocconf | 2 +- 14 files changed, 836 insertions(+), 132 deletions(-) create mode 100644 doc/src/examples/graphicsview-anchorlayout.qdoc create mode 100644 doc/src/examples/graphicsview-flowlayout.qdoc create mode 100644 doc/src/examples/graphicsview-simpleanchorlayout.qdoc create mode 100644 doc/src/examples/graphicsview-weatheranchorlayout.qdoc create mode 100644 doc/src/examples/network-download.qdoc create mode 100644 doc/src/examples/network-downloadmanager.qdoc create mode 100644 doc/src/examples/script-marshal.qdoc create mode 100644 doc/src/examples/script-qscript.qdoc create mode 100644 doc/src/examples/script-qsdbg.qdoc create mode 100644 doc/src/examples/webkit-framecapture.qdoc create mode 100644 doc/src/examples/widgets-softkeys.qdoc create mode 100644 doc/src/examples/widgets-validators.qdoc diff --git a/doc/src/examples/graphicsview-anchorlayout.qdoc b/doc/src/examples/graphicsview-anchorlayout.qdoc new file mode 100644 index 0000000..96a255c --- /dev/null +++ b/doc/src/examples/graphicsview-anchorlayout.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example graphicsview/anchorlayout + \title Anchor Layout Example + + The Anchor Layout example demonstrates the use of the QGraphicsAnchorLayout + class. +*/ diff --git a/doc/src/examples/graphicsview-flowlayout.qdoc b/doc/src/examples/graphicsview-flowlayout.qdoc new file mode 100644 index 0000000..5b73069 --- /dev/null +++ b/doc/src/examples/graphicsview-flowlayout.qdoc @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example graphicsview/flowlayout + \title Graphics View Flow Layout Example + + The Graphics View Flow Layout example shows the use of a flow layout + in a Graphics View widget. + + See the \l{Flow Layout Example} for a corresponding widget-based example. +*/ diff --git a/doc/src/examples/graphicsview-simpleanchorlayout.qdoc b/doc/src/examples/graphicsview-simpleanchorlayout.qdoc new file mode 100644 index 0000000..ddfc854 --- /dev/null +++ b/doc/src/examples/graphicsview-simpleanchorlayout.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example graphicsview/simpleanchorlayout + \title Simple Anchor Layout Example + + The Simple Anchor Layout example shows the basic use of the + QGraphicsAnchorLayout class. +*/ diff --git a/doc/src/examples/graphicsview-weatheranchorlayout.qdoc b/doc/src/examples/graphicsview-weatheranchorlayout.qdoc new file mode 100644 index 0000000..930c5c0 --- /dev/null +++ b/doc/src/examples/graphicsview-weatheranchorlayout.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example graphicsview/weatheranchorlayout + \title Weather Anchor Layout Example + + The Weather Anchor Layout example shows more complex use of the + QGraphicsAnchorLayout class to create a real-world window layout. +*/ diff --git a/doc/src/examples/network-download.qdoc b/doc/src/examples/network-download.qdoc new file mode 100644 index 0000000..3481cad --- /dev/null +++ b/doc/src/examples/network-download.qdoc @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example network/download + \title Network Download Example + + The Network Download example shows how to perform multiple downloads in + parallel using the QNetworkAccessManager class. + + This example is designed to be run from the command line. + + The \l{Network Download Manager Example} implements a more complex system + that places files in a queue for sequential downloading. +*/ diff --git a/doc/src/examples/network-downloadmanager.qdoc b/doc/src/examples/network-downloadmanager.qdoc new file mode 100644 index 0000000..8040c24 --- /dev/null +++ b/doc/src/examples/network-downloadmanager.qdoc @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example network/downloadmanager + \title Network Download Manager Example + + The Network Download example shows how to implement a queue for multiple + downloads using the QNetworkAccessManager class. + + This example is designed to be run from the command line. + + See the \l{Network Download Example} for a simpler version of this example + that obtains multiple files in parallel. +*/ diff --git a/doc/src/examples/script-marshal.qdoc b/doc/src/examples/script-marshal.qdoc new file mode 100644 index 0000000..30c8f97 --- /dev/null +++ b/doc/src/examples/script-marshal.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example script/marshal + \title Qt Script Marshalling Example + + The Qt Script Marshalling example demonstrates the marshalling of value + types between C++ and Qt Script. +*/ diff --git a/doc/src/examples/script-qscript.qdoc b/doc/src/examples/script-qscript.qdoc new file mode 100644 index 0000000..1d0d12c --- /dev/null +++ b/doc/src/examples/script-qscript.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example script/qscript + \title Qt Script Interpreter Example + + The Qt Script Interpreter example shows how to create an interactive + interpreter for Qt Script. +*/ diff --git a/doc/src/examples/script-qsdbg.qdoc b/doc/src/examples/script-qsdbg.qdoc new file mode 100644 index 0000000..332740f --- /dev/null +++ b/doc/src/examples/script-qsdbg.qdoc @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example script/qsdbg + \title Qt Script Debugger Example + + The Qt Script Debugger example shows how to enable the Qt Script debugger + for command line debugging. +*/ diff --git a/doc/src/examples/webkit-framecapture.qdoc b/doc/src/examples/webkit-framecapture.qdoc new file mode 100644 index 0000000..cf4e3da --- /dev/null +++ b/doc/src/examples/webkit-framecapture.qdoc @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example webkit/framecapture + \title WebKit Frame Capture Example + + The Frame Capture example shows how to use the WebKit browser engine to + obtain images of frames in a Web page. + + This example is designed to be run from the command line. Run the + example without arguments to obtain usage information. +*/ diff --git a/doc/src/examples/widgets-softkeys.qdoc b/doc/src/examples/widgets-softkeys.qdoc new file mode 100644 index 0000000..3afb930 --- /dev/null +++ b/doc/src/examples/widgets-softkeys.qdoc @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example widgets/softkeys + \title Soft Keys Example + + The Soft Keys example shows how to use soft key input on the Symbian platform. +*/ diff --git a/doc/src/examples/widgets-validators.qdoc b/doc/src/examples/widgets-validators.qdoc new file mode 100644 index 0000000..0bdd6e6 --- /dev/null +++ b/doc/src/examples/widgets-validators.qdoc @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example widgets/validators + \title Validators Example + + The Validators example shows the signal emission behavior of input validators. +*/ diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index 1477829..2582c4f 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -74,13 +74,12 @@ \l{Qt Demonstrations}{selection of demos} that deliberately show off Qt's features. You might want to look at these as well. - \table - \row - \o{2,1} \l{Widgets Examples}{\bold Widgets} - \o{2,1} \l{Dialog Examples}{\bold Dialogs} - \row - \o \image widget-examples.png - \o + \section1 \l{Widgets Examples}{Widgets} + \beginfloatleft + \l{Widgets Examples}{\inlineimage widget-examples.png + } + + \endfloat Qt comes with a large range of standard widgets that users of modern applications have come to expect. You can also develop your own custom widgets and controls, and use them alongside standard widgets. @@ -89,28 +88,39 @@ be used to change the appearance of standard widgets and appropriately written custom widgets. - \o \image dialog-examples.png Dialogs - \o + \clearfloat + \section1 \l{Dialog Examples}{Dialogs} + \beginfloatleft + \l{Dialog Examples}{\inlineimage dialog-examples.png + } + + \endfloat Qt includes standard dialogs for many common operations, such as file selection, printing, and color selection. Custom dialogs can also be created for specialized modal or modeless interactions with users. - \row - \o{2,1} \l{Main Window Examples}{\bold{Main Windows}} - \o{2,1} \l{Layout Examples}{\bold Layouts} + \clearfloat + \section1 \l{Main Window Examples}{Main Windows} + \beginfloatleft + \l{Main Window Examples}{\inlineimage mainwindow-examples.png + } - \row - \o \image mainwindow-examples.png MainWindows - \o All the standard features of application main windows are provided by Qt. + \endfloat + All the standard features of application main windows are provided by Qt. Main windows can have pull down menus, tool bars, and dock windows. These separate forms of user input are unified in an integrated action system that also supports keyboard shortcuts and accelerator keys in menu items. - \o \image layout-examples.png Layouts - \o + \clearfloat + \section1 \l{Layout Examples}{Layouts} + \beginfloatleft + \l{Layout Examples}{\inlineimage layout-examples.png + } + + \endfloat Qt uses a layout-based approach to widget management. Widgets are arranged in the optimal positions in windows based on simple layout rules, leading to a consistent look and feel. @@ -118,45 +128,58 @@ Custom layouts can be used to provide more control over the positions and sizes of child widgets. - \row - \o{2,1} \l{Item Views Examples}{\bold{Item Views}} - \o{2,1} \l{Graphics View Examples}{\bold{Graphics View}} - \row - \o \image itemview-examples.png ItemViews - \o + \clearfloat + \section1 \l{Item Views Examples}{Item Views} + \beginfloatleft + \l{Item Views Examples}{\inlineimage itemview-examples.png + } + + \endfloat Item views are widgets that typically display data sets. Qt 4's model/view framework lets you handle large data sets by separating the underlying data from the way it is represented to the user, and provides support for customized rendering through the use of delegates. - \o \image graphicsview-examples.png GraphicsView - \o + \clearfloat + \section1 \l{Graphics View Examples}{Graphics View} + \beginfloatleft + \l{Graphics View Examples}{\inlineimage graphicsview-examples.png + } + + \endfloat Qt is provided with a comprehensive canvas through the GraphicsView classes. - \row - \o{2,1} \l{Painting Examples}{\bold{Painting}} - \o{2,1} \l{Rich Text Examples}{\bold{Rich Text}} - \row - \o \image painting-examples.png Painting - \o + \clearfloat + \section1 \l{Painting Examples}{Painting} + \beginfloatleft + \l{Painting Examples}{\inlineimage painting-examples.png + } + + \endfloat Qt's painting system is able to render vector graphics, images, and outline font-based text with sub-pixel accuracy accuracy using anti-aliasing to improve rendering quality. - \o \image richtext-examples.png RichText - \o + \clearfloat + \section1 \l{Rich Text Examples}{Rich Text} + \beginfloatleft + \l{Rich Text Examples}{\inlineimage richtext-examples.png + } + + \endfloat Qt provides powerful document-oriented rich text engine that supports Unicode and right-to-left scripts. Documents can be manipulated using a cursor-based API, and their contents can be imported and exported as both HTML and in a custom XML format. - \row - \o{2,1} \l{Desktop Examples}{\bold Desktop} - \o{2,1} \l{Drag and Drop Examples}{\bold{Drag and Drop}} - \row - \o \image desktop-examples.png - \o + \clearfloat + \section1 \l{Desktop Examples}{Desktop} + \beginfloatleft + \l{Desktop Examples}{\inlineimage desktop-examples.png + } + + \endfloat Qt provides features to enable applications to integrate with the user's preferred desktop environment. @@ -164,20 +187,26 @@ support for desktop services can be used to improve the appearance of applications and take advantage of underlying desktop facilities. - \o \image draganddrop-examples.png DragAndDrop - \o + \clearfloat + \section1 \l{Drag and Drop Examples}{Drag and Drop} + \beginfloatleft + \l{Drag and Drop Examples}{\inlineimage draganddrop-examples.png + } + + \endfloat Qt supports native drag and drop on all platforms via an extensible MIME-based system that enables applications to send data to each other in the most appropriate formats. Drag and drop can also be implemented for internal use by applications. - \row - \o{2,1} \l{Threading and Concurrent Programming Examples}{\bold{Threading and Concurrent Programming}} - \o{2,1} \l{Tools Examples}{\bold{Tools}} - \row - \o \image thread-examples.png - \o + \clearfloat + \section1 \l{Threading and Concurrent Programming Examples}{Threading and Concurrent Programming} + \beginfloatleft + \l{Threading and Concurrent Programming Examples}{\inlineimage thread-examples.png + } + + \endfloat Qt 4 makes it easier than ever to write multithreaded applications. More classes have been made usable from non-GUI threads, and the signals and slots mechanism can now be used to communicate between threads. @@ -185,32 +214,46 @@ The QtConcurrent namespace includes a collection of classes and functions for straightforward concurrent programming. - \o \image tool-examples.png Tools - \o + \clearfloat + \section1 \l{Tools Examples}{Tools} + \beginfloatleft + \l{Tools Examples}{\inlineimage tool-examples.png + } + + \endfloat Qt is equipped with a range of capable tool classes, from containers and iterators to classes for string handling and manipulation. Other classes provide application infrastructure support, handling plugin loading and managing configuration files. - \row - \o{2,1} \l{Network Examples}{\bold{Network}} - \o{2,1} \l{Inter-Process Communication Examples}{\bold{Inter-Process Communication}} - \row - \o \image network-examples.png Network - \o + \clearfloat + \section1 \l{Network Examples}{Network} + \beginfloatleft + \l{Network Examples}{\inlineimage network-examples.png + } + + \endfloat Qt is provided with an extensive set of network classes to support both client-based and server side network programming. - \o \image ipc-examples.png IPC - \o + \clearfloat + \section1 \l{Inter-Process Communication Examples}{Inter-Process Communication} + \beginfloatleft + \l{Inter-Process Communication Examples}{\inlineimage ipc-examples.png + } - \row - \o{2,1} \l{OpenGL Examples}{\bold{OpenGL}}\bold{ and }\l{OpenVG Examples}{\bold{OpenVG}}\bold{ Examples} - \o{2,1} \l{Multimedia Examples}{\bold{Multimedia Framework}} - \row - \o \image opengl-examples.png OpenGL - \o + \endfloat + Simple, lightweight inter-process communication can be performed using shared + memory and local sockets. + + \clearfloat + \section1 \l{OpenGL Examples}{OpenGL} and \l{OpenVG Examples}{OpenVG} Examples + \beginfloatleft + \l{OpenGL Examples}{\inlineimage opengl-examples.png + } + + \endfloat Qt provides support for integration with OpenGL implementations on all platforms, giving developers the opportunity to display hardware accelerated 3D graphics alongside a more conventional user interface. @@ -218,137 +261,191 @@ Qt provides support for integration with OpenVG implementations on platforms with suitable drivers. - \o \image phonon-examples.png - \o + \clearfloat + \section1 \l{Multimedia Examples}{Multimedia Framework} + \beginfloatleft + \l{Multimedia Examples}{\inlineimage phonon-examples.png + } + + \endfloat Qt provides low-level audio support on linux,windows and mac platforms by default and an audio plugin API to allow developers to implement there own audio support for custom devices and platforms. The Phonon Multimedia Framework brings multimedia support to Qt applications. - \row - \o{2,1} \l{SQL Examples}{\bold{SQL}} - \o{2,1} \l{XML Examples}{\bold{XML}} - \row - \o \image sql-examples.png SQL - \o + \clearfloat + \section1 \l{SQL Examples}{SQL} + \beginfloatleft + \l{SQL Examples}{\inlineimage sql-examples.png + } + + \endfloat Qt provides extensive database interoperability, with support for products from both open source and proprietary vendors. SQL support is integrated with Qt's model/view architecture, making it easier to provide GUI integration for your database applications. - \o \image xml-examples.png XML - \o + \clearfloat + \section1 \l{XML Examples}{XML} + \beginfloatleft + \l{XML Examples}{\inlineimage xml-examples.png + } + + \endfloat XML parsing and handling is supported through SAX and DOM compliant APIs as well as streaming classes. The XQuery/XPath and XML Schema engines in the QtXmlPatterns modules provide classes for querying XML files and custom data models. - \row - \o{2,1} \l{Qt Designer Examples}{\bold{Qt Designer}} - \o{2,1} \l{UiTools Examples}{\bold UiTools} - \row - \o \image designer-examples.png Designer - \o + \clearfloat + \section1 \l{Qt Designer Examples}{Qt Designer} + \beginfloatleft + \l{Qt Designer Examples}{\inlineimage designer-examples.png + } + + \endfloat Qt Designer is a capable graphical user interface designer that lets you create and configure forms without writing code. GUIs created with Qt Designer can be compiled into an application or created at run-time. - \o \image uitools-examples.png UiTools - \o + \clearfloat + \section1 \l{UiTools Examples}{UiTools} + \beginfloatleft + \l{UiTools Examples}{\inlineimage uitools-examples.png + } + + \endfloat + User interfaces created with Qt Designer can be loaded and displayed at + run-time using the facilities of the QtUiTools module without the need + to generate code in advance. - \row - \o{2,1} \l{Qt Linguist Examples}{\bold{Qt Linguist}} - \o{2,1} \l{Qt Script Examples}{\bold{Qt Script}} - \row - \o \image linguist-examples.png QtLinguist - \o + \clearfloat + \section1 \l{Qt Linguist Examples}{Qt Linguist} + \beginfloatleft + \l{Qt Linguist Examples}{\inlineimage linguist-examples.png + } + + \endfloat Internationalization is a core feature of Qt. - \o \image qtscript-examples.png - \o + \clearfloat + \section1 \l{Qt Script Examples}{Qt Script} + \beginfloatleft + \l{Qt Script Examples}{\inlineimage qtscript-examples.png + } + + \endfloat Qt is provided with a powerful embedded scripting environment through the QtScript classes. - \row - \o{2,1} \l{WebKit Examples}{\bold WebKit} - \o{2,1} \l{Help System Examples}{\bold{Help System}} - \row - \o \image webkit-examples.png - \o + \clearfloat + \section1 \l{WebKit Examples}{WebKit} + \beginfloatleft + \l{WebKit Examples}{\inlineimage webkit-examples.png + } + + \endfloat Qt provides an integrated Web browser component based on WebKit, the popular open source browser engine. - \o \image assistant-examples.png HelpSystem - \o + \clearfloat + \section1 \l{Help System Examples}{Help System} + \beginfloatleft + \l{Help System Examples}{\inlineimage assistant-examples.png + } + + \endfloat Support for interactive help is provided by the Qt Assistant application. Developers can take advantages of the facilities it offers to display specially-prepared documentation to users of their applications. - \row - \o{2,1} \l{State Machine Examples}{\bold{State Machine}} - \o{2,1} \l{Animation Framework Examples}{\bold{Animation Framework}} - \row - \o \image statemachine-examples.png - \o + \clearfloat + \section1 \l{State Machine Examples}{State Machine} + \beginfloatleft + \l{State Machine Examples}{\inlineimage statemachine-examples.png + } + + \endfloat Qt provides a powerful hierarchical finite state machine through the Qt State Machine classes. - \o \image animation-examples.png - \o + \clearfloat + \section1 \l{Animation Framework Examples}{Animation Framework} + \beginfloatleft + \l{Animation Framework Examples}{\inlineimage animation-examples.png + } + + \endfloat These examples show to to use the \l{The Animation Framework}{animation framework} to build highly animated, high-performance GUIs. - \row - \o{2,1} \l{Multi-Touch Examples}{\bold{Multi-Touch Framework}} - \o{2,1} \l{Gestures Examples}{\bold{Gestures}} + \clearfloat + \section1 \l{Multi-Touch Examples}{Multi-Touch Framework} + \beginfloatleft + \l{Multi-Touch Examples}{\inlineimage multitouch-examples.png + } - \row - \o \image multitouch-examples.png - \o + \endfloat Support for multi-touch input makes it possible for developers to create extensible and intuitive user interfaces. - \o \image gestures-examples.png - \o + \clearfloat + \section1 \l{Gestures Examples}{Gestures} + \beginfloatleft + \l{Gestures Examples}{\inlineimage gestures-examples.png + } + + \endfloat 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 applications. - \row - \o{2,1} \l{D-Bus Examples}{\bold{D-Bus}} - \o{2,1} \l{Qt for Embedded Linux Examples}{\bold{Qt for Embedded Linux}} + \clearfloat + \section1 \l{D-Bus Examples}{D-Bus} + \beginfloatleft + \l{D-Bus Examples}{\inlineimage qt-embedded-examples.png + } - \row - \o \image qt-embedded-examples.png - \o + \endfloat Systems with limited resources, specialized hardware, and small screens require special attention. - \o \image dbus-examples.png D-Bus - \o + \clearfloat + \section1 \l{Qt for Embedded Linux Examples}{Qt for Embedded Linux} + \beginfloatleft + \l{Qt for Embedded Linux Examples}{\inlineimage dbus-examples.png + } + + \endfloat D-Bus is an inter-process communication protocol for Unix/Linux systems. These examples demonstrate how to write application that communicate with each other. - \row - \o{2,1} \l{ActiveQt Examples}{\bold ActiveQt} - \o{2,1} \l{Qt Quarterly}{\bold{Qt Quarterly}} + \clearfloat + \section1 \l{ActiveQt Examples}{ActiveQt} + \beginfloatleft + \l{ActiveQt Examples}{\inlineimage activeqt-examples.png + } - \row - \o \image activeqt-examples.png ActiveQt - \o + \endfloat These examples demonstrate how to write ActiveX controls and control servers with Qt, and how to use ActiveX controls and COM objects in a Qt application. - \o \image qq-thumbnail.png QtQuarterly - \o + \clearfloat + \section1 \l{Qt Quarterly}{Qt Quarterly} + \beginfloatleft + \l{Qt Quarterly}{\inlineimage qq-thumbnail.png + } + + \endfloat One more valuable source for examples and explanations of Qt - features is the archive of the \l {Qt Quarterly}. + features is the archive of \l{Qt Quarterly}, a newsletter for + Qt developers. - \endtable + \clearfloat */ /*! @@ -385,12 +482,14 @@ \o \l{widgets/scribble}{Scribble}\raisedaster \o \l{widgets/shapedclock}{Shaped Clock}\raisedaster \o \l{widgets/sliders}{Sliders}\raisedaster + \o \l{widgets/softkeys}{Soft Keys} \o \l{widgets/spinboxes}{Spin Boxes}\raisedaster \o \l{widgets/styles}{Styles}\raisedaster \o \l{widgets/stylesheet}{Style Sheet}\raisedaster \o \l{widgets/tablet}{Tablet}\raisedaster \o \l{widgets/tetrix}{Tetrix}\raisedaster \o \l{widgets/tooltips}{Tooltips}\raisedaster + \o \l{widgets/validators}{Validators} \o \l{widgets/wiggly}{Wiggly}\raisedaster \o \l{widgets/windowflags}{Window Flags}\raisedaster \endlist @@ -546,6 +645,15 @@ \o \l{graphicsview/portedcanvas}{Ported Canvas} \endlist + These examples show the use of graphics widgets and layouts. + + \list + \o \l{graphicsview/anchorlayouts}{Anchor Layouts} + \o \l{graphicsview/flowlayout}{Flow Layout} + \o \l{graphicsview/simpleanchorlayouts}{Simple Anchor Layouts} + \o \l{graphicsview/weatheranchorlayouts}{Weather Anchor Layouts} + \endlist + Some examples demonstrate the use of graphics effects with canvas items. \list @@ -761,6 +869,8 @@ \o \l{network/blockingfortuneclient}{Blocking Fortune Client}\raisedaster \o \l{network/broadcastreceiver}{Broadcast Receiver} \o \l{network/broadcastsender}{Broadcast Sender} + \o \l{network/download}{Download} + \o \l{network/downloadmanager}{Download Manager} \o \l{network/network-chat}{Network Chat} \o \l{network/fortuneclient}{Fortune Client}\raisedaster \o \l{network/fortuneserver}{Fortune Server}\raisedaster @@ -1043,6 +1153,9 @@ \o \l{script/context2d}{Context2D}\raisedaster \o \l{script/defaultprototypes}{Default Prototypes}\raisedaster \o \l{script/helloscript}{Hello Script}\raisedaster + \o \l{script/marshal}{Qt Script Marshalling} + \o \l{script/qscript}{Qt Script Interpreter} + \o \l{script/qsdbg}{Qt Script Debugging} \o \l{script/qstetrix}{Qt Script Tetrix}\raisedaster \o \l{script/customclass}{Custom Script Class}\raisedaster \endlist @@ -1073,6 +1186,8 @@ \o A more advanced browser example, showing the use of jQuery to perform effects. \row \o \l{webkit/formextractor}{Form Extractor} \o How to use JavaScript and C++ together to read page content. + \row \o \l{webkit/framecapture}{Frame Capture} + \o How to use the WebKit browser engine to obtain images of Web pages. \row \o \l{webkit/googlechat}{Google Chat} \o A real-world example that shows how an existing Web-based service can be accessed using QtWebKit. diff --git a/tools/qdoc3/test/macros.qdocconf b/tools/qdoc3/test/macros.qdocconf index dbb8ab8..22db23e 100644 --- a/tools/qdoc3/test/macros.qdocconf +++ b/tools/qdoc3/test/macros.qdocconf @@ -32,4 +32,4 @@ macro.mdash.HTML = "—" macro.beginfloatleft.HTML = "
" macro.beginfloatright.HTML = "
" macro.endfloat.HTML = "
" -macro.clearfloat.HTML = "
" +macro.clearfloat.HTML = "
" -- cgit v0.12