Changeset 651 for trunk/src/gui/image


Ignore:
Timestamp:
Mar 8, 2010, 12:52:58 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.2 sources.

Location:
trunk
Files:
65 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/image/qbitmap.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qbitmap.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qbmphandler.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    145145{
    146146    int result = 0;
    147     while (!(mask & 1)) {
     147    while (mask && !(mask & 1)) {
    148148        result++;
    149149        mask >>= 1;
  • trunk/src/gui/image/qbmphandler_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qicon.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qicon.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qicon_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qiconengine.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qiconengine.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qiconengineplugin.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qiconengineplugin.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qiconloader.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qiconloader_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimage.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    39933993    newSize.scale(s, aspectMode);
    39943994    if (newSize == size())
    3995         return copy();
     3995        return *this;
    39963996
    39973997    QTransform wm = QTransform::fromScale((qreal)newSize.width() / width(), (qreal)newSize.height() / height());
  • trunk/src/gui/image/qimage.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimage_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimageiohandler.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimageiohandler.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimagepixmapcleanuphooks.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    6363}
    6464
    65 void QImagePixmapCleanupHooks::addPixmapModificationHook(_qt_pixmap_cleanup_hook_pm hook)
     65void QImagePixmapCleanupHooks::addPixmapDataModificationHook(_qt_pixmap_cleanup_hook_pmd hook)
    6666{
    6767    pixmapModificationHooks.append(hook);
    6868}
    6969
    70 void QImagePixmapCleanupHooks::addPixmapDestructionHook(_qt_pixmap_cleanup_hook_pm hook)
     70void QImagePixmapCleanupHooks::addPixmapDataDestructionHook(_qt_pixmap_cleanup_hook_pmd hook)
    7171{
    7272    pixmapDestructionHooks.append(hook);
     
    7979}
    8080
    81 void QImagePixmapCleanupHooks::removePixmapModificationHook(_qt_pixmap_cleanup_hook_pm hook)
     81void QImagePixmapCleanupHooks::removePixmapDataModificationHook(_qt_pixmap_cleanup_hook_pmd hook)
    8282{
    8383    pixmapModificationHooks.removeAll(hook);
    8484}
    8585
    86 void QImagePixmapCleanupHooks::removePixmapDestructionHook(_qt_pixmap_cleanup_hook_pm hook)
     86void QImagePixmapCleanupHooks::removePixmapDataDestructionHook(_qt_pixmap_cleanup_hook_pmd hook)
    8787{
    8888    pixmapDestructionHooks.removeAll(hook);
     
    9494}
    9595
    96 void QImagePixmapCleanupHooks::executePixmapModificationHooks(QPixmap* pm)
     96void QImagePixmapCleanupHooks::executePixmapDataModificationHooks(QPixmapData* pmd)
    9797{
    9898    QImagePixmapCleanupHooks *h = qt_image_and_pixmap_cleanup_hooks();
    9999    for (int i = 0; i < h->pixmapModificationHooks.count(); ++i)
    100         h->pixmapModificationHooks[i](pm);
     100        h->pixmapModificationHooks[i](pmd);
    101101
    102102    if (qt_pixmap_cleanup_hook_64)
    103         qt_pixmap_cleanup_hook_64(pm->cacheKey());
     103        qt_pixmap_cleanup_hook_64(pmd->cacheKey());
    104104}
    105105
    106 void QImagePixmapCleanupHooks::executePixmapDestructionHooks(QPixmap* pm)
     106void QImagePixmapCleanupHooks::executePixmapDataDestructionHooks(QPixmapData* pmd)
    107107{
    108108    QImagePixmapCleanupHooks *h = qt_image_and_pixmap_cleanup_hooks();
    109109    for (int i = 0; i < h->pixmapDestructionHooks.count(); ++i)
    110         h->pixmapDestructionHooks[i](pm);
     110        h->pixmapDestructionHooks[i](pmd);
    111111
    112112    if (qt_pixmap_cleanup_hook_64)
    113         qt_pixmap_cleanup_hook_64(pm->cacheKey());
     113        qt_pixmap_cleanup_hook_64(pmd->cacheKey());
    114114}
    115115
  • trunk/src/gui/image/qimagepixmapcleanuphooks_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    5959
    6060typedef void (*_qt_image_cleanup_hook_64)(qint64);
    61 typedef void (*_qt_pixmap_cleanup_hook_pm)(QPixmap*);
     61typedef void (*_qt_pixmap_cleanup_hook_pmd)(QPixmapData*);
     62
    6263
    6364class QImagePixmapCleanupHooks;
     
    7273    static void enableCleanupHooks(QPixmapData *pixmapData);
    7374
    74     // Gets called when a pixmap is about to be modified:
    75     void addPixmapModificationHook(_qt_pixmap_cleanup_hook_pm);
     75    // Gets called when a pixmap data is about to be modified:
     76    void addPixmapDataModificationHook(_qt_pixmap_cleanup_hook_pmd);
    7677
    77     // Gets called when a pixmap is about to be destroyed:
    78     void addPixmapDestructionHook(_qt_pixmap_cleanup_hook_pm);
     78    // Gets called when a pixmap data is about to be destroyed:
     79    void addPixmapDataDestructionHook(_qt_pixmap_cleanup_hook_pmd);
    7980
    8081    // Gets called when an image is about to be modified or destroyed:
    8182    void addImageHook(_qt_image_cleanup_hook_64);
    8283
    83     void removePixmapModificationHook(_qt_pixmap_cleanup_hook_pm);
    84     void removePixmapDestructionHook(_qt_pixmap_cleanup_hook_pm);
     84    void removePixmapDataModificationHook(_qt_pixmap_cleanup_hook_pmd);
     85    void removePixmapDataDestructionHook(_qt_pixmap_cleanup_hook_pmd);
    8586    void removeImageHook(_qt_image_cleanup_hook_64);
    8687
    87     static void executePixmapModificationHooks(QPixmap*);
    88     static void executePixmapDestructionHooks(QPixmap*);
     88    static void executePixmapDataModificationHooks(QPixmapData*);
     89    static void executePixmapDataDestructionHooks(QPixmapData*);
    8990    static void executeImageHooks(qint64 key);
    9091
    9192private:
    9293    QList<_qt_image_cleanup_hook_64> imageHooks;
    93     QList<_qt_pixmap_cleanup_hook_pm> pixmapModificationHooks;
    94     QList<_qt_pixmap_cleanup_hook_pm> pixmapDestructionHooks;
     94    QList<_qt_pixmap_cleanup_hook_pmd> pixmapModificationHooks;
     95    QList<_qt_pixmap_cleanup_hook_pmd> pixmapDestructionHooks;
    9596};
    9697
  • trunk/src/gui/image/qimagereader.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimagereader.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimagewriter.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qimagewriter.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qmovie.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qmovie.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qnativeimage.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qnativeimage_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpaintengine_pic.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpaintengine_pic_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpicture.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpicture.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpicture_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpictureformatplugin.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpictureformatplugin.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    321321{
    322322    Q_ASSERT(!data || data->ref >= 1); // Catch if ref-counting changes again
    323     if (data && data->is_cached && data->ref == 1) // ref will be decrememnted after destructor returns
    324         QImagePixmapCleanupHooks::executePixmapDestructionHooks(this);
    325323}
    326324
     
    834832        return true;
    835833
    836     QPixmapData *tmp = QPixmapData::create(0, 0, QPixmapData::PixmapType);
    837     if (tmp->fromFile(fileName, format, flags)) {
    838         data = tmp;
     834    bool ok;
     835
     836    if (data) {
     837        ok = data->fromFile(fileName, format, flags);
     838    } else {
     839        QScopedPointer<QPixmapData> tmp(QPixmapData::create(0, 0, QPixmapData::PixmapType));
     840        ok = tmp->fromFile(fileName, format, flags);
     841        if (ok)
     842            data = tmp.take();
     843    }
     844
     845    if (ok)
    839846        QPixmapCache::insert(key, *this);
    840         return true;
    841     }
    842     delete tmp;
    843     return false;
     847
     848    return ok;
    844849}
    845850
     
    10191024        return 0;
    10201025
    1021     int classKey = data->classId();
    1022     if (classKey >= 1024)
    1023         classKey = -(classKey >> 10);
    1024     return ((((qint64) classKey) << 56)
    1025             | (((qint64) data->serialNumber()) << 32)
    1026             | ((qint64) (data->detach_no)));
     1026    Q_ASSERT(data);
     1027    return data->cacheKey();
    10271028}
    10281029
     
    19391940
    19401941    if (data->is_cached && data->ref == 1)
    1941         QImagePixmapCleanupHooks::executePixmapModificationHooks(this);
     1942        QImagePixmapCleanupHooks::executePixmapDataModificationHooks(data.data());
    19421943
    19431944#if defined(Q_WS_MAC)
  • trunk/src/gui/image/qpixmap.h

    r621 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_mac.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_mac_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_qws.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_raster.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_raster_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_s60.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_s60_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_win.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmap_x11.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    6969#include <private/qdrawhelper_p.h>
    7070#include <private/qimage_p.h>
     71#include <private/qimagepixmapcleanuphooks_p.h>
    7172
    7273#include <stdlib.h>
     
    12291230QX11PixmapData::~QX11PixmapData()
    12301231{
     1232    // Cleanup hooks have to be called before the handles are freed
     1233    if (is_cached) {
     1234        QImagePixmapCleanupHooks::executePixmapDataDestructionHooks(this);
     1235        is_cached = false;
     1236    }
     1237
    12311238    release();
    12321239}
     
    12371244    pengine = 0;
    12381245
    1239     if (!X11)
     1246    if (!X11) {
     1247#ifndef QT_NO_DEBUG
     1248        qWarning("~QX11PixmapData(): QPixmap objects must be destroyed before the QApplication"
     1249                 " object, otherwise the native pixmap object will be leaked.");
     1250#endif
    12401251        return;
     1252    }
    12411253
    12421254    if (x11_mask) {
  • trunk/src/gui/image/qpixmap_x11_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmapcache.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmapcache.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmapcache_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmapdata.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    4646#include <private/qgraphicssystem_p.h>
    4747#include <private/qapplication_p.h>
     48#include <private/qimagepixmapcleanuphooks_p.h>
    4849
    4950QT_BEGIN_NAMESPACE
     
    8182QPixmapData::~QPixmapData()
    8283{
     84    // Sometimes the pixmap cleanup hooks will be called from derrived classes, which will
     85    // then set is_cached to false. For example, on X11 QtOpenGL needs to delete the GLXPixmap
     86    // or EGL Pixmap Surface for a given pixmap _before_ the native X11 pixmap is deleted,
     87    // otherwise some drivers will leak the GL surface. In this case, QX11PixmapData will
     88    // call the cleanup hooks itself before deleting the native pixmap and set is_cached to
     89    // false.
     90    if (is_cached) {
     91        QImagePixmapCleanupHooks::executePixmapDataDestructionHooks(this);
     92        is_cached = false;
     93    }
    8394}
    8495
  • trunk/src/gui/image/qpixmapdata_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    118118    inline int depth() const { return d; }
    119119    inline bool isNull() const { return is_null; }
     120    inline qint64 cacheKey() const {
     121        int classKey = id;
     122        if (classKey >= 1024)
     123            classKey = -(classKey >> 10);
     124        return ((((qint64) classKey) << 56)
     125                | (((qint64) ser_no) << 32)
     126                | ((qint64) detach_no));
     127    }
    120128
    121129#if defined(Q_OS_SYMBIAN)
  • trunk/src/gui/image/qpixmapdatafactory.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmapdatafactory_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpixmapfilter.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    711711
    712712    Q_ASSERT(img.format() == QImage::Format_ARGB32_Premultiplied
    713              || img.format() == QImage::Format_RGB32);
     713             || img.format() == QImage::Format_RGB32
     714             || img.format() == QImage::Format_Indexed8);
    714715
    715716    // choose the alpha such that pixels at radius distance from a fully
     
    954955        destRect = dest.rect();
    955956    }
    956     if (image != dest) {
     957    if (&image != &dest) {
    957958        destRect.moveTo(QPoint(0, 0));
    958959    }
  • trunk/src/gui/image/qpixmapfilter_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpnghandler.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qpnghandler_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qppmhandler.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qppmhandler_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qxbmhandler.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qxbmhandler_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qxpmhandler.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/gui/image/qxpmhandler_p.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
Note: See TracChangeset for help on using the changeset viewer.