Doxygen
Loading...
Searching...
No Matches
RefList Class Reference

List of cross-referenced items. More...

#include <src/reflist.h>

+ Collaboration diagram for RefList:

Public Member Functions

 RefList (const QCString &listName, const QCString &pageTitle, const QCString &secTitle)
 
bool isEnabled () const
 
RefItemadd ()
 
RefItemfind (int itemId)
 
QCString listName () const
 
QCString fileName () const
 
QCString pageTitle () const
 
QCString sectionTitle () const
 
void generatePage ()
 

Private Attributes

int m_id = 0
 
QCString m_listName
 
QCString m_fileName
 
QCString m_pageTitle
 
QCString m_secTitle
 
std::vector< std::unique_ptr< RefItem > > m_entries
 
std::unordered_map< int, RefItem * > m_lookup
 

Detailed Description

List of cross-referenced items.

This class represents a list of items that are put at a certain point in the documentation by some special command and are collected in a list. The items cross-reference the documentation and the list.

Examples are the todo list, the test list and the bug list, introduced by the \todo, \test, and \bug commands respectively.

Definition at line 79 of file reflist.h.

Constructor & Destructor Documentation

◆ RefList()

RefList::RefList ( const QCString & listName,
const QCString & pageTitle,
const QCString & secTitle )

Create a list of items that are cross referenced with documentation blocks

Parameters
listNameString representing the name of the list.
pageTitleString representing the title of the list page.
secTitleString representing the title of the section.

Definition at line 24 of file reflist.cpp.

24 :
27{
28}
QCString m_listName
Definition reflist.h:110
QCString m_secTitle
Definition reflist.h:113
QCString pageTitle() const
Definition reflist.h:103
QCString m_pageTitle
Definition reflist.h:112
QCString listName() const
Definition reflist.h:101
QCString m_fileName
Definition reflist.h:111
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3858

References convertNameToFile(), FALSE, listName(), m_fileName, m_listName, m_pageTitle, m_secTitle, pageTitle(), and TRUE.

Member Function Documentation

◆ add()

RefItem * RefList::add ( )

Adds a new item to the list.

Returns
A unique id for this item.

Definition at line 30 of file reflist.cpp.

31{
32 m_id++;
33 std::unique_ptr<RefItem> item = std::make_unique<RefItem>(m_id,this);
34 RefItem *result = item.get();
35 m_entries.push_back(std::move(item));
36 m_lookup.emplace(m_id,result);
37 return result;
38}
std::unordered_map< int, RefItem * > m_lookup
Definition reflist.h:115
std::vector< std::unique_ptr< RefItem > > m_entries
Definition reflist.h:114
int m_id
Definition reflist.h:109

References m_entries, m_id, and m_lookup.

Referenced by addXRefItem().

◆ fileName()

QCString RefList::fileName ( ) const
inline

Definition at line 102 of file reflist.h.

102{ return m_fileName; }

References m_fileName.

Referenced by DocXRefItem::parse().

◆ find()

RefItem * RefList::find ( int itemId)

Returns an item given it's id that is obtained with addRefItem()

Parameters
itemIditem's identifier.
Returns
A pointer to the todo item's structure.

Definition at line 40 of file reflist.cpp.

41{
42 auto it = m_lookup.find(itemId);
43 return it!=m_lookup.end() ? it->second : nullptr;
44}

References m_lookup.

Referenced by DocXRefItem::parse().

◆ generatePage()

void RefList::generatePage ( )

Definition at line 55 of file reflist.cpp.

