From 29d4342b2f87183e4bd4c2611aea157834c0f492 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Thu, 11 Feb 2010 11:45:01 +0100 Subject: Fixed cleaning of both undo- and redo-stacks. --- src/gui/text/qtextdocument_p.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp index e2fdf0e..969d5b4 100644 --- a/src/gui/text/qtextdocument_p.cpp +++ b/src/gui/text/qtextdocument_p.cpp @@ -259,8 +259,7 @@ void QTextDocumentPrivate::clear() objects.clear(); title.clear(); - undoState = 0; - clearUndoRedoStacks(QTextDocument::RedoStack); + clearUndoRedoStacks(QTextDocument::UndoAndRedoStacks); text = QString(); unreachableCharacterCount = 0; modifiedState = 0; @@ -1077,7 +1076,7 @@ void QTextDocumentPrivate::clearUndoRedoStacks(QTextDocument::Stacks stacksToCle if (emitSignals) emitRedoAvailable(false); } else if (stacksToClear == QTextDocument::UndoAndRedoStacks - && (undoCommandsAvailable || redoCommandsAvailable)) { + && !undoStack.isEmpty()) { for (int i = 0; i < undoStack.size(); ++i) { QTextUndoCommand c = undoStack[i]; if (c.command & QTextUndoCommand::Custom) -- cgit v0.12 From 0924b406e5749c52987cf7d6dcab3ce0b9ae5a89 Mon Sep 17 00:00:00 2001 From: Kim Motoyoshi Kalland Date: Thu, 11 Feb 2010 15:30:30 +0100 Subject: Changed a couple of GL defines from decimal to hex. Reviewed-by: Gunnar --- src/opengl/qglextensions_p.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/opengl/qglextensions_p.h b/src/opengl/qglextensions_p.h index f6613fd..4edd5f7 100644 --- a/src/opengl/qglextensions_p.h +++ b/src/opengl/qglextensions_p.h @@ -465,11 +465,11 @@ struct QGLExtensionFuncs #endif #ifndef GL_RGB16 -#define GL_RGB16 32852 +#define GL_RGB16 0x8054 #endif #ifndef GL_UNSIGNED_SHORT_5_6_5 -#define GL_UNSIGNED_SHORT_5_6_5 33635 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 #endif #ifndef GL_UNSIGNED_INT_8_8_8_8_REV -- cgit v0.12 From 6a8a8f851edbc9b93948bf88d8c792e1c5dfda35 Mon Sep 17 00:00:00 2001 From: Kim Motoyoshi Kalland Date: Thu, 11 Feb 2010 15:32:02 +0100 Subject: Turned off subpixel AA text on surface with alpha in GL2 engine. Subpixel antialiased text does not look good on translucent surfaces, so turn it off if the surface the text is rendered on has an alpha channel. This makes change eb84acd899aee992f5631ee0b9c0d992c8fbbd5a redundant. Task-number: QTBUG-7190 Reviewed-by: Gunnar --- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 31 +++++++++++++++++----- .../gl2paintengineex/qpaintengineex_opengl2_p.h | 1 + 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index b17e3a1..d2fb925 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1332,14 +1332,14 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem ? QFontEngineGlyphCache::Type(ti.fontEngine->glyphFormat) : d->glyphCacheType; - if (txtype > QTransform::TxTranslate) - glyphType = QFontEngineGlyphCache::Raster_A8; - if (glyphType == QFontEngineGlyphCache::Raster_RGBMask - && state()->composition_mode != QPainter::CompositionMode_Source - && state()->composition_mode != QPainter::CompositionMode_SourceOver) - { - drawCached = false; + if (glyphType == QFontEngineGlyphCache::Raster_RGBMask) { + if (d->deviceHasAlpha || txtype > QTransform::TxTranslate + || (state()->composition_mode != QPainter::CompositionMode_Source + && state()->composition_mode != QPainter::CompositionMode_SourceOver)) + { + glyphType = QFontEngineGlyphCache::Raster_A8; + } } if (drawCached) { @@ -1630,6 +1630,23 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev) d->dirtyStencilRegion = QRect(0, 0, d->width, d->height); d->stencilClean = true; + switch (pdev->devType()) { + case QInternal::Pixmap: + d->deviceHasAlpha = static_cast(pdev)->hasAlphaChannel(); + break; + case QInternal::FramebufferObject: + { + GLenum f = static_cast(pdev)->format().internalTextureFormat(); + d->deviceHasAlpha = (f != GL_RGB && f != GL_RGB5 && f != GL_RGB8); + } + break; + default: + // widget, pbuffer + d->deviceHasAlpha = d->ctx->d_func()->reqFormat.alpha(); + break; + } + + // Calling begin paint should make the correct context current. So, any // code which calls into GL or otherwise needs a current context *must* // go after beginPaint: diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index 35c88f4..e816e17 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -278,6 +278,7 @@ public: bool needsSync; bool multisamplingAlwaysEnabled; + bool deviceHasAlpha; GLfloat depthRange[2]; -- cgit v0.12 From 404a37854520ef8ab4defffa7dc6331bc776a660 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 12 Feb 2010 11:28:51 +0100 Subject: Compile fix for OSX. --- examples/declarative/plugins/plugins.pro | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/declarative/plugins/plugins.pro b/examples/declarative/plugins/plugins.pro index 4109eba..84ab8da 100644 --- a/examples/declarative/plugins/plugins.pro +++ b/examples/declarative/plugins/plugins.pro @@ -1,6 +1,7 @@ TEMPLATE = lib TARGET = qtimeexampleqmlplugin -CONFIG += qt plugin declarative +CONFIG += qt plugin +QT += declarative SOURCES += plugin.cpp -- cgit v0.12