コード例 #1
0
ファイル: kfinder.cpp プロジェクト: kthxbyte/KDE1-Linaro
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();

}