56{
57 if (!isEnabled()) return;
58
59 std::stable_sort(m_entries.begin(),m_entries.end(),
60 [](const std::unique_ptr<RefItem> &left,const std::unique_ptr<RefItem> &right)
61 { return qstricmp_sort(left->title(),right->title()) < 0; });
62 //RefItem *item;
63 QCString doc;
64 int cnt = 0;
65 doc += "<dl class=\"reflist\">";
66 QCString lastGroup;
67 bool first=true;
68 for (const std::unique_ptr<RefItem> &item : m_entries)
69 {
70 if (item->name().isEmpty()) continue;
71 cnt++;
72 bool startNewGroup = item->group()!=lastGroup;
73 if (startNewGroup)
74 {
75 if (!first)
76 {
77 doc += "</dd>";
78 }
79 doc += " <dt>";
80 doc += "\n";
81 if (item->scope())
82 {
83 if (item->scope()->name() != "<globalScope>")
84 {
85 doc += "\\_setscope ";
86 doc += item->scope()->name();
87 doc += " ";
88 }
89 }
90 doc += item->prefix();
91 doc += " \\_internalref ";
92 doc += item->name();
93 // escape \'s in title, see issue #5901
94 QCString escapedTitle = substitute(item->title(),"\\","\\\\");
95 doc += " \""+escapedTitle+"\" ";
96 // write declaration in case a function with arguments
97 if (!item->args().isEmpty())
98 {
99 // escape @'s in argument list, needed for Java annotations (see issue #6208)
100 // escape \'s in argument list (see issue #6533)
101 doc += substitute(substitute(item->args(),"@","@@"),"\\","\\\\");
102 }
103 doc += "</dt><dd>";
104 }
105 else
106 {
107 doc += "<p>";
108 }
109 doc += " \\anchor ";
110 doc += item->anchor();
111 doc += " ";
112 doc += item->text();
113 lastGroup = item->group();
114 first = false;
115 }
116 if (!first)
117 {
118 doc += "</dd>";
119 }
120 doc += "</dl>\n";
121 //printf("generatePage('%s')\n",doc.data());
122 if (cnt>0)
123 {
125 }
126}
bool isEnabled() const
Definition reflist.cpp:46
static void addRelatedPage(Entry *root)
Definition doxygen.cpp:315
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition qcstring.cpp:477
std::vector< RefItem * > RefItemVector
Definition reflist.h:133

References addRelatedPage(), isEnabled(), m_entries, m_fileName, m_listName, m_pageTitle, substitute(), and TRUE.

◆ isEnabled()

bool RefList::isEnabled ( ) const

Definition at line 46 of file reflist.cpp.

47{
48 if (m_listName=="todo" && !Config_getBool(GENERATE_TODOLIST)) return false;
49 else if (m_listName=="test" && !Config_getBool(GENERATE_TESTLIST)) return false;
50 else if (m_listName=="bug" && !Config_getBool(GENERATE_BUGLIST)) return false;
51 else if (m_listName=="deprecated" && !Config_getBool(GENERATE_DEPRECATEDLIST)) return false;
52 return true;
53}
#define Config_getBool(name)
Definition config.h:33

References Config_getBool, and m_listName.

Referenced by generatePage(), and DocXRefItem::parse().

◆ listName()

QCString RefList::listName ( ) const
inline

Definition at line 101 of file reflist.h.

101{ return m_listName; }

References m_listName.

Referenced by DefinitionImpl::_getXRefListId(), addXRefItem(), and RefList().

◆ pageTitle()

QCString RefList::pageTitle ( ) const
inline

Definition at line 103 of file reflist.h.

103{ return m_pageTitle; }

References m_pageTitle.

Referenced by RefList().

◆ sectionTitle()

QCString RefList::sectionTitle ( ) const
inline

Definition at line 104 of file reflist.h.

104{ return m_secTitle; }

References m_secTitle.

Referenced by DocXRefItem::parse().

Member Data Documentation

◆ m_entries

std::vector< std::unique_ptr< RefItem > > RefList::m_entries
private

Definition at line 114 of file reflist.h.

Referenced by add(), and generatePage().

◆ m_fileName

QCString RefList::m_fileName
private

Definition at line 111 of file reflist.h.

Referenced by fileName(), generatePage(), and RefList().

◆ m_id

int RefList::m_id = 0
private

Definition at line 109 of file reflist.h.

Referenced by add().

◆ m_listName

QCString RefList::m_listName
private

Definition at line 110 of file reflist.h.

Referenced by generatePage(), isEnabled(), listName(), and RefList().

◆ m_lookup

std::unordered_map< int, RefItem* > RefList::m_lookup
private

Definition at line 115 of file reflist.h.

Referenced by add(), and find().

◆ m_pageTitle

QCString RefList::m_pageTitle
private

Definition at line 112 of file reflist.h.

Referenced by generatePage(), pageTitle(), and RefList().

◆ m_secTitle

QCString RefList::m_secTitle
private

Definition at line 113 of file reflist.h.

Referenced by RefList(), and sectionTitle().


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