Skip to content

Commit

Permalink
Fixed issues with SEPARATE_MEMBER_PAGES and INLINE_SIMPLE_STRUCTS
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimitri van Heesch committed Jan 19, 2014
1 parent 9214d84 commit a9f9343
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 63 deletions.
7 changes: 4 additions & 3 deletions src/classdef.cpp
Expand Up @@ -3410,10 +3410,11 @@ QCString ClassDef::compoundTypeString() 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;
if (inlineGroupedClasses && partOfGroups()!=0)
{
Expand Down
4 changes: 2 additions & 2 deletions src/htmlgen.h
Expand Up @@ -280,9 +280,9 @@ class HtmlGenerator : public OutputGenerator
{ t << "</table>" << endl; }
void startDescTableTitle()
//{ t << "<tr><td valign=\"top\"><em>"; }
{ t << "<tr><td class=\"fieldname\"><em>"; }
{ t << "<tr><td class=\"fieldname\">"; }
void endDescTableTitle()
{ t << "</em>&#160;</td>"; }
{ t << "&#160;</td>"; }
void startDescTableData()
//{ t << "<td>" << endl; }
{ t << "<td class=\"fielddoc\">" << endl; }
Expand Down
29 changes: 18 additions & 11 deletions src/index.cpp
Expand Up @@ -345,7 +345,7 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
(!md->isStatic() || extractStatic)
)
{
if (md->getOuterScope()==def)
if (md->getOuterScope()==def || md->getOuterScope()==Doxygen::globalScope)
{
Doxygen::indexList->addContentsItem(isDir,
md->name(),md->getReference(),md->getOutputFileBase(),md->anchor(),FALSE,addToIndex);
Expand All @@ -366,15 +366,18 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
MemberDef *emd;
for (emli.toFirst();(emd=emli.current());++emli)
{
if (emd->getOuterScope()==def)
if (!hideUndocMembers || emd->hasDocumentation())
{
Doxygen::indexList->addContentsItem(FALSE,
emd->name(),emd->getReference(),emd->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
}
else // inherited member
{
Doxygen::indexList->addContentsItem(FALSE,
emd->name(),def->getReference(),def->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
if (emd->getOuterScope()==def || emd->getOuterScope()==Doxygen::globalScope)
{
Doxygen::indexList->addContentsItem(FALSE,
emd->name(),emd->getReference(),emd->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
}
else // inherited member
{
Doxygen::indexList->addContentsItem(FALSE,
emd->name(),def->getReference(),def->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
}
}
}
if (!isAnonymous)
Expand All @@ -398,9 +401,10 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
{
if (cd->isLinkable() && (cd->partOfGroups()==0 || def->definitionType()==Definition::TypeGroup))
{
static bool inlineSimpleStructs = Config_getBool("INLINE_SIMPLE_STRUCTS");
bool isNestedClass = def->definitionType()==Definition::TypeClass;
addMembersToIndex(cd,LayoutDocManager::Class,cd->displayName(FALSE),cd->anchor(),
addToIndex && isNestedClass,
addToIndex && (isNestedClass || (cd->isSimple() && inlineSimpleStructs)),
preventSeparateIndex || cd->isEmbeddedInOuterScope());
}
}
Expand Down Expand Up @@ -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)
{
Expand Down
9 changes: 5 additions & 4 deletions src/memberdef.cpp
Expand Up @@ -979,7 +979,7 @@ QCString MemberDef::getOutputFileBase() const
);
return "dummy";
}
else if (separateMemberPages)
else if (separateMemberPages && isDetailedSectionLinkable())
{
if (getEnumScope()) // enum value, which is part of enum's documentation
{
Expand Down Expand Up @@ -1791,11 +1791,12 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol.writeDoc(rootNode,getOuterScope()?getOuterScope():d,this);
if (detailsVisible)
{
static bool separateMemberPages = Config_getBool("SEPARATE_MEMBER_PAGES");
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
//ol.endEmphasis();
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());
}
Expand Down Expand Up @@ -1899,7 +1900,7 @@ bool MemberDef::isDetailedSectionVisible(bool inGroup,bool inFile) const
static bool hideUndocMembers = Config_getBool("HIDE_UNDOC_MEMBERS");
bool groupFilter = getGroupDef()==0 || inGroup || separateMemPages;
bool fileFilter = getNamespaceDef()==0 || !inFile;
bool simpleFilter = !hideUndocMembers && inlineSimpleStructs &&
bool simpleFilter = (hasBriefDescription() || !hideUndocMembers) && inlineSimpleStructs &&
getClassDef()!=0 && getClassDef()->isSimple();

bool visible = isDetailedSectionLinkable() && groupFilter && fileFilter &&
Expand Down Expand Up @@ -2317,7 +2318,7 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container,
Doxygen::indexList->addIndexItem(container,fmd);

//ol.writeListItem();
ol.startDescTableTitle(); // this enables emphasis!
ol.startDescTableTitle();
ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString());
first=FALSE;
//ol.startEmphasis();
Expand Down
84 changes: 47 additions & 37 deletions src/memberlist.cpp
Expand Up @@ -379,9 +379,18 @@ void MemberList::writePlainDeclarations(OutputList &ol,
}
ol.startMemberDeclaration();
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.insertMemberAlign();
md->writeEnumDeclaration(ol,cd,nd,fd,gd,compoundType);
if (!detailsLinkable)
{
ol.endDoxyAnchor(md->getOutputFileBase(),md->anchor());
}
ol.endMemberItem();
if (!md->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{
Expand Down Expand Up @@ -694,52 +703,53 @@ void MemberList::writeDocumentationPage(OutputList &ol,
MemberDef *md;
for ( ; (md=mli.current()) ; ++mli)
{
QCString diskName=md->getOutputFileBase();
QCString title=md->qualifiedName();
startFile(ol,diskName,md->name(),title,HLI_None,!generateTreeView,
container->getOutputFileBase());
if (!generateTreeView)
if (md->isDetailedSectionLinkable())
{
container->writeNavigationPath(ol);
ol.endQuickIndices();
}
ol.startContents();

QCString diskName=md->getOutputFileBase();
QCString title=md->qualifiedName();
startFile(ol,diskName,md->name(),title,HLI_None,!generateTreeView,diskName);
if (!generateTreeView)
{
container->writeNavigationPath(ol);
ol.endQuickIndices();
}
ol.startContents();

if (generateTreeView)
{
md->writeDocumentation(this,ol,scopeName,container,m_inGroup);
ol.endContents();
endFileWithNavPath(container,ol);
}
else
{
ol.writeString("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"
" <tr>\n"
" <td valign=\"top\">\n");
if (generateTreeView)
{
md->writeDocumentation(this,ol,scopeName,container,m_inGroup);
ol.endContents();
endFileWithNavPath(container,ol);
}
else
{
ol.writeString("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"
" <tr>\n"
" <td valign=\"top\">\n");

container->writeQuickMemberLinks(ol,md);
container->writeQuickMemberLinks(ol,md);

ol.writeString(" </td>\n");
ol.writeString(" <td valign=\"top\" class=\"mempage\">\n");
ol.writeString(" </td>\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(" </tr>\n");
ol.writeString("</table>\n");
ol.writeString(" </td>\n");
ol.writeString(" </tr>\n");
ol.writeString("</table>\n");

endFile(ol);
endFile(ol);
}
}
}
if (memberGroupList)
{
//printf("MemberList::writeDocumentation() -- member groups\n");
MemberGroupListIterator mgli(*memberGroupList);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
if (memberGroupList)
{
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);
}
}
}
}
Expand Down
14 changes: 8 additions & 6 deletions src/navtree.js
Expand Up @@ -116,11 +116,13 @@ var animationInProgress = false;
function gotoAnchor(anchor,aname,updateLocation)
{
var pos, docContent = $('#doc-content');
if (anchor.parent().attr('class')=='memItemLeft' ||
anchor.parent().attr('class')=='fieldtype' ||
anchor.parent().is(':header'))
var ancParent = $(anchor.parent());
if (ancParent.hasClass('memItemLeft') ||
ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') ||
ancParent.is(':header'))
{
pos = anchor.parent().position().top;
pos = ancParent.position().top;
} else if (anchor.position()) {
pos = anchor.position().top;
}
Expand Down Expand Up @@ -278,8 +280,8 @@ function highlightAnchor()
var rows = $('.memberdecls tr[class$="'+
window.location.hash.substring(1).replace(/</g,'\\3c ')+'"]');
glowEffect(rows.children(),300); // member without details
} else if (anchor.parents().slice(2).prop('tagName')=='TR') {
glowEffect(anchor.parents('div.memitem'),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldname'){
glowEffect(anchor.parent().parent(),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldtype'){
glowEffect(anchor.parent().parent(),1000); // struct field
} else if (anchor.parent().is(":header")) {
Expand Down

0 comments on commit a9f9343

Please sign in to comment.