📄 dochandler.cpp
字号:
void ParameterHandler::startParameterName(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this);}void ParameterHandler::endParameterName(){ m_name = m_curString; debug(2,"parameter %s\n",m_name.data()); m_curString=""; m_parent->setDelegate(0);}//----------------------------------------------------------------------// ParameterListHandler//----------------------------------------------------------------------ParameterItemHandler::ParameterItemHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("parameteritem",this,&ParameterItemHandler::endParameterItem); addStartHandler("parameternamelist"); addEndHandler("parameternamelist"); addStartHandler("parametername",this,&ParameterItemHandler::startParameterName); addStartHandler("parameterdescription"); addEndHandler("parameterdescription"); addStartHandler("para",this,&ParameterItemHandler::startParagraph); m_parameters.setAutoDelete(TRUE); m_description = 0;}ParameterItemHandler::~ParameterItemHandler(){ delete m_description;}void ParameterItemHandler::startParameterItem(const QXmlAttributes&){ m_parent->setDelegate(this);}void ParameterItemHandler::endParameterItem(){ m_parent->setDelegate(0);}void ParameterItemHandler::startParameterName(const QXmlAttributes& attrib){ ParameterHandler *param = new ParameterHandler(this); m_parameters.append(param); param->startParameterName(attrib);}void ParameterItemHandler::startParagraph(const QXmlAttributes& attrib){ m_description = new ParagraphHandler(this); m_description->startParagraph(attrib);}IDocIterator *ParameterItemHandler::paramNames() const{ return new ParameterItemIterator(*this);}//----------------------------------------------------------------------// ParameterListHandler//----------------------------------------------------------------------ParameterListHandler::ParameterListHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("parameterlist",this,&ParameterListHandler::endParameterList); addStartHandler("parameteritem",this,&ParameterListHandler::startParameterItem); m_paramItems.setAutoDelete(TRUE);}ParameterListHandler::~ParameterListHandler(){}void ParameterListHandler::startParameterList(const QXmlAttributes& attrib){ QString kind = attrib.value("kind"); if (kind=="retval") m_type=RetVal; else if (kind=="exception") m_type=Exception; else if (kind=="param") m_type=Param; else { debug(1,"Error: invalid parameterlist type: %s\n",kind.data()); } debug(2,"parameterlist kind=%s\n",kind.data()); m_parent->setDelegate(this);}void ParameterListHandler::endParameterList(){ m_parent->setDelegate(0);}void ParameterListHandler::startParameterItem(const QXmlAttributes& attrib){ ParameterItemHandler *paramItem = new ParameterItemHandler(this); m_paramItems.append(paramItem); paramItem->startParameterItem(attrib);}IDocIterator *ParameterListHandler::params() const{ return new ParameterListIterator(*this);}//----------------------------------------------------------------------// LinkHandler//----------------------------------------------------------------------LinkHandler::LinkHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("link",this,&LinkHandler::endLink);}LinkHandler::~LinkHandler(){}void LinkHandler::startLink(const QXmlAttributes& attrib){ m_parent->setDelegate(this); debug(2,"Start link\n"); m_ref = attrib.value("linkend"); m_curString="";}void LinkHandler::endLink(){ m_text = m_curString; m_curString=""; m_parent->setDelegate(0); debug(2,"End link\n");}//----------------------------------------------------------------------// EMailHandler//----------------------------------------------------------------------EMailHandler::EMailHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("email",this,&EMailHandler::endEMail);}EMailHandler::~EMailHandler(){}void EMailHandler::startEMail(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"Start email\n"); m_curString="";}void EMailHandler::endEMail(){ m_address = m_curString; m_curString=""; m_parent->setDelegate(0); debug(2,"End email\n");}//----------------------------------------------------------------------// ULinkHandler//----------------------------------------------------------------------ULinkHandler::ULinkHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("ulink",this,&ULinkHandler::endULink);}ULinkHandler::~ULinkHandler(){}void ULinkHandler::startULink(const QXmlAttributes& attrib){ m_parent->setDelegate(this); debug(2,"Start ulink\n"); m_url = attrib.value("url"); m_curString="";}void ULinkHandler::endULink(){ m_text = m_curString; m_curString=""; m_parent->setDelegate(0); debug(2,"End ulink\n");}//----------------------------------------------------------------------// LineBreakHandler//----------------------------------------------------------------------LineBreakHandler::LineBreakHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("linebreak",this,&LineBreakHandler::endLineBreak);}LineBreakHandler::~LineBreakHandler(){}void LineBreakHandler::startLineBreak(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"Start linebreak\n");}void LineBreakHandler::endLineBreak(){ m_parent->setDelegate(0); debug(2,"End linebreak\n");}//----------------------------------------------------------------------// HRulerHandler//----------------------------------------------------------------------HRulerHandler::HRulerHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("hruler",this,&HRulerHandler::endHRuler);}HRulerHandler::~HRulerHandler(){}void HRulerHandler::startHRuler(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"Start hruler\n");}void HRulerHandler::endHRuler(){ m_parent->setDelegate(0); debug(2,"End hruler\n");}//----------------------------------------------------------------------// RefHandler//----------------------------------------------------------------------RefHandler::RefHandler(IBaseHandler *parent) : m_parent(parent){ addEndHandler("ref",this,&RefHandler::endRef);}RefHandler::~RefHandler(){}void RefHandler::startRef(const QXmlAttributes& attrib){ m_parent->setDelegate(this); m_refId = attrib.value("refid"); m_extId = attrib.value("external"); ASSERT(attrib.value("kindref")=="compound" || attrib.value("kindref")=="member"); m_targetKind = attrib.value("kindref")=="compound" ? Compound : Member; debug(2,"Start ref refId=%s\n",m_refId.data()); m_curString="";}void RefHandler::endRef(){ m_linkText = m_curString; m_parent->setDelegate(0); debug(2,"End ref: text=`%s'\n",m_linkText.data());}//----------------------------------------------------------------------// TitleHandler//----------------------------------------------------------------------TitleHandler::TitleHandler(IBaseHandler *parent) : m_parent(parent){ m_children.setAutoDelete(TRUE); m_markupHandler = new MarkupHandler(m_children,m_curString); setFallBackHandler(m_markupHandler); addStartHandler("ref",this,&TitleHandler::startRef); addEndHandler("title",this,&TitleHandler::endTitle);}TitleHandler::~TitleHandler(){ delete m_markupHandler;}void TitleHandler::startTitle(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"Start title\n"); m_curString="";}void TitleHandler::endTitle(){ addTextNode(); m_parent->setDelegate(0); debug(2,"End title\n");}void TitleHandler::addTextNode(){ if (!m_curString.isEmpty()) { m_children.append( new TextNode( m_curString, m_markupHandler->markup(), m_markupHandler->headingLevel() ) ); debug(2,"addTextNode() text=\"%s\" markup=%x headingLevel=%d\n", m_curString.data(),m_markupHandler->markup(),m_markupHandler->headingLevel()); m_curString=""; }}void TitleHandler::startRef(const QXmlAttributes& attrib){ RefHandler *ref = new RefHandler(this); ref->startRef(attrib); m_children.append(ref);}IDocIterator *TitleHandler::title() const{ return new TitleIterator(*this);}//----------------------------------------------------------------------// SimpleSectHandler//----------------------------------------------------------------------SimpleSectHandler::SimpleSectHandler(IBaseHandler *parent) : m_parent(parent), m_paragraph(0), m_title(0){ addStartHandler("title",this,&SimpleSectHandler::startTitle); addStartHandler("para",this,&SimpleSectHandler::startParagraph); addEndHandler("simplesect",this,&SimpleSectHandler::endSimpleSect);}SimpleSectHandler::~SimpleSectHandler(){}void SimpleSectHandler::startSimpleSect(const QXmlAttributes& attrib){ m_typeString = attrib.value("kind"); m_type = s_typeMapper->stringToType(m_typeString); debug(2,"start simple section %s\n",m_typeString.data()); m_parent->setDelegate(this);}void SimpleSectHandler::endSimpleSect(){ debug(2,"end simple section\n"); m_parent->setDelegate(0);}void SimpleSectHandler::startTitle(const QXmlAttributes& attrib){ ASSERT(m_title==0); m_title = new TitleHandler(this); m_title->startTitle(attrib);}void SimpleSectHandler::startParagraph(const QXmlAttributes& attrib){ ASSERT(m_paragraph==0); m_paragraph = new ParagraphHandler(this); m_paragraph->startParagraph(attrib);}//----------------------------------------------------------------------// VariableListEntryHandler//----------------------------------------------------------------------VariableListEntryHandler::VariableListEntryHandler(IBaseHandler *parent) : m_parent(parent), m_description(0), m_linkedTextHandler(0){ addStartHandler("term",this,&VariableListEntryHandler::startTerm); addEndHandler("term",this,&VariableListEntryHandler::endTerm); addStartHandler("para",this,&VariableListEntryHandler::startParagraph); addEndHandler("varlistentry",this,&VariableListEntryHandler::endVarListEntry); addEndHandler("listitem",this,&VariableListEntryHandler::endListItem);}VariableListEntryHandler::~VariableListEntryHandler(){ delete m_description;}void VariableListEntryHandler::startVarListEntry(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"start varlistentry\n");}void VariableListEntryHandler::endVarListEntry(){ m_parent->setDelegate(0); debug(2,"end varlistentry\n");}void VariableListEntryHandler::startListItem(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"start listitem\n");}void VariableListEntryHandler::endListItem(){ m_parent->setDelegate(0); debug(2,"end listitem\n");}void VariableListEntryHandler::startTerm(const QXmlAttributes& /*attrib*/){ m_curString=""; m_linkedTextHandler = new LinkedTextHandler(this,m_term); m_linkedTextHandler->start("term");}void VariableListEntryHandler::endTerm(){ delete m_linkedTextHandler;}void VariableListEntryHandler::startParagraph(const QXmlAttributes& attrib){ ASSERT(m_description==0); m_description = new ParagraphHandler(this); m_description->startParagraph(attrib);}ILinkedTextIterator *VariableListEntryHandler::term() const { return new LinkedTextIterator(m_term); }//----------------------------------------------------------------------// VariableListHandler//----------------------------------------------------------------------VariableListHandler::VariableListHandler(IBaseHandler *parent) : m_parent(parent){ m_entries.setAutoDelete(TRUE); addStartHandler("varlistentry",this,&VariableListHandler::startVarListEntry); addStartHandler("listitem",this,&VariableListHandler::startListItem); addEndHandler("variablelist",this,&VariableListHandler::endVariableList);}VariableListHandler::~VariableListHandler(){}void VariableListHandler::startVariableList(const QXmlAttributes& /*attrib*/){ m_parent->setDelegate(this); debug(2,"start variablelist\n");}void VariableListHandler::endVariableList(){ debug(2,"end variablelist\n"); m_parent->setDelegate(0);}void VariableListHandler::startVarListEntry(const QXmlAttributes& attrib){ VariableListEntryHandler *vle = new VariableListEntryHandler(this); vle->startVarListEntry(attrib); m_curEntry = vle; m_entries.append(vle);}void VariableListHandler::startListItem(const QXmlAttributes& attrib){ ASSERT(m_curEntry!=0); m_curEntry->startListItem(attrib);}IDocIterator *VariableListHandler::entries() const{ return new VariableListIterator(*this);}//----------------------------------------------------------------------// HighlightHandler//----------------------------------------------------------------------HighlightHandler::HighlightHandler(IBaseHandler *parent) : m_parent(parent){ m_children.setAutoDelete(TRUE); addEndHandler("highlight",this,&HighlightHandler::endHighlight); addStartHandler("ref",this,&HighlightHandler::startRef); addStartHandler("sp",this,&HighlightHandler::startSpace); m_hl = IDocHighlight::Invalid;}HighlightHandler::~HighlightHandler(){}void HighlightHandler::startHighlight(const QXmlAttributes& attrib){ m_hlString = attrib.value("class"); m_hl = s_highlightMapper->stringToKind(m_hlString); m_curString=""; m_parent->setDelegate(this); debug(2,"start highlight\n");}void HighlightHandler::endHighlight(){ addTextNode(); debug(2,"end highlight class=`%s'\n",m_hlString.data()); m_parent->setDelegate(0);}void HighlightHandler::startRef(const QXmlAttributes& attrib){ addTextNode(); RefHandler *rh = new RefHandler(this); m_children.append(rh); rh->startRef(attrib);}void HighlightHandler::startSpace(const QXmlAttributes&){ m_curString=" "; addTextNode();}void HighlightHandler::addTextNode(){ printf("m_curString=`%s'\n",m_curString.data()); if (!m_curString.isEmpty())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -