From 114a878c64ce6f8223cfd22d76a20eb16d177e5e Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- parts/filecreate/filecreate_listitem.cpp | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 parts/filecreate/filecreate_listitem.cpp (limited to 'parts/filecreate/filecreate_listitem.cpp') diff --git a/parts/filecreate/filecreate_listitem.cpp b/parts/filecreate/filecreate_listitem.cpp new file mode 100644 index 00000000..4b33514f --- /dev/null +++ b/parts/filecreate/filecreate_listitem.cpp @@ -0,0 +1,101 @@ +/*************************************************************************** + * Copyright (C) 2003 by Julian Rockey * + * linux@jrockey.com * + * thanks: Roberto Raggi for QSimpleRichText stuff * + * * + * 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 "filecreate_listitem.h" + +#include +#include + +#include +#include + +namespace FileCreate { + + ListItem::ListItem(QListView * listview, const FileType * filetype) : + KListViewItem(listview), m_filetype(filetype), + m_filetypeRenderer(NULL) + { + init(); + } + + + ListItem::ListItem(ListItem * listitem, const FileType * filetype) : + KListViewItem(listitem), m_filetype(filetype), + m_filetypeRenderer(NULL) + { + init(); + } + + ListItem::~ListItem() + { + if (m_filetypeRenderer) delete m_filetypeRenderer; + } + + void ListItem::setup() + { + if (m_filetypeRenderer) delete m_filetypeRenderer; + m_filetypeRenderer = new QSimpleRichText( text(1), listView()->font() ); + m_filetypeRenderer->setWidth(listView()->columnWidth(1)); + setHeight(m_filetypeRenderer->height()); + KListViewItem::setup(); + } + + void ListItem::setHeight( int height ) + { + KListViewItem::setHeight( QMAX(QMAX(height,m_iconHeight), m_filetypeRenderer->height() ) ); + } + + void ListItem::prepareResize() { + if (m_filetypeRenderer) { + m_filetypeRenderer->setWidth(listView()->columnWidth(1)); + setHeight(m_filetypeRenderer->height()); + } + } + + void ListItem::paintCell( QPainter* p, const QColorGroup& cg, int column, int width, int align ) + { + + QBrush brush( isSelected() ? cg.highlight() : backgroundColor() ); + + if( column == 1 ){ +// m_filetypeRenderer->setWidth(width); +// setHeight(m_filetypeRenderer->height()); + m_filetypeRenderer->draw( p, 0, 0, QRect(0, 0, width, height()), cg, &brush ); + return; + } + + KListViewItem::paintCell( p, cg, column, width, align ); + } + + void ListItem::init() + { + m_iconHeight = 0; + setText(0, m_filetype->ext()!="" ? QString("." + m_filetype->ext()) : QString("") ); + setText(1, ""+m_filetype->name()+". " + m_filetype->descr() ); + + KIconLoader * loader = KGlobal::iconLoader(); + QPixmap iconPix = loader->loadIcon(m_filetype->icon(), KIcon::Desktop, + KIcon::SizeMedium, + KIcon::DefaultState, NULL, + true); + if (!iconPix.isNull()) { + setPixmap(0, iconPix); + m_iconHeight = iconPix.height(); + } + + } + + + +} + + -- cgit v1.2.3