Commit a9f93437 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Fixed issues with SEPARATE_MEMBER_PAGES and INLINE_SIMPLE_STRUCTS

parent 9214d84a
...@@ -3410,10 +3410,11 @@ QCString ClassDef::compoundTypeString() const ...@@ -3410,10 +3410,11 @@ QCString ClassDef::compoundTypeString() const
QCString ClassDef::getOutputFileBase() const QCString ClassDef::getOutputFileBase() const
{ {
if (!Doxygen::generatingXmlOutput) static bool inlineGroupedClasses = Config_getBool("INLINE_GROUPED_CLASSES");
static bool inlineSimpleClasses = Config_getBool("INLINE_SIMPLE_STRUCTS");
static bool separateMemberPages = Config_getBool("SEPARATE_MEMBER_PAGES");
if (!Doxygen::generatingXmlOutput && !separateMemberPages)
{ {
static bool inlineGroupedClasses = Config_getBool("INLINE_GROUPED_CLASSES");
static bool inlineSimpleClasses = Config_getBool("INLINE_SIMPLE_STRUCTS");
Definition *scope=0; Definition *scope=0;
if (inlineGroupedClasses && partOfGroups()!=0) if (inlineGroupedClasses && partOfGroups()!=0)
{ {
......
...@@ -280,9 +280,9 @@ class HtmlGenerator : public OutputGenerator ...@@ -280,9 +280,9 @@ class HtmlGenerator : public OutputGenerator
{ t << "</table>" << endl; } { t << "</table>" << endl; }
void startDescTableTitle() void startDescTableTitle()
//{ t << "<tr><td valign=\"top\"><em>"; } //{ t << "<tr><td valign=\"top\"><em>"; }
{ t << "<tr><td class=\"fieldname\"><em>"; } { t << "<tr><td class=\"fieldname\">"; }
void endDescTableTitle() void endDescTableTitle()
{ t << "</em>&#160;</td>"; } { t << "&#160;</td>"; }
void startDescTableData() void startDescTableData()
//{ t << "<td>" << endl; } //{ t << "<td>" << endl; }
{ t << "<td class=\"fielddoc\">" << endl; } { t << "<td class=\"fielddoc\">" << endl; }
......
...@@ -345,7 +345,7 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part, ...@@ -345,7 +345,7 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
(!md->isStatic() || extractStatic) (!md->isStatic() || extractStatic)
) )
{ {
if (md->getOuterScope()==def) if (md->getOuterScope()==def || md->getOuterScope()==Doxygen::globalScope)
{ {
Doxygen::indexList->addContentsItem(isDir, Doxygen::indexList->addContentsItem(isDir,
md->name(),md->getReference(),md->getOutputFileBase(),md->anchor(),FALSE,addToIndex); md->name(),md->getReference(),md->getOutputFileBase(),md->anchor(),FALSE,addToIndex);
...@@ -366,15 +366,18 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part, ...@@ -366,15 +366,18 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
MemberDef *emd; MemberDef *emd;
for (emli.toFirst();(emd=emli.current());++emli) for (emli.toFirst();(emd=emli.current());++emli)
{ {
if (emd->getOuterScope()==def) if (!hideUndocMembers || emd->hasDocumentation())
{ {
Doxygen::indexList->addContentsItem(FALSE, if (emd->getOuterScope()==def || emd->getOuterScope()==Doxygen::globalScope)
emd->name(),emd->getReference(),emd->getOutputFileBase(),emd->anchor(),FALSE,addToIndex); {
} Doxygen::indexList->addContentsItem(FALSE,
else // inherited member emd->name(),emd->getReference(),emd->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
{ }
Doxygen::indexList->addContentsItem(FALSE, else // inherited member
emd->name(),def->getReference(),def->getOutputFileBase(),emd->anchor(),FALSE,addToIndex); {
Doxygen::indexList->addContentsItem(FALSE,
emd->name(),def->getReference(),def->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
}
} }
} }
if (!isAnonymous) if (!isAnonymous)
...@@ -398,9 +401,10 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part, ...@@ -398,9 +401,10 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
{ {
if (cd->isLinkable() && (cd->partOfGroups()==0 || def->definitionType()==Definition::TypeGroup)) if (cd->isLinkable() && (cd->partOfGroups()==0 || def->definitionType()==Definition::TypeGroup))
{ {
static bool inlineSimpleStructs = Config_getBool("INLINE_SIMPLE_STRUCTS");
bool isNestedClass = def->definitionType()==Definition::TypeClass; bool isNestedClass = def->definitionType()==Definition::TypeClass;
addMembersToIndex(cd,LayoutDocManager::Class,cd->displayName(FALSE),cd->anchor(), addMembersToIndex(cd,LayoutDocManager::Class,cd->displayName(FALSE),cd->anchor(),
addToIndex && isNestedClass, addToIndex && (isNestedClass || (cd->isSimple() && inlineSimpleStructs)),
preventSeparateIndex || cd->isEmbeddedInOuterScope()); preventSeparateIndex || cd->isEmbeddedInOuterScope());
} }
} }
...@@ -1364,7 +1368,10 @@ void writeClassTree(ClassSDict *clDict,FTVHelp *ftv,bool addToIndex,bool globalO ...@@ -1364,7 +1368,10 @@ void writeClassTree(ClassSDict *clDict,FTVHelp *ftv,bool addToIndex,bool globalO
) )
) )
{ {
addMembersToIndex(cd,LayoutDocManager::Class,cd->displayName(FALSE),cd->anchor(),cd->partOfGroups()==0); addMembersToIndex(cd,LayoutDocManager::Class,
cd->displayName(FALSE),
cd->anchor(),
cd->partOfGroups()==0 && !cd->isSimple());
} }
if (count>0) if (count>0)
{ {
......
...@@ -979,7 +979,7 @@ QCString MemberDef::getOutputFileBase() const ...@@ -979,7 +979,7 @@ QCString MemberDef::getOutputFileBase() const
); );
return "dummy"; return "dummy";
} }
else if (separateMemberPages) else if (separateMemberPages && isDetailedSectionLinkable())
{ {
if (getEnumScope()) // enum value, which is part of enum's documentation if (getEnumScope()) // enum value, which is part of enum's documentation
{ {
...@@ -1791,11 +1791,12 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -1791,11 +1791,12 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol.writeDoc(rootNode,getOuterScope()?getOuterScope():d,this); ol.writeDoc(rootNode,getOuterScope()?getOuterScope():d,this);
if (detailsVisible) if (detailsVisible)
{ {
static bool separateMemberPages = Config_getBool("SEPARATE_MEMBER_PAGES");
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
//ol.endEmphasis(); //ol.endEmphasis();
ol.docify(" "); ol.docify(" ");
if (m_impl->group!=0 && gd==0) // forward link to the group if (separateMemberPages || (m_impl->group!=0 && gd==0)) // forward link to the page or group
{ {
ol.startTextLink(getOutputFileBase(),anchor()); ol.startTextLink(getOutputFileBase(),anchor());
} }
...@@ -1899,7 +1900,7 @@ bool MemberDef::isDetailedSectionVisible(bool inGroup,bool inFile) const ...@@ -1899,7 +1900,7 @@ bool MemberDef::isDetailedSectionVisible(bool inGroup,bool inFile) const
static bool hideUndocMembers = Config_getBool("HIDE_UNDOC_MEMBERS"); static bool hideUndocMembers = Config_getBool("HIDE_UNDOC_MEMBERS");
bool groupFilter = getGroupDef()==0 || inGroup || separateMemPages; bool groupFilter = getGroupDef()==0 || inGroup || separateMemPages;
bool fileFilter = getNamespaceDef()==0 || !inFile; bool fileFilter = getNamespaceDef()==0 || !inFile;
bool simpleFilter = !hideUndocMembers && inlineSimpleStructs && bool simpleFilter = (hasBriefDescription() || !hideUndocMembers) && inlineSimpleStructs &&
getClassDef()!=0 && getClassDef()->isSimple(); getClassDef()!=0 && getClassDef()->isSimple();
bool visible = isDetailedSectionLinkable() && groupFilter && fileFilter && bool visible = isDetailedSectionLinkable() && groupFilter && fileFilter &&
...@@ -2317,7 +2318,7 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container, ...@@ -2317,7 +2318,7 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container,
Doxygen::indexList->addIndexItem(container,fmd); Doxygen::indexList->addIndexItem(container,fmd);
//ol.writeListItem(); //ol.writeListItem();
ol.startDescTableTitle(); // this enables emphasis! ol.startDescTableTitle();
ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString()); ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString());
first=FALSE; first=FALSE;
//ol.startEmphasis(); //ol.startEmphasis();
......
...@@ -379,9 +379,18 @@ void MemberList::writePlainDeclarations(OutputList &ol, ...@@ -379,9 +379,18 @@ void MemberList::writePlainDeclarations(OutputList &ol,
} }
ol.startMemberDeclaration(); ol.startMemberDeclaration();
ol.startMemberItem(md->anchor(),0,inheritId); ol.startMemberItem(md->anchor(),0,inheritId);
bool detailsLinkable = md->isDetailedSectionLinkable();
if (!detailsLinkable)
{
ol.startDoxyAnchor(md->getOutputFileBase(),0,md->anchor(),md->name(),QCString());
}
ol.writeString("enum "); ol.writeString("enum ");
ol.insertMemberAlign(); ol.insertMemberAlign();
md->writeEnumDeclaration(ol,cd,nd,fd,gd,compoundType); md->writeEnumDeclaration(ol,cd,nd,fd,gd,compoundType);
if (!detailsLinkable)
{
ol.endDoxyAnchor(md->getOutputFileBase(),md->anchor());
}
ol.endMemberItem(); ol.endMemberItem();
if (!md->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!md->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
...@@ -694,52 +703,53 @@ void MemberList::writeDocumentationPage(OutputList &ol, ...@@ -694,52 +703,53 @@ void MemberList::writeDocumentationPage(OutputList &ol,
MemberDef *md; MemberDef *md;
for ( ; (md=mli.current()) ; ++mli) for ( ; (md=mli.current()) ; ++mli)
{ {
QCString diskName=md->getOutputFileBase(); if (md->isDetailedSectionLinkable())
QCString title=md->qualifiedName();
startFile(ol,diskName,md->name(),title,HLI_None,!generateTreeView,
container->getOutputFileBase());
if (!generateTreeView)
{ {
container->writeNavigationPath(ol); QCString diskName=md->getOutputFileBase();
ol.endQuickIndices(); QCString title=md->qualifiedName();
} startFile(ol,diskName,md->name(),title,HLI_None,!generateTreeView,diskName);
ol.startContents(); if (!generateTreeView)
{
container->writeNavigationPath(ol);
ol.endQuickIndices();
}
ol.startContents();
if (generateTreeView) if (generateTreeView)
{ {
md->writeDocumentation(this,ol,scopeName,container,m_inGroup); md->writeDocumentation(this,ol,scopeName,container,m_inGroup);
ol.endContents(); ol.endContents();
endFileWithNavPath(container,ol); endFileWithNavPath(container,ol);
} }
else else
{ {
ol.writeString("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n" ol.writeString("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"
" <tr>\n" " <tr>\n"
" <td valign=\"top\">\n"); " <td valign=\"top\">\n");
container->writeQuickMemberLinks(ol,md); container->writeQuickMemberLinks(ol,md);
ol.writeString(" </td>\n"); ol.writeString(" </td>\n");
ol.writeString(" <td valign=\"top\" class=\"mempage\">\n"); ol.writeString(" <td valign=\"top\" class=\"mempage\">\n");
md->writeDocumentation(this,ol,scopeName,container,m_inGroup); md->writeDocumentation(this,ol,scopeName,container,m_inGroup);
ol.writeString(" </td>\n"); ol.writeString(" </td>\n");
ol.writeString(" </tr>\n"); ol.writeString(" </tr>\n");
ol.writeString("</table>\n"); ol.writeString("</table>\n");
endFile(ol); endFile(ol);
}
} }
} if (memberGroupList)
if (memberGroupList)
{
//printf("MemberList::writeDocumentation() -- member groups\n");
MemberGroupListIterator mgli(*memberGroupList);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{ {
mg->writeDocumentationPage(ol,scopeName,container); //printf("MemberList::writeDocumentation() -- member groups\n");
MemberGroupListIterator mgli(*memberGroupList);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
mg->writeDocumentationPage(ol,scopeName,container);
}
} }
} }
} }
......
...@@ -116,11 +116,13 @@ var animationInProgress = false; ...@@ -116,11 +116,13 @@ var animationInProgress = false;
function gotoAnchor(anchor,aname,updateLocation) function gotoAnchor(anchor,aname,updateLocation)
{ {
var pos, docContent = $('#doc-content'); var pos, docContent = $('#doc-content');
if (anchor.parent().attr('class')=='memItemLeft' || var ancParent = $(anchor.parent());
anchor.parent().attr('class')=='fieldtype' || if (ancParent.hasClass('memItemLeft') ||
anchor.parent().is(':header')) ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') ||
ancParent.is(':header'))
{ {
pos = anchor.parent().position().top; pos = ancParent.position().top;
} else if (anchor.position()) { } else if (anchor.position()) {
pos = anchor.position().top; pos = anchor.position().top;
} }
...@@ -278,8 +280,8 @@ function highlightAnchor() ...@@ -278,8 +280,8 @@ function highlightAnchor()
var rows = $('.memberdecls tr[class$="'+ var rows = $('.memberdecls tr[class$="'+
window.location.hash.substring(1).replace(/</g,'\\3c ')+'"]'); window.location.hash.substring(1).replace(/</g,'\\3c ')+'"]');
glowEffect(rows.children(),300); // member without details glowEffect(rows.children(),300); // member without details
} else if (anchor.parents().slice(2).prop('tagName')=='TR') { } else if (anchor.parent().attr('class')=='fieldname'){
glowEffect(anchor.parents('div.memitem'),1000); // enum value glowEffect(anchor.parent().parent(),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldtype'){ } else if (anchor.parent().attr('class')=='fieldtype'){
glowEffect(anchor.parent().parent(),1000); // struct field glowEffect(anchor.parent().parent(),1000); // struct field
} else if (anchor.parent().is(":header")) { } else if (anchor.parent().is(":header")) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment