Doxygen
RefList类 参考

List of cross-referenced items 更多...

#include <reflist.h>

+ RefList 的协作图:

Public 成员函数

 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 属性

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
 

详细描述

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.

在文件 reflist.h78 行定义.

构造及析构函数说明

◆ RefList()

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

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

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

在文件 reflist.cpp24 行定义.

成员函数说明

◆ add()

RefItem * RefList::add ( )

Adds a new item to the list.

返回
A unique id for this item.

在文件 reflist.cpp30 行定义.

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.insert({m_id,result});
37  return result;
38 }

引用了 m_entries, m_id , 以及 m_lookup.

◆ fileName()

QCString RefList::fileName ( ) const
inline

在文件 reflist.h101 行定义.

101 { return m_fileName; }

引用了 m_fileName.

被这些函数引用 DocXRefItem::parse().

◆ find()

RefItem * RefList::find ( int  itemId)

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

参数
itemIditem's identifier.
返回
A pointer to the todo item's structure.

在文件 reflist.cpp40 行定义.

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

引用了 m_lookup.

被这些函数引用 DocXRefItem::parse().

◆ generatePage()

void RefList::generatePage ( )

在文件 reflist.cpp55 行定义.

56 {
57  if (!isEnabled()) return;
58 
59  std::sort(m_entries.begin(),m_entries.end(),
60  [](std::unique_ptr<RefItem> &left,std::unique_ptr<RefItem> &right)
61  { return qstricmp(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  first=false;
80  doc += " <dt>";
81  doc += "\n";
82  if (item->scope())
83  {
84  if (item->scope()->name() != "<globalScope>")
85  {
86  doc += "\\_setscope ";
87  doc += item->scope()->name();
88  doc += " ";
89  }
90  }
91  doc += item->prefix();
92  doc += " \\_internalref ";
93  doc += item->name();
94  // escape \'s in title, see issue #5901
95  QCString escapedTitle = substitute(item->title(),"\\","\\\\");
96  doc += " \""+escapedTitle+"\" ";
97  // write declaration in case a function with arguments
98  if (!item->args().isEmpty())
99  {
100  // escape @'s in argument list, needed for Java annotations (see issue #6208)
101  // escape \'s in argument list (see issue #6533)
102  doc += substitute(substitute(item->args(),"@","@@"),"\\","\\\\");
103  }
104  doc += "</dt><dd>";
105  }
106  else
107  {
108  doc += "<p>";
109  }
110  doc += " \\anchor ";
111  doc += item->anchor();
112  doc += " ";
113  doc += item->text();
114  lastGroup = item->group();
115  first = false;
116  }
117  if (!first)
118  {
119  doc += "</dd>";
120  }
121  doc += "</dl>\n";
122  //printf("generatePage('%s')\n",doc.data());
123  if (cnt>0)
124  {
126  }
127 }

引用了 addRelatedPage(), isEnabled(), m_entries, m_fileName, m_listName, m_pageTitle, substitute() , 以及 TRUE.

◆ isEnabled()

bool RefList::isEnabled ( ) const

在文件 reflist.cpp46 行定义.

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 }

引用了 Config_getBool , 以及 m_listName.

被这些函数引用 generatePage() , 以及 DocXRefItem::parse().

◆ listName()

QCString RefList::listName ( ) const
inline

在文件 reflist.h100 行定义.

100 { return m_listName; }

引用了 m_listName.

被这些函数引用 DefinitionImpl::_getXRefListId().

◆ pageTitle()

QCString RefList::pageTitle ( ) const
inline

在文件 reflist.h102 行定义.

102 { return m_pageTitle; }

引用了 m_pageTitle.

◆ sectionTitle()

QCString RefList::sectionTitle ( ) const
inline

在文件 reflist.h103 行定义.

103 { return m_secTitle; }

引用了 m_secTitle.

被这些函数引用 DocXRefItem::parse().

类成员变量说明

◆ m_entries

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

在文件 reflist.h113 行定义.

被这些函数引用 add() , 以及 generatePage().

◆ m_fileName

QCString RefList::m_fileName
private

在文件 reflist.h110 行定义.

被这些函数引用 fileName() , 以及 generatePage().

◆ m_id

int RefList::m_id = 0
private

在文件 reflist.h108 行定义.

被这些函数引用 add().

◆ m_listName

QCString RefList::m_listName
private

在文件 reflist.h109 行定义.

被这些函数引用 generatePage(), isEnabled() , 以及 listName().

◆ m_lookup

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

在文件 reflist.h114 行定义.

被这些函数引用 add() , 以及 find().

◆ m_pageTitle

QCString RefList::m_pageTitle
private

在文件 reflist.h111 行定义.

被这些函数引用 generatePage() , 以及 pageTitle().

◆ m_secTitle

QCString RefList::m_secTitle
private

在文件 reflist.h112 行定义.

被这些函数引用 sectionTitle().


该类的文档由以下文件生成:
RefList::m_id
int m_id
Definition: reflist.h:108
RefList::m_secTitle
QCString m_secTitle
Definition: reflist.h:112
addRelatedPage
static void addRelatedPage(Entry *root)
Definition: doxygen.cpp:303
RefItem
This struct represents an item in the list of references.
Definition: reflist.h:30
RefList::m_entries
std::vector< std::unique_ptr< RefItem > > m_entries
Definition: reflist.h:113
TRUE
#define TRUE
Definition: qcstring.h:36
RefList::listName
QCString listName() const
Definition: reflist.h:100
substitute
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition: qcstring.cpp:465
RefItemVector
std::vector< RefItem * > RefItemVector
Definition: reflist.h:132
RefList::m_listName
QCString m_listName
Definition: reflist.h:109
RefList::m_fileName
QCString m_fileName
Definition: reflist.h:110
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
RefList::pageTitle
QCString pageTitle() const
Definition: reflist.h:102
RefList::m_lookup
std::unordered_map< int, RefItem * > m_lookup
Definition: reflist.h:114
RefList::isEnabled
bool isEnabled() const
Definition: reflist.cpp:46
convertNameToFile
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition: util.cpp:3604
RefList::m_pageTitle
QCString m_pageTitle
Definition: reflist.h:111
FALSE
#define FALSE
Definition: qcstring.h:33
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108