Doxygen
Loading...
Searching...
No Matches
DocHtmlListItem Class Reference

Node representing a HTML list item. More...

#include <src/docnode.h>

Inheritance diagram for DocHtmlListItem:
Collaboration diagram for DocHtmlListItem:

Public Member Functions

 DocHtmlListItem (DocParser *parser, DocNodeVariant *parent, const HtmlAttribList &attribs, int num)
int itemNumber () const
const HtmlAttribListattribs () const
Token parse ()
Token parseXml ()
Public Member Functions inherited from DocCompoundNode
 DocCompoundNode (DocParser *parser, DocNodeVariant *parent)
DocNodeListchildren ()
const DocNodeListchildren () const
Public Member Functions inherited from DocNode
 DocNode (DocParser *parser, DocNodeVariant *parent)
 ~DocNode ()=default
DocNodeVariantparent ()
const DocNodeVariantparent () const
DocNodeVariantthisVariant ()
const DocNodeVariantthisVariant () const
void setThisVariant (DocNodeVariant *thisVariant)
DocParserparser ()
const DocParserparser () const
void setParent (DocNodeVariant *parent)
bool isPreformatted () const

Private Attributes

HtmlAttribList m_attribs
int m_itemNum = 0

Additional Inherited Members

Protected Types inherited from DocNode
enum  RefType {
  Unknown , Anchor , Section , Table ,
  Requirement
}
Protected Member Functions inherited from DocNode
void setInsidePreformatted (bool p)

Detailed Description

Node representing a HTML list item.

Definition at line 1162 of file docnode.h.

Constructor & Destructor Documentation

◆ DocHtmlListItem()

DocHtmlListItem::DocHtmlListItem ( DocParser * parser,
DocNodeVariant * parent,
const HtmlAttribList & attribs,
int num )
inline

Definition at line 1165 of file docnode.h.

DocCompoundNode(DocParser *parser, DocNodeVariant *parent)
Definition docnode.h:141
const HtmlAttribList & attribs() const
Definition docnode.h:1168
HtmlAttribList m_attribs
Definition docnode.h:1173
DocParser * parser()
Definition docnode.h:98
DocNodeVariant * parent()
Definition docnode.h:90

References attribs(), DocCompoundNode::DocCompoundNode(), m_attribs, m_itemNum, DocNode::parent(), and DocNode::parser().

Member Function Documentation

◆ attribs()

◆ itemNumber()

int DocHtmlListItem::itemNumber ( ) const
inline

Definition at line 1167 of file docnode.h.

1167{ return m_itemNum; }

References m_itemNum.

◆ parse()

Token DocHtmlListItem::parse ( )

Definition at line 2682 of file docnode.cpp.

2683{
2684 AUTO_TRACE();
2685 Token retval = Token::make_TK_NONE();
2686 auto ns = AutoNodeStack(parser(),thisVariant());
2687
2688 // parse one or more paragraphs
2689 bool isFirst=TRUE;
2690 DocPara *par=nullptr;
2691 do
2692 {
2693 children().append<DocPara>(parser(),thisVariant());
2694 par = children().get_last<DocPara>();
2695 if (isFirst) { par->markFirst(); isFirst=FALSE; }
2696 retval=par->parse();
2697 }
2698 while (retval.is(TokenRetval::TK_NEWPARA));
2699 if (par) par->markLast();
2700
2701 AUTO_TRACE_EXIT("retval={}",retval.to_string());
2702 return retval;
2703}
DocNodeList & children()
Definition docnode.h:143
DocNodeVariant * thisVariant()
Definition docnode.h:93
void markLast(bool v=TRUE)
Definition docnode.h:1086
void markFirst(bool v=TRUE)
Definition docnode.h:1085
Token parse()
Definition docnode.cpp:5714
bool is(TokenRetval rv) const
TOKEN_SPECIFICATIONS RETVAL_SPECIFICATIONS const char * to_string() const
#define AUTO_TRACE(...)
Definition docnode.cpp:47
#define AUTO_TRACE_EXIT(...)
Definition docnode.cpp:49
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
void append(Args &&... args)
Append a new DocNodeVariant to the list by constructing it with type T and parameters Args.
Definition docnode.h:1397
T * get_last()
Returns a pointer to the last element in the list if that element exists and holds a T,...
Definition docnode.h:1408

References DocNodeList::append(), AUTO_TRACE, AUTO_TRACE_EXIT, DocCompoundNode::children(), FALSE, DocNodeList::get_last(), Token::is(), DocPara::markFirst(), DocPara::markLast(), DocPara::parse(), DocNode::parser(), DocNode::thisVariant(), Token::to_string(), and TRUE.

◆ parseXml()

Token DocHtmlListItem::parseXml ( )

Definition at line 2705 of file docnode.cpp.

2706{
2707 AUTO_TRACE();
2708 Token retval = Token::make_TK_NONE();
2709 auto ns = AutoNodeStack(parser(),thisVariant());
2710
2711 // parse one or more paragraphs
2712 bool isFirst=TRUE;
2713 DocPara *par=nullptr;
2714 do
2715 {
2716 children().append<DocPara>(parser(),thisVariant());
2717 par = children().get_last<DocPara>();
2718 if (isFirst) { par->markFirst(); isFirst=FALSE; }
2719 retval=par->parse();
2720 if (retval.is_any_of(TokenRetval::TK_NONE,TokenRetval::TK_EOF)) break;
2721
2722 //printf("new item: retval=%x parser()->context.token->name=%s parser()->context.token->endTag=%d\n",
2723 // retval,qPrint(parser()->context.token->name),parser()->context.token->endTag);
2724 if (retval.is(TokenRetval::RetVal_ListItem))
2725 {
2726 break;
2727 }
2728 }
2729 while (!retval.is(TokenRetval::RetVal_CloseXml));
2730
2731 if (par) par->markLast();
2732
2733 AUTO_TRACE_EXIT("retval={}",retval.to_string());
2734 return retval;
2735}
bool is_any_of(ARGS... args) const

References DocNodeList::append(), AUTO_TRACE, AUTO_TRACE_EXIT, DocCompoundNode::children(), FALSE, DocNodeList::get_last(), Token::is(), Token::is_any_of(), DocPara::markFirst(), DocPara::markLast(), DocPara::parse(), DocNode::parser(), DocNode::thisVariant(), Token::to_string(), and TRUE.

Member Data Documentation

◆ m_attribs

HtmlAttribList DocHtmlListItem::m_attribs
private

Definition at line 1173 of file docnode.h.

Referenced by attribs(), and DocHtmlListItem().

◆ m_itemNum

int DocHtmlListItem::m_itemNum = 0
private

Definition at line 1174 of file docnode.h.

Referenced by DocHtmlListItem(), and itemNumber().


The documentation for this class was generated from the following files: