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
LayoutDocManagerm_layoutDocManager
LayoutDocManager::LayoutPart m_part = LayoutDocManager::Undefined
LayoutNavEntrym_rootNav = nullptr
bool m_invalidEntry = false
bool m_visible = true
const XMLLocatorm_locator = nullptr
int m_majorVersion = 1
int m_minorVersion = 0

Static Private Attributes

static int m_userGroupCount =0

Detailed Description

Definition at line 195 of file layout.cpp.

Constructor & Destructor Documentation

◆ LayoutParser()

LayoutParser::LayoutParser ( LayoutDocManager & manager)
inline

Definition at line 198 of file layout.cpp.

198: m_layoutDocManager(manager) {}
LayoutDocManager & m_layoutDocManager
Definition layout.cpp:707

References m_layoutDocManager.

Member Function Documentation

◆ endElement()

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

Definition at line 1374 of file layout.cpp.

1375{
1376 //printf("endElement [%s]::[%s]\n",qPrint(m_scope),qPrint(name));
1377 auto it=g_elementHandlers.end();
1378
1379 if (!m_scope.empty() && m_scope.right(name.length()+1)==name+"/")
1380 { // element ends current scope
1381 it = g_elementHandlers.find(m_scope.left(m_scope.length()-1).str());
1382 }
1383 else // continue with current scope
1384 {
1385 it = g_elementHandlers.find(m_scope.str()+name);
1386 }
1387 if (it!=g_elementHandlers.end())
1388 {
1389 it->second.endCb(*this,it->first+" end"); // added end to id to make it unique
1390 }
1391}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:152
DString right(size_t len) const
Definition dstring.h:315
DString left(size_t len) const
Definition dstring.h:310
const std::string & str() const
Definition dstring.h:649
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:155
DString m_scope
Definition layout.cpp:706
static const std::map< std::string, ElementCallbacks > g_elementHandlers
Definition layout.cpp:790

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 681 of file layout.cpp.

682 {
683 if (size_t i=m_scope.rfind("memberdecl/"); i!=DString::npos)
684 {
686 bool isVisible = true;
687 for (const auto &lde : m_layoutDocManager.docEntries(m_part))
688 {
689 if (lde->kind() == LayoutDocEntry::MemberDeclStart)
690 {
691 isVisible = static_cast<const LayoutDocEntrySimple*>(lde.get())->visible();
692 break;
693 }
694 }
695 if (m_part!=LayoutDocManager::Undefined)
696 {
697 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDeclEnd,id,isVisible));
698 }
699 }
700 }
size_t rfind(char c, size_t pos=npos) const
Definition dstring.h:248
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:182
void addEntry(LayoutPart p, LayoutDocEntryPtr &&e)
Definition layout.cpp:1463
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:1442
LayoutDocManager::LayoutPart m_part
Definition layout.cpp:708

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 649 of file layout.cpp.

650 {
651 DString scopeOrg = m_scope;
652 if (size_t i=m_scope.rfind("memberdef/"); i!=DString::npos)
653 {
655 bool isVisible = true;
656 for (const auto &lde : m_layoutDocManager.docEntries(m_part))
657 {
658 if (lde->kind() == LayoutDocEntry::MemberDefStart)
659 {
660 isVisible = static_cast<const LayoutDocEntrySimple*>(lde.get())->visible();
661 break;
662 }
663 }
664 if (m_part!=LayoutDocManager::Undefined)
665 {
666 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDefEnd,id,isVisible));
667 }
668 }
669 }

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 617 of file layout.cpp.

618 {
619 // set the root back to the parent
621 m_invalidEntry=false;
622 }
bool m_invalidEntry
Definition layout.cpp:710
LayoutNavEntry * m_rootNav
Definition layout.cpp:709
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 287 of file layout.cpp.

