90 T *
get()
const {
return m_ptr; }
91 operator bool()
const {
return m_ptr!=0; }
112 operator bool()
const {
return m_ptr!=0; }
158 QListIterator<TemplateVariant>
m_it;
184 if (index>=0 && index<
count())
254 if (
m_map.find(name))
256 err(
"Error: adding property '%s' more than once",name);
260 m_map.insert(name,
new PropertyFunc(handle));
273 PropertyFuncIntf *func =
m_map.find(name);
276 result = (*func)(obj);
302 QStrListIterator li(*list);
304 for (li.toFirst();(s=li.current());++li)
335 const ConfigValues::Info *option = ConfigValues::instance().get(name);
338 switch (option->type)
340 case ConfigValues::Info::Bool:
342 bool b = ConfigValues::instance().*((ConfigValues::InfoBool*)option)->item;
345 case ConfigValues::Info::Int:
347 int i = ConfigValues::instance().*((ConfigValues::InfoInt*)option)->item;
350 case ConfigValues::Info::String:
352 QCString s = ConfigValues::instance().*((ConfigValues::InfoString*)option)->item;
355 case ConfigValues::Info::List:
357 const QStrList &l = ConfigValues::instance().*((ConfigValues::InfoList*)option)->item;
389 static bool init=FALSE;
403 return s_inst.get(
this,n);
450 err(
"tr.generateAt should take two arguments, got %d!\n",args.count());
462 err(
"tr.inheritanceDiagramFor should take one argument, got %d!\n",args.count());
474 err(
"tr.collaborationDiagramFor should take one argument, got %d!\n",args.count());
486 err(
"tr.dirDependencyGraphFor should take one argument, got %d!\n",args.count());
498 err(
"tr.inheritsList should take one integer argument, got %d!\n",args.count());
510 err(
"tr.inheritedByList should take one integer argument, got %d!\n",args.count());
522 err(
"tr.*List should take one integer argument, got %d!\n",args.count());
534 err(
"tr.implementedBy should take one integer argument, got %d!\n",args.count());
546 err(
"tr.reimplementedBy should take one integer argument, got %d!\n",args.count());
558 err(
"tr.sourceRefs should take one integer argument, got %d\n",args.count());
570 err(
"tr.sourceRefBys should take one integer argument, got %d\n",args.count());
582 err(
"tr.includeDependencyGraph should take one string argument, got %d\n",args.count());
595 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleGeneratedAt>(
this);
599 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleInheritanceDiagramFor>(
this);
603 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleCollaborationDiagramFor>(
this);
607 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleDirDependencyGraphFor>(
this);
781 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleInheritsList>(
this);
785 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleInheritedByList>(
this);
797 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleWriteList>(
this);
837 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleImplementedBy>(
this);
841 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleReimplementedBy>(
this);
845 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleSourceRefs>(
this);
849 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleSourceRefBys>(
this);
869 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleIncludeDependencyGraph>(
this);
1016 static bool init=FALSE;
1215 return s_inst.get(
this,n);
1243 const QCString &relPath,
const QCString &docStr,
bool isBrief)
1268 err(
"context.cpp: output format not yet supported");
1272 bool isEmpty = root->
isEmpty();
1282 const QCString &code,
int startLine=-1,
int endLine=-1,
bool showLineNumbers=FALSE)
1294 startLine,endLine,TRUE,md,showLineNumbers,md);
1301 startLine,endLine,TRUE,md,showLineNumbers,md);
1306 err(
"context.cpp: output format not yet supported");
1314 static bool filterSourceFiles =
Config_getBool(FILTER_SOURCE_FILES);
1361 err(
"context.cpp: output format not yet supported");
1371 template<
typename T>
1449 return createSubdirs ? QCString(
"../../") : QCString(
"");
1464 return *cache.details;
1482 return *cache.brief;
1500 return *cache.inbodyDocs;
1509 QCString result =
"unknown";
1532 QCString result =
"unspecified";
1551 if (cache.sourceDef->count()==2)
1553 return cache.sourceDef.get();
1588 cache.navPath.reset(list);
1590 return cache.navPath.get();
1657 Cachable *c =
static_cast<Cachable*
>(
m_def->
cookie());
1676 static bool init=FALSE;
1688 return s_inst.get(
this,n);
1751 QListIterator<IncludeInfo> li(list);
1753 for (li.toFirst();(ii=li.current());++li)
1781 return p->
at(index);
1799 static bool init=FALSE;
1876 return s_inst.get(
this,n);
1931 if (haveDot && (classDiagrams || classGraph))
1936 else if (classDiagrams)
1948 if (haveDot && (classDiagrams || classGraph))
1974 err(
"context.cpp: output format not yet supported");
1979 else if (classDiagrams)
1988 t <<
"<div class=\"center\">" <<
endl;
1991 t <<
".png\" usemap=\"#" <<
convertToId(name) <<
"_map\" alt=\"\"/>" <<
endl;
1992 t <<
"<map id=\"" <<
convertToId(name) <<
"_map\" name=\"" << name <<
"_map\">" <<
endl;
2006 err(
"context.cpp: output format not yet supported");
2057 err(
"context.cpp: output format not yet supported");
2293 for (sdi.toFirst();(cd=sdi.current());++sdi)
2295 if (cd->visibleInParentsDeclList())
2315 for (sdi.toFirst();(cd=sdi.current());++sdi)
2317 if (cd->name().find(
'@')==-1 &&
2318 cd->isLinkableInProject() &&
2319 cd->isEmbeddedInOuterScope() &&
2320 cd->partOfGroups()==0
2360 for (it.toFirst();(ex=it.current());++it)
2363 s->
set(
"text",ex->name);
2364 s->
set(
"isLinkable",TRUE);
2365 s->
set(
"anchor",ex->anchor);
2366 s->
set(
"fileName",ex->file);
2367 s->
set(
"isReference",FALSE);
2368 s->
set(
"externalReference",
"");
2416 for (li.toFirst();(md=li.current());++li)
2668 static bool init=FALSE;
2697 return s_inst.get(
this,n);
2729 for (sdi.toFirst();(cd=sdi.current());++sdi)
2731 if (cd->visibleInParentsDeclList())
2751 for (sdi.toFirst();(nd=sdi.current());++sdi)
2753 if (nd->isLinkable() && !nd->isConstantGroup())
2773 for (sdi.toFirst();(nd=sdi.current());++sdi)
2775 if (nd->isLinkable() && nd->isConstantGroup())
2870 for (sdi.toFirst();(cd=sdi.current());++sdi)
2872 if (cd->name().find(
'@')==-1 &&
2873 cd->isLinkableInProject() &&
2874 cd->isEmbeddedInOuterScope() &&
2875 cd->partOfGroups()==0)
2941 static bool init=FALSE;
2981 return s_inst.get(
this,n);
3061 err(
"context.cpp: output format not yet supported");
3113 err(
"context.cpp: output format not yet supported");
3158 for (sdi.toFirst();(cd=sdi.current());++sdi)
3160 if (cd->visibleInParentsDeclList())
3180 for (sdi.toFirst();(nd=sdi.current());++sdi)
3182 if (nd->isLinkable() && !nd->isConstantGroup())
3202 for (sdi.toFirst();(nd=sdi.current());++sdi)
3204 if (nd->isLinkable() && nd->isConstantGroup())
3307 for (sdi.toFirst();(cd=sdi.current());++sdi)
3309 if (cd->name().find(
'@')==-1 &&
3310 cd->isLinkableInProject() &&
3311 cd->isEmbeddedInOuterScope() &&
3312 cd->partOfGroups()==0)
3388 static bool init=FALSE;
3409 return s_inst.get(
this,n);
3434 QListIterator<DirDef> it(subDirs);
3436 for (it.toFirst();(dd=it.current());++it)
3453 QListIterator<FileDef> it(*files);
3455 for (it.toFirst();(fd=it.current());++it)
3490 if (haveDot && dirGraph)
3502 if (haveDot && dirGraph)
3534 err(
"context.cpp: output format not yet supported");
3589 static bool init=FALSE;
3604 return s_inst.get(
this,n);
3698 p =
new Private(pd,isMainPage,isExample);
3729 case '<':
m_ts <<
"<";
break;
3730 case '>':
m_ts <<
">";
break;
3731 case '\'':
m_ts <<
"'";
break;
3732 case '"':
m_ts <<
""";
break;
3733 case '&':
m_ts <<
"&";
break;
3734 case ' ':
m_ts <<
" ";
break;
3747 for (
int i=0;i<indent;i++)
3754 const char *anchor,
const char *name
3759 m_ts <<
"<a class=\"elRef\" ";
3764 m_ts <<
"<a class=\"el\" ";
3769 if (anchor)
m_ts <<
"#" << anchor;
3794 for (
int i=0;i<indent;i++)
3800 const char *anchor,
const char *text
3804 if (!ref && pdfHyperlinks)
3806 m_ts <<
"\\hyperlink{";
3808 if (f && anchor)
m_ts <<
"_";
3809 if (anchor)
m_ts << anchor;
3879 static bool init=FALSE;
4024 return s_inst.get(
this,n);
4345 return !name.isEmpty() && name.at(0)==
'@';
4598 for (ali.toFirst();(tal=ali.current());++ali)
4611 QList<ArgumentList> tempParamLists;
4614 QListIterator<ArgumentList> ali(tempParamLists);
4616 for (ali.toFirst();(tal=ali.current());++ali)
4654 QStrListIterator it(sl);
4655 for (;it.current();++it)
4675 for (ali.toFirst();(a=ali.current());++ali)
4677 if (a->hasDocumentation())
4680 paramDocs+=
"@param"+direction+
" "+a->name+
" "+a->docs;
4743 for (mli.toFirst();(md=mli.current());++mli)
4767 for (mli.toFirst();(md=mli.current());++mli)
4786 for (it.toFirst();(ex=it.current());++it)
4789 s->
set(
"text",ex->name);
4790 s->
set(
"isLinkable",TRUE);
4791 s->
set(
"anchor",ex->anchor);
4792 s->
set(
"fileName",ex->file);
4793 s->
set(
"isReference",FALSE);
4794 s->
set(
"externalReference",
"");
4865 QCString codeFragment;
4870 startLine,endLine,codeFragment)
4937 err(
"context.cpp: output format not yet supported");
4997 err(
"context.cpp: output format not yet supported");
5014 if (args.count()==1)
5020 err(
".detailsVisibleFor should take one string argument, got %d\n",args.count());
5026 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleDetailsVisibleFor>(
this);
5030 if (args.count()==1)
5034 QCString ctx = args[0].toString();
5052 err(
".nameWithContextFor should take one string argument, got %d\n",args.count());
5058 return TemplateVariant::Delegate::fromMethod<Private,&Private::handleNameWithContextFor>(
this);
5139 static bool init=FALSE;
5192 return s_inst.get(
this,n);
5220 if (haveDot && groupGraphs)
5232 if (haveDot && groupGraphs)
5262 err(
"context.cpp: output format not yet supported");
5283 for (gli.toFirst();(gd=gli.current());++gli)
5285 if (gd->isVisible())
5305 for (eli.toFirst();(ex=eli.current());++eli)
5324 for (eli.toFirst();(ex=eli.current());++eli)
5343 for (it.toFirst();(dd=it.current());++it)
5362 for (it.toFirst();(fd=it.current());++it)
5381 for (sdi.toFirst();(cd=sdi.current());++sdi)
5383 if (cd->visibleInParentsDeclList())
5403 for (sdi.toFirst();(nd=sdi.current());++sdi)
5405 if (nd->isLinkable() && !nd->isConstantGroup())
5425 for (sdi.toFirst();(nd=sdi.current());++sdi)
5427 if (nd->isLinkable() && nd->isConstantGroup())
5595 for (sdi.toFirst();(cd=sdi.current());++sdi)
5597 if (cd->name().find(
'@')==-1 &&
5598 cd->isLinkableInProject() &&
5599 cd->isEmbeddedInOuterScope() &&
5600 cd->partOfGroups()==0)
5694 for (cli.toFirst() ; (cd=cli.current()) ; ++cli )
5732 return p->
at(index);
5748 static bool init=FALSE;
5762 return s_inst.get(
this,n);
5773 for (cli.toFirst() ; (cd=cli.current()) ; ++cli )
5806 return "classindex";
5867 if (d>maxDepth) maxDepth=d;
5897 int preferredNumEntries =
Config_getInt(HTML_INDEX_NUM_ENTRIES);
5898 int preferredDepth=1;
5899 if (preferredNumEntries>0)
5901 int depth = maxDepth;
5902 for (
int i=1;i<=depth;i++)
5912 if (num<=preferredNumEntries)
5922 return preferredDepth;
5940 static bool init=FALSE;
5957 return s_inst.get(
this,n);
5977 return "classhierarchy";
5996 QListIterator<DotNode> li(*hierarchy->
subGraphs());
5998 for (li.toFirst();(n=li.current());++li)
6069 return p->
get(name);
6080 Definition *d,
int index,
int level,
bool addCls,
bool inherit,
bool hideSuper)
6084 static bool init=FALSE;
6128 return s_inst.get(
this,n);
6236 result+=QCString().setNum(
m_index)+
"_";
6246 return createSubdirs ? QCString(
"../../") : QCString(
"");
6379 Definition *d,
int index,
int level,
bool addClass,
bool inherit,
bool hideSuper)
6382 p =
new Private(parent,
this,d,index,level,addClass,inherit,hideSuper);
6413 for (nli.toFirst();(nd=nli.current());++nli)
6420 if (isLinkable || hasChildren)
6433 for (;(cd=cli.current());++cli)
6462 for (dli.toFirst();(dd=dli.current());++dli)
6473 QListIterator<DirDef> li(dirList);
6475 for (li.toFirst();(dd=li.current());++li)
6485 for (fnli.toFirst();(fn=fnli.current());++fnli)
6489 for (;(fd=fni.current());++fni)
6501 QListIterator<FileDef> li(fList);
6503 for (li.toFirst();(fd=li.current());++li)
6513 for (pli.toFirst();(pd=pli.current());++pli)
6528 for (gli.toFirst();(gd=gli.current());++gli)
6544 for (gli.toFirst();(gd=gli.current());++gli)
6558 for (bcli.toFirst() ; (bcd=bcli.current()) ; ++bcli)
6588 for (cli.toFirst();(cd=cli.current());++cli)
6640 return p->
at(index);
6722 static bool init=FALSE;
6738 return s_inst.get(
this,n);
6825 return p->
get(name);
6838 for (nli.toFirst();(nd=nli.current());++nli)
6867 return p->
at(index);
6890 static bool init=FALSE;
6906 return s_inst.get(
this,n);
6914 return "namespaces";
6922 return "namespaces";
6926 return "namespacelist";
6933 if (javaOpt || vhdlOpt)
6937 else if (fortranOpt)
6993 return p->
get(name);
7007 for (fnli.toFirst();(fn=fnli.current());++fnli)
7011 for (fni.toFirst();(fd=fni.current());++fni)
7044 return p->
at(index);
7062 for (sdi.toFirst();(dir=sdi.current());++sdi)
7087 return p->
at(index);
7113 QListIterator<FileDef> li(cd->
usedFiles());
7115 for (li.toFirst();(fd=li.current());++li)
7135 return p->
at(index);
7168 static bool init=FALSE;
7184 return s_inst.get(
this,n);
7258 return p->
get(name);
7278 static bool init=FALSE;
7294 return s_inst.get(
this,n);
7367 return p->
get(name);
7380 for (pdi.toFirst();(pd=pdi.current());++pdi)
7409 return p->
at(index);
7429 for (pdi.toFirst();(pd=pdi.current());++pdi)
7458 return p->
at(index);
7476 for (gli.toFirst();(gd=gli.current());++gli)
7505 return p->
at(index);
7530 static bool init=FALSE;
7546 return s_inst.get(
this,n);
7619 return p->
get(name);
7631 static bool init=FALSE;
7645 return s_inst.get(
this,n);
7673 if (text.right(2)==
"-p")
7675 text = text.left(text.length()-2);
7687 return createSubdirs ? QCString(
"../../") : QCString(
"");
7713 return p->
get(name);
7733 static bool init=FALSE;
7749 return s_inst.get(
this,n);
7822 return p->
get(name);
7834 static bool init=FALSE;
7857 return s_inst.get(
this,n);
7867 for (fnli.toFirst();(mn=fnli.current());++fnli)
7871 for (mni.toFirst();(md=mni.current());++mni)
7877 if (filter==0 || (md->*filter)())
7884 listRef.
reset(list);
7886 return listRef.
get();
7942 return "filemembers";
7979 return p->
get(name);
7991 static bool init=FALSE;
8014 return s_inst.get(
this,n);
8024 for (mnli.toFirst();(mn=mnli.current());++mnli)
8028 for (mni.toFirst();(md=mni.current());++mni)
8034 if (filter==0 || (md->*filter)())
8041 listRef.
reset(list);
8043 return listRef.
get();
8099 return "classmembers";
8138 return p->
get(name);
8150 static bool init=FALSE;
8173 return s_inst.get(
this,n);
8183 for (fnli.toFirst();(mn=fnli.current());++fnli)
8187 for (mni.toFirst();(md=mni.current());++mni)
8193 if (filter==0 || (md->*filter)())
8200 listRef.
reset(list);
8202 return listRef.
get();
8246 return "namespacemembers";
8254 return "namespaces";
8258 return "namespacemembers";
8294 return p->
get(name);
8306 static bool init=FALSE;
8315 return s_inst.get(
this,n);
8321 static bool graphicalHierarchy =
Config_getBool(GRAPHICAL_HIERARCHY);
8322 if (haveDot && graphicalHierarchy)
8356 return p->
get(name);
8369 static bool init=FALSE;
8379 return s_inst.get(
this,n);
8415 return p->
get(name);
8437 for (li.toFirst();(bcd=li.current());++li)
8469 return p->
at(index);
8502 for (mli.toFirst();(md=mli.current());++mli)
8525 for (it.toFirst();(md=it.current());++it)
8545 return p->
at(index);
8562 static bool init=FALSE;
8578 return s_inst.get(
this,n);
8641 return p->
get(name);
8655 static bool hideUndocMembers =
Config_getBool(HIDE_UNDOC_MEMBERS);
8658 for (mnii.toFirst();(mni=mnii.current());++mnii)
8662 for (mnii2.toFirst();(mi=mnii2.current());++mnii2)
8666 if (cd && !md->
name().isEmpty() && md->
name()[0]!=
'@')
8706 return p->
at(index);
8726 static bool init=FALSE;
8741 return s_inst.get(
this,n);
8776 if (!docs.isEmpty())
8824 return p->
get(name);
8851 for (;(mg=mgli.current());++mgli)
8865 for (di.toFirst();(mg=di.current());++di)
8888 return p->
at(index);
8911 static bool init=FALSE;
8925 return s_inst.get(
this,n);
8994 const QCString &title,
const QCString &subtitle) :
RefCountedContext(
"MemberListInfoContext")
8996 p =
new Private(def,relPath,ml,title,subtitle);
9006 return p->
get(name);
9019 static bool init=FALSE;
9032 return s_inst.get(
this,n);
9100 return p->
get(name);
9115 for (li.toFirst();(md=li.current());++li)
9119 combinedList->
append(md);
9133 for (mgli.toFirst();(mg=mgli.current());++mgli)
9147 for (;(mg=mgli.current());++mgli)
9149 if (mg->members() && (!mg->allMembersInSameSection() || !cd->
subGrouping()))
9153 for (li.toFirst();(md=li.current());++li)
9155 if (lt==md->getSectionList(mg->parent())->listType() &&
9156 !md->isReimplementedBy(inheritedFrom) &&
9157 md->isBriefSectionVisible())
9159 combinedList->
append(md);
9167 MemberListType lt1,
int lt2,
const QCString &title,
bool additionalList)
9184 int lt2,
const QCString &title,
bool additionalList,
9185 QPtrDict<void> *visitedClasses)
9191 for (it.toFirst();(ibcd=it.current());++it)
9198 if (lt2==-1 && lt3!=-1)
9202 if (visitedClasses->find(icd)==0)
9204 visitedClasses->insert(icd,icd);
9227 QPtrDict<void> visited(17);
9229 bool show = (additionalList && !memberInSection) ||
9230 (!additionalList && memberInSection);
9251 return p->
at(index);
9269 static bool init=FALSE;
9284 return s_inst.get(
this,n);
9326 int l = result.length();
9327 if (l>2 && result.at(0)==
'[' && result.at(l-1)==
']')
9329 result = result.mid(1,l-2);
9330 if (result!=
",") result+=
":";
9361 return p->
get(name);
9389 for (ali.toFirst();(arg=ali.current());++ali)
9409 return p->
at(index);
9444 static bool init=FALSE;
9456 return s_inst.get(
this,n);
9476 bool overloadedFunction = isFunctionLike &&
9477 ((prevScope!=0 && scope==prevScope) || (scope && scope==nextScope));
9480 if (overloadedFunction)
9485 else if (md && isFunctionLike)
9509 if (!prefix.isEmpty()) prefix+=
": ";
9551 p =
new Private(def,prevDef,nextDef);
9561 return p->
get(name);
9572 QListIterator<Definition> li(*sdl);
9575 for (li.toFirst();(def=li.current());)
9604 return p->
at(index);
9621 static bool init=FALSE;
9632 return s_inst.get(
this,n);
9676 return p->
get(name);
9689 for (li.toFirst();(dl=li.current());++li)
9715 return p->
at(index);
9732 static bool init=FALSE;
9743 return s_inst.get(
this,n);
9788 return p->
get(name);
9802 for (it.toFirst();(sl=it.current());++it)
9827 return p->
at(index);
9844 static bool init=FALSE;
9855 return s_inst.get(
this,n);
9899 return p->
get(name);
9936 return p->
at(index);
9964 QCString
remove(
const QCString &s)
9967 const char *p = s.data();
9973 case '\t':
case ' ':
case '\n':
9981 return result.data();
9998 QCString
remove(
const QCString &s)
10001 const char *p = s.data();
10019 case '"':
case '\'':
10033 case ' ':
case '\t':
case '\n':
10036 m_removeSpaces=TRUE;
10046 m_removeSpaces=FALSE;
10053 return result.data();
10080 int RefCountedContext::s_totalCount;
10085 msg(
"Generating output via template engine...\n");
10115 ctx->
set(
"doxygen",doxygen.
get());
10117 ctx->
set(
"tr",tr.
get());
10119 ctx->
set(
"config",config.
get());
10121 ctx->
set(
"classList",classList.
get());
10123 ctx->
set(
"classTree",classTree.
get());
10125 ctx->
set(
"classIndex",classIndex.
get());
10127 ctx->
set(
"classHierarchy",classHierarchy.
get());
10129 ctx->
set(
"namespaceList",namespaceList.
get());
10131 ctx->
set(
"namespaceTree",namespaceTree.
get());
10133 ctx->
set(
"fileList",fileList.
get());
10135 ctx->
set(
"fileTree",fileTree.
get());
10137 ctx->
set(
"pageList",pageList.
get());
10139 ctx->
set(
"pageTree",pageTree.
get());
10141 ctx->
set(
"exampleTree",exampleTree.
get());
10143 ctx->
set(
"exampleList",exampleList.
get());
10145 ctx->
set(
"moduleTree",moduleTree.
get());
10147 ctx->
set(
"moduleList",moduleList.
get());
10149 ctx->
set(
"dirList",dirList.
get());
10154 ctx->
set(
"mainPage",mainPage.
get());
10162 ctx->
set(
"mainPage",mainPage.
get());
10165 ctx->
set(
"globalsIndex",globalsIndex.
get());
10167 ctx->
set(
"classMembersIndex",classMembersIndex.
get());
10169 ctx->
set(
"namespaceMembersIndex",namespaceMembersIndex.
get());
10171 ctx->
set(
"searchIndices",searchIndices.
get());
10173 ctx->
set(
"space",
" ");
10225 for (;(intf=di.current());++di)
10232 for (dli.toFirst();(d=dli.current());++dli)
10247 #if DEBUG_REF // should be 0, i.e. all objects are deleted
10248 printf(
"==== total ref count %d\n",RefCountedContext::s_totalCount);
10254 if (!templateDir)
return;
10256 if (!thisDir.exists(templateDir) && !thisDir.mkdir(templateDir))
10258 err(
"Failed to create output directory '%s'\n",templateDir);
10261 QCString outDir = QCString(templateDir)+
"/html";
10262 if (!thisDir.exists(outDir) && !thisDir.mkdir(outDir))
10264 err(
"Failed to create output directory '%s'\n",templateDir);