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
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)
{
Definition *scope=0;
if (inlineGroupedClasses && partOfGroups()!=0)
{
......
......@@ -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; }
......
......@@ -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);
......@@ -366,7 +366,9 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
MemberDef *emd;
for (emli.toFirst();(emd=emli.current());++emli)
{
if (emd->getOuterScope()==def)
if (!hideUndocMembers || emd->hasDocumentation())
{
if (emd->getOuterScope()==def || emd->getOuterScope()==Doxygen::globalScope)
{
Doxygen::indexList->addContentsItem(FALSE,
emd->name(),emd->getReference(),emd->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
......@@ -377,6 +379,7 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part,
emd->name(),def->getReference(),def->getOutputFileBase(),emd->anchor(),FALSE,addToIndex);
}
}
}
if (!isAnonymous)
{
Doxygen::indexList->decContentsDepth();
......@@ -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());
}
}
......@@ -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)
{
......
......@@ -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
{
......@@ -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());
}
......@@ -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 &&
......@@ -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();
......
......@@ -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"))
{
......@@ -693,11 +702,12 @@ void MemberList::writeDocumentationPage(OutputList &ol,
MemberListIterator mli(*this);
MemberDef *md;
for ( ; (md=mli.current()) ; ++mli)
{
if (md->isDetailedSectionLinkable())
{
QCString diskName=md->getOutputFileBase();
QCString title=md->qualifiedName();
startFile(ol,diskName,md->name(),title,HLI_None,!generateTreeView,
container->getOutputFileBase());
startFile(ol,diskName,md->name(),title,HLI_None,!generateTreeView,diskName);
if (!generateTreeView)
{
container->writeNavigationPath(ol);
......@@ -705,7 +715,6 @@ void MemberList::writeDocumentationPage(OutputList &ol,
}
ol.startContents();
if (generateTreeView)
{
md->writeDocumentation(this,ol,scopeName,container,m_inGroup);
......@@ -742,6 +751,7 @@ void MemberList::writeDocumentationPage(OutputList &ol,
mg->writeDocumentationPage(ol,scopeName,container);
}
}
}
}
void MemberList::addMemberGroup(MemberGroup *mg)
......
......@@ -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;
}
......@@ -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")) {
......
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