From 9d9889682c79bacb803ef5613502e7307c1d16bd Mon Sep 17 00:00:00 2001
From: Norwegian Rock Cat
Date: Mon, 20 Apr 2009 09:49:55 +0200
Subject: BT: Fix a crash when using Q(File)Dialog::open() in QCocoa.
If we don't have a sheet, we need to recreate it in Cocoa.
Unfortunately, we neglected to reassign the NSWindow pointer in that
case, so the program would crash.
Reviewed-by: Richard Moe Gustavsen
---
src/gui/kernel/qwidget_mac.mm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 2c3f7f1..37dc79c 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -4627,8 +4627,11 @@ void QWidgetPrivate::setModal_sys()
if (windowParent && q->windowModality() == Qt::WindowModal){
// Window should be window-modal, which implies a sheet.
- if (!alreadySheet)
+ if (!alreadySheet) {
+ // NB: the following call will call setModal_sys recursivly:
recreateMacWindow();
+ windowRef = qt_mac_window_for(q);
+ }
if ([windowRef isKindOfClass:[NSPanel class]]){
// If the primary window of the sheet parent is a child of a modal dialog,
// the sheet parent should not be modally shaddowed.
--
cgit v0.12
From fee1423eba48746d46e13c02374249d1760219d7 Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Wed, 15 Apr 2009 08:32:42 +0200
Subject: Some ifdefs for debugging clipping performance
---
src/gui/painting/qpaintengine_raster.cpp | 36 ++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index addd63d..e981f8d 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -1140,6 +1140,33 @@ void QRasterPaintEnginePrivate::updateMatrixData(QSpanData *spanData, const QBru
}
}
+// #define QT_CLIPPING_RATIOS
+
+#ifdef QT_CLIPPING_RATIOS
+int rectClips;
+int regionClips;
+int totalClips;
+
+static void checkClipRatios(QRasterPaintEnginePrivate *d)
+{
+ if (d->clip()->hasRectClip)
+ rectClips++;
+ if (d->clip()->hasRegionClip)
+ regionClips++;
+ totalClips++;
+
+ if ((totalClips % 5000) == 0) {
+ printf("Clipping ratio: rectangular=%f%%, region=%f%%, complex=%f%%\n",
+ rectClips * 100.0 / (qreal) totalClips,
+ regionClips * 100.0 / (qreal) totalClips,
+ (totalClips - rectClips - regionClips) * 100.0 / (qreal) totalClips);
+ totalClips = 0;
+ rectClips = 0;
+ regionClips = 0;
+ }
+
+}
+#endif
/*!
\internal
@@ -1241,6 +1268,10 @@ void QRasterPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)
d->solid_color_filler.clip = d->clip();
d->solid_color_filler.adjustSpanMethods();
+
+#ifdef QT_CLIPPING_RATIOS
+ checkClipRatios(d);
+#endif
}
@@ -1315,6 +1346,11 @@ void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op)
d->solid_color_filler.clip = d->clip();
d->solid_color_filler.adjustSpanMethods();
+
+
+#ifdef QT_CLIPPING_RATIOS
+ checkClipRatios(d);
+#endif
}
/*!
--
cgit v0.12
From 92d4fc8401a1ef31122804e219a57513e6f37e0a Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Thu, 16 Apr 2009 13:42:33 +0200
Subject: Fix docs for QPixmapCache::setCacheLimit()/cacheLimit()
---
src/gui/image/qpixmapcache.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gui/image/qpixmapcache.cpp b/src/gui/image/qpixmapcache.cpp
index 4253f8d..eedb6a3 100644
--- a/src/gui/image/qpixmapcache.cpp
+++ b/src/gui/image/qpixmapcache.cpp
@@ -275,7 +275,8 @@ bool QPixmapCache::insert(const QString &key, const QPixmap &pm)
/*!
Returns the cache limit (in kilobytes).
- The default cache limit is 2048 KB for Embedded, 10240 KB for Desktops.
+ The default cache limit is 2048 KB for Embedded, 10240 KB for
+ Desktops.
\sa setCacheLimit()
*/
@@ -288,7 +289,8 @@ int QPixmapCache::cacheLimit()
/*!
Sets the cache limit to \a n kilobytes.
- The default setting is 1024 kilobytes.
+ The default setting is 2048 KB for Embedded, 10240 KB for
+ Desktops.
\sa cacheLimit()
*/
--
cgit v0.12
From f619d17ff3fbc8f8ff60a1175bc83435f977550c Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Fri, 17 Apr 2009 13:00:31 +0200
Subject: Fix ARGB8565 onto RGB16 image blending on windows
The rounding was just wrong...
Task-number: 246009
Reviewed-by: Trond
---
src/gui/painting/qblendfunctions.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/gui/painting/qblendfunctions.cpp b/src/gui/painting/qblendfunctions.cpp
index 6589439..84a1e4a 100644
--- a/src/gui/painting/qblendfunctions.cpp
+++ b/src/gui/painting/qblendfunctions.cpp
@@ -363,9 +363,9 @@ template void qt_blend_argb24_on_rgb16(uchar *destPixels, int dbpl,
quint32 siag = dg * sia;
quint32 siab = db * sia;
- quint32 rr = ((siar + (siar>>8) + (0x80 << 11)) >> 8) & 0xf800;
- quint32 rg = ((siag + (siag>>8) + (0x80 << 5)) >> 8) & 0x07e0;
- quint32 rb = ((siab + (siab>>8) + (0x80 >> 3)) >> 8);
+ quint32 rr = ((siar + (siar>>8) + (0x80 << 8)) >> 8) & 0xf800;
+ quint32 rg = ((siag + (siag>>8) + (0x80 << 3)) >> 8) & 0x07e0;
+ quint32 rb = ((siab + (siab>>8) + (0x80 >> 3)) >> 8) & 0x001f;
*dst = alphaFunc.bytemul(spix) + rr + rg + rb;
#endif
--
cgit v0.12
From 2e5080b136dabf70d0ea3bcb39aff0b5f858056d Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Fri, 17 Apr 2009 14:07:04 +0200
Subject: Fix ARGB24PM->RGB16 for i386 GCC
There was special code for gcc to run super-fast, but it was
buggy and didn't blend properly. Kill this code for the benefit
of the normal blend function. The performance on an Intel Quad Core 2
was not too different from the bytemul approach.
Task-number: 246009
Reviewed-by: Trond
---
src/gui/painting/qblendfunctions.cpp | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/src/gui/painting/qblendfunctions.cpp b/src/gui/painting/qblendfunctions.cpp
index 84a1e4a..70cea4d 100644
--- a/src/gui/painting/qblendfunctions.cpp
+++ b/src/gui/painting/qblendfunctions.cpp
@@ -44,19 +44,6 @@
QT_BEGIN_NAMESPACE
-
-// This ifdef is made with the best of intention. GCC fails to
-// optimzie the code properly so the bytemul approach is the fastest
-// it gets. Both on ARM and on MSVC the code is optimized to be better
-// than the bytemul approach... On the other hand... This code is
-// almost never run on i386 so it may be downright silly to have this
-// piece of code here...
-#if defined (Q_CC_GNU) && (defined (QT_ARCH_I386) || defined (QT_ARCH_X86_64))
-# define QT_BLEND_USE_BYTEMUL
-#endif
-
-// #define QT_DEBUG_DRAW
-
static const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
struct SourceOnlyAlpha
@@ -286,7 +273,7 @@ static void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
int const_alpha)
{
#ifdef QT_DEBUG_DRAW
- printf("qt_blend_argb16_on_rgb16: dst=(%p, %d), src=(%p, %d), dim=(%d, %d) alpha=%d\n",
+ printf("qt_blend_rgb16_on_rgb16: dst=(%p, %d), src=(%p, %d), dim=(%d, %d) alpha=%d\n",
dst, dbpl, src, sbpl, w, h, const_alpha);
#endif
@@ -347,11 +334,6 @@ template void qt_blend_argb24_on_rgb16(uchar *destPixels, int dbpl,
if (alpha == 255) {
*dst = spix;
} else if (alpha != 0) {
-#ifdef QT_BLEND_USE_BYTEMUL
- // truncate green channel to avoid overflow
- *dst = (alphaFunc.bytemul(spix) & 0xffdf)
- + (quint16) qrgb565(*dst).byte_mul(qrgb565::ialpha(alpha));
-#else
quint16 dpix = *dst;
quint32 sia = 255 - alpha;
@@ -368,7 +350,6 @@ template void qt_blend_argb24_on_rgb16(uchar *destPixels, int dbpl,
quint32 rb = ((siab + (siab>>8) + (0x80 >> 3)) >> 8) & 0x001f;
*dst = alphaFunc.bytemul(spix) + rr + rg + rb;
-#endif
}
++dst;
--
cgit v0.12
From 2c5ec5867c0d40f17906aa7b23380218d392970a Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Mon, 20 Apr 2009 07:29:44 +0200
Subject: Fix drawhelper pixel-writeback when dest has alpha.
The blending always happens in 32-bit premultiplied so the conversion
back to dest-format needs to base itself on premlutiplied too.
Task-number: 182246
Reviewed-by: Samuel
---
src/gui/painting/qdrawhelper.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index efdc778..e7bb1e1 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -370,7 +370,7 @@ Q_STATIC_TEMPLATE_FUNCTION void QT_FASTCALL destStore(QRasterBuffer *rasterBuffe
Q_TEMPLATE_FIX(DST))
{
DST *dest = reinterpret_cast(rasterBuffer->scanLine(y)) + x;
- const quint32 *src = reinterpret_cast(buffer);
+ const quint32p *src = reinterpret_cast(buffer);
while (length--)
*dest++ = DST(*src++);
}
--
cgit v0.12
From 8047e8b5ac359e7470211a37e266d429c3641839 Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Mon, 20 Apr 2009 07:49:14 +0200
Subject: Make the 32-bit ARGBPM on 16-bit RGB blend function faster
The "optimized" version of this function was actually slower
by quite a bit, so revert it to the old "trivial" code.
Reviewed-by: Samuel
---
src/gui/painting/qblendfunctions.cpp | 134 +++++++++--------------------------
1 file changed, 33 insertions(+), 101 deletions(-)
diff --git a/src/gui/painting/qblendfunctions.cpp b/src/gui/painting/qblendfunctions.cpp
index 70cea4d..dd7b016 100644
--- a/src/gui/painting/qblendfunctions.cpp
+++ b/src/gui/painting/qblendfunctions.cpp
@@ -416,113 +416,45 @@ static void qt_blend_argb32_on_rgb16(uchar *destPixels, int dbpl,
}
quint16 *dst = (quint16 *) destPixels;
- int dstExtraStride = dbpl / 2 - w;
-
- const quint32 *src = (const quint32 *) srcPixels;
- int srcExtraStride = sbpl / 4 - w;
+ quint32 *src = (quint32 *) srcPixels;
for (int y=0; y> 1;
- const int srcAlign = ((quintptr)src) & 0x3;
- if (length32) {
- if (srcAlign) {
- for (int i = 0; i < length32; ++i) {
- quint32 *dest32 = reinterpret_cast(dst);
- const quint8 a1 = qAlpha(src[0]);
- const quint8 a2 = qAlpha(src[1]);
- quint32 s;
-
- if (!a1 && !a2) {
- src += 2;
- dst +=2;
- continue;
- }
-
- s = convert_argb32_to_rgb16(src[0])
- | (convert_argb32_to_rgb16(src[1]) << 16);
-
- if (a1 == a2) {
- if (a1 < 255) {
- const quint8 sa = ((255 - a1)+1) >> 3;
- s += BYTE_MUL_RGB16_32(*dest32, sa);
- }
- } else {
- if (a1 < 255)
- s += BYTE_MUL_RGB16(dst[0], 255 - a1);
- if (a2 < 255)
- s += BYTE_MUL_RGB16(dst[1], 255 - a2) << 16;
- }
-
- *dest32 = s;
- src += 2;
- dst += 2;
- }
- } else {
- for (int i = 0; i < length32; ++i) {
- quint32 *dest32 = reinterpret_cast(dst);
- const quint8 a1 = qAlpha(src[0]);
- const quint8 a2 = qAlpha(src[1]);
- quint32 s;
-
- if (!a1 && !a2) {
- src += 2;
- dst +=2;
- continue;
- }
-
- const quint64 *src64 =
- reinterpret_cast(src);
- s = qConvertRgb32To16x2(*src64);
-
- if (a1 == a2) {
- if (a1 < 255) {
- const quint8 sa = ((255 - a1)+1) >> 3;
- s += BYTE_MUL_RGB16_32(*dest32, sa);
- }
- } else {
- if (a1 < 255)
- s += BYTE_MUL_RGB16(dst[0], 255 - a1);
- if (a2 < 255)
- s += BYTE_MUL_RGB16(dst[1], 255 - a2) << 16;
- }
-
- *dest32 = s;
- src += 2;
- dst += 2;
- }
- }
- }
- const int tail = length & 0x1;
- if (tail) {
- const quint8 alpha = qAlpha(*src);
- if (alpha) {
- quint16 s = convert_argb32_to_rgb16(*src);
- if (alpha < 255)
- s += BYTE_MUL_RGB16(*dst, 255 - alpha);
- *dst = s;
+ quint32 spix = src[x];
+ quint32 alpha = spix >> 24;
+
+ if (alpha == 255) {
+ dst[x] = convert_argb32_to_rgb16(spix);
+ } else if (alpha != 0) {
+ quint32 dpix = dst[x];
+
+ quint32 sia = 255 - alpha;
+
+ quint32 sr = (spix >> 8) & 0xf800;
+ quint32 sg = (spix >> 5) & 0x07e0;
+ quint32 sb = (spix >> 3) & 0x001f;
+
+ quint32 dr = (dpix & 0x0000f800);
+ quint32 dg = (dpix & 0x000007e0);
+ quint32 db = (dpix & 0x0000001f);
+
+ quint32 siar = dr * sia;
+ quint32 siag = dg * sia;
+ quint32 siab = db * sia;
+
+ quint32 rr = sr + ((siar + (siar>>8) + (0x80 << 8)) >> 8);
+ quint32 rg = sg + ((siag + (siag>>8) + (0x80 << 3)) >> 8);
+ quint32 rb = sb + ((siab + (siab>>8) + (0x80 >> 3)) >> 8);
+
+ dst[x] = (rr & 0xf800)
+ | (rg & 0x07e0)
+ | (rb);
}
- ++dst;
- ++src;
}
- dst += dstExtraStride;
- src += srcExtraStride;
+ dst = (quint16 *) (((uchar *) dst) + dbpl);
+ src = (quint32 *) (((uchar *) src) + sbpl);
}
-
}
--
cgit v0.12
From c3937c516b98edffa4792bccde3aa18926082e44 Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Mon, 20 Apr 2009 07:38:33 +0200
Subject: Ifdef out the QWS blend functions for less common bitdephts by
default
ARGB32_PM, RGB32, ARGB8565_PM and RGB16 are optimizied elsewhere
and they are the most important formats. The implemenentation of several
of these depths are also buggy, so one can question their relevance.
Reviewed-by: Samuel
---
src/gui/painting/qdrawhelper.cpp | 90 ++++++++++++++++++++--------------------
1 file changed, 45 insertions(+), 45 deletions(-)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index e7bb1e1..c11837a 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -4763,7 +4763,7 @@ void QT_FASTCALL blendUntransformed(int count, const QSpan *spans, void *userDat
static void blend_untransformed_rgb888(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -4777,7 +4777,7 @@ static void blend_untransformed_rgb888(int count, const QSpan *spans,
static void blend_untransformed_argb6666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -4793,7 +4793,7 @@ static void blend_untransformed_argb6666(int count, const QSpan *spans,
static void blend_untransformed_rgb666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -4809,7 +4809,7 @@ static void blend_untransformed_rgb666(int count, const QSpan *spans,
static void blend_untransformed_argb8565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -4825,7 +4825,7 @@ static void blend_untransformed_argb8565(int count, const QSpan *spans,
static void blend_untransformed_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -4841,7 +4841,7 @@ static void blend_untransformed_rgb565(int count, const QSpan *spans,
static void blend_untransformed_argb8555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -4857,7 +4857,7 @@ static void blend_untransformed_argb8555(int count, const QSpan *spans,
static void blend_untransformed_rgb555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -4873,7 +4873,7 @@ static void blend_untransformed_rgb555(int count, const QSpan *spans,
static void blend_untransformed_argb4444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -4889,7 +4889,7 @@ static void blend_untransformed_argb4444(int count, const QSpan *spans,
static void blend_untransformed_rgb444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5084,7 +5084,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTiled(int count, const QSpan *spans, void *
static void blend_tiled_rgb888(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -5097,7 +5097,7 @@ static void blend_tiled_rgb888(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb6666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5112,7 +5112,7 @@ static void blend_tiled_argb6666(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5127,7 +5127,7 @@ static void blend_tiled_rgb666(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb8565(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -5142,7 +5142,7 @@ static void blend_tiled_argb8565(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb565(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -5157,7 +5157,7 @@ static void blend_tiled_rgb565(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb8555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -5172,7 +5172,7 @@ static void blend_tiled_argb8555(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -5187,7 +5187,7 @@ static void blend_tiled_rgb555(int count, const QSpan *spans, void *userData)
static void blend_tiled_argb4444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5202,7 +5202,7 @@ static void blend_tiled_argb4444(int count, const QSpan *spans, void *userData)
static void blend_tiled_rgb444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5599,7 +5599,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformedBilinear(int count, const QSpan
static void blend_transformed_bilinear_rgb888(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -5612,7 +5612,7 @@ static void blend_transformed_bilinear_rgb888(int count, const QSpan *spans, voi
static void blend_transformed_bilinear_argb6666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5627,7 +5627,7 @@ static void blend_transformed_bilinear_argb6666(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb666(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -5642,7 +5642,7 @@ static void blend_transformed_bilinear_rgb666(int count, const QSpan *spans, voi
static void blend_transformed_bilinear_argb8565(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -5658,7 +5658,7 @@ static void blend_transformed_bilinear_argb8565(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_RGB16)
@@ -5673,7 +5673,7 @@ static void blend_transformed_bilinear_rgb565(int count, const QSpan *spans,
static void blend_transformed_bilinear_argb8555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -5688,7 +5688,7 @@ static void blend_transformed_bilinear_argb8555(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb555(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -5703,7 +5703,7 @@ static void blend_transformed_bilinear_rgb555(int count, const QSpan *spans, voi
static void blend_transformed_bilinear_argb4444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -5718,7 +5718,7 @@ static void blend_transformed_bilinear_argb4444(int count, const QSpan *spans, v
static void blend_transformed_bilinear_rgb444(int count, const QSpan *spans, void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6195,7 +6195,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformed(int count, const QSpan *spans,
static void blend_transformed_rgb888(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -6209,7 +6209,7 @@ static void blend_transformed_rgb888(int count, const QSpan *spans,
static void blend_transformed_argb6666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -6225,7 +6225,7 @@ static void blend_transformed_argb6666(int count, const QSpan *spans,
static void blend_transformed_rgb666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -6241,7 +6241,7 @@ static void blend_transformed_rgb666(int count, const QSpan *spans,
static void blend_transformed_argb8565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -6257,7 +6257,7 @@ static void blend_transformed_argb8565(int count, const QSpan *spans,
static void blend_transformed_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -6273,7 +6273,7 @@ static void blend_transformed_rgb565(int count, const QSpan *spans,
static void blend_transformed_argb8555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6289,7 +6289,7 @@ static void blend_transformed_argb8555(int count, const QSpan *spans,
static void blend_transformed_rgb555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6305,7 +6305,7 @@ static void blend_transformed_rgb555(int count, const QSpan *spans,
static void blend_transformed_argb4444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6321,7 +6321,7 @@ static void blend_transformed_argb4444(int count, const QSpan *spans,
static void blend_transformed_rgb444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6619,7 +6619,7 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformedTiled(int count, const QSpan *sp
static void blend_transformed_tiled_rgb888(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_24)
+#if defined(QT_QWS_DEPTH_24)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_RGB888)
@@ -6633,7 +6633,7 @@ static void blend_transformed_tiled_rgb888(int count, const QSpan *spans,
static void blend_transformed_tiled_argb6666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -6649,7 +6649,7 @@ static void blend_transformed_tiled_argb6666(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb666(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_18)
+#if defined(QT_QWS_DEPTH_18)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB6666_Premultiplied)
@@ -6665,7 +6665,7 @@ static void blend_transformed_tiled_rgb666(int count, const QSpan *spans,
static void blend_transformed_tiled_argb8565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -6681,7 +6681,7 @@ static void blend_transformed_tiled_argb8565(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb565(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_16)
+#if defined(QT_QWS_DEPTH_16)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8565_Premultiplied)
@@ -6697,7 +6697,7 @@ static void blend_transformed_tiled_rgb565(int count, const QSpan *spans,
static void blend_transformed_tiled_argb8555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6713,7 +6713,7 @@ static void blend_transformed_tiled_argb8555(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb555(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_15)
+#if defined(QT_QWS_DEPTH_15)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB8555_Premultiplied)
@@ -6729,7 +6729,7 @@ static void blend_transformed_tiled_rgb555(int count, const QSpan *spans,
static void blend_transformed_tiled_argb4444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
@@ -6745,7 +6745,7 @@ static void blend_transformed_tiled_argb4444(int count, const QSpan *spans,
static void blend_transformed_tiled_rgb444(int count, const QSpan *spans,
void *userData)
{
-#if !defined(Q_WS_QWS) || defined(QT_QWS_DEPTH_12)
+#if defined(QT_QWS_DEPTH_12)
QSpanData *data = reinterpret_cast(userData);
if (data->texture.format == QImage::Format_ARGB4444_Premultiplied)
--
cgit v0.12
From 3bcbfcfa466890469f3053a3c5987bc2cf85317b Mon Sep 17 00:00:00 2001
From: Jason McDonald
Date: Mon, 20 Apr 2009 18:24:26 +1000
Subject: BT: Update text of About Qt dialog
Add Copyright message as requested by Legal, and update .ts files again.
Reviewed-by: Trust Me
---
src/gui/dialogs/qmessagebox.cpp | 1 +
translations/qt_ar.ts | 18 +++++++++---------
translations/qt_de.ts | 18 +++++++++---------
translations/qt_es.ts | 18 +++++++++---------
translations/qt_fr.ts | 18 +++++++++---------
translations/qt_iw.ts | 18 +++++++++---------
translations/qt_ja_JP.ts | 10 +++++-----
translations/qt_pl.ts | 6 +++---
translations/qt_pt.ts | 18 +++++++++---------
translations/qt_ru.ts | 18 +++++++++---------
translations/qt_sk.ts | 18 +++++++++---------
translations/qt_sv.ts | 18 +++++++++---------
translations/qt_uk.ts | 18 +++++++++---------
translations/qt_untranslated.ts | 18 +++++++++---------
translations/qt_zh_CN.ts | 18 +++++++++---------
translations/qt_zh_TW.ts | 18 +++++++++---------
16 files changed, 126 insertions(+), 125 deletions(-)
diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp
index 1ddb8f4..456b480 100644
--- a/src/gui/dialogs/qmessagebox.cpp
+++ b/src/gui/dialogs/qmessagebox.cpp
@@ -1717,6 +1717,7 @@ void QMessageBox::aboutQt(QWidget *parent, const QString &title)
"to comply with the terms of the GNU GPL version 3.0.
"
"Please see www.qtsoftware.com/products/licensing "
"for an overview of Qt licensing.
"
+ "Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
"
"Qt is a Nokia product. See www.qtsoftware.com/qt "
"for more information.
"
).arg(QLatin1String(QT_VERSION_STR));
diff --git a/translations/qt_ar.ts b/translations/qt_ar.ts
index b9c1adc..b5a60e2 100644
--- a/translations/qt_ar.ts
+++ b/translations/qt_ar.ts
@@ -1190,7 +1190,7 @@ to
QDialogButtonBox
-
+
@@ -2998,7 +2998,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
@@ -3006,17 +3006,12 @@ Do you want to delete it anyway?
موافقة
-
-
-
-
-
-
+
-
+
مساعدة
@@ -3030,6 +3025,11 @@ Do you want to delete it anyway?
+
+
+
+
+
QMultiInputContext
diff --git a/translations/qt_de.ts b/translations/qt_de.ts
index 4806231..70cf6f3 100644
--- a/translations/qt_de.ts
+++ b/translations/qt_de.ts
@@ -1170,7 +1170,7 @@ nach
QDialogButtonBox
-
+
@@ -2949,7 +2949,7 @@ Möchten sie die Datei trotzdem löschen?
QMessageBox
-
+
@@ -2957,17 +2957,12 @@ Möchten sie die Datei trotzdem löschen?
OK
-
-
-
-
-
-
+
Über Qt
-
+
Hilfe
@@ -2985,6 +2980,11 @@ Möchten sie die Datei trotzdem löschen?
Details ausblenden...
+
+
+
+
+
QMultiInputContext
diff --git a/translations/qt_es.ts b/translations/qt_es.ts
index f9299cb..ee1e88c 100644
--- a/translations/qt_es.ts
+++ b/translations/qt_es.ts
@@ -1194,7 +1194,7 @@ a
QDialogButtonBox
-
+
@@ -3056,7 +3056,7 @@ All other platforms
QMessageBox
-
+
Ayuda
@@ -3069,12 +3069,7 @@ All other platforms
Aceptar
-
-
-
-
-
-
+
Acerca de Qt
@@ -3087,7 +3082,7 @@ All other platforms
<h3>Acerca de Qt</h3>%1<p>Qt es un toolkit en C++ para desarrollo de aplicaciones multiplataforma.</p><p>Qt proporciona portabilidad del código entre MS Windows, Mac OS X, Linux y todas las variantes comerciales de Unix importantes. Qt también está disponible para sistemas empotrados bajo el nombre Qtopia Core.</p><p>Qt es un producto de Trolltech. Visite <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a> para obtener más información.</p>
-
+
Mostrar los detalles...
@@ -3097,6 +3092,11 @@ All other platforms
Ocultar los detalles...
+
+
+
+
+
<p>Este programa utiliza Qt Open Source Edition versión %1.</p><p>Qt Open Source Edition está dirigida al desarrollo de aplicaciones libres. Para desarrollar aplicaciones privativas (de código cerrado) necesita una licencia comercial de Qt.</p><p>Visite <a href="http://qtsoftware.com/company/model/">qtsoftware.com/company/model/</a> para obtener una visión global de las licencias de Qt.</p>
diff --git a/translations/qt_fr.ts b/translations/qt_fr.ts
index a035963..37b334b 100644
--- a/translations/qt_fr.ts
+++ b/translations/qt_fr.ts
@@ -1350,7 +1350,7 @@ en
QDialogButtonBox
-
+
@@ -3199,7 +3199,7 @@ Voulez-vous quand même le supprimer?
QMessageBox
-
+
@@ -3207,17 +3207,12 @@ Voulez-vous quand même le supprimer?
OK
-
-
-
-
-
-
+
À propos de Qt
-
+
Aide
@@ -3240,6 +3235,11 @@ Voulez-vous quand même le supprimer?
Cacher les détails...
+
+
+
+
+
<h3>A propos de Qt</h3>%1<p>Qt est un framework de développement d'applications multi-plateforme.</p><p>Qt fournit la portabilité du code source surMS Windows, Mac OS X, Linux, et toutes les variantes majeures d'Unix. Qt est aussi disponible pour l'embarqué avec Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt est un produit de Nokia. Allez à <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a> pour plus d'informations.</p>
diff --git a/translations/qt_iw.ts b/translations/qt_iw.ts
index 52ecc9a..3b4897d 100644
--- a/translations/qt_iw.ts
+++ b/translations/qt_iw.ts
@@ -1187,7 +1187,7 @@ to
QDialogButtonBox
-
+
@@ -2958,7 +2958,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
@@ -2966,17 +2966,12 @@ Do you want to delete it anyway?
אישור
-
-
-
-
-
-
+
-
+
עזרה
@@ -2990,6 +2985,11 @@ Do you want to delete it anyway?
+
+
+
+
+
QMultiInputContext
diff --git a/translations/qt_ja_JP.ts b/translations/qt_ja_JP.ts
index f3e7584..7c8b874 100644
--- a/translations/qt_ja_JP.ts
+++ b/translations/qt_ja_JP.ts
@@ -1194,7 +1194,7 @@ to
QDialogButtonBox
-
+
@@ -3036,7 +3036,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
ヘルプ
@@ -3065,12 +3065,12 @@ Do you want to delete it anyway?
<p>Qt オープンソース版はオープンソースのアプリケーションの開発用です。ソースコードを公開しない商用アプリケーションを開発するには商用版のライセンスが必要です。</p><p>Qtのライセンスについては<tt>http://qtsoftware.com/company/model.html</tt>を参照してください。</p>
-
+
Qt について
-
+
詳細を表示...
@@ -3081,7 +3081,7 @@ Do you want to delete it anyway?
-
+
diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts
index efc8401..7f9ec8d 100644
--- a/translations/qt_pl.ts
+++ b/translations/qt_pl.ts
@@ -1267,7 +1267,7 @@ na
Ni&e dla wszystkich
-
+
@@ -2995,7 +2995,7 @@ Proszę o sprawdzenie podanej nazwy pliku.
Informacje o Qt
-
+
Pomoc
@@ -3014,7 +3014,7 @@ Proszę o sprawdzenie podanej nazwy pliku.
-
+
diff --git a/translations/qt_pt.ts b/translations/qt_pt.ts
index 5a93718..b00aaa0 100644
--- a/translations/qt_pt.ts
+++ b/translations/qt_pt.ts
@@ -1194,7 +1194,7 @@ para
QDialogButtonBox
-
+
@@ -3044,7 +3044,7 @@ Deseja apagar de qualquer forma?
QMessageBox
-
+
Ajuda
@@ -3057,12 +3057,7 @@ Deseja apagar de qualquer forma?
OK
-
-
-
-
-
-
+
Acerca do Qt
@@ -3075,7 +3070,7 @@ Deseja apagar de qualquer forma?
<h3>Acerca do Qt</h3>%1<p>Qt é um conjunto de ferramentas para desenvolvimento de aplicações multiplataforma.</p>O Qt oferece portabilidade de código fonte único em MS Windows, Mac OS X, Linux e todas as principais variantes comerciais de Unix. O Qt está igualmente disponível para dispositivos embebidos como Qtopia Core.</p><p>O Qt é um produto Trolltech. Veja <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a> para mais informação.</p>
-
+
Mostrar Detalhes...
@@ -3085,6 +3080,11 @@ Deseja apagar de qualquer forma?
Não Mostrar Detalhes...
+
+
+
+
+
<p>Este programa usa Qt Open Source Edition versão %1.</p><p>Qt Open Source Edition é indicado para o desenvolvimento de aplicações/programas open source. Se pretender desenvolver aplicações sem disponibilizar o codigo fonte, então precisará de obter uma licença comercial.</p><p>Por favor consulte <a href="http://qtsoftware.com/company/model/">qtsoftware.com/company/model/</a>para obter mais informação acerca de licenças Qt.</p>
diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts
index 1db3e46..28e786b 100644
--- a/translations/qt_ru.ts
+++ b/translations/qt_ru.ts
@@ -1190,7 +1190,7 @@ to
QDialogButtonBox
-
+
@@ -2998,7 +2998,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
@@ -3006,17 +3006,12 @@ Do you want to delete it anyway?
OK
-
-
-
-
-
-
+
-
+
Справка
@@ -3030,6 +3025,11 @@ Do you want to delete it anyway?
+
+
+
+
+
QMultiInputContext
diff --git a/translations/qt_sk.ts b/translations/qt_sk.ts
index 5045022..1bf53e7 100644
--- a/translations/qt_sk.ts
+++ b/translations/qt_sk.ts
@@ -1194,7 +1194,7 @@ na
QDialogButtonBox
-
+
@@ -3044,7 +3044,7 @@ Chcete ho aj tak zmazať?
QMessageBox
-
+
@@ -3052,17 +3052,12 @@ Chcete ho aj tak zmazať?
OK
-
-
-
-
-
-
+
Informácie o Qt
-
+
Pomocník
@@ -3085,6 +3080,11 @@ Chcete ho aj tak zmazať?
Skryť detaily...
+
+
+
+
+
<p>Tento program používa Qt Open Source Edition verziu %1.</p><p>Qt Open Source Edition je určená pre vývoj Open Source aplikácií. Pre vývoj vlastnených (closed source) aplikácií potrebujete komerčnú Qt licenciu.</p><p>Prosím pozrite <a href="http://qtsoftware.com/company/model.html">qtsoftware.com/company/model.html</a> pre prehľad Qt licencovania.</p>
diff --git a/translations/qt_sv.ts b/translations/qt_sv.ts
index 1b75722..d6affce 100644
--- a/translations/qt_sv.ts
+++ b/translations/qt_sv.ts
@@ -1194,7 +1194,7 @@ till
QDialogButtonBox
-
+
@@ -3000,7 +3000,7 @@ Vill du ta bort den ändå?
QMessageBox
-
+
Hjälp
@@ -3013,12 +3013,7 @@ Vill du ta bort den ändå?
OK
-
-
-
-
-
-
+
Om Qt
@@ -3031,7 +3026,7 @@ Vill du ta bort den ändå?
<h3>Om Qt</h3>%1<p>Qt är ett C++-verktygssamling för utveckling av krossplattformsprogram.</p><p>Qt tillhandahåller portabilitet för samma källkod mellan MS Windows, Mac OS X, Linux, och alla andra stora kommersiella Unix-varianter. Qt finns också tillgängligt för inbäddade enheter som Qtopia Core.</p><p>Qt är en produkt från Trolltech. Se <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a> för mer information.</p>
-
+
Visa detaljer...
@@ -3040,6 +3035,11 @@ Vill du ta bort den ändå?
Dölj detaljer,,,
+
+
+
+
+
QMultiInputContext
diff --git a/translations/qt_uk.ts b/translations/qt_uk.ts
index d6a7d80..9c1b1f4 100644
--- a/translations/qt_uk.ts
+++ b/translations/qt_uk.ts
@@ -1200,7 +1200,7 @@ to
QDialogButtonBox
-
+
@@ -3055,7 +3055,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
Довідка
@@ -3068,12 +3068,7 @@ Do you want to delete it anyway?
Гаразд
-
-
-
-
-
-
+
Про Qt
@@ -3086,7 +3081,7 @@ Do you want to delete it anyway?
<h3>Про Qt</h3>%1<p>Qt - це інструментарій C++ для міжплатформової розробки.</p><p>Qt забезпечує мобільність єдиних джерельних текстів між MS Windows, Mac OS X, Linux та всіма основними комерційними версіями Unix. Qt існує також для вбудованих пристроїв, таких, як Qtopia Core.</p><p>Qt - це продукт компанії Trolltech. Більше інформації можна знайти на <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a>.</p>
-
+
Показати подробиці...
@@ -3096,6 +3091,11 @@ Do you want to delete it anyway?
Сховати подробиці...
+
+
+
+
+
<p>Ця програма використовує Qt Open Source Edition версії %1.</p><p>Qt Open Source Edition призначено для розробки відкритих програмних засобів. Для розробки власницьких (закритих) програм вам потрібна комерційна ліцензія для Qt.</p><p>Перегляньте <a href="http://qtsoftware.com/company/model/">qtsoftware.com/company/model/</a> щодо огляду ліцензій Qt.</p>
diff --git a/translations/qt_untranslated.ts b/translations/qt_untranslated.ts
index 083a56f..35a2802 100644
--- a/translations/qt_untranslated.ts
+++ b/translations/qt_untranslated.ts
@@ -1157,7 +1157,7 @@ to
QDialogButtonBox
-
+
@@ -2921,7 +2921,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
@@ -2934,17 +2934,12 @@ Do you want to delete it anyway?
-
-
-
-
-
-
+
-
+
@@ -2953,6 +2948,11 @@ Do you want to delete it anyway?
+
+
+
+
+
QMultiInputContext
diff --git a/translations/qt_zh_CN.ts b/translations/qt_zh_CN.ts
index 061919d..b0a7947 100644
--- a/translations/qt_zh_CN.ts
+++ b/translations/qt_zh_CN.ts
@@ -1202,7 +1202,7 @@ to
QDialogButtonBox
-
+
@@ -3044,7 +3044,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
帮助
@@ -3057,12 +3057,7 @@ Do you want to delete it anyway?
确定
-
-
-
-
-
-
+
关于Qt
@@ -3071,7 +3066,7 @@ Do you want to delete it anyway?
<p>这个程序使用的是Qt %1版。</p>
-
+
显示细节……
@@ -3081,6 +3076,11 @@ Do you want to delete it anyway?
隐藏细节……
+
+
+
+
+
<h3>关于Qt</h3>%1<p>Qt是一个用于跨平台应用程序开发的C++工具包。</p><p>对于MS Windows、Mac OS X、Linux和所有主流商业Unix,Qt提供了单一源程序的可移植性。Qt也有用于嵌入式Linux和Windows CE的版本。</p><p>Qt是Nokia的产品。有关更多信息,请参考<a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a>。</p>
diff --git a/translations/qt_zh_TW.ts b/translations/qt_zh_TW.ts
index 9fb871b..bcb6f8d 100644
--- a/translations/qt_zh_TW.ts
+++ b/translations/qt_zh_TW.ts
@@ -1223,7 +1223,7 @@ to
QDialogButtonBox
-
+
@@ -3073,7 +3073,7 @@ Do you want to delete it anyway?
QMessageBox
-
+
說明
@@ -3086,12 +3086,7 @@ Do you want to delete it anyway?
確定
-
-
-
-
-
-
+
關於 Qt
@@ -3104,7 +3099,7 @@ Do you want to delete it anyway?
<h3>關於 Qt</h3>%1<p>Qt 為一個跨平台的 C++ 開發工具。</p><p>Qt 提供各平台相容機制,只要寫一份程式碼,就可以在 MS Windows、Mac OS X、Linux 與各主要的商業 Unix 平台上編譯。Qt 也可以用 Qtopia Core 用於嵌入式系統。</p><p>Qt 為 Trolltech 的產品。詳情請參考 <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a>。</p>
-
+
顯示詳情...
@@ -3114,6 +3109,11 @@ Do you want to delete it anyway?
隱藏詳情...
+
+
+
+
+
<h3>關於 Qt</h3>%1<p>Qt 為一個跨平台的 C++ 開發工具。</p><p>Qt 提供各平台相容機制,只要寫一份程式碼,就可以在 MS Windows、Mac OS X、Linux 與各主要的商業 Unix 平台上編譯。Qt 也有用於嵌入式 Linux 與 Windows CE 的版本。</p><p>Qt 為 Nokia 的產品。詳情請參考 <a href="http://qtsoftware.com/qt/">qtsoftware.com/qt/</a>。</p>
--
cgit v0.12
From 33259249106e16052b60c55a35539c9f8cb0414d Mon Sep 17 00:00:00 2001
From: jasplin
Date: Mon, 20 Apr 2009 11:44:28 +0200
Subject: Get rid of compiler warning.
Reviewed-by: TrustMe
---
src/gui/util/qcompleter.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gui/util/qcompleter.cpp b/src/gui/util/qcompleter.cpp
index 7571dfe..a622385 100644
--- a/src/gui/util/qcompleter.cpp
+++ b/src/gui/util/qcompleter.cpp
@@ -1080,7 +1080,7 @@ void QCompleter::setPopup(QAbstractItemView *popup)
popup->hide();
popup->setParent(0, Qt::Popup);
- Qt::FocusPolicy origPolicy;
+ Qt::FocusPolicy origPolicy = Qt::NoFocus;
if (d->widget)
origPolicy = d->widget->focusPolicy();
popup->setFocusPolicy(Qt::NoFocus);
--
cgit v0.12
From 0b15f59c648633357e9263e93c688e5462e3e01e Mon Sep 17 00:00:00 2001
From: Gunnar Sletta
Date: Mon, 20 Apr 2009 11:39:52 +0200
Subject: Properly support the "prefer antialias" font style
Since the introduction of the texture glyph cache we rendered these
fonts as 8-bit gray masks which looked bad and cut off a few pixels
for thin glyphs. Changed the preferred format of the font engine
to be Raster_RGBMask.
Task-number: 248141
Reviewed-by: Eskil B
---
src/gui/text/qfontdatabase_win.cpp | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/gui/text/qfontdatabase_win.cpp b/src/gui/text/qfontdatabase_win.cpp
index c9f5586..780ae28 100644
--- a/src/gui/text/qfontdatabase_win.cpp
+++ b/src/gui/text/qfontdatabase_win.cpp
@@ -699,6 +699,7 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
}
bool stockFont = false;
+ bool preferClearTypeAA = false;
HFONT hfont = 0;
@@ -799,10 +800,12 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
#endif
if (request.styleStrategy & QFont::PreferAntialias) {
- if (QSysInfo::WindowsVersion >= QSysInfo::WV_XP)
+ if (QSysInfo::WindowsVersion >= QSysInfo::WV_XP) {
qual = 5; // == CLEARTYPE_QUALITY;
- else
+ preferClearTypeAA = true;
+ } else {
qual = ANTIALIASED_QUALITY;
+ }
} else if (request.styleStrategy & QFont::NoAntialias) {
qual = NONANTIALIASED_QUALITY;
}
@@ -884,6 +887,9 @@ QFontEngine *loadEngine(int script, const QFontPrivate *fp, const QFontDef &requ
}
QFontEngineWin *few = new QFontEngineWin(font_name, hfont, stockFont, lf);
+ if (preferClearTypeAA)
+ few->glyphFormat = QFontEngineGlyphCache::Raster_RGBMask;
+
// Also check for OpenType tables when using complex scripts
// ### TODO: This only works for scripts that require OpenType. More generally
// for scripts that do not require OpenType we should just look at the list of
@@ -1134,7 +1140,7 @@ static void getFamiliesAndSignatures(const QByteArray &fontData, QFontDatabasePr
signature.fsUsb[1] = qFromBigEndian(table + 46);
signature.fsUsb[2] = qFromBigEndian(table + 50);
signature.fsUsb[3] = qFromBigEndian(table + 54);
-
+
signature.fsCsb[0] = qFromBigEndian(table + 78);
signature.fsCsb[1] = qFromBigEndian(table + 82);
}
--
cgit v0.12
From 2e3f7621d696bec6173810c75b042249645fa714 Mon Sep 17 00:00:00 2001
From: Alexis Menard
Date: Mon, 20 Apr 2009 12:32:31 +0200
Subject: This fix a bug on the QFileSystemModel with a custom icon provider We
were calling the provider with invalid path, with the default one it fallback
to all standard icons but with a custom one we call a public method with an
invalid QFileInfo. It was happening on windows only for the My Drives view
because in that case the parent path is null, my Drives is a logical view.
Task-number: 251295
Reviewed-by: jasplin
---
src/gui/dialogs/qfiledialog.cpp | 2 ++
src/gui/dialogs/qfilesystemmodel_p.h | 12 +++++--
.../auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 41 ++++++++++++++++++++++
3 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index f70669c..9935a80 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -1437,6 +1437,8 @@ void QFileDialog::setIconProvider(QFileIconProvider *provider)
{
Q_D(QFileDialog);
d->model->setIconProvider(provider);
+ //It forces the refresh of all entries in the side bar, then we can get new icons
+ d->qFileDialogUi->sidebar->setUrls(d->qFileDialogUi->sidebar->urls());
}
/*!
diff --git a/src/gui/dialogs/qfilesystemmodel_p.h b/src/gui/dialogs/qfilesystemmodel_p.h
index 77c35a2..0a1265a 100644
--- a/src/gui/dialogs/qfilesystemmodel_p.h
+++ b/src/gui/dialogs/qfilesystemmodel_p.h
@@ -163,7 +163,11 @@ public:
info->icon = iconProvider->icon(QFileInfo(path));
QHash::const_iterator iterator;
for(iterator = children.constBegin() ; iterator != children.constEnd() ; ++iterator) {
- iterator.value()->updateIcon(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ //On windows the root (My computer) has no path so we don't want to add a / for nothing (e.g. /C:/)
+ if (!path.isEmpty())
+ iterator.value()->updateIcon(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ else
+ iterator.value()->updateIcon(iconProvider, iterator.value()->fileName);
}
}
@@ -172,7 +176,11 @@ public:
info->displayType = iconProvider->type(QFileInfo(path));
QHash::const_iterator iterator;
for(iterator = children.constBegin() ; iterator != children.constEnd() ; ++iterator) {
- iterator.value()->retranslateStrings(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ //On windows the root (My computer) has no path so we don't want to add a / for nothing (e.g. /C:/)
+ if (!path.isEmpty())
+ iterator.value()->retranslateStrings(iconProvider, path + QLatin1Char('/') + iterator.value()->fileName);
+ else
+ iterator.value()->retranslateStrings(iconProvider, iterator.value()->fileName);
}
}
diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp
index 826d278..59d57ce 100644
--- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -45,6 +45,7 @@
#include
#include "../../shared/util.h"
#include
+#include
#include
//TESTED_CLASS=
@@ -284,6 +285,33 @@ void tst_QFileSystemModel::readOnly()
QVERIFY(model->flags(model->index(file.fileName())) & Qt::ItemIsEditable);
}
+class CustomFileIconProvider : public QFileIconProvider
+{
+public:
+ CustomFileIconProvider() : QFileIconProvider() {
+ mb = qApp->style()->standardIcon(QStyle::SP_MessageBoxCritical);
+ dvd = qApp->style()->standardIcon(QStyle::SP_DriveDVDIcon);
+ }
+
+ virtual QIcon icon(const QFileInfo &info) const
+ {
+ if (info.isDir())
+ return mb;
+
+ return QFileIconProvider::icon(info);
+ }
+ virtual QIcon icon(IconType type) const
+ {
+ if (type == QFileIconProvider::Folder)
+ return dvd;
+
+ return QFileIconProvider::icon(type);
+ }
+private:
+ QIcon mb;
+ QIcon dvd;
+};
+
void tst_QFileSystemModel::iconProvider()
{
QVERIFY(model->iconProvider());
@@ -292,6 +320,19 @@ void tst_QFileSystemModel::iconProvider()
QCOMPARE(model->iconProvider(), p);
model->setIconProvider(0);
delete p;
+
+ QFileSystemModel *myModel = new QFileSystemModel();
+ myModel->setRootPath(QDir::homePath());
+ //Let's wait to populate the model
+ QTest::qWait(250);
+ //We change the provider, icons must me updated
+ CustomFileIconProvider *custom = new CustomFileIconProvider();
+ myModel->setIconProvider(custom);
+
+ QPixmap mb = qApp->style()->standardIcon(QStyle::SP_MessageBoxCritical).pixmap(50, 50);
+ QCOMPARE(myModel->fileIcon(myModel->index(QDir::homePath())).pixmap(50, 50), mb);
+ delete myModel;
+ delete custom;
}
bool tst_QFileSystemModel::createFiles(const QString &test_path, const QStringList &initial_files, int existingFileCount, const QStringList &initial_dirs, const QString &dir)
--
cgit v0.12
From cc8f9a20198590d219fe38421d0629002e574c20 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen
Date: Wed, 15 Apr 2009 16:16:28 +0200
Subject: do not add UI_DIR to INCLUDEPATH if no FORMS are used
Reviewed-by: mariusSO
---
mkspecs/features/uic.prf | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf
index 0c7fb1b..d2985f9 100644
--- a/mkspecs/features/uic.prf
+++ b/mkspecs/features/uic.prf
@@ -34,10 +34,12 @@ isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_
INCREDIBUILD_XGE += uic
}
-ui_dir_short = $$UI_HEADERS_DIR
-win32:ui_dir_short ~= s,^.:,/,
-contains(ui_dir_short, ^[/\\\\].*):INCLUDEPATH += $$UI_HEADERS_DIR
-else:INCLUDEPATH += $$OUT_PWD/$$UI_HEADERS_DIR
+!isEmpty(FORMS)|!isEmpty(FORMS3) {
+ ui_dir_short = $$UI_HEADERS_DIR
+ win32:ui_dir_short ~= s,^.:,/,
+ contains(ui_dir_short, ^[/\\\\].*):INCLUDEPATH += $$UI_HEADERS_DIR
+ else:INCLUDEPATH += $$OUT_PWD/$$UI_HEADERS_DIR
+}
# Backwards compatibility: Make shadow builds with default UI_DIR work
# if the user did not add the source dir explicitly.
--
cgit v0.12
From 100914d12d6c846c9de0460cb986b8794cce8c14 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen
Date: Fri, 17 Apr 2009 12:32:53 +0200
Subject: mac: remove special handling of the editor frame now that stylesheets
work properly
---
tools/linguist/linguist/messageeditor.cpp | 7 -------
1 file changed, 7 deletions(-)
diff --git a/tools/linguist/linguist/messageeditor.cpp b/tools/linguist/linguist/messageeditor.cpp
index dc8b8e4..53cbbea 100644
--- a/tools/linguist/linguist/messageeditor.cpp
+++ b/tools/linguist/linguist/messageeditor.cpp
@@ -133,19 +133,12 @@ void MessageEditor::setupEditorPage()
QFrame *editorPage = new QFrame;
editorPage->setObjectName(QLatin1String("editorPage"));
- // Due to CSS being rather broken on the Mac style at the moment, only
- // use the border-image on non-Mac systems.
editorPage->setStyleSheet(QLatin1String(
-#ifndef Q_WS_MAC
"QFrame#editorPage { border-image: url(:/images/transbox.png) 12 16 16 12 repeat;"
" border-width: 12px 16px 16px 12px; }"
-#endif
"QFrame#editorPage { background-color: white; }"
"QLabel { font-weight: bold; }"
));
-#ifdef Q_WS_MAC
- editorPage->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
-#endif
editorPage->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
m_source = new FormWidget(tr("Source text"), false);
--
cgit v0.12
From b4fa49153129644fef00efd96f76355c5e1435f8 Mon Sep 17 00:00:00 2001
From: axis
Date: Mon, 20 Apr 2009 14:13:18 +0200
Subject: Fixed incorrect documentation.
---
src/gui/kernel/qwidget.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 31fed5e..071e1bd 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -2234,9 +2234,10 @@ WId QWidget::effectiveWinId() const
The style sheet contains a textual description of customizations to the
widget's style, as described in the \l{Qt Style Sheets} document.
- \note Qt style sheets are currently not supported for QMacStyle
- (the default style on Mac OS X). We plan to address this in some future
- release.
+ Since Qt 4.5, Qt style sheets fully supports Mac OS X.
+
+ \warning Qt style sheets are currently not supported for custom QStyle
+ subclasses. We plan to address this in some future release.
\sa setStyle(), QApplication::styleSheet, {Qt Style Sheets}
*/
--
cgit v0.12
From beb6912526766edd7e8a9f9876d82272f798dbc3 Mon Sep 17 00:00:00 2001
From: Joerg Bornemann
Date: Mon, 20 Apr 2009 14:22:56 +0200
Subject: don't create double backslash in qdoc3 command on Windows
Reviewed-by: janarve
---
doc/doc.pri | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/doc.pri b/doc/doc.pri
index 6b77f88..46df3cb 100644
--- a/doc/doc.pri
+++ b/doc/doc.pri
@@ -24,7 +24,7 @@ $$unixstyle {
QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && QT_BUILD_TREE=$$QT_BUILD_TREE QT_SOURCE_TREE=$$QT_SOURCE_TREE $$QT_BUILD_TREE/tools/qdoc3/$${QT_WINCONFIG}qdoc3 $$DOCS_GENERATION_DEFINES
} else {
QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && set QT_BUILD_TREE=$$QT_BUILD_TREE&& set QT_SOURCE_TREE=$$QT_SOURCE_TREE&& $$QT_BUILD_TREE/tools/qdoc3/$${QT_WINCONFIG}qdoc3.exe $$DOCS_GENERATION_DEFINES
- QDOC = $$replace(QDOC, "/", "\\\\")
+ QDOC = $$replace(QDOC, "/", "\\")
}
macx {
ADP_DOCS_QDOCCONF_FILE = qt-build-docs-with-xcode.qdocconf
--
cgit v0.12
From 031adeaf42ddaef8d01338f6c59ba97170be5d53 Mon Sep 17 00:00:00 2001
From: jasplin
Date: Mon, 20 Apr 2009 14:24:08 +0200
Subject: Fixed key sequence eating behavior for QShortcut and QAction.
A disabled QShortcut should eat its key sequence even for complex
sequences like "Ctrl-E 1". For example, a line edit with such a
shortcut should not display 1 after typing "Ctrl-E" and then "1".
The patch achieves this essentially by moving more of the
decision making (of whether to eat the key secuence) from
shortcutmap.cpp to qhortcut.cpp.
Moreover, an invisible QAction should not eat any of its key sequences
(primary nor alternates). In the example above, the line edit
would display 1 when typing this sequence for an invisible action.
The patch achieves this by temporarily unregistering all of the
action's shortcuts while the action is invisible.
Reviewed-by: mariusSO
Task-number: 251246
---
src/gui/kernel/qaction.cpp | 47 +++++++++++++++++++++++++---------
src/gui/kernel/qaction_p.h | 1 +
src/gui/kernel/qshortcut.cpp | 20 ++++++++-------
src/gui/kernel/qshortcutmap.cpp | 9 +++----
tests/auto/qaction/tst_qaction.cpp | 33 ++++++++++++++++++++++++
tests/auto/qshortcut/tst_qshortcut.cpp | 7 +++--
6 files changed, 86 insertions(+), 31 deletions(-)
diff --git a/src/gui/kernel/qaction.cpp b/src/gui/kernel/qaction.cpp
index abb17d7..4edc1ca 100644
--- a/src/gui/kernel/qaction.cpp
+++ b/src/gui/kernel/qaction.cpp
@@ -136,25 +136,27 @@ void QActionPrivate::redoGrab(QShortcutMap &map)
void QActionPrivate::redoGrabAlternate(QShortcutMap &map)
{
Q_Q(QAction);
- foreach (int id, alternateShortcutIds)
- if (id)
+ for (int i = 0; i < alternateShortcutIds.size(); ++i)
+ if (int id = alternateShortcutIds.at(i))
map.removeShortcut(id, q);
alternateShortcutIds.clear();
if (alternateShortcuts.isEmpty())
return;
- foreach (const QKeySequence& alternate, alternateShortcuts) {
+ for (int i = 0; i < alternateShortcuts.size(); ++i) {
+ const QKeySequence &alternate = alternateShortcuts.at(i);
if (!alternate.isEmpty())
alternateShortcutIds.append(map.addShortcut(q, alternate, shortcutContext));
else
alternateShortcutIds.append(0);
}
+
if (!enabled) {
- foreach (int id, alternateShortcutIds)
- map.setShortcutEnabled(false, id, q);
+ for (int i = 0; i < alternateShortcutIds.size(); ++i)
+ map.setShortcutEnabled(false, alternateShortcutIds.at(i), q);
}
if (!autorepeat) {
- foreach (int id, alternateShortcutIds)
- map.setShortcutAutoRepeat(false, id, q);
+ for (int i = 0; i < alternateShortcutIds.size(); ++i)
+ map.setShortcutAutoRepeat(false, alternateShortcutIds.at(i), q);
}
}
@@ -163,10 +165,26 @@ void QActionPrivate::setShortcutEnabled(bool enable, QShortcutMap &map)
Q_Q(QAction);
if (shortcutId)
map.setShortcutEnabled(enable, shortcutId, q);
- foreach (int id, alternateShortcutIds)
- if (id)
+ for (int i = 0; i < alternateShortcutIds.size(); ++i)
+ if (int id = alternateShortcutIds.at(i))
map.setShortcutEnabled(enable, id, q);
}
+
+void QActionPrivate::removeAll(QShortcutMap &map)
+{
+ Q_Q(QAction);
+ if (shortcutId) {
+ map.removeShortcut(shortcutId, q);
+ shortcutId = 0;
+ }
+
+ for (int i = 0; i < alternateShortcutIds.size(); ++i)
+ if (int id = alternateShortcutIds.at(i))
+ map.removeShortcut(id, q);
+
+ alternateShortcutIds.clear();
+}
+
#endif // QT_NO_SHORTCUT
@@ -615,8 +633,8 @@ QAction::~QAction()
#ifndef QT_NO_SHORTCUT
if (d->shortcutId && qApp) {
qApp->d_func()->shortcutMap.removeShortcut(d->shortcutId, this);
- foreach (int id, d->alternateShortcutIds)
- qApp->d_func()->shortcutMap.removeShortcut(id, this);
+ for (int i = 0; i < d->alternateShortcutIds.size(); ++i)
+ qApp->d_func()->shortcutMap.removeShortcut(d->alternateShortcutIds.at(i), this);
}
#endif
}
@@ -1049,7 +1067,12 @@ void QAction::setVisible(bool b)
d->visible = b;
d->enabled = b && !d->forceDisabled && (!d->group || d->group->isEnabled()) ;
#ifndef QT_NO_SHORTCUT
- d->setShortcutEnabled(d->enabled, qApp->d_func()->shortcutMap);
+ if (b) {
+ d->redoGrab(qApp->d_func()->shortcutMap);
+ d->redoGrabAlternate(qApp->d_func()->shortcutMap);
+ } else {
+ d->removeAll(qApp->d_func()->shortcutMap);
+ }
#endif
d->sendDataChanged();
}
diff --git a/src/gui/kernel/qaction_p.h b/src/gui/kernel/qaction_p.h
index 0617ef5..a5b3731 100644
--- a/src/gui/kernel/qaction_p.h
+++ b/src/gui/kernel/qaction_p.h
@@ -111,6 +111,7 @@ public:
void redoGrab(QShortcutMap &map);
void redoGrabAlternate(QShortcutMap &map);
void setShortcutEnabled(bool enable, QShortcutMap &map);
+ void removeAll(QShortcutMap &map);
static QShortcutMap *globalMap;
#endif // QT_NO_SHORTCUT
diff --git a/src/gui/kernel/qshortcut.cpp b/src/gui/kernel/qshortcut.cpp
index 50b6e59..f3c93c6 100644
--- a/src/gui/kernel/qshortcut.cpp
+++ b/src/gui/kernel/qshortcut.cpp
@@ -385,19 +385,21 @@ bool QShortcut::event(QEvent *e)
{
Q_D(QShortcut);
bool handled = false;
- if (d->sc_enabled && e->type() == QEvent::Shortcut) {
+ if (e->type() == QEvent::Shortcut) {
QShortcutEvent *se = static_cast(e);
if (se->shortcutId() == d->sc_id && se->key() == d->sc_sequence){
+ if (d->sc_enabled) {
#ifndef QT_NO_WHATSTHIS
- if (QWhatsThis::inWhatsThisMode()) {
- QWhatsThis::showText(QCursor::pos(), d->sc_whatsthis);
- handled = true;
- } else
+ if (QWhatsThis::inWhatsThisMode()) {
+ QWhatsThis::showText(QCursor::pos(), d->sc_whatsthis);
+ handled = true;
+ } else
#endif
- if (se->isAmbiguous())
- emit activatedAmbiguously();
- else
- emit activated();
+ if (se->isAmbiguous())
+ emit activatedAmbiguously();
+ else
+ emit activated();
+ }
handled = true;
}
}
diff --git a/src/gui/kernel/qshortcutmap.cpp b/src/gui/kernel/qshortcutmap.cpp
index ed9654b..9766a69 100644
--- a/src/gui/kernel/qshortcutmap.cpp
+++ b/src/gui/kernel/qshortcutmap.cpp
@@ -370,9 +370,8 @@ bool QShortcutMap::tryShortcutEvent(QObject *o, QKeyEvent *e)
default:
break;
}
- // If nextState is QKeySequence::ExactMatch && identicals.count == 0
- // we've only found disabled shortcuts
- return identicalMatches > 0 || result == QKeySequence::PartialMatch;
+
+ return true;
}
/*! \internal
@@ -494,9 +493,7 @@ QKeySequence::SequenceMatch QShortcutMap::find(QKeyEvent *e)
// We don't need partials, if we have identicals
if (d->identicals.size())
break;
- // We only care about enabled partials, so we don't consume
- // key events when all partials are disabled!
- partialFound |= (*it).enabled;
+ partialFound = true;
}
}
++it;
diff --git a/tests/auto/qaction/tst_qaction.cpp b/tests/auto/qaction/tst_qaction.cpp
index 34f2dfd..8e4ae86 100644
--- a/tests/auto/qaction/tst_qaction.cpp
+++ b/tests/auto/qaction/tst_qaction.cpp
@@ -46,6 +46,7 @@
#include
#include
#include
+#include
//TESTED_CLASS=
//TESTED_FILES=
@@ -74,6 +75,7 @@ private slots:
void setStandardKeys();
void alternateShortcuts();
void enabledVisibleInteraction();
+ void invisibleActionWithComplexShortcut();
void task200823_tooltip();
private:
@@ -322,5 +324,36 @@ void tst_QAction::task200823_tooltip()
QCOMPARE(action->toolTip(), ref);
}
+void tst_QAction::invisibleActionWithComplexShortcut()
+{
+ QAction action(0);
+ action.setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E, Qt::Key_1));
+
+ QLineEdit edit;
+ edit.addAction(&action);
+ edit.show();
+ QTest::qWait(100);
+
+ QSignalSpy spy(&action, SIGNAL(triggered()));
+
+ action.setVisible(true);
+ QTest::keyPress(&edit, Qt::Key_E, Qt::ControlModifier);
+ QTest::keyRelease(&edit, Qt::Key_E, Qt::ControlModifier);
+ QTest::keyPress(&edit, Qt::Key_1, Qt::NoModifier);
+ QTest::keyRelease(&edit, Qt::Key_1, Qt::NoModifier);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(edit.text(), QLatin1String(""));
+
+ edit.clear();
+ spy.clear();
+ action.setVisible(false);
+ QTest::keyPress(&edit, Qt::Key_E, Qt::ControlModifier);
+ QTest::keyRelease(&edit, Qt::Key_E, Qt::ControlModifier);
+ QTest::keyPress(&edit, Qt::Key_1, Qt::NoModifier);
+ QTest::keyRelease(&edit, Qt::Key_1, Qt::NoModifier);
+ QCOMPARE(spy.count(), 0);
+ QCOMPARE(edit.text(), QLatin1String("1"));
+}
+
QTEST_MAIN(tst_QAction)
#include "tst_qaction.moc"
diff --git a/tests/auto/qshortcut/tst_qshortcut.cpp b/tests/auto/qshortcut/tst_qshortcut.cpp
index 69ebf74..cd80204 100644
--- a/tests/auto/qshortcut/tst_qshortcut.cpp
+++ b/tests/auto/qshortcut/tst_qshortcut.cpp
@@ -987,17 +987,16 @@ void tst_QShortcut::keypressConsumption()
cut1->setEnabled(false);
cut2->setEnabled(false);
- // Make sure keypresses is passed on, since all multiple keysequences
- // with Ctrl+I are disabled
+ edit->clear();
sendKeyEvents(edit, Qt::CTRL + Qt::Key_I, 0); // Send key to edit
QCOMPARE( currentResult, NoResult );
QCOMPARE( ambigResult, NoResult );
- QVERIFY(edit->toPlainText().endsWith(""));
+ QVERIFY(edit->toPlainText().isEmpty());
sendKeyEvents(edit, Qt::Key_A, 'a'); // Send key to edit
QCOMPARE( currentResult, NoResult );
QCOMPARE( ambigResult, NoResult );
- QVERIFY(edit->toPlainText().endsWith("a"));
+ QVERIFY(edit->toPlainText().isEmpty());
clearAllShortcuts();
}
--
cgit v0.12
From 0b14582aa47e1c255e1bbd68ef5ced2e69ec31a8 Mon Sep 17 00:00:00 2001
From: Prasanth Ullattil
Date: Mon, 20 Apr 2009 14:45:07 +0200
Subject: Unable to build ActiveQt with Opensource edition.
Updated the project files and headers necessary for enabling this.
Reviewed-by: Thiago Macieira
Reviewed-by: Jens Bache-Wiig
---
examples/examples.pro | 2 +-
src/activeqt/container/container.pro | 40 ++++++++++++++++--------------------
src/activeqt/control/control.pro | 30 ++++++++++++---------------
src/corelib/global/qglobal.h | 4 ++--
src/src.pro | 2 +-
tools/activeqt/activeqt.pro | 11 ++++------
tools/tools.pro | 2 +-
7 files changed, 40 insertions(+), 51 deletions(-)
diff --git a/examples/examples.pro b/examples/examples.pro
index 2c4fc81..41501a0 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -33,7 +33,7 @@ embedded:SUBDIRS += qws
}
contains(QT_CONFIG, opengl): SUBDIRS += opengl
contains(QT_CONFIG, dbus): SUBDIRS += dbus
-win32:!contains(QT_EDITION, OpenSource|Console):SUBDIRS += activeqt
+win32: SUBDIRS += activeqt
contains(QT_CONFIG, xmlpatterns): SUBDIRS += xmlpatterns
contains(DEFINES, QT_NO_CURSOR): SUBDIRS -= mainwindows
diff --git a/src/activeqt/container/container.pro b/src/activeqt/container/container.pro
index ceedacf..d654f92 100644
--- a/src/activeqt/container/container.pro
+++ b/src/activeqt/container/container.pro
@@ -21,25 +21,21 @@ LIBS += -lole32 -loleaut32
!wince*:LIBS += -luser32 -lgdi32 -ladvapi32
win32-g++:LIBS += -luuid
-contains(QT_EDITION, OpenSource|Console) {
- message( "You are not licensed to use ActiveQt." )
-} else {
- HEADERS = ../control/qaxaggregated.h \
- qaxbase.h \
- qaxwidget.h \
- qaxobject.h \
- qaxscript.h \
- qaxselect.h \
- ../shared/qaxtypes.h
-
- SOURCES = qaxbase.cpp \
- qaxdump.cpp \
- qaxwidget.cpp \
- qaxobject.cpp \
- qaxscript.cpp \
- qaxscriptwrapper.cpp \
- qaxselect.cpp \
- ../shared/qaxtypes.cpp
-
- FORMS = qaxselect.ui
-}
+HEADERS = ../control/qaxaggregated.h \
+ qaxbase.h \
+ qaxwidget.h \
+ qaxobject.h \
+ qaxscript.h \
+ qaxselect.h \
+ ../shared/qaxtypes.h
+
+SOURCES = qaxbase.cpp \
+ qaxdump.cpp \
+ qaxwidget.cpp \
+ qaxobject.cpp \
+ qaxscript.cpp \
+ qaxscriptwrapper.cpp \
+ qaxselect.cpp \
+ ../shared/qaxtypes.cpp
+
+FORMS = qaxselect.ui
diff --git a/src/activeqt/control/control.pro b/src/activeqt/control/control.pro
index 65b0251..bf3647e 100644
--- a/src/activeqt/control/control.pro
+++ b/src/activeqt/control/control.pro
@@ -24,20 +24,16 @@ win32-borland:DEFINES += QT_NEEDS_QMAIN
LIBS += -luser32 -lole32 -loleaut32 -lgdi32
win32-g++:LIBS += -luuid
-contains(QT_EDITION, OpenSource|Console) {
- message( "You are not licensed to use ActiveQt." )
-} else {
- HEADERS = qaxaggregated.h \
- qaxbindable.h \
- qaxfactory.h \
- ../shared/qaxtypes.h
-
- SOURCES = qaxserver.cpp \
- qaxserverbase.cpp \
- qaxbindable.cpp \
- qaxfactory.cpp \
- qaxservermain.cpp \
- qaxserverdll.cpp \
- qaxmain.cpp \
- ../shared/qaxtypes.cpp
-}
+HEADERS = qaxaggregated.h \
+ qaxbindable.h \
+ qaxfactory.h \
+ ../shared/qaxtypes.h
+
+SOURCES = qaxserver.cpp \
+ qaxserverbase.cpp \
+ qaxbindable.cpp \
+ qaxfactory.cpp \
+ qaxservermain.cpp \
+ qaxserverdll.cpp \
+ qaxmain.cpp \
+ ../shared/qaxtypes.cpp
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 81af295..d0855fe 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -2265,9 +2265,9 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf();
| QT_MODULE_GRAPHICSVIEW \
| QT_MODULE_HELP \
| QT_MODULE_TEST \
- | QT_MODULE_DBUS)
-#define QT_EDITION_DESKTOP (QT_EDITION_OPENSOURCE \
+ | QT_MODULE_DBUS \
| QT_MODULE_ACTIVEQT)
+#define QT_EDITION_DESKTOP (QT_EDITION_OPENSOURCE)
#define QT_EDITION_UNIVERSAL QT_EDITION_DESKTOP
#define QT_EDITION_ACADEMIC QT_EDITION_DESKTOP
#define QT_EDITION_EDUCATIONAL QT_EDITION_DESKTOP
diff --git a/src/src.pro b/src/src.pro
index fb28882..f40c6ad 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -13,7 +13,7 @@ wince*:{
contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3
}
}
-win32:!contains(QT_EDITION, OpenSource|Console): {
+win32:{
SRC_SUBDIRS += src_activeqt
!wince*: SRC_SUBDIRS += src_tools_idc
}
diff --git a/tools/activeqt/activeqt.pro b/tools/activeqt/activeqt.pro
index a0e7de3..c50010c 100644
--- a/tools/activeqt/activeqt.pro
+++ b/tools/activeqt/activeqt.pro
@@ -2,10 +2,7 @@ TEMPLATE = subdirs
CONFIG += ordered
-contains(QT_EDITION, OpenSource|Console) {
- message("You are not licensed to use ActiveQt.")
-} else {
- SUBDIRS = dumpdoc \
- dumpcpp \
- testcon
-}
+SUBDIRS = dumpdoc \
+ dumpcpp \
+ testcon
+
diff --git a/tools/tools.pro b/tools/tools.pro
index ffc5d63..3325a57 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -15,7 +15,7 @@ no-png {
SUBDIRS += linguist
wince*: SUBDIRS = qtestlib designer
unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig
- win32:!wince*:!contains(QT_EDITION, OpenSource|Console):SUBDIRS += activeqt
+ win32:!wince*:SUBDIRS += activeqt
}
mac {
--
cgit v0.12
From 68d6a91fd2db9ec95d9f46e7af10eff7da89f8f0 Mon Sep 17 00:00:00 2001
From: Kavindra Devi Palaraja
Date: Mon, 20 Apr 2009 15:47:41 +0200
Subject: Doc - Mentioned that ActiveQt is now part of the Open source versions
of Qt.
Reviewed-by: Prasanth Ullattil
---
doc/src/activeqt.qdoc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/doc/src/activeqt.qdoc b/doc/src/activeqt.qdoc
index ea13e59..3919823 100644
--- a/doc/src/activeqt.qdoc
+++ b/doc/src/activeqt.qdoc
@@ -73,7 +73,7 @@
To build the static libraries, change into the \c activeqt directory
(usually \c QTDIR/src/activeqt), and run \c qmake and your make
tool in both the \c container and the \c control subdirectory.
- The libraries \c qaxcontainer.lib and \c qaxserver.lib will be linked
+ The libraries \c qaxcontainer.lib and \c qaxserver.lib will be linked
into \c QTDIR/lib.
If you are using a shared configuration of Qt enter the \c plugin
@@ -81,8 +81,8 @@
plugin that integrates the QAxContainer module into \l{Qt
Designer}.
- The ActiveQt modules are part of the \l{Qt Full Framework Edition}. They
- are \e not part of the \l{Open Source Versions of Qt}.
+ The ActiveQt modules are part of the \l{Qt Full Framework Edition} and
+ the \l{Open Source Versions}.
\sa {QAxContainer Module}, {QAxServer Module}
*/
--
cgit v0.12
From d7072b5577e3c07e984885cf05d5f9b217c6f473 Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig
Date: Mon, 20 Apr 2009 17:03:14 +0200
Subject: Fix tabbar issues with Oxygen style
Oxygen style was looking a bit broken when using 4.5 features such as
close buttons and icons. This was because it re-implements the
tabbartablabel primitive we needed to ensure spacing for the buttons.
We had to modify the way we draw tabs slightly to make it more backward
compatible so that oxygen get the same region as before and we ensure
space for it in the CE_TabBarTab case instead. Note that the drawback
to this approach is that the focus rect needs to be moved out of the
tablabel and into the CE_TabBarTab case so it covers the entire tab
which can potentially cause problems if people depend on the label to
draw the focus rect. However the new case is also more consistent with
how buttons draw their focus.
Task-number: 251635
Reviewed-by: nrc
---
src/gui/styles/qcommonstyle.cpp | 73 +++++++++++++++++++++++------------------
1 file changed, 41 insertions(+), 32 deletions(-)
diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index 3cae08a..819965b 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -1779,7 +1779,46 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
case CE_TabBarTab:
if (const QStyleOptionTab *tab = qstyleoption_cast(opt)) {
drawControl(CE_TabBarTabShape, tab, p, widget);
- drawControl(CE_TabBarTabLabel, tab, p, widget);
+
+ QStyleOptionTabV3 tabV3(*tab);
+ QRect labelRect = tabV3.rect;
+ QSize &left= tabV3.leftButtonSize;
+ QSize &right = tabV3.rightButtonSize;
+ const int spacing = 6 + 2;
+
+ // left widget
+ if (!left.isEmpty()) {
+ if (tabV3.shape == QTabBar::RoundedEast || tabV3.shape == QTabBar::TriangularEast )
+ labelRect.setTop(labelRect.top() + spacing + left.height());
+ else if (tabV3.shape == QTabBar::RoundedWest|| tabV3.shape == QTabBar::TriangularWest)
+ labelRect.setBottom(labelRect.bottom() - spacing - left.height());
+ else
+ labelRect.setLeft(labelRect.left() + spacing + left.width());
+ }
+
+ // right widget
+ if (!right.isEmpty()) {
+ if (tabV3.shape == QTabBar::RoundedEast || tabV3.shape == QTabBar::TriangularEast )
+ labelRect.setBottom(labelRect.bottom() - spacing - right.height());
+ else if (tabV3.shape == QTabBar::RoundedWest|| tabV3.shape == QTabBar::TriangularWest)
+ labelRect.setTop(labelRect.top() + spacing + right.height());
+ else
+ labelRect.setRight(labelRect.right() - spacing - right.width());
+ }
+
+ tabV3.rect = visualRect(opt->direction, opt->rect, labelRect);
+ drawControl(CE_TabBarTabLabel, &tabV3, p, widget);
+ if (tabV3.state & State_HasFocus) {
+ const int OFFSET = 1 + pixelMetric(PM_DefaultFrameWidth);
+ int x1, x2;
+ x1 = tab->rect.left();
+ x2 = tab->rect.right() - 1;
+ QStyleOptionFocusRect fropt;
+ fropt.QStyleOption::operator=(*tab);
+ fropt.rect.setRect(x1 + 1 + OFFSET, tab->rect.y() + OFFSET,
+ x2 - x1 - 2*OFFSET, tab->rect.height() - 2*OFFSET);
+ drawPrimitive(PE_FrameFocusRect, &fropt, p, widget);
+ }
}
break;
case CE_TabBarTabShape:
@@ -1981,12 +2020,8 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
(tabV2.state & State_Enabled) ? QIcon::Normal
: QIcon::Disabled);
- int offset = 4;
+ int offset = 6;
int left = opt->rect.left();
- if (tabV2.leftButtonSize.isEmpty())
- offset += 2;
- else
- left += tabV2.leftButtonSize.width() + (6 + 2) + 2;
QRect iconRect = QRect(left + offset, tr.center().y() - tabIcon.height() / 2,
tabIconSize.width(), tabIconSize.height());
if (!verticalTabs)
@@ -1997,20 +2032,6 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
drawItemText(p, tr, alignment, tab->palette, tab->state & State_Enabled, tab->text, QPalette::WindowText);
if (verticalTabs)
p->restore();
-
- if (tabV2.state & State_HasFocus) {
- const int OFFSET = 1 + pixelMetric(PM_DefaultFrameWidth);
-
- int x1, x2;
- x1 = tabV2.rect.left();
- x2 = tabV2.rect.right() - 1;
-
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*tab);
- fropt.rect.setRect(x1 + 1 + OFFSET, tabV2.rect.y() + OFFSET,
- x2 - x1 - 2*OFFSET, tabV2.rect.height() - 2*OFFSET);
- drawPrimitive(PE_FrameFocusRect, &fropt, p, widget);
- }
}
break;
#endif // QT_NO_TABBAR
@@ -2858,12 +2879,6 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
tr.setRight(tr.right() - horizontalShift);
}
- // left widget
- if (!tabV2.leftButtonSize.isEmpty()) {
- tr.setLeft(tr.left() + 6 + 2 +
- (verticalTabs ? tabV2.leftButtonSize.height() : tabV2.leftButtonSize.width()));
- }
-
// icon
if (!tabV2.icon.isNull()) {
QSize iconSize = tabV2.iconSize;
@@ -2885,12 +2900,6 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
tr.setLeft(tr.left() + tabIconSize.width() + offset + 2);
}
- // right widget
- if (!tabV2.rightButtonSize.isEmpty()) {
- tr.setRight(tr.right() - 6 - 2 -
- (verticalTabs ? tabV2.rightButtonSize.height() : tabV2.rightButtonSize.width()));
- }
-
if (!verticalTabs)
tr = visualRect(opt->direction, opt->rect, tr);
r = tr;
--
cgit v0.12
From 07703ade86edcd6565c373f63e34306209d1a90a Mon Sep 17 00:00:00 2001
From: Lars Knoll
Date: Wed, 9 Apr 2008 13:04:02 +0200
Subject: don't detach in qHash()
Signed-off-by: Thiago Macieira
---
src/corelib/tools/qhash.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index 540f43d..21d98b5 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -91,7 +91,7 @@ static uint hash(const QChar *p, int n)
uint qHash(const QByteArray &key)
{
- return hash(reinterpret_cast(key.data()), key.size());
+ return hash(reinterpret_cast(key.constData()), key.size());
}
uint qHash(const QString &key)
@@ -107,7 +107,7 @@ uint qHash(const QStringRef &key)
uint qHash(const QBitArray &bitArray)
{
int m = bitArray.d.size() - 1;
- uint result = hash(reinterpret_cast(bitArray.d.data()), qMax(0, m));
+ uint result = hash(reinterpret_cast(bitArray.d.constData()), qMax(0, m));
// deal with the last 0 to 7 bits manually, because we can't trust that
// the padding is initialized to 0 in bitArray.d
--
cgit v0.12