summaryrefslogtreecommitdiffstats
path: root/src/index.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.cpp')
-rw-r--r--src/index.cpp702
1 files changed, 38 insertions, 664 deletions
diff --git a/src/index.cpp b/src/index.cpp
index fc400a1..3310357 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -47,10 +47,6 @@
#define MAX_ITEMS_BEFORE_MULTIPAGE_INDEX 200
#define MAX_ITEMS_BEFORE_QUICK_INDEX 30
-static const char search_script[]=
-#include "search_js.h"
-;
-
int annotatedClasses;
int annotatedClassesPrinted;
@@ -328,6 +324,16 @@ void endFile(OutputList &ol,bool skipNavIndex)
ol.endFile();
}
+void endFileWithNavPath(Definition *d,OutputList &ol)
+{
+ static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW");
+ if (generateTreeView)
+ {
+ d->writeNavigationPath(ol);
+ }
+ endFile(ol,generateTreeView);
+}
+
//----------------------------------------------------------------------
template<class T> void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,const QCString &name,const QCString &anchor)
{
@@ -549,8 +555,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started,FT
bool b;
if (cd->getLanguage()==SrcLangExt_VHDL)
{
- if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKAGECLASS ||
- (VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKBODYCLASS)
+ if (!(VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS)
{
continue;
}
@@ -996,7 +1001,15 @@ static void writeNamespaceIndex(OutputList &ol)
}
//ol.writeStartAnnoItem("namespace",nd->getOutputFileBase(),0,nd->name());
ol.startIndexKey();
- ol.writeObjectLink(0,nd->getOutputFileBase(),0,nd->displayName());
+ if (nd->getLanguage()==SrcLangExt_VHDL)
+ {
+ ClassDef* ccd=getClass(nd->displayName());
+ if (ccd) ol.writeObjectLink(0,ccd->getOutputFileBase(),0,nd->displayName());
+ }
+ else
+ {
+ ol.writeObjectLink(0,nd->getOutputFileBase(),0,nd->displayName());
+ }
ol.endIndexKey();
bool hasBrief = !nd->briefDescription().isEmpty();
ol.startIndexValue(hasBrief);
@@ -1016,8 +1029,6 @@ static void writeNamespaceIndex(OutputList &ol)
//ol.docify(")");
}
ol.endIndexValue(nd->getOutputFileBase(),hasBrief);
- //ol.writeEndAnnoItem(nd->getOutputFileBase());
- //Doxygen::indexList.addContentsItem(FALSE,nd->displayName(),nd->getReference(),nd->getOutputFileBase(),0);
addMembersToIndex(nd,LayoutDocManager::Namespace,nd->displayName(),QCString());
}
}
@@ -1107,6 +1118,10 @@ static void writeAnnotatedClassList(OutputList &ol)
for (cli.toFirst();(cd=cli.current());++cli)
{
+
+ if (cd->getLanguage()==SrcLangExt_VHDL &&(!(VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS ))
+ continue;
+
ol.pushGeneratorState();
if (cd->isEmbeddedInOuterScope())
{
@@ -1122,7 +1137,6 @@ static void writeAnnotatedClassList(OutputList &ol)
QCString prot= VhdlDocGen::getProtectionName((VhdlDocGen::VhdlClasses)cd->protection());
ol.docify(prot.data());
ol.writeString(" ");
- ol.insertMemberAlign();
}
ol.writeObjectLink(0,cd->getOutputFileBase(),cd->anchor(),cd->displayName());
ol.endIndexKey();
@@ -1241,8 +1255,11 @@ static void writeAlphabeticalClassList(OutputList &ol)
{
if (cd->isLinkableInProject() && cd->templateMaster()==0)
{
+ if (cd->getLanguage()==SrcLangExt_VHDL && !((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS ))// no architecture
+ continue;
+
int index = getPrefixIndex(cd->className());
- //printf("name=%s index=%d\n",cd->className().data(),index);
+ //printf("name=%s index=%d %d\n",cd->className().data(),index,cd->protection());
startLetter=toupper(cd->className().at(index))&0xFF;
indexLetterUsed[startLetter] = true;
}
@@ -1287,12 +1304,21 @@ static void writeAlphabeticalClassList(OutputList &ol)
startLetter=0;
for (cli.toFirst();(cd=cli.current());++cli)
{
+ if (cd->getLanguage()==SrcLangExt_VHDL && !((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS ))// no architecture
+ continue;
+
if (cd->isLinkableInProject() && cd->templateMaster()==0)
{
int index = getPrefixIndex(cd->className());
startLetter=toupper(cd->className().at(index))&0xFF;
// Do some sorting again, since the classes are sorted by name with
// prefix, which should be ignored really.
+ if (cd->getLanguage()==SrcLangExt_VHDL)
+ {
+ if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS )// no architecture
+ classesByLetter[startLetter].inSort(cd);
+ }
+ else
classesByLetter[startLetter].inSort(cd);
}
}
@@ -1673,8 +1699,7 @@ void addClassMemberNameToIndex(MemberDef *md)
static bool hideFriendCompounds = Config_getBool("HIDE_FRIEND_COMPOUNDS");
ClassDef *cd=0;
- if (md->getLanguage()==SrcLangExt_VHDL &&
- (VhdlDocGen::isRecord(md) || VhdlDocGen::isUnit(md)))
+ if (md->getLanguage()==SrcLangExt_VHDL)
{
VhdlDocGen::adjustRecordMember(md);
}
@@ -2412,657 +2437,6 @@ static void writeNamespaceMemberIndex(OutputList &ol)
//----------------------------------------------------------------------------
-#define NUM_SEARCH_INDICES 13
-#define SEARCH_INDEX_ALL 0
-#define SEARCH_INDEX_CLASSES 1
-#define SEARCH_INDEX_NAMESPACES 2
-#define SEARCH_INDEX_FILES 3
-#define SEARCH_INDEX_FUNCTIONS 4
-#define SEARCH_INDEX_VARIABLES 5
-#define SEARCH_INDEX_TYPEDEFS 6
-#define SEARCH_INDEX_ENUMS 7
-#define SEARCH_INDEX_ENUMVALUES 8
-#define SEARCH_INDEX_PROPERTIES 9
-#define SEARCH_INDEX_EVENTS 10
-#define SEARCH_INDEX_RELATED 11
-#define SEARCH_INDEX_DEFINES 12
-
-class SearchIndexList : public SDict< QList<Definition> >
-{
- public:
- SearchIndexList(int size=17) : SDict< QList<Definition> >(size,FALSE)
- {
- setAutoDelete(TRUE);
- }
- ~SearchIndexList() {}
- void append(Definition *d)
- {
- QList<Definition> *l = find(d->name());
- if (l==0)
- {
- l=new QList<Definition>;
- SDict< QList<Definition> >::append(d->name(),l);
- }
- l->append(d);
- }
- int compareItems(GCI item1, GCI item2)
- {
- QList<Definition> *md1=(QList<Definition> *)item1;
- QList<Definition> *md2=(QList<Definition> *)item2;
- QCString n1 = md1->first()->localName();
- QCString n2 = md2->first()->localName();
- return stricmp(n1.data(),n2.data());
- }
-};
-
-static void addMemberToSearchIndex(
- SearchIndexList symbols[NUM_SEARCH_INDICES][MEMBER_INDEX_ENTRIES],
- int symbolCount[NUM_SEARCH_INDICES],
- MemberDef *md)
-{
- static bool hideFriendCompounds = Config_getBool("HIDE_FRIEND_COMPOUNDS");
- bool isLinkable = md->isLinkable();
- ClassDef *cd=0;
- NamespaceDef *nd=0;
- FileDef *fd=0;
- if (isLinkable &&
- (cd=md->getClassDef()) &&
- cd->isLinkable() &&
- cd->templateMaster()==0)
- {
- QCString n = md->name();
- uchar charCode = (uchar)n.at(0);
- uint letter = charCode<128 ? tolower(charCode) : charCode;
- if (!n.isEmpty())
- {
- bool isFriendToHide = hideFriendCompounds &&
- (QCString(md->typeString())=="friend class" ||
- QCString(md->typeString())=="friend struct" ||
- QCString(md->typeString())=="friend union");
- if (!(md->isFriend() && isFriendToHide))
- {
- symbols[SEARCH_INDEX_ALL][letter].append(md);
- symbolCount[SEARCH_INDEX_ALL]++;
- }
- if (md->isFunction() || md->isSlot() || md->isSignal())
- {
- symbols[SEARCH_INDEX_FUNCTIONS][letter].append(md);
- symbolCount[SEARCH_INDEX_FUNCTIONS]++;
- }
- else if (md->isVariable())
- {
- symbols[SEARCH_INDEX_VARIABLES][letter].append(md);
- symbolCount[SEARCH_INDEX_VARIABLES]++;
- }
- else if (md->isTypedef())
- {
- symbols[SEARCH_INDEX_TYPEDEFS][letter].append(md);
- symbolCount[SEARCH_INDEX_TYPEDEFS]++;
- }
- else if (md->isEnumerate())
- {
- symbols[SEARCH_INDEX_ENUMS][letter].append(md);
- symbolCount[SEARCH_INDEX_ENUMS]++;
- }
- else if (md->isEnumValue())
- {
- symbols[SEARCH_INDEX_ENUMVALUES][letter].append(md);
- symbolCount[SEARCH_INDEX_ENUMVALUES]++;
- }
- else if (md->isProperty())
- {
- symbols[SEARCH_INDEX_PROPERTIES][letter].append(md);
- symbolCount[SEARCH_INDEX_PROPERTIES]++;
- }
- else if (md->isEvent())
- {
- symbols[SEARCH_INDEX_EVENTS][letter].append(md);
- symbolCount[SEARCH_INDEX_EVENTS]++;
- }
- else if (md->isRelated() || md->isForeign() ||
- (md->isFriend() && !isFriendToHide))
- {
- symbols[SEARCH_INDEX_RELATED][letter].append(md);
- symbolCount[SEARCH_INDEX_RELATED]++;
- }
- }
- }
- else if (isLinkable &&
- (((nd=md->getNamespaceDef()) && nd->isLinkable()) ||
- ((fd=md->getFileDef()) && fd->isLinkable())
- )
- )
- {
- QCString n = md->name();
- uchar charCode = (uchar)n.at(0);
- uint letter = charCode<128 ? tolower(charCode) : charCode;
- if (!n.isEmpty())
- {
- symbols[SEARCH_INDEX_ALL][letter].append(md);
- symbolCount[SEARCH_INDEX_ALL]++;
-
- if (md->isFunction())
- {
- symbols[SEARCH_INDEX_FUNCTIONS][letter].append(md);
- symbolCount[SEARCH_INDEX_FUNCTIONS]++;
- }
- else if (md->isVariable())
- {
- symbols[SEARCH_INDEX_VARIABLES][letter].append(md);
- symbolCount[SEARCH_INDEX_VARIABLES]++;
- }
- else if (md->isTypedef())
- {
- symbols[SEARCH_INDEX_TYPEDEFS][letter].append(md);
- symbolCount[SEARCH_INDEX_TYPEDEFS]++;
- }
- else if (md->isEnumerate())
- {
- symbols[SEARCH_INDEX_ENUMS][letter].append(md);
- symbolCount[SEARCH_INDEX_ENUMS]++;
- }
- else if (md->isEnumValue())
- {
- symbols[SEARCH_INDEX_ENUMVALUES][letter].append(md);
- symbolCount[SEARCH_INDEX_ENUMVALUES]++;
- }
- else if (md->isDefine())
- {
- symbols[SEARCH_INDEX_DEFINES][letter].append(md);
- symbolCount[SEARCH_INDEX_DEFINES]++;
- }
- }
- }
-}
-
-static QCString searchId(const QCString &s)
-{
- int c;
- uint i;
- QCString result;
- for (i=0;i<s.length();i++)
- {
- c=s.at(i);
- if ((c>='0' && c<='9') || (c>='A' && c<='Z') || (c>='a' && c<='z'))
- {
- result+=(char)tolower(c);
- }
- else
- {
- char val[4];
- sprintf(val,"_%02x",(uchar)c);
- result+=val;
- }
- }
- return result;
-}
-
-static int g_searchIndexCount[NUM_SEARCH_INDICES];
-static SearchIndexList g_searchIndexSymbols[NUM_SEARCH_INDICES][MEMBER_INDEX_ENTRIES];
-static const char *g_searchIndexName[NUM_SEARCH_INDICES] =
-{
- "all",
- "classes",
- "namespaces",
- "files",
- "functions",
- "variables",
- "typedefs",
- "enums",
- "enumvalues",
- "properties",
- "events",
- "related",
- "defines"
-};
-
-
-class SearchIndexCategoryMapping
-{
- public:
- SearchIndexCategoryMapping()
- {
- categoryLabel[SEARCH_INDEX_ALL] = theTranslator->trAll();
- categoryLabel[SEARCH_INDEX_CLASSES] = theTranslator->trClasses();
- categoryLabel[SEARCH_INDEX_NAMESPACES] = theTranslator->trNamespace(TRUE,FALSE);
- categoryLabel[SEARCH_INDEX_FILES] = theTranslator->trFile(TRUE,FALSE);
- categoryLabel[SEARCH_INDEX_FUNCTIONS] = theTranslator->trFunctions();
- categoryLabel[SEARCH_INDEX_VARIABLES] = theTranslator->trVariables();
- categoryLabel[SEARCH_INDEX_TYPEDEFS] = theTranslator->trTypedefs();
- categoryLabel[SEARCH_INDEX_ENUMS] = theTranslator->trEnumerations();
- categoryLabel[SEARCH_INDEX_ENUMVALUES] = theTranslator->trEnumerationValues();
- categoryLabel[SEARCH_INDEX_PROPERTIES] = theTranslator->trProperties();
- categoryLabel[SEARCH_INDEX_EVENTS] = theTranslator->trEvents();
- categoryLabel[SEARCH_INDEX_RELATED] = theTranslator->trFriends();
- categoryLabel[SEARCH_INDEX_DEFINES] = theTranslator->trDefines();
- }
- QCString categoryLabel[NUM_SEARCH_INDICES];
-};
-
-void writeJavascriptSearchIndex()
-{
- if (!Config_getBool("GENERATE_HTML")) return;
- //static bool treeView = Config_getBool("GENERATE_TREEVIEW");
-
- ClassSDict::Iterator cli(*Doxygen::classSDict);
- ClassDef *cd;
- for (;(cd=cli.current());++cli)
- {
- uchar charCode = (uchar)cd->localName().at(0);
- uint letter = charCode<128 ? tolower(charCode) : charCode;
- if (cd->isLinkable() && isId(letter))
- {
- g_searchIndexSymbols[SEARCH_INDEX_ALL][letter].append(cd);
- g_searchIndexSymbols[SEARCH_INDEX_CLASSES][letter].append(cd);
- g_searchIndexCount[SEARCH_INDEX_ALL]++;
- g_searchIndexCount[SEARCH_INDEX_CLASSES]++;
- }
- }
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for (;(nd=nli.current());++nli)
- {
- uchar charCode = (uchar)nd->name().at(0);
- uint letter = charCode<128 ? tolower(charCode) : charCode;
- if (nd->isLinkable() && isId(letter))
- {
- g_searchIndexSymbols[SEARCH_INDEX_ALL][letter].append(nd);
- g_searchIndexSymbols[SEARCH_INDEX_NAMESPACES][letter].append(nd);
- g_searchIndexCount[SEARCH_INDEX_ALL]++;
- g_searchIndexCount[SEARCH_INDEX_NAMESPACES]++;
- }
- }
- FileNameListIterator fnli(*Doxygen::inputNameList);
- FileName *fn;
- for (;(fn=fnli.current());++fnli)
- {
- FileNameIterator fni(*fn);
- FileDef *fd;
- for (;(fd=fni.current());++fni)
- {
- uchar charCode = (uchar)fd->name().at(0);
- uint letter = charCode<128 ? tolower(charCode) : charCode;
- if (fd->isLinkable() && isId(letter))
- {
- g_searchIndexSymbols[SEARCH_INDEX_ALL][letter].append(fd);
- g_searchIndexSymbols[SEARCH_INDEX_FILES][letter].append(fd);
- g_searchIndexCount[SEARCH_INDEX_ALL]++;
- g_searchIndexCount[SEARCH_INDEX_FILES]++;
- }
- }
- }
- {
- MemberNameSDict::Iterator mnli(*Doxygen::memberNameSDict);
- MemberName *mn;
- // for each member name
- for (mnli.toFirst();(mn=mnli.current());++mnli)
- {
- MemberDef *md;
- MemberNameIterator mni(*mn);
- // for each member definition
- for (mni.toFirst();(md=mni.current());++mni)
- {
- addMemberToSearchIndex(g_searchIndexSymbols,g_searchIndexCount,md);
- }
- }
- }
- {
- MemberNameSDict::Iterator fnli(*Doxygen::functionNameSDict);
- MemberName *mn;
- // for each member name
- for (fnli.toFirst();(mn=fnli.current());++fnli)
- {
- MemberDef *md;
- MemberNameIterator mni(*mn);
- // for each member definition
- for (mni.toFirst();(md=mni.current());++mni)
- {
- addMemberToSearchIndex(g_searchIndexSymbols,g_searchIndexCount,md);
- }
- }
- }
-
- int i,p;
- for (i=0;i<NUM_SEARCH_INDICES;i++)
- {
- for (p=0;p<MEMBER_INDEX_ENTRIES;p++)
- {
- if (g_searchIndexSymbols[i][p].count()>0)
- {
- g_searchIndexSymbols[i][p].sort();
- }
- }
- }
-
- QCString searchDirName = Config_getString("HTML_OUTPUT")+"/search";
-
- for (i=0;i<NUM_SEARCH_INDICES;i++)
- {
- for (p=0;p<MEMBER_INDEX_ENTRIES;p++)
- {
- if (g_searchIndexSymbols[i][p].count()>0)
- {
- QCString fileName;
- fileName.sprintf("/%s_%02x.html",g_searchIndexName[i],p);
- fileName.prepend(searchDirName);
- QFile outFile(fileName);
- if (outFile.open(IO_WriteOnly))
- {
- FTextStream t(&outFile);
- t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
- " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" << endl;
- t << "<html><head><title></title>" << endl;
- t << "<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>" << endl;
- t << "<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>" << endl;
- t << "<script type=\"text/javascript\" src=\"search.js\"></script>" << endl;
- t << "</head>" << endl;
- t << "<body class=\"SRPage\">" << endl;
- t << "<div id=\"SRIndex\">" << endl;
- t << "<div class=\"SRStatus\" id=\"Loading\">" << theTranslator->trLoading() << "</div>" << endl;
-
- SDict<QList<Definition> >::Iterator li(g_searchIndexSymbols[i][p]);
- QList<Definition> *dl;
- int itemCount=0;
- for (li.toFirst();(dl=li.current());++li)
- {
- Definition *d = dl->first();
- QCString id = d->localName();
- t << "<div class=\"SRResult\" id=\"SR_"
- << searchId(d->localName()) << "\">" << endl;
- t << " <div class=\"SREntry\">\n";
- if (dl->count()==1) // item with a unique name
- {
- MemberDef *md = 0;
- bool isMemberDef = d->definitionType()==Definition::TypeMember;
- if (isMemberDef) md = (MemberDef*)d;
- t << " <a id=\"Item" << itemCount << "\" "
- << "onkeydown=\""
- << "return searchResults.Nav(event," << itemCount << ")\" "
- << "onkeypress=\""
- << "return searchResults.Nav(event," << itemCount << ")\" "
- << "onkeyup=\""
- << "return searchResults.Nav(event," << itemCount << ")\" "
- << "class=\"SRSymbol\" ";
- t << externalLinkTarget() << "href=\"" << externalRef("../",d->getReference(),TRUE);
- t << d->getOutputFileBase() << Doxygen::htmlFileExtension;
- QCString anchor = d->anchor();
- if (!anchor.isEmpty())
- {
- t << "#" << anchor;
- }
- t << "\"";
- static bool extLinksInWindow = Config_getBool("EXT_LINKS_IN_WINDOW");
- if (!extLinksInWindow || d->getReference().isEmpty())
- {
- t << " target=\"_parent\"";
- }
- t << ">";
- t << convertToXML(d->localName());
- t << "</a>" << endl;
- if (d->getOuterScope()!=Doxygen::globalScope)
- {
- t << " <span class=\"SRScope\">"
- << convertToXML(d->getOuterScope()->name())
- << "</span>" << endl;
- }
- else if (md)
- {
- FileDef *fd = md->getBodyDef();
- if (fd==0) fd = md->getFileDef();
- if (fd)
- {
- t << " <span class=\"SRScope\">"
- << convertToXML(fd->localName())
- << "</span>" << endl;
- }
- }
- }
- else // multiple items with the same name
- {
- t << " <a id=\"Item" << itemCount << "\" "
- << "onkeydown=\""
- << "return searchResults.Nav(event," << itemCount << ")\" "
- << "onkeypress=\""
- << "return searchResults.Nav(event," << itemCount << ")\" "
- << "onkeyup=\""
- << "return searchResults.Nav(event," << itemCount << ")\" "
- << "class=\"SRSymbol\" "
- << "href=\"javascript:searchResults.Toggle('SR_"
- << searchId(d->localName()) << "')\">"
- << convertToXML(d->localName()) << "</a>" << endl;
- t << " <div class=\"SRChildren\">" << endl;
-
- QListIterator<Definition> di(*dl);
- bool overloadedFunction = FALSE;
- Definition *prevScope = 0;
- int childCount=0;
- for (di.toFirst();(d=di.current());)
- {
- ++di;
- Definition *scope = d->getOuterScope();
- Definition *next = di.current();
- Definition *nextScope = 0;
- MemberDef *md = 0;
- bool isMemberDef = d->definitionType()==Definition::TypeMember;
- if (isMemberDef) md = (MemberDef*)d;
- if (next) nextScope = next->getOuterScope();
-
- t << " <a id=\"Item" << itemCount << "_c"
- << childCount << "\" "
- << "onkeydown=\""
- << "return searchResults.NavChild(event,"
- << itemCount << "," << childCount << ")\" "
- << "onkeypress=\""
- << "return searchResults.NavChild(event,"
- << itemCount << "," << childCount << ")\" "
- << "onkeyup=\""
- << "return searchResults.NavChild(event,"
- << itemCount << "," << childCount << ")\" "
- << "class=\"SRScope\" ";
- if (!d->getReference().isEmpty())
- {
- t << externalLinkTarget() << externalRef("../",d->getReference(),FALSE);
- }
- t << "href=\"" << externalRef("../",d->getReference(),TRUE);
- t << d->getOutputFileBase() << Doxygen::htmlFileExtension;
- QCString anchor = d->anchor();
- if (!anchor.isEmpty())
- {
- t << "#" << anchor;
- }
- t << "\"";
- static bool extLinksInWindow = Config_getBool("EXT_LINKS_IN_WINDOW");
- if (!extLinksInWindow || d->getReference().isEmpty())
- {
- t << " target=\"_parent\"";
- }
- t << ">";
- bool found=FALSE;
- overloadedFunction = ((prevScope!=0 && scope==prevScope) ||
- (scope && scope==nextScope)
- ) && md &&
- (md->isFunction() || md->isSlot());
- QCString prefix;
- if (md) prefix=convertToXML(md->localName());
- if (overloadedFunction) // overloaded member function
- {
- prefix+=convertToXML(md->argsString());
- // show argument list to disambiguate overloaded functions
- }
- else if (md) // unique member function
- {
- prefix+="()"; // only to show it is a function
- }
- if (d->definitionType()==Definition::TypeClass)
- {
- t << convertToXML(((ClassDef*)d)->displayName());
- found = TRUE;
- }
- else if (d->definitionType()==Definition::TypeNamespace)
- {
- t << convertToXML(((NamespaceDef*)d)->displayName());
- found = TRUE;
- }
- else if (scope==0 || scope==Doxygen::globalScope) // in global scope
- {
- if (md)
- {
- FileDef *fd = md->getBodyDef();
- if (fd==0) fd = md->getFileDef();
- if (fd)
- {
- if (!prefix.isEmpty()) prefix+=":&#160;";
- t << prefix << convertToXML(fd->localName());
- found = TRUE;
- }
- }
- }
- else if (md && (md->getClassDef() || md->getNamespaceDef()))
- // member in class or namespace scope
- {
- SrcLangExt lang = md->getLanguage();
- t << convertToXML(d->getOuterScope()->qualifiedName())
- << getLanguageSpecificSeparator(lang) << prefix;
- found = TRUE;
- }
- else if (scope) // some thing else? -> show scope
- {
- t << prefix << convertToXML(scope->name());
- found = TRUE;
- }
- if (!found) // fallback
- {
- t << prefix << "("+theTranslator->trGlobalNamespace()+")";
- }
- t << "</a>" << endl;
- prevScope = scope;
- childCount++;
- }
- t << " </div>" << endl; // SRChildren
- }
- t << " </div>" << endl; // SREntry
- t << "</div>" << endl; // SRResult
- itemCount++;
- }
- t << "<div class=\"SRStatus\" id=\"Searching\">"
- << theTranslator->trSearching() << "</div>" << endl;
- t << "<div class=\"SRStatus\" id=\"NoMatches\">"
- << theTranslator->trNoMatches() << "</div>" << endl;
-
- t << "<script type=\"text/javascript\"><!--" << endl;
- t << "document.getElementById(\"Loading\").style.display=\"none\";" << endl;
- t << "document.getElementById(\"NoMatches\").style.display=\"none\";" << endl;
- t << "var searchResults = new SearchResults(\"searchResults\");" << endl;
- t << "searchResults.Search();" << endl;
- t << "--></script>" << endl;
-
- t << "</div>" << endl; // SRIndex
-
- t << "</body>" << endl;
- t << "</html>" << endl;
-
- }
- else
- {
- err("Failed to open file '%s' for writing...\n",fileName.data());
- }
- }
- }
- }
- //ol.popGeneratorState();
-
- {
- QFile f(searchDirName+"/search.js");
- if (f.open(IO_WriteOnly))
- {
- FTextStream t(&f);
- t << "// Search script generated by doxygen" << endl;
- t << "// Copyright (C) 2009 by Dimitri van Heesch." << endl << endl;
- t << "// The code in this file is loosly based on main.js, part of Natural Docs," << endl;
- t << "// which is Copyright (C) 2003-2008 Greg Valure" << endl;
- t << "// Natural Docs is licensed under the GPL." << endl << endl;
- t << "var indexSectionsWithContent =" << endl;
- t << "{" << endl;
- bool first=TRUE;
- int j=0;
- for (i=0;i<NUM_SEARCH_INDICES;i++)
- {
- if (g_searchIndexCount[i]>0)
- {
- if (!first) t << "," << endl;
- t << " " << j << ": \"";
- for (p=0;p<MEMBER_INDEX_ENTRIES;p++)
- {
- t << (g_searchIndexSymbols[i][p].count()>0 ? "1" : "0");
- }
- t << "\"";
- first=FALSE;
- j++;
- }
- }
- if (!first) t << "\n";
- t << "};" << endl << endl;
- t << "var indexSectionNames =" << endl;
- t << "{" << endl;
- first=TRUE;
- j=0;
- for (i=0;i<NUM_SEARCH_INDICES;i++)
- {
- if (g_searchIndexCount[i]>0)
- {
- if (!first) t << "," << endl;
- t << " " << j << ": \"" << g_searchIndexName[i] << "\"";
- first=FALSE;
- j++;
- }
- }
- if (!first) t << "\n";
- t << "};" << endl << endl;
- t << search_script;
- }
- }
- {
- QFile f(searchDirName+"/nomatches.html");
- if (f.open(IO_WriteOnly))
- {
- FTextStream t(&f);
- t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
- "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" << endl;
- t << "<html><head><title></title>" << endl;
- t << "<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>" << endl;
- t << "<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>" << endl;
- t << "<script type=\"text/javascript\" src=\"search.js\"></script>" << endl;
- t << "</head>" << endl;
- t << "<body class=\"SRPage\">" << endl;
- t << "<div id=\"SRIndex\">" << endl;
- t << "<div class=\"SRStatus\" id=\"NoMatches\">"
- << theTranslator->trNoMatches() << "</div>" << endl;
- t << "</div>" << endl;
- t << "</body>" << endl;
- t << "</html>" << endl;
- }
- }
- Doxygen::indexList.addStyleSheetFile("search/search.js");
-}
-
-void writeSearchCategories(FTextStream &t)
-{
- static SearchIndexCategoryMapping map;
- int i,j=0;
- for (i=0;i<NUM_SEARCH_INDICES;i++)
- {
- if (g_searchIndexCount[i]>0)
- {
- t << "<a class=\"SelectItem\" href=\"javascript:void(0)\" "
- << "onclick=\"searchBox.OnSelectItem(" << j << ")\">"
- << "<span class=\"SelectionMark\">&#160;</span>"
- << convertToXML(map.categoryLabel[i])
- << "</a>";
- j++;
- }
- }
-}
-
//----------------------------------------------------------------------------
static void writeExampleIndex(OutputList &ol)