summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Anttila <janne.anttila@digia.com>2009-09-25 12:36:25 (GMT)
committerJanne Anttila <janne.anttila@digia.com>2009-09-25 12:36:25 (GMT)
commit22cfaa3aa04f84e65cd5867d432c6f4b4ad028f6 (patch)
tree7d2821b3c6bc2e6f2bf1902dd81560d6769bfedf
parent789232278180296b04b7178a95a2e0394eb6736c (diff)
parentc0cb9c68f598197c1d52c4b9d3445c6b5c49ed8d (diff)
downloadQt-22cfaa3aa04f84e65cd5867d432c6f4b4ad028f6.zip
Qt-22cfaa3aa04f84e65cd5867d432c6f4b4ad028f6.tar.gz
Qt-22cfaa3aa04f84e65cd5867d432c6f4b4ad028f6.tar.bz2
Merge branch '4.6' of git@scm.dev.troll.no:qt/qt into 4.6
-rw-r--r--demos/browser/browser.pro2
-rw-r--r--src/opengl/qpixmapdata_gl.cpp26
2 files changed, 19 insertions, 9 deletions
diff --git a/demos/browser/browser.pro b/demos/browser/browser.pro
index afc25e3..407030f 100644
--- a/demos/browser/browser.pro
+++ b/demos/browser/browser.pro
@@ -6,6 +6,8 @@ CONFIG += qt warn_on
contains(QT_BUILD_PARTS, tools):!symbian:!embedded: CONFIG += uitools
else: DEFINES += QT_NO_UITOOLS
+release:DEFINES+=QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
+
FORMS += \
addbookmarkdialog.ui \
bookmarks.ui \
diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp
index 8cb6c8d..2331c6d 100644
--- a/src/opengl/qpixmapdata_gl.cpp
+++ b/src/opengl/qpixmapdata_gl.cpp
@@ -384,8 +384,20 @@ void QGLPixmapData::fill(const QColor &color)
m_hasFillColor = true;
m_fillColor = color;
} else {
- QImage image = fillImage(color);
- fromImage(image, 0);
+
+ if (m_source.isNull()) {
+ m_fillColor = color;
+ m_hasFillColor = true;
+
+ } else if (m_source.depth() == 32) {
+ m_source.fill(PREMUL(color.rgba()));
+
+ } else if (m_source.depth() == 1) {
+ if (color == Qt::color1)
+ m_source.fill(1);
+ else
+ m_source.fill(0);
+ }
}
}
@@ -399,15 +411,11 @@ QImage QGLPixmapData::fillImage(const QColor &color) const
QImage img;
if (pixelType() == BitmapType) {
img = QImage(w, h, QImage::Format_MonoLSB);
- img.setNumColors(2);
- img.setColor(0, QColor(Qt::color0).rgba());
- img.setColor(1, QColor(Qt::color1).rgba());
- int gray = qGray(color.rgba());
- if (qAbs(255 - gray) < gray)
- img.fill(0);
- else
+ if (color == Qt::color1)
img.fill(1);
+ else
+ img.fill(0);
} else {
img = QImage(w, h,
m_hasAlpha