KFinder::KFinder( QWidget *_parent, QStrList *_headers, QArray<int> *_sizes ) : QWidget( _parent ) { xOffset = 0; getOpenPixmap(); getClosePixmap(); buttonList.setAutoDelete( TRUE ); sizeList = 0L; currentSizeList = 0L; if ( _headers ) { sizeList = new unsigned int[ _headers->count() ]; currentSizeList = new unsigned int[ _headers->count() ]; } else { sizeList = new unsigned int[ 1 ]; currentSizeList = new unsigned int[ 1 ]; } if ( _headers ) for ( unsigned int i = 0; i < _headers->count(); i++ ) { KFinderButton *but; buttonList.append( but = new KFinderButton( _headers->at( i ), this ) ); connect( but, SIGNAL( pressed( KFinderButton* ) ), this, SLOT( slotButtonPressed( KFinderButton* ) ) ); if ( _sizes ) { currentSizeList[i] = (*_sizes)[i]; sizeList[ i ] = (*_sizes)[i]; } else { // Just a guess currentSizeList[i] = 150; sizeList[ i ] = 150; } } sort = 0; finderWin = new KFinderWin( this ); connect( finderWin->horizontalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( slotScrolled( int ) ) ); // Dirty Hack, sorry QScrollBar *s = (QScrollBar*)finderWin->horizontalScrollBar(); s->setTracking( TRUE ); initColors(); }