src/gui/image/qicon.cpp File Reference

#include "qicon.h"
#include "qiconengine.h"
#include "qiconengineplugin.h"
#include "private/qfactoryloader_p.h"
#include "qapplication.h"
#include "qstyleoption.h"
#include "qpainter.h"
#include "qfileinfo.h"
#include "qstyle.h"
#include "qpixmapcache.h"
#include "qvariant.h"
#include "qdebug.h"

Include dependency graph for qicon.cpp:

Go to the source code of this file.

Classes

class  QIconPrivate
struct  QPixmapIconEngineEntry
class  QPixmapIconEngine

Functions

Q_GUI_EXPORT qint64 qt_pixmap_id (const QPixmap &pixmap)
static int area (const QSize &s)
static QPixmapIconEngineEntrybestSizeMatch (const QSize &size, QPixmapIconEngineEntry *pa, QPixmapIconEngineEntry *pb)
QDataStreamoperator<< (QDataStream &s, const QIcon &icon)
QDataStreamoperator>> (QDataStream &s, QIcon &icon)

Variables

static int serialNumCounter = 0


Function Documentation

static int area ( const QSize s  )  [inline, static]

Definition at line 130 of file qicon.cpp.

References s.

Referenced by CPP::WriteInitialization::acceptWidget(), QAbstractFormBuilder::addItem(), QListViewPrivate::addLeaf(), bestSizeMatch(), Skin::calcRegions(), Q3Canvas::changeBounds(), QBspTree::climbTree(), QAbstractItemView::doAutoScroll(), QTableViewPrivate::drawAndClipSpans(), QWindowsXPStylePrivate::drawBackgroundDirectly(), QWindowsXPStylePrivate::drawBackgroundThruNativeBuffer(), Q3Canvas::drawCanvasArea(), QTreeView::drawTree(), QTabBar::event(), Q3MainWindow::event(), qdesigner_internal::Layout::finishLayout(), qdesigner_internal::FormWindow::handleMouseMoveEvent(), QMainWindowLayout::hover(), QBspTree::init(), QListViewPrivate::intersectingDynamicSet(), QListViewPrivate::intersectingSet(), QListViewPrivate::intersectingStaticSet(), Q3MainWindow::isDockEnabled(), QListView::paintEvent(), qdesigner_internal::QDesignerResource::saveWidget(), QRasterWindowSurface::scroll(), QX11WindowSurface::scroll(), QListView::scrollTo(), PieView::scrollTo(), QTreeView::scrollTo(), Q3Canvas::setChanged(), Q3Canvas::setUnchanged(), QAbstractItemViewPrivate::shouldAutoScroll(), Q3Canvas::update(), QXIMInputContext::update(), ColorSwatch::updateContextMenu(), and ToolBar::updateMenu().

00130 { return s.width() * s.height(); }

static QPixmapIconEngineEntry* bestSizeMatch ( const QSize size,
QPixmapIconEngineEntry pa,
QPixmapIconEngineEntry pb 
) [static]

Definition at line 133 of file qicon.cpp.

References a, area(), b, QPixmapIconEngineEntry::fileName, QPixmap::isNull(), QPixmapIconEngineEntry::pixmap, qMax(), qMin(), s, size, QPixmapIconEngineEntry::size, and QPixmap::size().

Referenced by QPixmapIconEngine::tryMatch().

00134 {
00135     int s = area(size);
00136     if (pa->size == QSize() && pa->pixmap.isNull()) {
00137         pa->pixmap = QPixmap(pa->fileName);
00138         pa->size = pa->pixmap.size();
00139     }
00140     int a = area(pa->size);
00141     if (pb->size == QSize() && pb->pixmap.isNull()) {
00142         pb->pixmap = QPixmap(pb->fileName);
00143         pb->size = pb->pixmap.size();
00144     }
00145     int b = area(pb->size);
00146     int res = a;
00147     if (qMin(a,b) >= s)
00148         res = qMin(a,b);
00149     else
00150         res = qMax(a,b);
00151     if (res == a)
00152         return pa;
00153     return pb;
00154 }

Here is the call graph for this function:

QDataStream& operator<< ( QDataStream s,
const QIcon icon 
)

Definition at line 664 of file qicon.cpp.

00665 {
00666     if (s.version() >= QDataStream::Qt_4_2) {
00667         if (icon.isNull()) {
00668             s << 0;
00669         } else {
00670             QPixmapIconEngine *engine = static_cast<QPixmapIconEngine *>(icon.d->engine);
00671             int num_entries = engine->pixmaps.size();
00672             s << num_entries;
00673             for (int i=0; i < num_entries; ++i) {
00674                 s << engine->pixmaps.at(i).pixmap;
00675                 s << engine->pixmaps.at(i).fileName;
00676                 s << engine->pixmaps.at(i).size;
00677                 s << (uint) engine->pixmaps.at(i).mode;
00678                 s << (uint) engine->pixmaps.at(i).state;
00679             }
00680         }
00681     } else {
00682         s << QPixmap(icon.pixmap(22,22));
00683     }
00684     return s;
00685 }

QDataStream& operator>> ( QDataStream s,
QIcon icon 
) [related]

Definition at line 696 of file qicon.cpp.

00697 {
00698     if (s.version() >= QDataStream::Qt_4_2) {
00699         icon = QIcon();
00700         int num_entries;
00701         QPixmap pm;
00702         QString fileName;
00703         QSize sz;
00704         uint mode;
00705         uint state;
00706 
00707         s >> num_entries;
00708         for (int i=0; i < num_entries; ++i) {
00709             s >> pm;
00710             s >> fileName;
00711             s >> sz;
00712             s >> mode;
00713             s >> state;
00714             if (pm.isNull())
00715                 icon.addFile(fileName, sz, QIcon::Mode(mode), QIcon::State(state));
00716             else
00717                 icon.addPixmap(pm, QIcon::Mode(mode), QIcon::State(state));
00718         }
00719     } else {
00720         QPixmap pm;
00721         s >> pm;
00722         icon.addPixmap(pm);
00723     }
00724     return s;
00725 }

Q_GUI_EXPORT qint64 qt_pixmap_id ( const QPixmap pixmap  ) 

Definition at line 55 of file qpixmap.cpp.

Referenced by QPdfEnginePrivate::addBrushPattern(), QGLContextPrivate::bindTexture(), QPdfEngine::drawPixmap(), QPixmapIconEngine::pixmap(), and QItemDelegate::selected().

00056 {
00057     return -(((qint64) pixmap.data->ser_no) << 32) | ((qint64) (pixmap.data->detach_no));
00058 }


Variable Documentation

int serialNumCounter = 0 [static]

Definition at line 72 of file qicon.cpp.


Generated on Thu Mar 15 13:18:29 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1