void FTVHelp::generateTree(QTextStream &t, const QList<FTVNode> &nl,int level) { QCString spaces; spaces.fill(' ',level*2+8); QListIterator<FTVNode> nli(nl); FTVNode *n; for (nli.toFirst();(n=nli.current());++nli) { t << spaces << "<p>"; generateIndent(t,n,0); if (n->isDir) { t << "<img " << FTV_IMGATTRIBS(folderclosed) << "onclick=\"toggleFolder('folder" << folderId << "', this)\"/>"; generateLink(t,n); t << "</p>\n"; t << spaces << "<div id=\"folder" << folderId << "\">\n"; folderId++; generateTree(t,n->children,level+1); t << spaces << "</div>\n"; } else { t << "<img " << FTV_IMGATTRIBS(doc) << "/>"; generateLink(t,n); t << "</p>\n"; } } }
static void writeDirTreeNode(QTextStream &t,Directory *root,int level) { QCString indent; indent.fill(' ',level*2); QListIterator<DirEntry> dli(root->children()); DirEntry *de; for (dli.toFirst();(de=dli.current());++dli) { t << indent << "<p>"; generateIndent(t,de,0); if (de->kind()==DirEntry::Dir) { Directory *dir=(Directory *)de; //printf("%s [dir]: %s (last=%d,dir=%d)\n",indent.data(),dir->name().data(),dir->isLast(),dir->kind()==DirEntry::Dir); t << "<img " << FTV_IMGATTRIBS(folderclosed) << "/>"; t << dir->name(); t << "</p>\n"; t << indent << "<div>\n"; writeDirTreeNode(t,dir,level+1); t << indent << "</div>\n"; } else { //printf("%s [file]: %s (last=%d,dir=%d)\n",indent.data(),de->file()->name().data(),de->isLast(),de->kind()==DirEntry::Dir); t << "<img " << FTV_IMGATTRIBS(doc) << "/>"; t << de->file()->name(); t << "</p>\n"; } } }
void FTVHelp::generateIndent(QTextStream &t, FTVNode *n,int level) { if (n->parent) { generateIndent(t,n->parent,level+1); } // from the root up to node n do... if (level==0) // item before a dir or document { if (n->isLast) { if (n->isDir) { t << "<img " << FTV_IMGATTRIBS(plastnode) << "onclick=\"toggleFolder('folder" << folderId << "', this)\"/>"; } else { t << "<img " << FTV_IMGATTRIBS(lastnode) << "/>"; } } else { if (n->isDir) { t << "<img " << FTV_IMGATTRIBS(pnode) << "onclick=\"toggleFolder('folder" << folderId << "', this)\"/>"; } else { t << "<img " << FTV_IMGATTRIBS(node) << "/>"; } } } else // item at another level { if (n->isLast) { t << "<img " << FTV_IMGATTRIBS(blank) << "/>"; } else { t << "<img " << FTV_IMGATTRIBS(vertline) << "/>"; } } }
static void generateIndent(QTextStream &t,DirEntry *de,int level) { if (de->parent()) { generateIndent(t,de->parent(),level+1); } // from the root up to node n do... if (level==0) // item before a dir or document { if (de->isLast()) { if (de->kind()==DirEntry::Dir) { t << "<img " << FTV_IMGATTRIBS(plastnode) << "/>"; } else { t << "<img " << FTV_IMGATTRIBS(lastnode) << "/>"; } } else { if (de->kind()==DirEntry::Dir) { t << "<img " << FTV_IMGATTRIBS(pnode) << "/>"; } else { t << "<img " << FTV_IMGATTRIBS(node) << "/>"; } } } else // item at another level { if (de->isLast()) { t << "<img " << FTV_IMGATTRIBS(blank) << "/>"; } else { t << "<img " << FTV_IMGATTRIBS(vertline) << "/>"; } } }