From 4609406aa923306e98bb151fa1902b55a32d61e3 Mon Sep 17 00:00:00 2001 From: Espen Riskedal Date: Fri, 16 Apr 2010 11:54:08 +0200 Subject: Small doc changes to Symbian capabilites part --- doc/src/platforms/platform-notes.qdoc | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc index 131d035..85fa029 100644 --- a/doc/src/platforms/platform-notes.qdoc +++ b/doc/src/platforms/platform-notes.qdoc @@ -419,7 +419,7 @@ \section1 Source Compatibility Qt for Symbian provides the same level of source compatibility guarantee as - given for other platforms.  That is, a program which compiles against a given + given for other platforms. That is, a program which compiles against a given version of Qt for Symbian will also compile against all future versions of the same major release. @@ -504,28 +504,31 @@ \section1 Required Capabilities - Distributions of Qt are typically signed with \c{All -TCB}. What your - application needs to be signed with in order to function with Qt depends - on what functionality it uses: + The Qt libraries are typically signed with \c{All -TCB} capabilites, but + that does not mean your Qt application needs to be signed with the same + capabilities to function properly. The capabilities your application needs + to function properly depends on which parts of Qt you use, here is an + overview: \table - \header \o Technology + \header \o Module \o Required Symbian Capability \row \o QtCore - \o \c PowerMgmt if applications are terminated using QProcess. + \o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called. + \row \o QtCore + \o \c AllFiles when \l{http://developer.symbian.org/wiki/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.} \row \o QtNetwork - \o NetworkServices + \o \c NetworkServices is basically always required for this module. \row \o QtMultiMedia \o \c UserEnvironment if QAudioInput is used. \endtable - Depending on what file paths that are accessed and how AllFiles may be - required. Similarly, if the network is accessed indirectly through - components such as QtXmlPatterns, QtWebkit or QtScript, the capabilities - needs to match accordingly. + Note that some modules rely on other modules. If your application uses + QtXmlPatterns, QtWebkit or QtScript it may still require \c NetworkServices + \o as these modules rely on QtNetwork to go online. - See individual classes' documentation for specifics. If a class does not - mention Symbian capabilities, it requires none. + For more information see the documentation of the individual Qt classes. If + a class does not mention Symbian capabilities, it requires none. \section1 Multimedia and Phonon Support -- cgit v0.12 From 77b320ca8a29cea2d302348a833d5e1727242769 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Fri, 16 Apr 2010 15:37:03 +0300 Subject: QS60Style: Qt does not draw transparency correctly This is due to default mask depth in QS60Style. It is currently set as default EGray2 and then inquiried from S60SkinServer. For 3.1 devices, skinserver does not explicitly set the mask depth (even though default is 8bit mask), so no value is returned and default value is used. This leads to a situation where style uses 2bit masks for 9 or 3 part frame graphics. Corrected by changing the default value to 8bit mask (EGray256). Task-number: QTBUG-9927 Reviewed-by: Janne Anttila --- src/gui/styles/qs60style_s60.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index 74da51e..1ec5869 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -919,7 +919,7 @@ QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(QS60StylePrivate::SkinFr result = fromFbsBitmap(frame, NULL, flags, targetSize); } } else { - TDisplayMode maskDepth = EGray2; + TDisplayMode maskDepth = EGray256; // Query the skin item for possible frame graphics mask details. if (skinInstance) { CAknsMaskedBitmapItemData* skinMaskedBmp = static_cast( -- cgit v0.12 From c1bf30182b100f2dc83ec552685869990b02b23d Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 16 Apr 2010 15:56:15 +0200 Subject: Fix RTL text rendering in the QVGPaintEngine The QVGPaintEngine calls vgDrawGlyphs() to draw the glyphs of a QTextItem. vgDrawGlyphs(), which is an official OpenVG function, and not implemented in Qt itself, expects glyphs coordinates differently than Qt's glyph painting loops of other paint engines expect. Therefore, we need to handle RTL text separately in QVGPaintEngine::drawTextItem(). Rhys Weatherley provided this patch. This issue is not Symbian specific, but rather QVGPaintEngine specific. Task-number: QT-3140 Reviewed-by: Rhys Weatherley --- src/openvg/qpaintengine_vg.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 96e0e86..7445fd7 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3347,8 +3347,13 @@ void QVGPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) // Draw the glyphs. We need to fill with the brush associated with // the Qt pen, not the Qt brush. d->ensureBrush(state()->pen.brush()); - vgDrawGlyphs(glyphCache->font, glyphs.size(), (VGuint*)glyphs.data(), - NULL, NULL, VG_FILL_PATH, VG_TRUE); + if (ti.renderFlags() & QTextItem::RightToLeft) { + for (int index = glyphs.size() - 1; index >= 0; --index) + vgDrawGlyph(glyphCache->font, glyphs[index], VG_FILL_PATH, VG_TRUE); + } else { + vgDrawGlyphs(glyphCache->font, glyphs.size(), (VGuint*)glyphs.data(), + NULL, NULL, VG_FILL_PATH, VG_TRUE); + } #else // OpenGL 1.0 does not have support for VGFont and glyphs, // so fall back to the default Qt path stroking algorithm. -- cgit v0.12