Doxygen
Loading...
Searching...
No Matches
ConceptDefImpl Class Reference
Inheritance diagram for ConceptDefImpl:
Collaboration diagram for ConceptDefImpl:

Public Member Functions

 ConceptDefImpl (const QCString &fileName, int startLine, int startColumn, const QCString &name, const QCString &tagRef=QCString(), const QCString &tagFile=QCString())
 ~ConceptDefImpl () override
DefType definitionType () const override
CodeSymbolType codeSymbolType () const override
QCString getOutputFileBase () const override
bool hasDetailedDescription () const override
QCString displayName (bool includeScope=true) const override
const IncludeInfoincludeInfo () const override
ArgumentList getTemplateParameterList () const override
QCString anchor () const override
bool isLinkableInProject () const override
bool isLinkable () const override
QCString initializer () const override
void writeDeclarationLink (OutputList &ol, bool &found, const QCString &header, bool localNames) const override
const NamespaceDefgetNamespaceDef () const override
const FileDefgetFileDef () const override
const ModuleDefgetModuleDef () const override
QCString title () const override
int groupId () const override
void setIncludeFile (FileDef *fd, const QCString &incName, bool local, bool force) override
void setTemplateArguments (const ArgumentList &al) override
void setNamespace (NamespaceDef *nd) override
void setFileDef (FileDef *fd) override
void setModuleDef (ModuleDef *mod) override
void writeTagFile (TextStream &) override
void writeDocumentation (OutputList &) override
void setInitializer (const QCString &init) override
void findSectionsInDocumentation () override
void setGroupId (int id) override
void writeBriefDescription (OutputList &) const
void writeAuthorSection (OutputList &ol) const
void writeIncludeFiles (OutputList &ol) const
void writeDetailedDescription (OutputList &ol, const QCString &title) const
void writeDefinition (OutputList &ol, const QCString &title) const
void addConceptAttributes (OutputList &ol) const
Public Member Functions inherited from DefinitionMixin< ConceptDefMutable >
 DefinitionMixin (const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
DefinitionMixinoperator= (const DefinitionMixin &other)
 ~DefinitionMixin () override=default
bool isAlias () const override
const QCStringname () const override
bool isAnonymous () const override
const QCStringlocalName () const override
QCString qualifiedName () const override
QCString symbolName () const override
QCString getSourceFileBase () const override
QCString getSourceAnchor () const override
QCString documentation () const override
int docLine () const override
QCString docFile () const override
QCString briefDescription (bool abbreviate=FALSE) const override
QCString briefDescriptionAsTooltip () const override
int briefLine () const override
QCString inbodyDocumentation () const override
QCString inbodyFile () const override
int inbodyLine () const override
QCString briefFile () const override
QCString getDefFileName () const override
QCString getDefFileExtension () const override
int getDefLine () const override
int getDefColumn () const override
bool hasDocumentation () const override
bool hasUserDocumentation () const override
bool isVisibleInProject () const override
bool isVisible () const override
bool isHidden () const override
bool isArtificial () const override
bool isExported () const override
QCString getReference () const override
bool isReference () const override
QCString externalReference (const QCString &relPath) const override
int getStartDefLine () const override
int getStartBodyLine () const override
int getEndBodyLine () const override
const FileDefgetBodyDef () const override
SrcLangExt getLanguage () const override
const GroupListpartOfGroups () const override
bool isLinkableViaGroup () const override
const RefItemVectorxrefListItems () const override
const DefinitionfindInnerCompound (const QCString &name) const override
DefinitiongetOuterScope () const override
const MemberVectorgetReferencesMembers () const override
const MemberVectorgetReferencedByMembers () const override
bool hasSections () const override
bool hasSources () const override
bool hasBriefDescription () const override
QCString id () const override
const SectionRefsgetSectionRefs () const override
void setName (const QCString &name) override
void setId (const QCString &name) override
void setDefFile (const QCString &df, int defLine, int defColumn) override
void setDocumentation (const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
void setBriefDescription (const QCString &brief, const QCString &briefFile, int briefLine) override
void setInbodyDocumentation (const QCString &doc, const QCString &docFile, int docLine) override
void setReference (const QCString &r) override
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
void setBodySegment (int defLine, int bls, int ble) override
void setBodyDef (const FileDef *fd) override
void addSourceReferencedBy (MemberDef *md, const QCString &sourceRefName) override
void addSourceReferences (MemberDef *md, const QCString &sourceRefName) override
void setRefItems (const RefItemVector &sli) override
void mergeRefItems (Definition *def) override
void mergeReferences (const Definition *other) override
void mergeReferencedBy (const Definition *other) override
void addInnerCompound (Definition *def) override
void setOuterScope (Definition *def) override
void setHidden (bool b) override
void setArtificial (bool b) override
void setExported (bool b) override
void setLanguage (SrcLangExt lang) override
void writeSourceDef (OutputList &ol) const override
void writeInlineCode (OutputList &ol, const QCString &scopeName) const override
bool hasSourceRefs () const override
bool hasSourceReffedBy () const override
void writeSourceRefs (OutputList &ol, const QCString &scopeName) const override
void writeSourceReffedBy (OutputList &ol, const QCString &scopeName) const override
void makePartOfGroup (GroupDef *gd) override
void writeNavigationPath (OutputList &ol) const override
QCString navigationPathAsString () const override
void writeQuickMemberLinks (OutputList &ol, const MemberDef *md) const override
void writeSummaryLinks (OutputList &ol) const override
void writePageNavigation (OutputList &ol) const override
QCString pathFragment () const override
void writeDocAnchorsToTagFile (TextStream &fs) const override
void setLocalName (const QCString &name) override
void writeToc (OutputList &ol, const LocalToc &lt) const override
void computeTooltip () override
void _setSymbolName (const QCString &name) override
QCString _symbolName () const override

Private Attributes

QCString m_fileName
std::unique_ptr< IncludeInfom_incInfo
NamespaceDefm_nspace = nullptr
FileDefm_fileDef = nullptr
ModuleDefm_moduleDef = nullptr
ArgumentList m_tArgList
QCString m_initializer
int m_groupId = -1

Additional Inherited Members

Public Types inherited from Definition
enum  DefType {
  TypeClass = 0 , TypeFile = 1 , TypeNamespace = 2 , TypeModule = 3 ,
  TypeMember = 4 , TypeGroup = 5 , TypePackage = 6 , TypePage = 7 ,
  TypeDir = 8 , TypeConcept = 9
}

Detailed Description

Definition at line 31 of file conceptdef.cpp.

Constructor & Destructor Documentation

◆ ConceptDefImpl()

ConceptDefImpl::ConceptDefImpl ( const QCString & fileName,
int startLine,
int startColumn,
const QCString & name,
const QCString & tagRef = QCString(),
const QCString & tagFile = QCString() )

Definition at line 156 of file conceptdef.cpp.

157 : DefinitionMixin(fileName,startLine,startColumn,name)
158{
159 if (!tagFile.isEmpty())
160 {
161 if (!tagRef.isEmpty())
162 {
163 m_fileName = stripExtension(tagFile);
164 }
165 else
166 {
168 }
169 }
170 else
171 {
172 m_fileName = convertNameToFile(QCString("concept")+name);
173 }
174 setReference(tagRef);
175}
QCString m_fileName
virtual const QCString & name() const =0
void setReference(const QCString &r) override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:163
QCString stripExtension(const QCString &fName)
Definition util.cpp:4845
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3425

References DefinitionMixin< ConceptDefMutable >::DefinitionMixin(), QCString::isEmpty(), and DefinitionMixin< ConceptDefMutable >::name().

◆ ~ConceptDefImpl()

ConceptDefImpl::~ConceptDefImpl ( )
override

Definition at line 177 of file conceptdef.cpp.

178{
179}

Member Function Documentation

◆ addConceptAttributes()

void ConceptDefImpl::addConceptAttributes ( OutputList & ol) const

Definition at line 522 of file conceptdef.cpp.

523{
524 if (isExported())
525 {
528 ol.startLabels();
529 ol.writeLabel("export",false);
530 ol.endLabels();
532 }
533}
void pushGeneratorState()
void disableAllBut(OutputType o)
void popGeneratorState()
void endLabels()
Definition outputlist.h:742
void writeLabel(const QCString &l, bool isLast)
Definition outputlist.h:740
void startLabels()
Definition outputlist.h:738

References OutputList::disableAllBut(), OutputList::endLabels(), Html, DefinitionMixin< ConceptDefMutable >::isExported(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startLabels(), and OutputList::writeLabel().

Referenced by writeDocumentation().

◆ anchor()

QCString ConceptDefImpl::anchor ( ) const
overridevirtual

Returns the anchor within a page where this item can be found

Implements Definition.

Definition at line 200 of file conceptdef.cpp.

201{
202 return "";
203}

Referenced by writeDeclarationLink().

◆ codeSymbolType()

CodeSymbolType ConceptDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 41 of file conceptdef.cpp.

References Concept.

◆ definitionType()

Definition::DefType ConceptDefImpl::definitionType ( ) const
overridevirtual

Use this for dynamic inspection of the type of the derived class

Implements Definition.

Definition at line 181 of file conceptdef.cpp.

182{
183 return TypeConcept;
184}

References Definition::TypeConcept.

◆ displayName()

QCString ConceptDefImpl::displayName ( bool includeScope = true) const
overridevirtual

Returns the name of the definition as it appears in the output

Implements Definition.

Definition at line 205 of file conceptdef.cpp.

206{
207 return includeScope ? name() : localName();
208}
virtual const QCString & localName() const =0
const QCString & name() const override

References DefinitionMixin< ConceptDefMutable >::localName(), and DefinitionMixin< ConceptDefMutable >::name().

Referenced by title(), writeDeclarationLink(), and writeDocumentation().

◆ findSectionsInDocumentation()

void ConceptDefImpl::findSectionsInDocumentation ( )
overridevirtual

◆ getFileDef()

const FileDef * ConceptDefImpl::getFileDef ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 276 of file conceptdef.cpp.

277{
278 return m_fileDef;
279}
FileDef * m_fileDef

References m_fileDef.

◆ getModuleDef()

const ModuleDef * ConceptDefImpl::getModuleDef ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 281 of file conceptdef.cpp.

282{
283 return m_moduleDef;
284}
ModuleDef * m_moduleDef

References m_moduleDef.

◆ getNamespaceDef()

const NamespaceDef * ConceptDefImpl::getNamespaceDef ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 261 of file conceptdef.cpp.

262{
263 return m_nspace;
264}
NamespaceDef * m_nspace

References m_nspace.

◆ getOutputFileBase()

QCString ConceptDefImpl::getOutputFileBase ( ) const
overridevirtual

Returns the base file name (without extension) of this definition. as it is referenced to/written to disk.

Implements Definition.

Definition at line 186 of file conceptdef.cpp.

187{
188 return m_fileName;
189}

References m_fileName.

Referenced by writeBriefDescription(), writeDeclarationLink(), writeDocumentation(), and writeTagFile().

◆ getTemplateParameterList()

ArgumentList ConceptDefImpl::getTemplateParameterList ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 215 of file conceptdef.cpp.

216{
217 return m_tArgList;
218}
ArgumentList m_tArgList

References m_tArgList.

◆ groupId()

int ConceptDefImpl::groupId ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 298 of file conceptdef.cpp.

299{
300 return m_groupId;
301}

References m_groupId.

◆ hasDetailedDescription()

bool ConceptDefImpl::hasDetailedDescription ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 191 of file conceptdef.cpp.

192{
193 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
194 bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
195 return ((!briefDescription().isEmpty() && repeatBrief) ||
196 !documentation().isEmpty() ||
197 (sourceBrowser && getStartBodyLine()!=-1 && getBodyDef()));
198}
const FileDef * getBodyDef() const override
#define Config_getBool(name)
Definition config.h:33

References DefinitionMixin< ConceptDefMutable >::briefDescription(), Config_getBool, DefinitionMixin< ConceptDefMutable >::documentation(), DefinitionMixin< ConceptDefMutable >::getBodyDef(), and DefinitionMixin< ConceptDefMutable >::getStartBodyLine().

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ includeInfo()

const IncludeInfo * ConceptDefImpl::includeInfo ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 210 of file conceptdef.cpp.

211{
212 return m_incInfo.get();
213}
std::unique_ptr< IncludeInfo > m_incInfo

References m_incInfo.

◆ initializer()

QCString ConceptDefImpl::initializer ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 430 of file conceptdef.cpp.

431{
432 return m_initializer;
433}
QCString m_initializer

References m_initializer.

◆ isLinkable()

bool ConceptDefImpl::isLinkable ( ) const
overridevirtual

Returns TRUE iff it is possible to link to this item. This can be a link to another project imported via a tag file.

Implements Definition.

Definition at line 228 of file conceptdef.cpp.

229{
230 return isLinkableInProject() || isReference();
231}
bool isLinkableInProject() const override

References isLinkableInProject(), and DefinitionMixin< ConceptDefMutable >::isReference().

Referenced by writeDeclarationLink().

◆ isLinkableInProject()

bool ConceptDefImpl::isLinkableInProject ( ) const
overridevirtual

Returns TRUE iff it is possible to link to this item within this project.

Implements Definition.

Definition at line 220 of file conceptdef.cpp.

221{
222 bool hideUndoc = Config_getBool(HIDE_UNDOC_CLASSES);
223 return (hasDocumentation() || !hideUndoc) && /* documented */
224 !isHidden() && /* not hidden */
225 !isReference(); /* not an external reference */
226}

References Config_getBool, DefinitionMixin< ConceptDefMutable >::hasDocumentation(), DefinitionMixin< ConceptDefMutable >::isHidden(), and DefinitionMixin< ConceptDefMutable >::isReference().

Referenced by isLinkable().

◆ setFileDef()

void ConceptDefImpl::setFileDef ( FileDef * fd)
overridevirtual

Implements ConceptDefMutable.

Definition at line 266 of file conceptdef.cpp.

267{
268 m_fileDef=fd;
269}

References m_fileDef.

◆ setGroupId()

void ConceptDefImpl::setGroupId ( int id)
overridevirtual

Implements ConceptDefMutable.

Definition at line 303 of file conceptdef.cpp.

304{
305 m_groupId = id;
306}
virtual QCString id() const =0

References DefinitionMixin< ConceptDefMutable >::id(), and m_groupId.

◆ setIncludeFile()

void ConceptDefImpl::setIncludeFile ( FileDef * fd,
const QCString & incName,
bool local,
bool force )
overridevirtual

Implements ConceptDefMutable.

Definition at line 233 of file conceptdef.cpp.

234{
235 if (!m_incInfo) m_incInfo = std::make_unique<IncludeInfo>();
236 if ((!incName.isEmpty() && m_incInfo->includeName.isEmpty()) ||
237 (fd!=nullptr && m_incInfo->fileDef==nullptr)
238 )
239 {
240 m_incInfo->fileDef = fd;
241 m_incInfo->includeName = incName;
243 }
244 if (force && !incName.isEmpty())
245 {
246 m_incInfo->includeName = incName;
248 }
249}
@ IncludeLocal
Definition filedef.h:50
@ IncludeSystem
Definition filedef.h:49

References IncludeLocal, IncludeSystem, QCString::isEmpty(), and m_incInfo.

◆ setInitializer()

void ConceptDefImpl::setInitializer ( const QCString & init)
overridevirtual

Implements ConceptDefMutable.

Definition at line 425 of file conceptdef.cpp.

426{
427 m_initializer = templateSpec(m_tArgList)+"\nconcept "+name()+" = "+init;
428}
static QCString templateSpec(const ArgumentList &al)
void init()

References m_initializer, m_tArgList, DefinitionMixin< ConceptDefMutable >::name(), and templateSpec().

◆ setModuleDef()

void ConceptDefImpl::setModuleDef ( ModuleDef * mod)
overridevirtual

Implements ConceptDefMutable.

Definition at line 271 of file conceptdef.cpp.

272{
273 m_moduleDef=mod;
274}

References m_moduleDef.

◆ setNamespace()

void ConceptDefImpl::setNamespace ( NamespaceDef * nd)
overridevirtual

Implements ConceptDefMutable.

Definition at line 256 of file conceptdef.cpp.

257{
258 m_nspace = nd;
259}

References m_nspace.

◆ setTemplateArguments()

void ConceptDefImpl::setTemplateArguments ( const ArgumentList & al)
overridevirtual

Implements ConceptDefMutable.

Definition at line 251 of file conceptdef.cpp.

252{
253 m_tArgList = al;
254}

References m_tArgList.

◆ title()

QCString ConceptDefImpl::title ( ) const
overridevirtual

Implements ConceptDef.

Definition at line 286 of file conceptdef.cpp.

287{
288 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
289 {
290 return displayName();
291 }
292 else
293 {
295 }
296}
QCString displayName(bool includeScope=true) const override
virtual QCString trConceptReference(const QCString &conceptName)=0
Translator * theTranslator
Definition language.cpp:71

References Config_getBool, displayName(), and theTranslator.

Referenced by writeDefinition(), and writeDetailedDescription().

◆ writeAuthorSection()

void ConceptDefImpl::writeAuthorSection ( OutputList & ol) const

Definition at line 510 of file conceptdef.cpp.

511{
512 // write Author section (Man only)
515 ol.startGroupHeader();
517 ol.endGroupHeader();
520}
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
Definition outputlist.h:453
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:455
void parseText(const QCString &textStr)
virtual QCString trGeneratedAutomatically(const QCString &s)=0
virtual QCString trAuthor(bool first_capital, bool singular)=0
#define Config_getString(name)
Definition config.h:32
#define TRUE
Definition qcstring.h:37

References Config_getString, OutputList::disableAllBut(), OutputList::endGroupHeader(), Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startGroupHeader(), theTranslator, and TRUE.

Referenced by writeDocumentation().

◆ writeBriefDescription()

void ConceptDefImpl::writeBriefDescription ( OutputList & ol) const

Definition at line 324 of file conceptdef.cpp.

325{
327 {
328 auto parser { createDocParser() };
329 auto ast { validatingParseDoc(*parser.get(),
330 briefFile(),
331 briefLine(),
332 this,
333 nullptr,
335 DocOptions()
336 .setIndexWords(true)
337 .setSingleLine(true))
338 };
339 if (!ast->isEmpty())
340 {
341 ol.startParagraph();
344 ol.writeString(" - ");
346 ol.writeDoc(ast.get(),this,nullptr);
349 ol.writeString(" \n");
351
353 {
355 ol.startTextLink(getOutputFileBase(),"details");
357 ol.endTextLink();
358 }
360 ol.endParagraph();
361 }
362 }
363 ol.writeSynopsis();
364}
QCString getOutputFileBase() const override
bool hasDetailedDescription() const override
virtual QCString briefFile() const =0
bool hasBriefDescription() const override
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
Definition outputlist.h:383
void writeString(const QCString &text)
Definition outputlist.h:411
void disable(OutputType o)
void enable(OutputType o)
void startParagraph(const QCString &classDef=QCString())
Definition outputlist.h:407
void endParagraph()
Definition outputlist.h:409
void endTextLink()
Definition outputlist.h:444
void writeSynopsis()
Definition outputlist.h:592
void startTextLink(const QCString &file, const QCString &anchor)
Definition outputlist.h:442
virtual QCString trMore()=0
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, const DocOptions &options)
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:55

References DefinitionMixin< ConceptDefMutable >::briefDescription(), DefinitionMixin< ConceptDefMutable >::briefFile(), DefinitionMixin< ConceptDefMutable >::briefLine(), createDocParser(), OutputList::disable(), OutputList::disableAllBut(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTextLink(), getOutputFileBase(), DefinitionMixin< ConceptDefMutable >::hasBriefDescription(), hasDetailedDescription(), Html, Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startParagraph(), OutputList::startTextLink(), theTranslator, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeDeclarationLink()

void ConceptDefImpl::writeDeclarationLink ( OutputList & ol,
bool & found,
const QCString & header,
bool localNames ) const
overridevirtual

Implements ConceptDef.

Definition at line 655 of file conceptdef.cpp.

656{
657 if (isLinkable())
658 {
659 if (!found) // first concept
660 {
661 ol.startMemberHeader("concepts");
662 if (!header.isEmpty())
663 {
664 ol.parseText(header);
665 }
666 else
667 {
668 theTranslator->trConcept(true,false);
669 }
670 ol.endMemberHeader();
671 ol.startMemberList();
672 found=TRUE;
673 }
675 QCString cname = displayName(!localNames);
676 QCString anc=anchor();
677 if (anc.isEmpty()) anc=cname; else anc.prepend(cname+"_");
679 ol.writeString("concept ");
681 if (isLinkable())
682 {
685 anchor(),
686 cname
687 );
688 }
689 else
690 {
691 ol.startBold();
692 ol.docify(cname);
693 ol.endBold();
694 }
696 // add the brief description if available
697 if (!briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
698 {
699 auto parser { createDocParser() };
700 auto ast { validatingParseDoc(*parser.get(),
701 briefFile(),
702 briefLine(),
703 this,
704 nullptr,
706 DocOptions()
707 .setSingleLine(true))
708 };
709 if (!ast->isEmpty())
710 {
712 ol.writeDoc(ast.get(),this,nullptr);
714 }
715 }
716 ol.endMemberDeclaration(anchor(),QCString());
717 }
718}
QCString anchor() const override
bool isLinkable() const override
QCString getReference() const override
void startMemberDeclaration()
Definition outputlist.h:569
void endMemberDescription()
Definition outputlist.h:567
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition outputlist.h:439
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition outputlist.h:565
void docify(const QCString &s)
Definition outputlist.h:437
void startMemberList()
Definition outputlist.h:481
void startBold()
Definition outputlist.h:561
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:495
void insertMemberAlign(bool templ=FALSE)
Definition outputlist.h:517
void endBold()
Definition outputlist.h:563
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
Definition outputlist.h:571
void endMemberHeader()
Definition outputlist.h:471
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
Definition outputlist.h:493
void startMemberHeader(const QCString &anchor, int typ=2)
Definition outputlist.h:469
QCString & prepend(const char *s)
Definition qcstring.h:422
virtual QCString trConcept(bool first_capital, bool singular)=0

References anchor(), DefinitionMixin< ConceptDefMutable >::briefDescription(), DefinitionMixin< ConceptDefMutable >::briefFile(), DefinitionMixin< ConceptDefMutable >::briefLine(), Config_getBool, createDocParser(), displayName(), OutputList::docify(), OutputList::endBold(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), getOutputFileBase(), DefinitionMixin< ConceptDefMutable >::getReference(), OutputList::insertMemberAlign(), QCString::isEmpty(), isLinkable(), OutputGenerator::Normal, OutputList::parseText(), QCString::prepend(), OutputList::startBold(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), theTranslator, TRUE, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeObjectLink(), and OutputList::writeString().

◆ writeDefinition()

void ConceptDefImpl::writeDefinition ( OutputList & ol,
const QCString & title ) const

Definition at line 435 of file conceptdef.cpp.

436{
437 ol.startGroupHeader("conceptdef");
438 ol.parseText(title);
439 ol.endGroupHeader();
440
441 auto intf = Doxygen::parserManager->getCodeParser(".cpp");
442 intf->resetCodeParserState();
443 auto &codeOL = ol.codeGenerators();
444 codeOL.startCodeFragment("DoxyCode");
445 QCString scopeName;
447 TextStream conceptDef;
448 conceptDef << m_initializer;
449 intf->parseCode(codeOL,scopeName,conceptDef.str(),SrcLangExt::Cpp,Config_getBool(STRIP_CODE_COMMENTS),false,QCString(),
450 m_fileDef, -1,-1,true,nullptr,false,this);
451 codeOL.endCodeFragment("DoxyCode");
452}
QCString title() const override
Definition * getOuterScope() const override
static ParserManager * parserManager
Definition doxygen.h:131
static NamespaceDefMutable * globalScope
Definition doxygen.h:121
void startCodeFragment(const QCString &style)
Definition outputlist.h:279
const OutputCodeList & codeGenerators() const
Definition outputlist.h:358
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
Definition parserintf.h:218
std::string str() const
Return the contents of the buffer as a std::string object.
Definition textstream.h:229

References OutputList::codeGenerators(), Config_getBool, OutputList::endGroupHeader(), DefinitionMixin< ConceptDefMutable >::getOuterScope(), Doxygen::globalScope, m_fileDef, m_initializer, Definition::name(), Doxygen::parserManager, OutputList::parseText(), OutputCodeList::startCodeFragment(), OutputList::startGroupHeader(), TextStream::str(), and title().

Referenced by writeDocumentation().

◆ writeDetailedDescription()

void ConceptDefImpl::writeDetailedDescription ( OutputList & ol,
const QCString & title ) const

Definition at line 454 of file conceptdef.cpp.

455{
456 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
458 {
461 ol.writeRuler();
463
466 ol.writeAnchor(QCString(),"details");
468
469 ol.startGroupHeader("details");
470 ol.parseText(title);
471 ol.endGroupHeader();
472
473 ol.startTextBlock();
474 // repeat brief description
475 if (!briefDescription().isEmpty() && repeatBrief)
476 {
478 briefLine(),
479 this,
480 nullptr,
482 DocOptions());
483 }
484 if (!briefDescription().isEmpty() && repeatBrief &&
485 !documentation().isEmpty())
486 {
489 ol.writeString("\n\n");
491 }
492
493 // write documentation
494 if (!documentation().isEmpty())
495 {
496 ol.generateDoc(docFile(),
497 docLine(),
498 this,
499 nullptr,
501 DocOptions()
502 .setIndexWords(true));
503 }
504
505 writeSourceDef(ol);
506 ol.endTextBlock();
507 }
508}
void writeSourceDef(OutputList &ol) const override
QCString briefFile() const override
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:672
void writeRuler()
Definition outputlist.h:521
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, const DocOptions &options)
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:670
void writeAnchor(const QCString &fileName, const QCString &name)
Definition outputlist.h:523

References DefinitionMixin< ConceptDefMutable >::briefDescription(), DefinitionMixin< ConceptDefMutable >::briefFile(), DefinitionMixin< ConceptDefMutable >::briefLine(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< ConceptDefMutable >::docFile(), DefinitionMixin< ConceptDefMutable >::docLine(), DefinitionMixin< ConceptDefMutable >::documentation(), OutputList::endGroupHeader(), OutputList::endTextBlock(), OutputList::generateDoc(), hasDetailedDescription(), Html, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startGroupHeader(), OutputList::startTextBlock(), title(), OutputList::writeAnchor(), OutputList::writeRuler(), DefinitionMixin< ConceptDefMutable >::writeSourceDef(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDocumentation()

void ConceptDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Implements ConceptDefMutable.

Definition at line 535 of file conceptdef.cpp.

536{
537 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
538 QCString pageTitle;
539 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
540 {
541 pageTitle = displayName();
542 }
543 else
544 {
546 }
547 startFile(ol,getOutputFileBase(),false,name(),pageTitle,HighlightedItem::ConceptVisible,!generateTreeView);
548
549 // ---- navigation part
550 if (!generateTreeView)
551 {
553 {
555 }
556 ol.endQuickIndices();
557 }
558
559 // ---- title part
560 startTitle(ol,getOutputFileBase(),this);
561 ol.parseText(pageTitle);
563 addGroupListToTitle(ol,this);
565
566 // ---- contents part
567
568 ol.startContents();
569
570 //---------------------------------------- start flexible part -------------------------------
571
572 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Concept))
573 {
574 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
575 switch (lde->kind())
576 {
577 case LayoutDocEntry::BriefDesc:
579 break;
580 case LayoutDocEntry::ConceptDefinition:
581 if (ls) writeDefinition(ol,ls->title(getLanguage()));
582 break;
583 case LayoutDocEntry::DetailedDesc:
584 if (ls) writeDetailedDescription(ol,ls->title(getLanguage()));
585 break;
586 case LayoutDocEntry::AuthorSection:
588 break;
589 case LayoutDocEntry::ClassIncludes:
591 break;
592 case LayoutDocEntry::MemberDeclStart:
593 case LayoutDocEntry::NamespaceClasses:
594 case LayoutDocEntry::NamespaceInterfaces:
595 case LayoutDocEntry::NamespaceStructs:
596 case LayoutDocEntry::NamespaceExceptions:
597 case LayoutDocEntry::NamespaceConcepts:
598 case LayoutDocEntry::NamespaceNestedNamespaces:
599 case LayoutDocEntry::NamespaceNestedConstantGroups:
600 case LayoutDocEntry::MemberGroups:
601 case LayoutDocEntry::MemberDecl:
602 case LayoutDocEntry::MemberDeclEnd:
603 case LayoutDocEntry::MemberDefStart:
604 case LayoutDocEntry::NamespaceInlineClasses:
605 case LayoutDocEntry::MemberDef:
606 case LayoutDocEntry::MemberDefEnd:
607 case LayoutDocEntry::ClassInheritanceGraph:
608 case LayoutDocEntry::ClassNestedClasses:
609 case LayoutDocEntry::ClassCollaborationGraph:
610 case LayoutDocEntry::ClassAllMembersLink:
611 case LayoutDocEntry::ClassUsedFiles:
612 case LayoutDocEntry::ClassInlineClasses:
613 case LayoutDocEntry::FileClasses:
614 case LayoutDocEntry::FileConcepts:
615 case LayoutDocEntry::FileInterfaces:
616 case LayoutDocEntry::FileStructs:
617 case LayoutDocEntry::FileExceptions:
618 case LayoutDocEntry::FileNamespaces:
619 case LayoutDocEntry::FileConstantGroups:
620 case LayoutDocEntry::FileIncludes:
621 case LayoutDocEntry::FileIncludeGraph:
622 case LayoutDocEntry::FileIncludedByGraph:
623 case LayoutDocEntry::FileInlineClasses:
624 case LayoutDocEntry::FileSourceLink:
625 case LayoutDocEntry::GroupClasses:
626 case LayoutDocEntry::GroupConcepts:
627 case LayoutDocEntry::GroupModules:
628 case LayoutDocEntry::GroupInlineClasses:
629 case LayoutDocEntry::GroupNamespaces:
630 case LayoutDocEntry::GroupDirs:
631 case LayoutDocEntry::GroupNestedGroups:
632 case LayoutDocEntry::GroupFiles:
633 case LayoutDocEntry::GroupGraph:
634 case LayoutDocEntry::GroupPageDocs:
635 case LayoutDocEntry::ModuleExports:
636 case LayoutDocEntry::ModuleClasses:
637 case LayoutDocEntry::ModuleConcepts:
638 case LayoutDocEntry::ModuleUsedFiles:
639 case LayoutDocEntry::DirSubDirs:
640 case LayoutDocEntry::DirFiles:
641 case LayoutDocEntry::DirGraph:
642 err("Internal inconsistency: member '{}' should not be part of "
643 "LayoutDocManager::Concept entry list\n",lde->entryToString());
644 break;
645 }
646 }
647
648 //---------------------------------------- end flexible part -------------------------------
649
650 ol.endContents();
651
652 endFileWithNavPath(ol,this);
653}
void writeIncludeFiles(OutputList &ol) const
void addConceptAttributes(OutputList &ol) const
void writeBriefDescription(OutputList &) const
void writeDetailedDescription(OutputList &ol, const QCString &title) const
void writeDefinition(OutputList &ol, const QCString &title) const
void writeAuthorSection(OutputList &ol) const
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
void writeNavigationPath(OutputList &ol) const override
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1435
void endContents()
Definition outputlist.h:620
void endQuickIndices()
Definition outputlist.h:604
void startContents()
Definition outputlist.h:618
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
Definition index.cpp:384
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
Definition index.cpp:394
void startFile(OutputList &ol, const QCString &name, bool isSource, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel, const QCString &allMembersFile)
Definition index.cpp:401
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
Definition index.cpp:448
#define err(fmt,...)
Definition message.h:127
QCString title(SrcLangExt lang) const
Definition layout.cpp:1779
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:4813

References addConceptAttributes(), addGroupListToTitle(), ConceptVisible, Config_getBool, displayName(), OutputList::endContents(), endFileWithNavPath(), OutputList::endQuickIndices(), endTitle(), err, DefinitionMixin< ConceptDefMutable >::getLanguage(), DefinitionMixin< ConceptDefMutable >::getOuterScope(), getOutputFileBase(), Doxygen::globalScope, LayoutDocManager::instance(), DefinitionMixin< ConceptDefMutable >::name(), OutputList::parseText(), OutputList::startContents(), startFile(), startTitle(), theTranslator, LayoutDocEntrySection::title(), writeAuthorSection(), writeBriefDescription(), writeDefinition(), writeDetailedDescription(), writeIncludeFiles(), and DefinitionMixin< ConceptDefMutable >::writeNavigationPath().

◆ writeIncludeFiles()

void ConceptDefImpl::writeIncludeFiles ( OutputList & ol) const

Definition at line 366 of file conceptdef.cpp.

367{
368 if (m_incInfo)
369 {
370 QCString nm=m_incInfo->includeName.isEmpty() ?
371 (m_incInfo->fileDef ?
372 m_incInfo->fileDef->docName() : QCString()
373 ) :
374 m_incInfo->includeName;
375 if (!nm.isEmpty())
376 {
377 ol.startParagraph();
378 ol.startTypewriter();
379 ol.docify(::includeStatement(SrcLangExt::Cpp,m_incInfo->kind));
380 ol.docify(::includeOpen(SrcLangExt::Cpp,m_incInfo->kind));
383 ol.docify(nm);
386 if (m_incInfo->fileDef)
387 {
388 ol.writeObjectLink(QCString(),m_incInfo->fileDef->includeName(),QCString(),nm);
389 }
390 else
391 {
392 ol.docify(nm);
393 }
395 ol.docify(::includeClose(SrcLangExt::Cpp,m_incInfo->kind));
396 ol.endTypewriter();
397 ol.endParagraph();
398 }
399 }
400}
void startTypewriter()
Definition outputlist.h:449
void endTypewriter()
Definition outputlist.h:451
QCString includeClose(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:86
QCString includeStatement(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:56
QCString includeOpen(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:73

References OutputList::disable(), OutputList::disableAllBut(), OutputList::docify(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTypewriter(), Html, includeClose(), includeOpen(), includeStatement(), QCString::isEmpty(), m_incInfo, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startParagraph(), OutputList::startTypewriter(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writeTagFile()

void ConceptDefImpl::writeTagFile ( TextStream & tagFile)
overridevirtual

Implements ConceptDefMutable.

Definition at line 308 of file conceptdef.cpp.

309{
310 tagFile << " <compound kind=\"concept\">\n";
311 tagFile << " <name>" << convertToXML(name()) << "</name>\n";
312 QCString fn = getOutputFileBase();
314 tagFile << " <filename>" << convertToXML(fn) << "</filename>\n";
315 QCString idStr = id();
316 if (!idStr.isEmpty())
317 {
318 tagFile << " <clangid>" << convertToXML(idStr) << "</clangid>\n";
319 }
321 tagFile << " </compound>\n";
322}
void writeDocAnchorsToTagFile(TextStream &fs) const override
QCString convertToXML(const QCString &s, bool keepEntities)
Definition util.cpp:3833
void addHtmlExtensionIfMissing(QCString &fName)
Definition util.cpp:4823

References addHtmlExtensionIfMissing(), convertToXML(), getOutputFileBase(), DefinitionMixin< ConceptDefMutable >::id(), QCString::isEmpty(), DefinitionMixin< ConceptDefMutable >::name(), and DefinitionMixin< ConceptDefMutable >::writeDocAnchorsToTagFile().

Member Data Documentation

◆ m_fileDef

FileDef* ConceptDefImpl::m_fileDef = nullptr
private

Definition at line 83 of file conceptdef.cpp.

Referenced by getFileDef(), setFileDef(), and writeDefinition().

◆ m_fileName

QCString ConceptDefImpl::m_fileName
private

Definition at line 80 of file conceptdef.cpp.

Referenced by getOutputFileBase().

◆ m_groupId

int ConceptDefImpl::m_groupId = -1
private

Definition at line 87 of file conceptdef.cpp.

Referenced by groupId(), and setGroupId().

◆ m_incInfo

std::unique_ptr<IncludeInfo> ConceptDefImpl::m_incInfo
private

Definition at line 81 of file conceptdef.cpp.

Referenced by includeInfo(), setIncludeFile(), and writeIncludeFiles().

◆ m_initializer

QCString ConceptDefImpl::m_initializer
private

Definition at line 86 of file conceptdef.cpp.

Referenced by initializer(), setInitializer(), and writeDefinition().

◆ m_moduleDef

ModuleDef* ConceptDefImpl::m_moduleDef = nullptr
private

Definition at line 84 of file conceptdef.cpp.

Referenced by getModuleDef(), and setModuleDef().

◆ m_nspace

NamespaceDef* ConceptDefImpl::m_nspace = nullptr
private

Definition at line 82 of file conceptdef.cpp.

Referenced by getNamespaceDef(), and setNamespace().

◆ m_tArgList

ArgumentList ConceptDefImpl::m_tArgList
private

Definition at line 85 of file conceptdef.cpp.

Referenced by getTemplateParameterList(), setInitializer(), and setTemplateArguments().


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