288 {
289 m_scope="";
290 if (m_rootNav && !m_rootNav->find(LayoutNavEntry::MainPage))
291 {
292 // no MainPage node... add one as the first item of the root node...
293 m_rootNav->insertChild(0,std::make_unique<LayoutNavEntry>(m_rootNav,LayoutNavEntry::MainPage, true,
294 "index",theTranslator->trMainPage(),""));
295 }
296 }
virtual DString trMainPage()=0
Translator * theTranslator
Definition language.cpp:71
LayoutNavEntry * find(LayoutNavEntry::Kind k, const DString &file=DString()) const
Definition layout.cpp:134
void insertChild(size_t pos, std::unique_ptr< LayoutNavEntry > &&e)
Definition layout.cpp:128

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

◆ endTop()

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

Definition at line 633 of file layout.cpp.

634 {
635 m_scope="";
636 m_part = LayoutDocManager::Undefined;
637 }

References m_part, and m_scope.

◆ error()

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

Definition at line 205 of file layout.cpp.

206 {
207 warn_layout(fileName,lineNr,"{}",msg);
208 }
#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 702 of file layout.cpp.

702{ return m_majorVersion; }
int m_majorVersion
Definition layout.cpp:714

References m_majorVersion.

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

◆ minorVersion()

int LayoutParser::minorVersion ( ) const
inline

Definition at line 703 of file layout.cpp.

703{ return m_minorVersion; }
int m_minorVersion
Definition layout.cpp:715

References m_minorVersion.

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

◆ setDocumentLocator()

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

Definition at line 201 of file layout.cpp.

202 {
203 m_locator = locator;
204 }
const XMLLocator * m_locator
Definition layout.cpp:713

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 1358 of file layout.cpp.

1359{
1360 //printf("startElement [%s]::[%s]\n",qPrint(m_scope),qPrint(name));
1361 auto it = g_elementHandlers.find(m_scope.str()+name);
1362 if (it!=g_elementHandlers.end())
1363 {
1364 it->second.startCb(*this,it->first,attrib);
1365 }
1366 else
1367 {
1368 DString fileName = m_locator->fileName();
1369 warn_layout(fileName,m_locator->lineNr(),"Unexpected start tag '{}' found in scope='{}'!",
1370 name,m_scope);
1371 }
1372}
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 267 of file layout.cpp.

268 {
269 // extract and store version number
270 DString version = XMLHandlers::value(attrib,"version");
271 static const reg::Ex re(R"((\d+)\.(\d+))");
272 reg::Match match;
273 if (reg::match(version.view(),match,re))
274 {
275 m_majorVersion = atoi(match[1].str().c_str());
276 m_minorVersion = atoi(match[2].str().c_str());
277 //printf("layout version %d.%d\n",m_versionMajor,m_versionMinor);
278 }
279 }
std::string_view view() const
Definition dstring.h:166
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:858

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 671 of file layout.cpp.

672 {
673 m_scope+="memberdecl/";
674 bool isVisible = m_visible && elemIsVisible(attrib);
675 if (m_part!=LayoutDocManager::Undefined)
676 {
677 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDeclStart,id,isVisible));
678 }
679 }
bool m_visible
Definition layout.cpp:711
static bool elemIsVisible(const XMLHandlers::Attributes &attrib, bool defVal=true)
Definition layout.cpp:80

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 240 of file layout.cpp.

242 {
243 DString userTitle = XMLHandlers::value(attrib,"title");
244 DString userSubscript = XMLHandlers::value(attrib,"subtitle");
245 if (userTitle.empty()) userTitle = title;
246 if (userSubscript.empty()) userSubscript = subscript;
247 bool isVisible = m_visible && elemIsVisible(attrib);
248 if (m_part!=LayoutDocManager::Undefined)
249 {
250 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntryMemberDecl>(type,id,userTitle,userSubscript,isVisible));
251 }
252 }

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 639 of file layout.cpp.

640 {
641 m_scope+="memberdef/";
642 bool isVisible = m_visible && elemIsVisible(attrib);
643 if (m_part!=LayoutDocManager::Undefined)
644 {
645 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDefStart,id,isVisible));
646 }
647 }

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 254 of file layout.cpp.

