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.
103 lines
2.4 KiB
103 lines
2.4 KiB
#include <stdlib.h> |
|
#include <qfileinf.h> |
|
#include <qpixmap.h> |
|
#include <kapp.h> |
|
#include "util.h" |
|
#include "kmglobal.h" |
|
#include "kmfoldermgr.h" |
|
#include "kmfolderdir.h" |
|
#include "kmacctfolder.h" |
|
|
|
|
|
#include "kmfoldertree.moc" |
|
|
|
//----------------------------------------------------------------------------- |
|
KMFolderTree::KMFolderTree(QWidget *parent,const char *name) : |
|
KMFolderTreeInherited(parent, name, 1) |
|
{ |
|
KConfig* conf = app->getConfig(); |
|
int width; |
|
|
|
initMetaObject(); |
|
|
|
conf->setGroup("Geometry"); |
|
width = conf->readNumEntry(name, 80); |
|
resize(width, size().height()); |
|
|
|
connect(this, SIGNAL(highlighted(int,int)), |
|
this, SLOT(doFolderSelected(int,int))); |
|
|
|
clearTableFlags(); |
|
setTableFlags (Tbl_smoothVScrolling | Tbl_autoVScrollBar); |
|
|
|
setColumn(0, "Folders", 400, KTabListBox::MixedColumn); |
|
|
|
dict().insert("dir", new QPixmap("pics/kmdirclosed.xpm")); |
|
dict().insert("fld", new QPixmap("pics/flag.xpm")); |
|
dict().insert("in", new QPixmap("pics/bottom.xpm")); |
|
|
|
reload(); |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
KMFolderTree::~KMFolderTree() |
|
{ |
|
KConfig* conf = app->getConfig(); |
|
|
|
conf->setGroup("Geometry"); |
|
conf->writeEntry(name(), size().width()); |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
void KMFolderTree::reload(void) |
|
{ |
|
KMFolderDir* fdir; |
|
KMAcctFolder* folder; |
|
QString str; |
|
QString indent = ""; |
|
|
|
clear(); |
|
mList.clear(); |
|
|
|
fdir = &folderMgr->dir(); |
|
|
|
for (folder = (KMAcctFolder*)fdir->first(); |
|
folder != NULL; |
|
folder = (KMAcctFolder*)fdir->next()) |
|
{ |
|
if (folder->isDir()) str = indent+"{dir} "+folder->name(); |
|
else if (folder->account()) str = indent+"{in} "+folder->name(); |
|
else str = indent+"{fld} "+folder->name(); |
|
insertItem(str); |
|
|
|
mList.append(folder); |
|
} |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
void KMFolderTree::doFolderSelected(int index, int) |
|
{ |
|
KMFolder* folder; |
|
|
|
printf("KMFolderTree::doFolderSelected(%d)\n", index); |
|
|
|
if (index < 0) return; |
|
|
|
folder = (KMFolder*)mList.at(index); |
|
if (!folder->isDir()) emit folderSelected(folder); |
|
} |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
void KMFolderTree::resizeEvent(QResizeEvent* e) |
|
{ |
|
KConfig* conf = app->getConfig(); |
|
|
|
conf->setGroup("Geometry"); |
|
conf->writeEntry(name(), size().width()); |
|
|
|
KMFolderTreeInherited::resizeEvent(e); |
|
}
|
|
|