26 #include "treenodeitem.h"
27 #include "folderitem.h"
30 #include <tqpainter.h>
33 #include <kstringhandler.h>
39 TreeNodeItem::TreeNodeItem(FolderItem* parent, TreeNode* node)
40 : KListViewItem(parent), m_node(node)
45 TreeNodeItem::TreeNodeItem(KListView* parent, TreeNode* node)
46 : KListViewItem(parent), m_node(node)
51 TreeNodeItem::TreeNodeItem(KListView* parent, TreeNodeItem* after, TreeNode* node) : KListViewItem(parent, after), m_node(node)
56 TreeNodeItem::TreeNodeItem(FolderItem* parent, TreeNodeItem* after, TreeNode* node)
57 : KListViewItem(parent, after), m_node(node)
62 void TreeNodeItem::initialize(TreeNode* node)
64 setRenameEnabled(0,
true);
66 setText(0, node->title() );
69 TreeNodeItem::~TreeNodeItem()
72 TQString TreeNodeItem::toolTip()
const
77 TreeNode* TreeNodeItem::node()
82 void TreeNodeItem::nodeChanged()
87 if (text(0) != node()->title())
88 setText(0, node()->title());
92 TreeNodeItem* TreeNodeItem::firstChild()
const
94 return static_cast<TreeNodeItem*
>(KListViewItem::firstChild());
97 TreeNodeItem* TreeNodeItem::nextSibling()
const
99 return static_cast<TreeNodeItem*
>(KListViewItem::nextSibling());
102 FolderItem* TreeNodeItem::parent()
const
104 return static_cast<FolderItem*
>(KListViewItem::parent());
109 void TreeNodeItem::paintCell( TQPainter * p,
const TQColorGroup & cg,
110 int column,
int width,
int align )
113 int u = node() ? node()->unread() : 0;
117 KListViewItem::paintCell(p,cg,column,width,align);
122 TQString oldText = text(column);
123 setText( column,
" " );
126 KListViewItem::paintCell(p,cg,column,width,align);
128 setText( column, oldText);
131 TQFont f = p->font();
132 f.setWeight(TQFont::Bold);
135 TQFontMetrics fm( p->fontMetrics() );
136 TQListView *lv = listView();
137 int x = lv ? lv->itemMargin() : 1;
139 const TQPixmap *icon = pixmap( column );
143 x += icon->width() + m;
145 TQString txt =
" (" + TQString::number(u) +
")";
146 int txtW=fm.width( txt );
148 if (fm.width( oldText ) + txtW + x > width)
149 oldText=KStringHandler::rPixelSqueeze(oldText,fm, width - txtW - x);
151 p->drawText( x, 0, width-m-x, height(), align | AlignVCenter, oldText, -1, &br );
154 p->setPen( TQt::blue );
156 p->drawText( br.right(), 0, width-m-br.right(), height(),
157 align | AlignVCenter, txt );