00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <qiconview.h>
00013
00014
00015 #include "items.h"
00016 #include "item.h"
00017
00018
00019 Items::Items( QWidget* parent,
00020 const char* name ) : QIconView( parent, name)
00021 {
00022 currentPseudoSelection = NULL;
00023
00024
00025
00026 connect( this, SIGNAL(onItem(QIconViewItem*)),
00027 this, SLOT(repaintGroup(QIconViewItem*)) );
00028
00029
00030 connect( this, SIGNAL(onViewport()),
00031 this, SLOT(clearPseudoSelection()) );
00032 }
00033
00034 void Items::keyPressEvent( QKeyEvent* e )
00035 {
00036
00037 int key = e->key();
00038 if( key == Key_Left) key = Key_Up;
00039 if( key == Key_Right) key = Key_Down;
00040
00041 QIconView::keyPressEvent(
00042 new QKeyEvent(QEvent::KeyPress,
00043 key,
00044 e->ascii(),
00045 e->state(),
00046 e->text(),
00047 e->isAutoRepeat(),
00048 e->count() ) );
00049 }
00050
00051 QSize Items::sizeHint() const
00052 {
00053 QSize s = QIconView::sizeHint();
00054
00055
00056 s.setWidth(0);
00057 QIconViewItem *item;
00058 for( item = firstItem(); item != NULL; item = item->nextItem() )
00059 {
00060 if(item->width() + 2 > s.width() )
00061 s.setWidth( item->width() );
00062 }
00063 s.setWidth( s.width() + 2*spacing() );
00064 return s;
00065 }
00066
00067 void Items::repaintGroup( QIconViewItem* pseudoSelection)
00068 {
00069
00070 clearPseudoSelection();
00071
00072
00073 currentPseudoSelection = (Item*)pseudoSelection;
00074 currentPseudoSelection->setMousedOver(true);
00075 repaintItem(currentPseudoSelection);
00076 }
00077
00078 void Items::clearPseudoSelection()
00079 {
00080
00081 if(currentPseudoSelection != NULL)
00082 {
00083 currentPseudoSelection->setMousedOver(false);
00084 repaintItem(currentPseudoSelection);
00085 currentPseudoSelection = NULL;
00086 }
00087 }
00088