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

Public Member Functions

 LayoutParser (LayoutDocManager &manager)
void setDocumentLocator (const XMLLocator *locator)
void error (const std::string &fileName, int lineNr, const std::string &msg)
void startElement (const std::string &name, const XMLHandlers::Attributes &attrib)
void endElement (const std::string &name)
void startSimpleEntry (LayoutDocEntry::Kind k, const std::string &id, const XMLHandlers::Attributes &attrib)
void startSectionEntry (LayoutDocEntry::Kind k, const std::string &id, const XMLHandlers::Attributes &attrib, const DString &title)
void startMemberDeclEntry (const std::string &id, const XMLHandlers::Attributes &attrib, MemberListType type, const DString &title, const DString &subscript)
void startMemberDefEntry (const std::string &id, const XMLHandlers::Attributes &attrib, MemberListType type, const DString &title, const DString &)
void startLayout (const std::string &, const XMLHandlers::Attributes &attrib)
void startNavIndex (const std::string &, const XMLHandlers::Attributes &)
void endNavIndex (const std::string &)
void startNavEntry (const std::string &, const XMLHandlers::Attributes &attrib)
void endNavEntry (const std::string &)
void startTop (const std::string &, const XMLHandlers::Attributes &attrib, LayoutDocManager::LayoutPart part, const DString &scope, LayoutNavEntry::Kind nav)
void endTop (const std::string &)
void startMemberDef (const std::string &id, const XMLHandlers::Attributes &attrib)
void endMemberDef (const std::string &id)
void startMemberDecl (const std::string &id, const XMLHandlers::Attributes &attrib)
void endMemberDecl (const std::string &id)
int majorVersion () const
int minorVersion () const

Private Attributes

DString m_scope
LayoutDocManager & m_layoutDocManager
LayoutDocManager::LayoutPart m_part = LayoutDocManager::Undefined
LayoutNavEntry * m_rootNav = nullptr
bool m_invalidEntry = false
bool m_visible = true
const XMLLocator * m_locator = nullptr
int m_majorVersion = 1
int m_minorVersion = 0

Static Private Attributes

static int m_userGroupCount =0

Detailed Description

Definition at line 206 of file layout.cpp.

Constructor & Destructor Documentation

◆ LayoutParser()

LayoutParser::LayoutParser ( LayoutDocManager & manager)
inline

Definition at line 209 of file layout.cpp.

209: m_layoutDocManager(manager) {}
LayoutDocManager & m_layoutDocManager
Definition layout.cpp:718

References m_layoutDocManager.

Member Function Documentation

◆ endElement()

void LayoutParser::endElement ( const std::string & name)

Definition at line 1387 of file layout.cpp.

1388{
1389 //printf("endElement [%s]::[%s]\n",qPrint(m_scope),qPrint(name));
1390 auto it=g_elementHandlers.end();
1391
1392 if (!m_scope.empty() && m_scope.right(name.length()+1)==name+"/")
1393 { // element ends current scope
1394 it = g_elementHandlers.find(m_scope.left(m_scope.length()-1).str());
1395 }
1396 else // continue with current scope
1397 {
1398 it = g_elementHandlers.find(m_scope.str()+name);
1399 }
1400 if (it!=g_elementHandlers.end())
1401 {
1402 it->second.endCb(*this,it->first+" end"); // added end to id to make it unique
1403 }
1404}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
DString right(size_t len) const
Definition dstring.h:311
DString left(size_t len) const
Definition dstring.h:306
const std::string & str() const
Definition dstring.h:645
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:151
DString m_scope
Definition layout.cpp:717
const char * name(int level)
Definition latexgen.h:368
static const std::map< std::string, ElementCallbacks > g_elementHandlers
Definition layout.cpp:801

References DString::empty(), anonymous_namespace{layout.cpp}::g_elementHandlers, DString::left(), DString::length(), m_scope, DString::right(), and DString::str().

Referenced by LayoutDocManager::init(), and LayoutDocManager::parse().

◆ endMemberDecl()

void LayoutParser::endMemberDecl ( const std::string & id)
inline

Definition at line 692 of file layout.cpp.

