/***************************************************************************
kuninstalllistitem.cpp - Source file of class KUninstallListItem
------------------------------------------------------------------------
begin : Wed Mar 17 1999
copyright : (C) 1999 by Geri House
email : ge_ha@yahoo.com
***************************************************************************/
/***************************************************************************
* *
* 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 "kuninstalllistitem.h"
#include "kuninstalllistview.h"
#include "kuninstallerview.h"
static QString * s = 0;
static const QPixmap *pix=0;
KUninstallListItem::KUninstallListItem(QFileInfo f, QCheckListItem * parent, const char * txt, QCheckListItem::Type typ)
:QCheckListItem(parent, txt, typ) {
finfo=f;
}
KUninstallListItem::KUninstallListItem(QFileInfo f, QListView * parent, const char * txt, QCheckListItem::Type typ)
:QCheckListItem(parent, txt, typ) {
finfo=f;
}
KUninstallListItem::KUninstallListItem(QFileInfo f, QListViewItem * parent, const char * txt, const QPixmap & pix)
:QCheckListItem(parent, txt, pix) {
finfo=f;
}
KUninstallListItem::KUninstallListItem(QFileInfo f, QListView * parent, const char * txt, const QPixmap & pix)
:QCheckListItem(parent, txt, pix) {
finfo=f;
}
KUninstallListItem::~KUninstallListItem(){
}
void KUninstallListItem::checkAllChilds(bool setOpen) {
if (childCount()!=0) {
KUninstallListItem* first= (KUninstallListItem*) firstChild();
while (first!=0) {
first->setOn(setOpen);
first->checkAllChilds(setOpen);
first=(KUninstallListItem*)first->nextSibling();
}
}
}
float KUninstallListItem::getSizeAndNumber(int &number) {
float size=0;
number=0;
if (childCount()!=0) {
KUninstallListItem* first= (KUninstallListItem*) firstChild();
while (first!=0) {
if (first->isOn()==TRUE) {
int childnum=0;
size+=first->getSizeAndNumber(childnum);
number+=childnum;
}
first=(KUninstallListItem*)first->nextSibling();
}
}
else {
size=finfo.size();
number=1;
}
return size;
}
const char * KUninstallListItem::text( int column ) const {
if (s==0)
s = new QString(100);
*s="";
if (parent()!=0) {
if (column==0)
s->append(QListViewItem::text(0));
else {
int number=0;
float fsize=getSizeAndNumber(number);
KUninstallerView* view= (KUninstallerView*) listView()->parentWidget();
s->append(view->size2Ascii(fsize));
}
}
else
s->append(QListViewItem::text(column));
return *s;
}
const char * KUninstallListItem::text() const {
return text(0);
}
const QPixmap * KUninstallListItem::pixmap ( int column ) const {
if (pix==0)
pix=new QPixmap();
if (!column && parent()!=0) {
if (finfo.isDir())
*pix=kapp->getIconLoader()->loadIcon("mini/folder.xpm");
else if (finfo.extension()=="xpm" || finfo.extension()=="bmp")
*pix=kapp->getIconLoader()->loadIcon("mini/xpaint.xpm");
else
*pix=kapp->getIconLoader()->loadIcon("mini/unknown.xpm");
return pix;
}
else
return QListViewItem::pixmap(column);
}
void KUninstallListItem::showChildItems() {
if (childCount()==0) {
QDir dir(finfo.absFilePath());
if (dir.exists()==TRUE) {
dir.setFilter(QDir::Dirs | QDir::Hidden | QDir::Files);
const QFileInfoList *strList = dir.entryInfoList();
QFileInfo *f=strList->first();
while (f!=0) {
if (f->fileName()!="." && f->fileName()!="..") {
KUninstallListItem *newChild = new KUninstallListItem(*f, this,f->fileName(), QCheckListItem::CheckBox);
newChild->setOn(isOn());
if (f->isDir()==TRUE)
newChild->showChildItems();
}
f=strList->next();
}
}
}
}
Documentation generated by haeusler@stiegl on Fri Apr 16 09:31:32 MET DST 1999