Source Code (Use browser search to find items of interest.)
Class Index
kdevelop'DocTreeDocbaseFolder (./kdevelop/kdevelop/doctreeview.cpp:383)
class DocTreeDocbaseFolder : public ListViewFolderItem
{
public:
DocTreeDocbaseFolder(DocTreeView *parent)
: ListViewFolderItem(parent, i18n("Documentation Base"))
{ setExpandable(true); }
virtual void setOpen(bool o);
void refresh();
private:
void readDocbaseFile(FILE *f);
};
void DocTreeDocbaseFolder::readDocbaseFile(FILE *f)
{
char buf[512];
QString title;
bool html = false;
while (fgets(buf, sizeof buf, f))
{
QString s = buf;
if (s.right(1) == "\n")
s.truncate(s.length()-1); // chop
if (s.left(7) == "Title: ")
title = s.mid(7, s.length()-7);
else if (s.left(8) == "Format: ")
html = s.find("HTML", 8, false) != -1;
else if (s.left(7) == "Index: "
&& html && !title.isEmpty())
{
QString filename = s.mid(7, s.length()-7);
(void) new ListViewBookItem(this, title, filename);
break;
}
else if (s.left(9) == "Section: "
&& s.find("programming", 9, false) == -1)
break;
}
}
void DocTreeDocbaseFolder::setOpen(bool o)
{
if (o && childCount() == 0)
{
QDir d("/usr/share/doc-base");
QStringList fileList = d.entryList("*", QDir::Files);
QStringList::Iterator it;
for (it = fileList.begin(); it != fileList.end(); ++it)
{
FILE *f;
if ( (f = fopen(d.filePath(*it), "r")) != 0)
{
readDocbaseFile(f);
fclose(f);
}
}
}
ListViewFolderItem::setOpen(o);
}
void DocTreeDocbaseFolder::refresh()
{
ListViewFolderItem::clear();
setOpen(isOpen()); // should reparse the doc-base
}
#endif
/*************************************/
/* Folder "Others" */
/*************************************/
kdevelop'DocTreeDocbaseFolder::refresh() (./kdevelop/kdevelop/doctreeview.cpp:446)
void DocTreeDocbaseFolder::refresh()
{
ListViewFolderItem::clear();
setOpen(isOpen()); // should reparse the doc-base
}
#endif
/*************************************/
/* Folder "Others" */
/*************************************/