693 {
694 if (size_t i=m_scope.rfind("memberdecl/"); i!=DString::npos)
695 {
697 bool isVisible = true;
698 for (const auto &lde : m_layoutDocManager.docEntries(m_part))
699 {
700 if (lde->kind() == LayoutDocEntry::MemberDeclStart)
701 {
702 isVisible = static_cast<const LayoutDocEntrySimple*>(lde.get())->visible();
703 break;
704 }
705 }
706 if (m_part!=LayoutDocManager::Undefined)
707 {
708 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDeclEnd,id,isVisible));
709 }
710 }
711 }
size_t rfind(char c, size_t pos=npos) const
Definition dstring.h:244
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
Definition dstring.h:178
void addEntry(LayoutPart p, LayoutDocEntryPtr &&e)
Definition layout.cpp:1476
const LayoutDocEntryList & docEntries(LayoutPart part) const
Returns the list of LayoutDocEntry's in representation order for a given page identified by part.
Definition layout.cpp:1455
LayoutDocManager::LayoutPart m_part
Definition layout.cpp:719

References LayoutDocManager::addEntry(), LayoutDocManager::docEntries(), DString::left(), m_layoutDocManager, m_part, m_scope, DString::npos, DString::rfind(), and LayoutDocEntrySimple::visible().

◆ endMemberDef()

void LayoutParser::endMemberDef ( const std::string & id)
inline

Definition at line 660 of file layout.cpp.

661 {
662 DString scopeOrg = m_scope;
663 if (size_t i=m_scope.rfind("memberdef/"); i!=DString::npos)
664 {
666 bool isVisible = true;
667 for (const auto &lde : m_layoutDocManager.docEntries(m_part))
668 {
669 if (lde->kind() == LayoutDocEntry::MemberDefStart)
670 {
671 isVisible = static_cast<const LayoutDocEntrySimple*>(lde.get())->visible();
672 break;
673 }
674 }
675 if (m_part!=LayoutDocManager::Undefined)
676 {
677 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDefEnd,id,isVisible));
678 }
679 }
680 }

References LayoutDocManager::addEntry(), LayoutDocManager::docEntries(), DString::left(), m_layoutDocManager, m_part, m_scope, DString::npos, DString::rfind(), and LayoutDocEntrySimple::visible().

◆ endNavEntry()

void LayoutParser::endNavEntry ( const std::string & )
inline

Definition at line 628 of file layout.cpp.

629 {
630 // set the root back to the parent
632 m_invalidEntry=false;
633 }
bool m_invalidEntry
Definition layout.cpp:721
LayoutNavEntry * m_rootNav
Definition layout.cpp:720
LayoutNavEntry * parent() const
Definition layout.h:211

References m_invalidEntry, m_rootNav, and LayoutNavEntry::parent().

◆ endNavIndex()

void LayoutParser::endNavIndex ( const std::string & )
inline

Definition at line 298 of file layout.cpp.

299 {
300 m_scope="";
301 if (m_rootNav && !m_rootNav->find(LayoutNavEntry::MainPage))
302 {
303 // no MainPage node... add one as the first item of the root node...
304 m_rootNav->insertChild(0,std::make_unique<LayoutNavEntry>(m_rootNav,LayoutNavEntry::MainPage, true,
305 "index",theTranslator->trMainPage(),""));
306 }
307 }
virtual DString trMainPage()=0
Translator * theTranslator
Definition language.cpp:76
LayoutNavEntry * find(LayoutNavEntry::Kind k, const DString &file=DString()) const
Definition layout.cpp:135
void insertChild(size_t pos, std::unique_ptr< LayoutNavEntry > &&e)
Definition layout.cpp:129

References LayoutNavEntry::find(), LayoutNavEntry::insertChild(), m_rootNav, m_scope, theTranslator, and Translator::trMainPage().

◆ endTop()

void LayoutParser::endTop ( const std::string & )
inline

Definition at line 644 of file layout.cpp.

645 {
646 m_scope="";
647 m_part = LayoutDocManager::Undefined;
648 }

References m_part, and m_scope.

◆ error()

void LayoutParser::error ( const std::string & fileName,
int lineNr,
const std::string & msg )
inline

Definition at line 216 of file layout.cpp.

217 {
218 warn_layout(fileName,lineNr,"{}",msg);
219 }
#define msg(fmt,...)
Definition message.h:94
#define warn_layout(file, line, fmt,...)
Definition message.h:117

References msg, and warn_layout.

Referenced by LayoutDocManager::init(), and LayoutDocManager::parse().

◆ majorVersion()

int LayoutParser::majorVersion ( ) const
inline

Definition at line 713 of file layout.cpp.

713{ return m_majorVersion; }
int m_majorVersion
Definition layout.cpp:725

References m_majorVersion.

Referenced by LayoutDocManager::init(), and LayoutDocManager::parse().

◆ minorVersion()

int LayoutParser::minorVersion ( ) const
inline

Definition at line 714 of file layout.cpp.

714{ return m_minorVersion; }
int m_minorVersion
Definition layout.cpp:726

References m_minorVersion.

Referenced by LayoutDocManager::init(), and LayoutDocManager::parse().

◆ setDocumentLocator()

void LayoutParser::setDocumentLocator ( const XMLLocator * locator)
inline

Definition at line 212 of file layout.cpp.

213 {
214 m_locator = locator;
215 }
const XMLLocator * m_locator
Definition layout.cpp:724

References m_locator.

Referenced by LayoutDocManager::init(), and LayoutDocManager::parse().

◆ startElement()

void LayoutParser::startElement ( const std::string & name,
const XMLHandlers::Attributes & attrib )

Definition at line 1371 of file layout.cpp.

1372{
1373 //printf("startElement [%s]::[%s]\n",qPrint(m_scope),qPrint(name));
1374 auto it = g_elementHandlers.find(m_scope.str()+name);
1375 if (it!=g_elementHandlers.end())
1376 {
1377 it->second.startCb(*this,it->first,attrib);
1378 }
1379 else
1380 {
1381 DString fileName = m_locator->fileName();
1382 warn_layout(fileName,m_locator->lineNr(),"Unexpected start tag '{}' found in scope='{}'!",
1383 name,m_scope);
1384 }
1385}
virtual int lineNr() const =0
virtual std::string fileName() const =0

References XMLLocator::fileName(), anonymous_namespace{layout.cpp}::g_elementHandlers, XMLLocator::lineNr(), m_locator, m_scope, DString::str(), and warn_layout.

Referenced by LayoutDocManager::init(), and LayoutDocManager::parse().

◆ startLayout()

void LayoutParser::startLayout ( const std::string & ,
const XMLHandlers::Attributes & attrib )
inline

Definition at line 278 of file layout.cpp.

279 {
280 // extract and store version number
281 DString version = XMLHandlers::value(attrib,"version");
282 static const reg::Ex re(R"((\d+)\.(\d+))");
283 reg::Match match;
284 if (reg::match(version.view(),match,re))
285 {
286 m_majorVersion = atoi(match[1].str().c_str());
287 m_minorVersion = atoi(match[2].str().c_str());
288 //printf("layout version %d.%d\n",m_versionMajor,m_versionMinor);
289 }
290 }
std::string_view view() const
Definition dstring.h:162
static std::string value(const Attributes &attrib, const std::string &key)
Definition xml.h:44
bool match(std::string_view str, Match &match, const Ex &re)
Matches a given string str for a match against regular expression re.
Definition regex.cpp:861

References m_majorVersion, m_minorVersion, reg::match(), XMLHandlers::value(), and DString::view().

◆ startMemberDecl()

void LayoutParser::startMemberDecl ( const std::string & id,
const XMLHandlers::Attributes & attrib )
inline

Definition at line 682 of file layout.cpp.

683 {
684 m_scope+="memberdecl/";
685 bool isVisible = m_visible && elemIsVisible(attrib);
686 if (m_part!=LayoutDocManager::Undefined)
687 {
688 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDeclStart,id,isVisible));
689 }
690 }
bool m_visible
Definition layout.cpp:722
static bool elemIsVisible(const XMLHandlers::Attributes &attrib, bool defVal=true)
Definition layout.cpp:81

References LayoutDocManager::addEntry(), elemIsVisible(), m_layoutDocManager, m_part, m_scope, and m_visible.

◆ startMemberDeclEntry()

void LayoutParser::startMemberDeclEntry ( const std::string & id,
const XMLHandlers::Attributes & attrib,
MemberListType type,
const DString & title,
const DString & subscript )
inline

Definition at line 251 of file layout.cpp.