256 {
257 DString userTitle = XMLHandlers::value(attrib,"title");
258 if (userTitle.empty()) userTitle = title;
259 //printf("memberdef: %s\n",qPrint(userTitle));
260 bool isVisible = m_visible && elemIsVisible(attrib);
261 if (m_part!=LayoutDocManager::Undefined)
262 {
263 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntryMemberDef>(type,id,userTitle,isVisible));
264 }
265 }

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 298 of file layout.cpp.

299 {
300 bool javaOpt = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
301 bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
302 bool vhdlOpt = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
303 bool sliceOpt = Config_getBool(OPTIMIZE_OUTPUT_SLICE);
304 bool hasGraphicalHierarchy = Config_getBool(HAVE_DOT) &&
305 Config_getBool(GRAPHICAL_HIERARCHY);
306 bool extractAll = Config_getBool(EXTRACT_ALL);
307 static struct NavEntryMap
308 {
309 const char *typeStr; // type attribute name in the XML file
310 LayoutNavEntry::Kind kind; // corresponding enum name
311 DString mainName; // default title for an item if it has children
312 DString subName; // optional name for an item if it is rendered as a child
313 DString intro; // introduction text to be put on the index page
314 DString baseFile; // base name of the file containing the index page
315 } mapping[] =
316 {
317 { "mainpage",
318 LayoutNavEntry::MainPage,
320 DString(),
321 DString(),
322 "index"
323 },
324 { "pages",
325 LayoutNavEntry::Pages,
327 DString(),
329 "pages"
330 },
331 { "topics",
332 LayoutNavEntry::Topics,
334 DString(),
336 "topics"
337 },
338 { "modules",
339 LayoutNavEntry::Modules,
343 "modules"
344 },
345 { "modulelist",
346 LayoutNavEntry::ModuleList,
348 DString(),
350 "modules"
351 },
352 { "modulemembers",
353 LayoutNavEntry::ModuleMembers,
355 DString(),
357 "modulemembers"
358 },
359 { "namespaces",
360 LayoutNavEntry::Namespaces,
361 javaOpt || vhdlOpt ? theTranslator->trPackages() : fortranOpt || sliceOpt ? theTranslator->trModules() : theTranslator->trNamespaces(),
362 javaOpt || vhdlOpt ? theTranslator->trPackageList() : fortranOpt || sliceOpt ? theTranslator->trModulesList() : theTranslator->trNamespaceList(),
363 javaOpt || vhdlOpt ? theTranslator->trPackageListDescription() : fortranOpt || sliceOpt ? theTranslator->trModulesListDescription(extractAll) : theTranslator->trNamespaceListDescription(extractAll),
364 "namespaces"
365 },
366 { "namespacelist",
367 LayoutNavEntry::NamespaceList,
368 javaOpt || vhdlOpt ? theTranslator->trPackageList() : fortranOpt || sliceOpt ? theTranslator->trModulesList() : theTranslator->trNamespaceList(),
369 DString(),
370 javaOpt || vhdlOpt ? theTranslator->trPackageListDescription() : fortranOpt || sliceOpt ? theTranslator->trModulesListDescription(extractAll) : theTranslator->trNamespaceListDescription(extractAll),
371 "namespaces"
372 },
373 { "namespacemembers",
374 LayoutNavEntry::NamespaceMembers,
375 javaOpt || vhdlOpt ? theTranslator->trPackageMembers() : fortranOpt || sliceOpt ? theTranslator->trModulesMembers() : theTranslator->trNamespaceMembers(),
376 DString(),
377 fortranOpt || sliceOpt ? theTranslator->trModulesMemberDescription(extractAll) : theTranslator->trNamespaceMemberDescription(extractAll),
378 "namespacemembers"
379 },
380 { "concepts",
381 LayoutNavEntry::Concepts,
382 theTranslator->trConcept(true,false),
385 "concepts"
386 },
387 { "classindex",
388 LayoutNavEntry::ClassIndex,
390 DString(),
391 DString(),
392 "classes"
393 },
394 { "classes",
395 LayoutNavEntry::Classes,
399 "annotated"
400 },
401 { "classlist",
402 LayoutNavEntry::ClassList,
404 DString(),
406 "annotated"
407 },
408 { "hierarchy",
409 LayoutNavEntry::ClassHierarchy,
411 DString(),
413 hasGraphicalHierarchy ? "inherits" : "hierarchy"
414 },
415 { "classmembers",
416 LayoutNavEntry::ClassMembers,
418 DString(),
420 "functions"
421 },
422 { "interfaceindex",
423 LayoutNavEntry::InterfaceIndex,
425 DString(),
426 DString(),
427 "interfaces"
428 },
429 { "interfaces",
430 LayoutNavEntry::Interfaces,
434 "annotatedinterfaces"
435 },
436 { "interfacelist",
437 LayoutNavEntry::InterfaceList,
439 DString(),
441 "annotatedinterfaces"
442 },
443 { "interfacehierarchy",
444 LayoutNavEntry::InterfaceHierarchy,
446 DString(),
448 hasGraphicalHierarchy ? "interfaceinherits" : "interfacehierarchy"
449 },
450 { "structindex",
451 LayoutNavEntry::StructIndex,
453 DString(),
454 DString(),
455 "structs"
456 },
457 { "structs",
458 LayoutNavEntry::Structs,
462 "annotatedstructs"
463 },
464 { "structlist",
465 LayoutNavEntry::StructList,
467 DString(),
469 "annotatedstructs"
470 },
471 { "exceptionindex",
472 LayoutNavEntry::ExceptionIndex,
474 DString(),
475 DString(),
476 "exceptions"
477 },
478 { "exceptions",
479 LayoutNavEntry::Exceptions,
483 "annotatedexceptions"
484 },
485 { "exceptionlist",
486 LayoutNavEntry::ExceptionList,
488 DString(),
490 "annotatedexceptions"
491 },
492 { "exceptionhierarchy",
493 LayoutNavEntry::ExceptionHierarchy,
495 DString(),
497 hasGraphicalHierarchy ? "exceptioninherits" : "exceptionhierarchy"
498 },
499 { "files",
500 LayoutNavEntry::Files,
501 theTranslator->trFile(true,false),
504 "files"
505 },
506 { "filelist",
507 LayoutNavEntry::FileList,
509 DString(),
511 "files"
512 },
513 { "globals",
514 LayoutNavEntry::FileGlobals,
516 DString(),
518 "globals"
519 },
520 { "examples",
521 LayoutNavEntry::Examples,
523 DString(),
525 "examples"
526 },
527 { "user",
528 LayoutNavEntry::User,
529 DString(),
530 DString(),
531 DString(),
532 "user"
533 },
534 { "usergroup",
535 LayoutNavEntry::UserGroup,
536 DString(),
537 DString(),
538 DString(),
539 "usergroup"
540 },
541 { nullptr, // end of list
542 static_cast<LayoutNavEntry::Kind>(0),
543 DString(),
544 DString(),
545 DString(),
546 DString()
547 }
548 };
549 // find type in the table
550 int i=0;
551 DString type = XMLHandlers::value(attrib,"type");
552 while (mapping[i].typeStr)
553 {
554 if (mapping[i].typeStr==type)
555 break;
556 i++;
557 }
558 if (mapping[i].typeStr==nullptr)
559 {
560 DString fileName = m_locator->fileName();
561 if (type.empty())
562 {
563 warn_layout(fileName,m_locator->lineNr(),"an entry tag within a navindex has no type attribute! Check your layout file!");
564 }
565 else
566 {
567 warn_layout(fileName,m_locator->lineNr(),"the type '{}' is not supported for the entry tag within a navindex! Check your layout file!",type);
568 }
569 m_invalidEntry=true;
570 return;
571 }
572 LayoutNavEntry::Kind kind = mapping[i].kind;
573 DString baseFile = mapping[i].baseFile;
574 DString title = XMLHandlers::value(attrib,"title");
575 bool isVisible = m_visible && elemIsVisible(attrib);
576 if (title.empty()) // use default title
577 {
578 title = mapping[i].mainName; // use title for main row
579 if (m_rootNav!=m_layoutDocManager.rootNavEntry() && !mapping[i].subName.empty())
580 {
581 title = mapping[i].subName; // if this is a child of another row, use the subName if available
582 // this is mainly done to get compatible naming with older versions.
583 }
584 }
585 DString intro = XMLHandlers::value(attrib,"intro");
586 if (intro.empty()) // use default intro text
587 {
588 intro = mapping[i].intro;
589 }
590 DString url = XMLHandlers::value(attrib,"url");
591 if (mapping[i].kind==LayoutNavEntry::User && !url.empty())
592 {
593 baseFile=url;
594 }
595 else if (kind==LayoutNavEntry::UserGroup)
596 {
597 if (!url.empty())
598 {
599 if (url == "[none]")
600 {
601 baseFile = DString();
602 }
603 else
604 {
605 baseFile=url;
606 }
607 }
608 else
609 {
610 baseFile+=DString().sprintf("%d",m_userGroupCount++);
611 }
612 }
613 // create new item and make it the new root
614 m_rootNav = m_layoutDocManager.createChildNavEntry(m_rootNav,kind,isVisible,baseFile,title,intro);
615 }
DString()=default
DString & sprintf(const char *format,...)
Definition dstring.cpp:30
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:1452
LayoutNavEntry * rootNavEntry() const
returns the (invisible) root of the navigation tree.
Definition layout.cpp:1447
static int m_userGroupCount
Definition layout.cpp:712
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(), DString::DString(), 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 281 of file layout.cpp.

