filecreate_listitem.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "filecreate_listitem.h"
00014
00015 #include <kglobal.h>
00016 #include <kiconloader.h>
00017
00018 #include <qsimplerichtext.h>
00019 #include <qpixmap.h>
00020
00021 namespace FileCreate {
00022
00023 ListItem::ListItem(QListView * listview, const FileType * filetype) :
00024 KListViewItem(listview), m_filetype(filetype),
00025 m_filetypeRenderer(NULL)
00026 {
00027 init();
00028 }
00029
00030
00031 ListItem::ListItem(ListItem * listitem, const FileType * filetype) :
00032 KListViewItem(listitem), m_filetype(filetype),
00033 m_filetypeRenderer(NULL)
00034 {
00035 init();
00036 }
00037
00038 ListItem::~ListItem()
00039 {
00040 if (m_filetypeRenderer) delete m_filetypeRenderer;
00041 }
00042
00043 void ListItem::setup()
00044 {
00045 if (m_filetypeRenderer) delete m_filetypeRenderer;
00046 m_filetypeRenderer = new QSimpleRichText( text(1), listView()->font() );
00047 m_filetypeRenderer->setWidth(listView()->columnWidth(1));
00048 setHeight(m_filetypeRenderer->height());
00049 KListViewItem::setup();
00050 }
00051
00052 void ListItem::setHeight( int height )
00053 {
00054 KListViewItem::setHeight( QMAX(QMAX(height,m_iconHeight), m_filetypeRenderer->height() ) );
00055 }
00056
00057 void ListItem::prepareResize() {
00058 if (m_filetypeRenderer) {
00059 m_filetypeRenderer->setWidth(listView()->columnWidth(1));
00060 setHeight(m_filetypeRenderer->height());
00061 }
00062 }
00063
00064 void ListItem::paintCell( QPainter* p, const QColorGroup& cg, int column, int width, int align )
00065 {
00066
00067 QBrush brush( isSelected() ? cg.highlight() : backgroundColor() );
00068
00069 if( column == 1 ){
00070
00071
00072 m_filetypeRenderer->draw( p, 0, 0, QRect(0, 0, width, height()), cg, &brush );
00073 return;
00074 }
00075
00076 KListViewItem::paintCell( p, cg, column, width, align );
00077 }
00078
00079 void ListItem::init()
00080 {
00081 m_iconHeight = 0;
00082 setText(0, m_filetype->ext()!="" ? QString("." + m_filetype->ext()) : QString("") );
00083 setText(1, "<qt><b>"+m_filetype->name()+"</b>. " + m_filetype->descr() );
00084
00085 KIconLoader * loader = KGlobal::iconLoader();
00086 QPixmap iconPix = loader->loadIcon(m_filetype->icon(), KIcon::Desktop,
00087 KIcon::SizeMedium,
00088 KIcon::DefaultState, NULL,
00089 true);
00090 if (!iconPix.isNull()) {
00091 setPixmap(0, iconPix);
00092 m_iconHeight = iconPix.height();
00093 }
00094
00095 }
00096
00097
00098
00099 }
00100
00101
This file is part of the documentation for KDevelop Version 3.1.2.