253 {
254 DString userTitle = XMLHandlers::value(attrib,"title");
255 DString userSubscript = XMLHandlers::value(attrib,"subtitle");
256 if (userTitle.empty()) userTitle = title;
257 if (userSubscript.empty()) userSubscript = subscript;
258 bool isVisible = m_visible && elemIsVisible(attrib);
259 if (m_part!=LayoutDocManager::Undefined)
260 {
261 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntryMemberDecl>(type,id,userTitle,userSubscript,isVisible));
262 }
263 }

References LayoutDocManager::addEntry(), elemIsVisible(), DString::empty(), m_layoutDocManager, m_part, m_visible, and XMLHandlers::value().

◆ startMemberDef()

void LayoutParser::startMemberDef ( const std::string & id,
const XMLHandlers::Attributes & attrib )
inline

Definition at line 650 of file layout.cpp.

651 {
652 m_scope+="memberdef/";
653 bool isVisible = m_visible && elemIsVisible(attrib);
654 if (m_part!=LayoutDocManager::Undefined)
655 {
656 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDefStart,id,isVisible));
657 }
658 }

References LayoutDocManager::addEntry(), elemIsVisible(), m_layoutDocManager, m_part, m_scope, and m_visible.

◆ startMemberDefEntry()

void LayoutParser::startMemberDefEntry ( const std::string & id,
const XMLHandlers::Attributes & attrib,
MemberListType type,
const DString & title,
const DString &  )
inline

Definition at line 265 of file layout.cpp.

267 {
268 DString userTitle = XMLHandlers::value(attrib,"title");
269 if (userTitle.empty()) userTitle = title;
270 //printf("memberdef: %s\n",qPrint(userTitle));
271 bool isVisible = m_visible && elemIsVisible(attrib);
272 if (m_part!=LayoutDocManager::Undefined)
273 {
274 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntryMemberDef>(type,id,userTitle,isVisible));
275 }
276 }

References LayoutDocManager::addEntry(), elemIsVisible(), DString::empty(), m_layoutDocManager, m_part, m_visible, and XMLHandlers::value().

◆ startNavEntry()

void LayoutParser::startNavEntry ( const std::string & ,
const XMLHandlers::Attributes & attrib )
inline

Definition at line 309 of file layout.cpp.

