You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.7 KiB
105 lines
2.7 KiB
/***************************************************************************
|
|
* Copyright (C) 2004 by Jens Dagerbo *
|
|
* jens.dagerbo@swipnet.se *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include <kiconloader.h>
|
|
#include <tqfontmetrics.h>
|
|
#include <tqfileinfo.h>
|
|
|
|
#include "filelist_item.h"
|
|
|
|
#include <kiconloader.h>
|
|
#include <kfileitem.h>
|
|
|
|
FileListItem * FileListItem::s_activeItem = 0;
|
|
|
|
FileListItem::FileListItem( TQListView * tqparent, KURL const & url, DocumentState state )
|
|
: TQListViewItem( tqparent, url.fileName() ),
|
|
_url( url )
|
|
|
|
{
|
|
KFileItem fileItem( KFileItem::Unknown, KFileItem::Unknown, _url );
|
|
_icon = fileItem.pixmap(KIcon::SizeSmall);
|
|
setState( state );
|
|
}
|
|
|
|
KURL FileListItem::url()
|
|
{
|
|
return _url;
|
|
}
|
|
|
|
DocumentState FileListItem::state( )
|
|
{
|
|
return _state;
|
|
}
|
|
|
|
void FileListItem::setState( DocumentState state )
|
|
{
|
|
_state = state;
|
|
|
|
switch( state )
|
|
{
|
|
case Clean:
|
|
setPixmap( 0, _icon);
|
|
// setPixmap( 0, 0L );
|
|
break;
|
|
case Modified:
|
|
setPixmap( 0, SmallIcon("filesave") );
|
|
break;
|
|
case Dirty:
|
|
setPixmap( 0, SmallIcon("revert") );
|
|
break;
|
|
case DirtyAndModified:
|
|
setPixmap( 0, SmallIcon("stop") );
|
|
break;
|
|
}
|
|
}
|
|
|
|
void FileListItem::setHeight( int )
|
|
{
|
|
TQListViewItem::setHeight( KIcon::SizeSmall > listView()->fontMetrics().height() ? KIcon::SizeSmall : listView()->fontMetrics().height() );
|
|
}
|
|
|
|
void FileListItem::paintCell( TQPainter * p, const TQColorGroup & cg, int column, int width, int align )
|
|
{
|
|
TQColorGroup mcg = cg;
|
|
|
|
if ( isActive() )
|
|
{
|
|
mcg.setColor( TQColorGroup::Base, TQt::yellow );
|
|
}
|
|
|
|
TQListViewItem::paintCell( p, mcg, column, width, align );
|
|
}
|
|
|
|
bool FileListItem::isActive( )
|
|
{
|
|
return ( s_activeItem == this );
|
|
}
|
|
|
|
//static
|
|
void FileListItem::setActive( FileListItem * item )
|
|
{
|
|
s_activeItem = item;
|
|
}
|
|
|
|
int FileListItem::compare( TQListViewItem * i, int col, bool ascending ) const
|
|
{
|
|
TQFileInfo info1( key( col, ascending ) ); //this
|
|
TQFileInfo info2( i->key( col, ascending ) ); //that
|
|
int fileComp = info1.fileName().compare( info2.fileName() );
|
|
if ( fileComp != 0 )
|
|
return fileComp;
|
|
else
|
|
return info1.extension().compare( info2.extension() );
|
|
}
|
|
|
|
// kate: space-indent off; indent-width 4; tab-width 4; show-tabs off;
|