summaryrefslogtreecommitdiffstats
path: root/src/docparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r--src/docparser.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 12b6e1c..20f365a 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -2275,7 +2275,7 @@ void DocInternalRef::parse()
//---------------------------------------------------------------------------
DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) :
- m_refToSection(FALSE), m_refToAnchor(FALSE)
+ m_refToSection(FALSE), m_refToAnchor(FALSE), m_isSubPage(FALSE)
{
m_parent = parent;
Definition *compound = 0;
@@ -2286,14 +2286,20 @@ DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) :
SectionInfo *sec = Doxygen::sectionDict[target];
if (sec) // ref to section or anchor
{
+ PageDef *pd = 0;
+ if (sec->type==SectionInfo::Page)
+ {
+ pd = Doxygen::pageSDict->find(target);
+ }
m_text = sec->title;
if (m_text.isEmpty()) m_text = sec->label;
m_ref = sec->ref;
m_file = stripKnownExtensions(sec->fileName);
- if (sec->type!=SectionInfo::Page) m_anchor = sec->label;
m_refToAnchor = sec->type==SectionInfo::Anchor;
m_refToSection = sec->type!=SectionInfo::Anchor;
+ m_isSubPage = pd && pd->hasParentPage();
+ if (sec->type!=SectionInfo::Page || m_isSubPage) m_anchor = sec->label;
//printf("m_text=%s,m_ref=%s,m_file=%s,m_refToAnchor=%d type=%d\n",
// m_text.data(),m_ref.data(),m_file.data(),m_refToAnchor,sec->type);
return;