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