310 {
311 bool javaOpt = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
312 bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
313 bool vhdlOpt = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
314 bool sliceOpt = Config_getBool(OPTIMIZE_OUTPUT_SLICE);
315 bool hasGraphicalHierarchy = Config_getBool(HAVE_DOT) &&
316 Config_getBool(GRAPHICAL_HIERARCHY);
317 bool extractAll = Config_getBool(EXTRACT_ALL);
318 static struct NavEntryMap
319 {
320 const char *typeStr; // type attribute name in the XML file
321 LayoutNavEntry::Kind kind; // corresponding enum name
322 DString mainName; // default title for an item if it has children
323 DString subName; // optional name for an item if it is rendered as a child
324 DString intro; // introduction text to be put on the index page
325 DString baseFile; // base name of the file containing the index page
326 } mapping[] =
327 {
328 { "mainpage",
329 LayoutNavEntry::MainPage,
331 DString(),
332 DString(),
333 "index"
334 },
335 { "pages",
336 LayoutNavEntry::Pages,
338 DString(),
340 "pages"
341 },
342 { "topics",
343 LayoutNavEntry::Topics,
345 DString(),
347 "topics"
348 },
349 { "modules",
350 LayoutNavEntry::Modules,
354 "modules"
355 },
356 { "modulelist",
357 LayoutNavEntry::ModuleList,
359 DString(),
361 "modules"
362 },
363 { "modulemembers",
364 LayoutNavEntry::ModuleMembers,
366 DString(),
368 "modulemembers"
369 },
370 { "namespaces",
371 LayoutNavEntry::Namespaces,
372 javaOpt || vhdlOpt ? theTranslator->trPackages() : fortranOpt || sliceOpt ? theTranslator->trModules() : theTranslator->trNamespaces(),
373 javaOpt || vhdlOpt ? theTranslator->trPackageList() : fortranOpt || sliceOpt ? theTranslator->trModulesList() : theTranslator->trNamespaceList(),
374 javaOpt || vhdlOpt ? theTranslator->trPackageListDescription() : fortranOpt || sliceOpt ? theTranslator->trModulesListDescription(extractAll) : theTranslator->trNamespaceListDescription(extractAll),
375 "namespaces"
376 },
377 { "namespacelist",
378 LayoutNavEntry::NamespaceList,
379 javaOpt || vhdlOpt ? theTranslator->trPackageList() : fortranOpt || sliceOpt ? theTranslator->trModulesList() : theTranslator->trNamespaceList(),
380 DString(),
381 javaOpt || vhdlOpt ? theTranslator->trPackageListDescription() : fortranOpt || sliceOpt ? theTranslator->trModulesListDescription(extractAll) : theTranslator->trNamespaceListDescription(extractAll),
382 "namespaces"
383 },
384 { "namespacemembers",
385 LayoutNavEntry::NamespaceMembers,
386 javaOpt || vhdlOpt ? theTranslator->trPackageMembers() : fortranOpt || sliceOpt ? theTranslator->trModulesMembers() : theTranslator->trNamespaceMembers(),
387 DString(),
388 fortranOpt || sliceOpt ? theTranslator->trModulesMemberDescription(extractAll) : theTranslator->trNamespaceMemberDescription(extractAll),
389 "namespacemembers"
390 },
391 { "concepts",
392 LayoutNavEntry::Concepts,
393 theTranslator->trConcept(true,false),
396 "concepts"
397 },
398 { "classindex",
399 LayoutNavEntry::ClassIndex,
401 DString(),
402 DString(),
403 "classes"
404 },
405 { "classes",
406 LayoutNavEntry::Classes,
410 "annotated"
411 },
412 { "classlist",
413 LayoutNavEntry::ClassList,
415 DString(),
417 "annotated"
418 },
419 { "hierarchy",
420 LayoutNavEntry::ClassHierarchy,
422 DString(),
424 hasGraphicalHierarchy ? "inherits" : "hierarchy"
425 },
426 { "classmembers",
427 LayoutNavEntry::ClassMembers,
429 DString(),
431 "functions"
432 },
433 { "interfaceindex",
434 LayoutNavEntry::InterfaceIndex,
436 DString(),
437 DString(),
438 "interfaces"
439 },
440 { "interfaces",
441 LayoutNavEntry::Interfaces,
445 "annotatedinterfaces"
446 },
447 { "interfacelist",
448 LayoutNavEntry::InterfaceList,
450 DString(),
452 "annotatedinterfaces"
453 },
454 { "interfacehierarchy",
455 LayoutNavEntry::InterfaceHierarchy,
457 DString(),
459 hasGraphicalHierarchy ? "interfaceinherits" : "interfacehierarchy"
460 },
461 { "structindex",
462 LayoutNavEntry::StructIndex,
464 DString(),
465 DString(),
466 "structs"
467 },
468 { "structs",
469 LayoutNavEntry::Structs,
473 "annotatedstructs"
474 },
475 { "structlist",
476 LayoutNavEntry::StructList,
478 DString(),
480 "annotatedstructs"
481 },
482 { "exceptionindex",
483 LayoutNavEntry::ExceptionIndex,
485 DString(),
486 DString(),
487 "exceptions"
488 },
489 { "exceptions",
490 LayoutNavEntry::Exceptions,
494 "annotatedexceptions"
495 },
496 { "exceptionlist",
497 LayoutNavEntry::ExceptionList,
499 DString(),
501 "annotatedexceptions"
502 },
503 { "exceptionhierarchy",
504 LayoutNavEntry::ExceptionHierarchy,
506 DString(),
508 hasGraphicalHierarchy ? "exceptioninherits" : "exceptionhierarchy"
509 },
510 { "files",
511 LayoutNavEntry::Files,
512 theTranslator->trFile(true,false),
515 "files"
516 },
517 { "filelist",
518 LayoutNavEntry::FileList,
520 DString(),
522 "files"
523 },
524 { "globals",
525 LayoutNavEntry::FileGlobals,
527 DString(),
529 "globals"
530 },
531 { "examples",
532 LayoutNavEntry::Examples,
534 DString(),
536 "examples"
537 },
538 { "user",
539 LayoutNavEntry::User,
540 DString(),
541 DString(),
542 DString(),
543 "user"
544 },
545 { "usergroup",
546 LayoutNavEntry::UserGroup,
547 DString(),
548 DString(),
549 DString(),
550 "usergroup"
551 },
552 { nullptr, // end of list
553 static_cast<LayoutNavEntry::Kind>(0),
554 DString(),
555 DString(),
556 DString(),
557 DString()
558 }
559 };
560 // find type in the table
561 int i=0;
562 DString type = XMLHandlers::value(attrib,"type");
563 while (mapping[i].typeStr)
564 {
565 if (mapping[i].typeStr==type)
566 break;
567 i++;
568 }
569 if (mapping[i].typeStr==nullptr)
570 {
571 DString fileName = m_locator->fileName();
572 if (type.empty())
573 {
574 warn_layout(fileName,m_locator->lineNr(),"an entry tag within a navindex has no type attribute! Check your layout file!");
575 }
576 else
577 {
578 warn_layout(fileName,m_locator->lineNr(),"the type '{}' is not supported for the entry tag within a navindex! Check your layout file!",type);
579 }
580 m_invalidEntry=true;
581 return;
582 }
583 LayoutNavEntry::Kind kind = mapping[i].kind;
584 DString baseFile = mapping[i].baseFile;
585 DString title = XMLHandlers::value(attrib,"title");
586 bool isVisible = m_visible && elemIsVisible(attrib);
587 if (title.empty()) // use default title
588 {
589 title = mapping[i].mainName; // use title for main row
590 if (m_rootNav!=m_layoutDocManager.rootNavEntry() && !mapping[i].subName.empty())
591 {
592 title = mapping[i].subName; // if this is a child of another row, use the subName if available
593 // this is mainly done to get compatible naming with older versions.
594 }
595 }
596 DString intro = XMLHandlers::value(attrib,"intro");
597 if (intro.empty()) // use default intro text
598 {
599 intro = mapping[i].intro;
600 }
601 DString url = XMLHandlers::value(attrib,"url");
602 if (mapping[i].kind==LayoutNavEntry::User && !url.empty())
603 {
604 baseFile=url;
605 }
606 else if (kind==LayoutNavEntry::UserGroup)
607 {
608 if (!url.empty())
609 {
610 if (url == "[none]")
611 {
612 baseFile = DString();
613 }
614 else
615 {
616 baseFile=url;
617 }
618 }
619 else
620 {
621 baseFile+=DString().sprintf("%d",m_userGroupCount++);
622 }
623 }
624 // create new item and make it the new root
625 m_rootNav = m_layoutDocManager.createChildNavEntry(m_rootNav,kind,isVisible,baseFile,title,intro);
626 }
DString & sprintf(const char *format,...)
Definition dstring.cpp:34
LayoutNavEntry * createChildNavEntry(LayoutNavEntry *root, LayoutNavEntry::Kind k, bool vs, const DString &bf, const DString &tl, const DString &intro)
append a new node as a child to root.
Definition layout.cpp:1465
LayoutNavEntry * rootNavEntry() const
returns the (invisible) root of the navigation tree.
Definition layout.cpp:1460
static int m_userGroupCount
Definition layout.cpp:723
virtual DString trCompoundMembers()=0
virtual DString trConceptList()=0
virtual DString trTopics()=0
virtual DString trModulesMembers()=0
virtual DString trCompoundMembersFortran()=0
virtual DString trExceptions()=0
virtual DString trModulesList()=0
virtual DString trClasses()=0
virtual DString trInterfaceIndex()=0
virtual DString trNamespaceMembers()=0
virtual DString trNamespaceMemberDescription(bool extractAll)=0
virtual DString trFileMembersDescription(bool extractAll)=0
virtual DString trPackageMembers()=0
virtual DString trNamespaceList()=0
virtual DString trExceptionList()=0
virtual DString trStructs()=0
virtual DString trExceptionHierarchyDescription()=0
virtual DString trInterfaceList()=0
virtual DString trInterfaceListDescription()=0
virtual DString trExceptionHierarchy()=0
virtual DString trCompoundList()=0
virtual DString trInterfaceHierarchy()=0
virtual DString trPackageList()=0
virtual DString trModulesDescription()=0
virtual DString trStructListDescription()=0
virtual DString trDesignUnitListDescription()=0
virtual DString trExamplesDescription()=0
virtual DString trFileList()=0
virtual DString trModules()=0
virtual DString trRelatedPages()=0
virtual DString trCompoundListDescriptionFortran()=0
virtual DString trFileMembers()=0
virtual DString trDesignUnitHierarchy()=0
virtual DString trDesignUnits()=0
virtual DString trInterfaceHierarchyDescription()=0
virtual DString trStructIndex()=0
virtual DString trExceptionIndex()=0
virtual DString trDesignUnitMembers()=0
virtual DString trExceptionListDescription()=0
virtual DString trRelatedPagesDescription()=0
virtual DString trDesignUnitList()=0
virtual DString trModulesMemberDescription(bool extractAll)=0
virtual DString trCompoundIndexFortran()=0
virtual DString trDataTypes()=0
virtual DString trCompoundListDescription()=0
virtual DString trConcept(bool first_capital, bool singular)=0
virtual DString trTopicListDescription()=0
virtual DString trFileListDescription(bool extractAll)=0
virtual DString trClassHierarchyDescription()=0
virtual DString trSliceInterfaces()=0
virtual DString trConceptListDescription(bool extractAll)=0
virtual DString trCompoundListFortran()=0
virtual DString trPackages()=0
virtual DString trPackageListDescription()=0
virtual DString trModulesListDescription(bool extractAll)=0
virtual DString trStructList()=0
virtual DString trNamespaceListDescription(bool extractAll)=0
virtual DString trClassHierarchy()=0
virtual DString trCompoundIndex()=0
virtual DString trFile(bool first_capital, bool singular)=0
virtual DString trDesignUnitIndex()=0
virtual DString trCompoundMembersDescription(bool extractAll)=0
virtual DString trNamespaces()=0
virtual DString trCompoundMembersDescriptionFortran(bool extractAll)=0
virtual DString trExamples()=0
#define Config_getBool(name)
Definition config.h:33
Kind
Definition layout.h:192

References Config_getBool, LayoutDocManager::createChildNavEntry(), elemIsVisible(), DString::empty(), XMLLocator::fileName(), XMLLocator::lineNr(), m_invalidEntry, m_layoutDocManager, m_locator, m_rootNav, m_userGroupCount, m_visible, LayoutDocManager::rootNavEntry(), DString::sprintf(), theTranslator, Translator::trClasses(), Translator::trClassHierarchy(), Translator::trClassHierarchyDescription(), Translator::trCompoundIndex(), Translator::trCompoundIndexFortran(), Translator::trCompoundList(), Translator::trCompoundListDescription(), Translator::trCompoundListDescriptionFortran(), Translator::trCompoundListFortran(), Translator::trCompoundMembers(), Translator::trCompoundMembersDescription(), Translator::trCompoundMembersDescriptionFortran(), Translator::trCompoundMembersFortran(), Translator::trConcept(), Translator::trConceptList(), Translator::trConceptListDescription(), Translator::trDataTypes(), Translator::trDesignUnitHierarchy(), Translator::trDesignUnitIndex(), Translator::trDesignUnitList(), Translator::trDesignUnitListDescription(), Translator::trDesignUnitMembers(), Translator::trDesignUnits(), Translator::trExamples(), Translator::trExamplesDescription(), Translator::trExceptionHierarchy(), Translator::trExceptionHierarchyDescription(), Translator::trExceptionIndex(), Translator::trExceptionList(), Translator::trExceptionListDescription(), Translator::trExceptions(), Translator::trFile(), Translator::trFileList(), Translator::trFileListDescription(), Translator::trFileMembers(), Translator::trFileMembersDescription(), Translator::trInterfaceHierarchy(), Translator::trInterfaceHierarchyDescription(), Translator::trInterfaceIndex(), Translator::trInterfaceList(), Translator::trInterfaceListDescription(), Translator::trMainPage(), Translator::trModules(), Translator::trModulesDescription(), Translator::trModulesList(), Translator::trModulesListDescription(), Translator::trModulesMemberDescription(), Translator::trModulesMembers(), Translator::trNamespaceList(), Translator::trNamespaceListDescription(), Translator::trNamespaceMemberDescription(), Translator::trNamespaceMembers(), Translator::trNamespaces(), Translator::trPackageList(), Translator::trPackageListDescription(), Translator::trPackageMembers(), Translator::trPackages(), Translator::trRelatedPages(), Translator::trRelatedPagesDescription(), Translator::trSliceInterfaces(), Translator::trStructIndex(), Translator::trStructList(), Translator::trStructListDescription(), Translator::trStructs(), Translator::trTopicListDescription(), Translator::trTopics(), XMLHandlers::value(), and warn_layout.

