Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

photosIconView.cpp

Go to the documentation of this file.
00001 //==============================================
00002 //  copyright            : (C) 2003 by Will Stokes
00003 //==============================================
00004 //  This program is free software; you can redistribute it 
00005 //  and/or modify it under the terms of the GNU General 
00006 //  Public License as published by the Free Software 
00007 //  Foundation; either version 2 of the License, or  
00008 //  (at your option) any later version.         
00009 //
00010 //  As a special exception, Will Stokes gives permission to 
00011 //  link this program with Qt non-commercial edition, and 
00012 //  distribute the resulting executable, without including the 
00013 //  source code for the Qt non-commercial edition in the 
00014 //  source distribution. 
00015 //==============================================
00016 
00017 //Systemwide includes
00018 #include <qpixmap.h>
00019 #include <qpainter.h>
00020 
00021 //Projectwide includes
00022 #include "photosIconView.h"
00023 //==============================================
00024 PhotosIconView::PhotosIconView( QWidget *parent ) : QIconView( parent )
00025 {
00026 }
00027 //==============================================
00028 void PhotosIconView::contentsDropEvent( QDropEvent *e )
00029 {
00030   QIconView::contentsDropEvent( e );
00031 
00032   //get iconviewitem that was dropped  
00033   QIconViewItem *item = findItem( e->pos() );
00034   
00035   //if item exists and drop item was originally in this viewport then
00036   //user has dragged item within iconview, emit item has moved signal
00037   if( item != NULL && e->source() == viewport())
00038     emit itemHasMoved();
00039 }
00040 //==============================================
00041 void PhotosIconView::drawContents ( QPainter * p, int clipx, int clipy, int clipw, int cliph )
00042 {
00043     if( bufferPixmap.size() != size())
00044     {  bufferPixmap.resize( size() ); }
00045     QPainter bufferPainter( &bufferPixmap, viewport() );
00046     int xOffset = clipx - contentsX();
00047     int yOffset = clipy - contentsY();
00048 
00049     bufferPainter.translate( -contentsX(), -contentsY() );
00050     QIconView::drawContents( &bufferPainter, clipx, clipy, clipw, cliph );
00051     bitBlt(p->device(), xOffset, yOffset, &bufferPixmap, xOffset, yOffset, clipw, cliph );
00052 }
00053 //==============================================
00054 int PhotosIconView::numSelected()
00055 {
00056   int num = 0;
00057   QIconViewItem* current = firstItem();
00058   while(current != NULL)
00059   {
00060     if(current->isSelected())
00061       num++;
00062     current = current->nextItem();
00063   }
00064   return num;
00065 }
00066 //==============================================

Generated on Thu Nov 13 00:10:54 2003 for AlbumShaper by doxygen 1.3.4