src/gui/image/qpixmapdata.cpp
changeset 33 3e2da88830cd
parent 18 2f34d5167611
--- a/src/gui/image/qpixmapdata.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/src/gui/image/qpixmapdata.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -124,6 +124,13 @@
     return image;
 }
 
+void QPixmapData::fromImageReader(QImageReader *imageReader,
+                                  Qt::ImageConversionFlags flags)
+{
+    const QImage image = imageReader->read();
+    fromImage(image, flags);
+}
+
 bool QPixmapData::fromFile(const QString &fileName, const char *format,
                            Qt::ImageConversionFlags flags)
 {
@@ -146,7 +153,7 @@
 
 void QPixmapData::copy(const QPixmapData *data, const QRect &rect)
 {
-    fromImage(data->toImage().copy(rect), Qt::AutoColor);
+    fromImage(data->toImage(rect), Qt::NoOpaqueDetection);
 }
 
 bool QPixmapData::scroll(int dx, int dy, const QRect &rect)
@@ -255,6 +262,14 @@
     ser_no = serNo;
 }
 
+QImage QPixmapData::toImage(const QRect &rect) const
+{
+    if (rect.contains(QRect(0, 0, w, h)))
+        return toImage();
+    else
+        return toImage().copy(rect);
+}
+
 QImage* QPixmapData::buffer()
 {
     return 0;