Skip to main content

The DiagramRow Class Reference

Class representing a row in the built-in class diagram. More...

Declaration

class DiagramRow { ... }

Public Member Typedefs Index

usingPtr = std::unique_ptr< DiagramItem >
usingVec = std::vector< Ptr >
usingiterator = typename Vec::iterator
usingreverse_iterator = typename Vec::reverse_iterator

Public Constructors Index

DiagramRow (TreeDiagram *d, uint32_t l)

Public Member Functions Index

voidinsertClass (DiagramItem *parent, const ClassDef *cd, bool doBases, Protection prot, Specifier virt, const QCString &ts)
uint32_tnumber ()
DiagramItem *item (int index)
uint32_tnumItems () const
iteratorbegin ()
iteratorend ()
reverse_iteratorrbegin ()
reverse_iteratorrend ()

Private Member Attributes Index

TreeDiagram *m_diagram
uint32_tm_level
Vecm_items

Description

Class representing a row in the built-in class diagram.

Definition at line 78 of file diagram.cpp.

Public Member Typedefs

iterator

using DiagramRow::iterator = typename Vec::iterator

Definition at line 83 of file diagram.cpp.

83 using iterator = typename Vec::iterator;

Ptr

using DiagramRow::Ptr = std::unique_ptr<DiagramItem>

Definition at line 81 of file diagram.cpp.

81 using Ptr = std::unique_ptr<DiagramItem>;

reverse_iterator

using DiagramRow::reverse_iterator = typename Vec::reverse_iterator

Definition at line 84 of file diagram.cpp.

84 using reverse_iterator = typename Vec::reverse_iterator;

Vec

using DiagramRow::Vec = std::vector<Ptr>

Definition at line 82 of file diagram.cpp.

82 using Vec = std::vector<Ptr>;

Public Constructors

DiagramRow()

DiagramRow::DiagramRow (TreeDiagram * d, uint32_t l)
inline

Definition at line 85 of file diagram.cpp.

85 DiagramRow(TreeDiagram *d,uint32_t l) : m_diagram(d), m_level(l) {}

References m_diagram and m_level.

Referenced by insertClass.

Public Member Functions

begin()

iterator DiagramRow::begin ()
inline

Definition at line 92 of file diagram.cpp.

92 iterator begin() { return m_items.begin(); }

Reference m_items.

end()

iterator DiagramRow::end ()
inline

Definition at line 93 of file diagram.cpp.

93 iterator end() { return m_items.end(); }

Reference m_items.

insertClass()

void DiagramRow::insertClass (DiagramItem * parent, const ClassDef * cd, bool doBases, Protection prot, Specifier virt, const QCString & ts)

Definition at line 86 of file diagram.cpp.

357 Protection prot,Specifier virt,const QCString &ts)
358{
359 auto di = std::make_unique<DiagramItem>(parent, m_diagram->row(m_level)->numItems(),
360 cd,prot,virt,ts);
361 DiagramItem *di_ptr = di.get();
362 if (parent) parent->addChild(di_ptr);
363 di->move(static_cast<int>(m_items.size()*gridWidth),static_cast<int>(m_level*gridHeight));
364 m_items.push_back(std::move(di));
365 int count=0;
366 for (const auto &bcd : doBases ? cd->baseClasses() : cd->subClasses())
367 {
368 /* there are base/sub classes */
369 ClassDef *ccd=bcd.classDef;
370 if (ccd && ccd->isVisibleInHierarchy()) count++;
371 }
372 if (count>0 && (prot!=Protection::Private || !doBases))
373 {
374 DiagramRow *row=nullptr;
375 if (m_diagram->numRows()<=m_level+1) /* add new row */
376 {
377 row=m_diagram->addRow(m_level+1);
378 }
379 else /* get next row */
380 {
381 row=m_diagram->row(m_level+1);
382 }
383 for (const auto &bcd : doBases ? cd->baseClasses() : cd->subClasses())
384 {
385 ClassDef *ccd=bcd.classDef;
386 if (ccd && ccd->isVisibleInHierarchy())
387 {
388 row->insertClass(di_ptr,ccd,doBases,bcd.prot,
389 doBases ? bcd.virt : Specifier::Normal,
390 doBases ? bcd.templSpecifiers : QCString());
391 }
392 }
393 }
394}

References ClassDef::baseClasses, DiagramRow, gridHeight, gridWidth, insertClass, ClassDef::isVisibleInHierarchy, m_diagram, m_items, m_level, parent and ClassDef::subClasses.

Referenced by insertClass and TreeDiagram::TreeDiagram.

item()

DiagramItem * DiagramRow::item (int index)
inline

Definition at line 90 of file diagram.cpp.

90 DiagramItem *item(int index) { return m_items.at(index).get(); }

Reference m_items.

number()

uint32_t DiagramRow::number ()
inline

Definition at line 88 of file diagram.cpp.

88 uint32_t number() { return m_level; }

Reference m_level.

numItems()

uint32_t DiagramRow::numItems ()
inline

Definition at line 91 of file diagram.cpp.

91 uint32_t numItems() const { return static_cast<uint32_t>(m_items.size()); }

Reference m_items.

rbegin()

reverse_iterator DiagramRow::rbegin ()
inline

Definition at line 94 of file diagram.cpp.

94 reverse_iterator rbegin() { return m_items.rbegin(); }

Reference m_items.

rend()

reverse_iterator DiagramRow::rend ()
inline

Definition at line 95 of file diagram.cpp.

95 reverse_iterator rend() { return m_items.rend(); }

Reference m_items.

Private Member Attributes

m_diagram

TreeDiagram* DiagramRow::m_diagram

Definition at line 97 of file diagram.cpp.

Referenced by DiagramRow and insertClass.

m_items

Vec DiagramRow::m_items

Definition at line 99 of file diagram.cpp.

Referenced by begin, end, insertClass, item, numItems, rbegin and rend.

m_level

uint32_t DiagramRow::m_level

Definition at line 98 of file diagram.cpp.

98 uint32_t m_level;

Referenced by DiagramRow, insertClass and number.


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


Generated via doxygen2docusaurus by Doxygen 1.14.0.