src/qt3support/itemviews/q3iconview.cpp
changeset 7 f7bc934e204c
parent 0 1918ee327afb
equal deleted inserted replaced
3:41300fa6a67c 7:f7bc934e204c
     1 /****************************************************************************
     1 /****************************************************************************
     2 **
     2 **
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
     4 ** All rights reserved.
     4 ** All rights reserved.
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
     6 **
     6 **
     7 ** This file is part of the Qt3Support module of the Qt Toolkit.
     7 ** This file is part of the Qt3Support module of the Qt Toolkit.
     8 **
     8 **
   130 #if !defined(Q_WS_X11)
   130 #if !defined(Q_WS_X11)
   131 static QPixmap *qiv_selection = 0;
   131 static QPixmap *qiv_selection = 0;
   132 #endif
   132 #endif
   133 static bool optimize_layout = false;
   133 static bool optimize_layout = false;
   134 
   134 
   135 static Q3CleanupHandler<QPixmap> qiv_cleanup_pixmap;
   135 
   136 
   136 static void qt_cleanup_iv_pixmaps();
       
   137 typedef QList<QPixmap *> IVPixmaps;
       
   138 Q_GLOBAL_STATIC_WITH_INITIALIZER(IVPixmaps, qiv_pixmaps, qAddPostRoutine(qt_cleanup_iv_pixmaps))
       
   139 
       
   140 static void qt_cleanup_iv_pixmaps()
       
   141 {
       
   142     qDeleteAll(*qiv_pixmaps());
       
   143 }
   137 
   144 
   138 static QPixmap *get_qiv_buffer_pixmap(const QSize &s)
   145 static QPixmap *get_qiv_buffer_pixmap(const QSize &s)
   139 {
   146 {
   140     if (!qiv_buffer_pixmap) {
   147     if (!qiv_buffer_pixmap) {
   141         qiv_buffer_pixmap = new QPixmap(s);
   148         qiv_buffer_pixmap = new QPixmap(s);
   142         qiv_cleanup_pixmap.add(&qiv_buffer_pixmap);
   149         qiv_pixmaps()->append(qiv_buffer_pixmap);
   143         return qiv_buffer_pixmap;
   150         return qiv_buffer_pixmap;
   144     }
   151     }
   145 
   152 
   146     qiv_buffer_pixmap->resize(s);
   153     qiv_buffer_pixmap->resize(s);
   147     return qiv_buffer_pixmap;
   154     return qiv_buffer_pixmap;
  2578 Q3IconView::Q3IconView(QWidget *parent, const char *name, Qt::WindowFlags f)
  2585 Q3IconView::Q3IconView(QWidget *parent, const char *name, Qt::WindowFlags f)
  2579     : Q3ScrollView(parent, name, Qt::WStaticContents | Qt::WNoAutoErase  | f)
  2586     : Q3ScrollView(parent, name, Qt::WStaticContents | Qt::WNoAutoErase  | f)
  2580 {
  2587 {
  2581     if (!unknown_icon) {
  2588     if (!unknown_icon) {
  2582         unknown_icon = new QPixmap((const char **)unknown_xpm);
  2589         unknown_icon = new QPixmap((const char **)unknown_xpm);
  2583         qiv_cleanup_pixmap.add(&unknown_icon);
  2590         qiv_pixmaps()->append(unknown_icon);
  2584     }
  2591     }
  2585 
  2592 
  2586     d = new Q3IconViewPrivate;
  2593     d = new Q3IconViewPrivate;
  2587     d->dragging = false;
  2594     d->dragging = false;
  2588     d->firstItem = 0;
  2595     d->firstItem = 0;