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

Constructor & Destructor Documentation

◆ LayoutParser()

LayoutParser::LayoutParser ( LayoutDocManager & manager)
inline

Definition at line 199 of file layout.cpp.

199: m_layoutDocManager(manager) {}
LayoutDocManager & m_layoutDocManager
Definition layout.cpp:708

References m_layoutDocManager.

Member Function Documentation

◆ endElement()

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

Definition at line 1375 of file layout.cpp.

1376{
1377 //printf("endElement [%s]::[%s]\n",qPrint(m_scope),qPrint(name));
1378 auto it=g_elementHandlers.end();
1379
1380 if (!m_scope.empty() && m_scope.right(name.length()+1)==name+"/")
1381 { // element ends current scope
1382 it = g_elementHandlers.find(m_scope.left(m_scope.length()-1).str());
1383 }
1384 else // continue with current scope
1385 {
1386 it = g_elementHandlers.find(m_scope.str()+name);
1387 }
1388 if (it!=g_elementHandlers.end())
1389 {
1390 it->second.endCb(*this,it->first+" end"); // added end to id to make it unique
1391 }
1392}
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:707
static const std::map< std::string, ElementCallbacks > g_elementHandlers
Definition layout.cpp:791

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

683 {
684 if (size_t i=m_scope.rfind("memberdecl/"); i!=DString::npos)
685 {
687 bool isVisible = true;
688 for (const auto &lde : m_layoutDocManager.docEntries(m_part))
689 {
690 if (lde->kind() == LayoutDocEntry::MemberDeclStart)
691 {
692 isVisible = static_cast<const LayoutDocEntrySimple*>(lde.get())->visible();
693 break;
694 }
695 }
696 if (m_part!=LayoutDocManager::Undefined)
697 {
698 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDeclEnd,id,isVisible));
699 }
700 }
701 }
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:1464
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:1443
LayoutDocManager::LayoutPart m_part
Definition layout.cpp:709

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

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

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

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

289 {
290 m_scope="";
291 if (m_rootNav && !m_rootNav->find(LayoutNavEntry::MainPage))
292 {
293 // no MainPage node... add one as the first item of the root node...
294 m_rootNav->insertChild(0,std::make_unique<LayoutNavEntry>(m_rootNav,LayoutNavEntry::MainPage, true,
295 "index",theTranslator->trMainPage(),""));
296 }
297 }
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 634 of file layout.cpp.

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

References m_part, and m_scope.

◆ error()

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

Definition at line 206 of file layout.cpp.

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

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

References m_majorVersion.

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

◆ minorVersion()

int LayoutParser::minorVersion ( ) const
inline

Definition at line 704 of file layout.cpp.

704{ return m_minorVersion; }
int m_minorVersion
Definition layout.cpp:716

References m_minorVersion.

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

◆ setDocumentLocator()

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

Definition at line 202 of file layout.cpp.

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

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

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

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

673 {
674 m_scope+="memberdecl/";
675 bool isVisible = m_visible && elemIsVisible(attrib);
676 if (m_part!=LayoutDocManager::Undefined)
677 {
678 m_layoutDocManager.addEntry(m_part,std::make_unique<LayoutDocEntrySimple>(LayoutDocEntry::MemberDeclStart,id,isVisible));
679 }
680 }
bool m_visible
Definition layout.cpp:712
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 241 of file layout.cpp.

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

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

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

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

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

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

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

283 {
284 m_scope="navindex/";
286 }

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

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

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

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

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

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

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

Member Data Documentation

◆ m_invalidEntry

bool LayoutParser::m_invalidEntry = false
private

Definition at line 711 of file layout.cpp.

Referenced by endNavEntry(), and startNavEntry().

◆ m_layoutDocManager

◆ m_locator

const XMLLocator* LayoutParser::m_locator = nullptr
private

Definition at line 714 of file layout.cpp.

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

◆ m_majorVersion

int LayoutParser::m_majorVersion = 1
private

Definition at line 715 of file layout.cpp.

Referenced by majorVersion(), and startLayout().

◆ m_minorVersion

int LayoutParser::m_minorVersion = 0
private

Definition at line 716 of file layout.cpp.

Referenced by minorVersion(), and startLayout().

◆ m_part

◆ m_rootNav

LayoutNavEntry* LayoutParser::m_rootNav = nullptr
private

Definition at line 710 of file layout.cpp.

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

◆ m_scope

◆ m_userGroupCount

int LayoutParser::m_userGroupCount =0
staticprivate

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