◆ startNavIndex()

void LayoutParser::startNavIndex ( const std::string & ,
const XMLHandlers::Attributes &  )
inline

Definition at line 292 of file layout.cpp.

293 {
294 m_scope="navindex/";
296 }

References m_layoutDocManager, m_rootNav, m_scope, and LayoutDocManager::rootNavEntry().

◆ startSectionEntry()

void LayoutParser::startSectionEntry ( LayoutDocEntry::Kind k,
const std::string & id,
const XMLHandlers::Attributes & attrib,
const DString & title )
inline

Definition at line 236 of file layout.cpp.

238 {
239 bool isVisible = m_visible && elemIsVisible(attrib);
240 DString userTitle = XMLHandlers::value(attrib,"title");
241 //printf("startSectionEntry: title='%s' userTitle='%s'\n",
242 // qPrint(title),qPrint(userTitle));
243 if (userTitle.empty()) userTitle = title;
244 if (m_part!=LayoutDocManager::Undefined)
245 {
246 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySection>(k,id,userTitle,isVisible));
247 }
248 }

References LayoutDocManager::addEntry(), elemIsVisible(), DString::empty(), m_layoutDocManager, m_part, m_visible, and XMLHandlers::value().

◆ startSimpleEntry()

void LayoutParser::startSimpleEntry ( LayoutDocEntry::Kind k,
const std::string & id,
const XMLHandlers::Attributes & attrib )
inline