282 {
283 m_scope="navindex/";
285 }

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 225 of file layout.cpp.

227 {
228 bool isVisible = m_visible && elemIsVisible(attrib);
229 DString userTitle = XMLHandlers::value(attrib,"title");
230 //printf("startSectionEntry: title='%s' userTitle='%s'\n",
231 // qPrint(title),qPrint(userTitle));
232 if (userTitle.empty()) userTitle = title;
233 if (m_part!=LayoutDocManager::Undefined)
234 {
235 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySection>(k,id,userTitle,isVisible));
236 }
237 }

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 212 of file layout.cpp.

213 {
214 bool isVisible = m_visible && elemIsVisible(attrib);
215 if (m_part!=LayoutDocManager::Undefined)
216 {
217 auto elem = std::make_unique<LayoutDocEntrySimple>(k,id,isVisible);
218 //printf("startSimpleEntry(%s) isVisible=%d visible=%d\n",qPrint(elem->entryToString()),isVisible,elem->visible());
219 m_layoutDocManager.addEntry(m_part,std::move(elem));
220 }
221 }

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 624 of file layout.cpp.

626 {
627 //printf("startTop(scope=%s)\n",qPrint(scope));
628 m_scope = scope;
629 m_part = part;
630 m_visible = elemIsVisible(attrib);
631 }

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

Member Data Documentation

◆ m_invalidEntry

bool LayoutParser::m_invalidEntry = false
private

Definition at line 710 of file layout.cpp.

Referenced by endNavEntry(), and startNavEntry().

◆ m_layoutDocManager

◆ m_locator

const XMLLocator* LayoutParser::m_locator = nullptr
private

Definition at line 713 of file layout.cpp.

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

◆ m_majorVersion

int LayoutParser::m_majorVersion = 1
private

Definition at line 714 of file layout.cpp.

Referenced by majorVersion(), and startLayout().

◆ m_minorVersion

int LayoutParser::m_minorVersion = 0
private

Definition at line 715 of file layout.cpp.

Referenced by minorVersion(), and startLayout().

◆ m_part

◆ m_rootNav

LayoutNavEntry* LayoutParser::m_rootNav = nullptr
private

Definition at line 709 of file layout.cpp.

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

◆ m_scope

◆ m_userGroupCount

int LayoutParser::m_userGroupCount =0
staticprivate

Definition at line 712 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: