diff options
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r-- | src/docparser.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp index 6043a2d..d474cfe 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -747,6 +747,7 @@ static void handleLinkedWord(DocNode *parent,QList<DocNode> &children) MemberDef *member=0; QString name = linkToText(g_token->name,TRUE); int len = g_token->name.length(); + ClassDef *cd=0; if (!g_insideHtmlLink && resolveRef(g_context,g_token->name,g_inSeeBlock,&compound,&member)) { @@ -784,6 +785,16 @@ static void handleLinkedWord(DocNode *parent,QList<DocNode> &children) handleLinkedWord(parent,children); children.append(new DocWord(parent,":")); } + else if (!g_insideHtmlLink && (cd=getClass(g_token->name+"-p"))) + { + // special case 2, where the token name is not a class, but could + // be a Obj-C protocol + children.append(new + DocLinkedWord(parent,name, + cd->getReference(), + cd->getOutputFileBase(), + "")); + } else // normal non-linkable word { children.append(new DocWord(parent,g_token->name)); @@ -4383,15 +4394,25 @@ reparsetoken: goto endparagraph; } } + + // determine list depth + int depth = 0; + n=parent(); + while(n) { + if(n->kind() == DocNode::Kind_AutoList) ++depth; + n=n->parent(); + } + // first item or sub list => create new list DocAutoList *al=0; do { - al = new DocAutoList(this,g_token->indent,g_token->isEnumList); + al = new DocAutoList(this,g_token->indent,g_token->isEnumList, + depth); m_children.append(al); retval = al->parse(); } while (retval==TK_LISTITEM && // new list - al->indent()==g_token->indent // at some indent level + al->indent()==g_token->indent // at same indent level ); // check the return value |