Definition at line 223 of file layout.cpp.

224 {
225 bool isVisible = m_visible && elemIsVisible(attrib);
226 if (m_part!=LayoutDocManager::Undefined)
227 {
228 auto elem = std::make_unique<LayoutDocEntrySimple>(k,id,isVisible);
229 //printf("startSimpleEntry(%s) isVisible=%d visible=%d\n",qPrint(elem->entryToString()),isVisible,elem->visible());
230 m_layoutDocManager.addEntry(m_part,std::move(elem));
231 }
232 }

References LayoutDocManager::addEntry(), elemIsVisible(), m_layoutDocManager, m_part, and m_visible.

◆ startTop()

void LayoutParser::startTop ( const std::string & ,
const XMLHandlers::Attributes & attrib,
LayoutDocManager::LayoutPart part,
const DString & scope,
LayoutNavEntry::Kind nav )
inline

Definition at line 635 of file layout.cpp.

637 {
638 //printf("startTop(scope=%s)\n",qPrint(scope));
639 m_scope = scope;
640 m_part = part;
641 m_visible = elemIsVisible(attrib);
642 }

References elemIsVisible(), m_part, m_scope, and m_visible.

Member Data Documentation

◆ m_invalidEntry

bool LayoutParser::m_invalidEntry = false
private

Definition at line 721 of file layout.cpp.

Referenced by endNavEntry(), and startNavEntry().

◆ m_layoutDocManager

◆ m_locator

const XMLLocator* LayoutParser::m_locator = nullptr
private

Definition at line 724 of file layout.cpp.

Referenced by setDocumentLocator(), startElement(), and startNavEntry().

◆ m_majorVersion

int LayoutParser::m_majorVersion = 1
private

Definition at line 725 of file layout.cpp.

Referenced by majorVersion(), and startLayout().

◆ m_minorVersion

int LayoutParser::m_minorVersion = 0
private

Definition at line 726 of file layout.cpp.

Referenced by minorVersion(), and startLayout().

◆ m_part

◆ m_rootNav

LayoutNavEntry* LayoutParser::m_rootNav = nullptr
private

Definition at line 720 of file layout.cpp.

Referenced by endNavEntry(), endNavIndex(), startNavEntry(), and startNavIndex().

◆ m_scope

◆ m_userGroupCount

int LayoutParser::m_userGroupCount =0
staticprivate

Definition at line 723 of file layout.cpp.

Referenced by startNavEntry().

◆ m_visible

bool LayoutParser::m_visible = true
private

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