Closes #9
This commit is contained in:
1 parent
e5d818d9b2
commit
a533d9aa00
13 files changed
+527
-12
No files matched your search
+12
-1
@@ -24,8 +24,11 @@ TreeNode::TreeNode(const SignalInfo &signal)
|
||||
}
|
||||
|
||||
void TreeNode::AddChild(std::unique_ptr<TreeNode> child) {
|
||||
if (child)
|
||||
if (child) {
|
||||
m_children.push_back(std::move(child));
|
||||
m_children.back()->m_parent = this;
|
||||
m_children.back()->m_row = m_children.size() - 1U;
|
||||
}
|
||||
}
|
||||
|
||||
std::size_t TreeNode::GetChildCount() const {
|
||||
@@ -61,3 +64,11 @@ const FrameInfo *TreeNode::GetFrame() const {
|
||||
const SignalInfo *TreeNode::GetSignal() const {
|
||||
return m_signal.get();
|
||||
}
|
||||
|
||||
const TreeNode *TreeNode::GetParent() const {
|
||||
return m_parent;
|
||||
}
|
||||
|
||||
std::size_t TreeNode::GetRow() const {
|
||||
return m_row;
|
||||
}
|
||||
+10
-2
@@ -56,8 +56,8 @@ public:
|
||||
TreeNode(const TreeNode &) = delete;
|
||||
TreeNode &operator=(const TreeNode &) = delete;
|
||||
|
||||
TreeNode(TreeNode &&) = default;
|
||||
TreeNode &operator=(TreeNode &&) = default;
|
||||
TreeNode(TreeNode &&) = delete;
|
||||
TreeNode &operator=(TreeNode &&) = delete;
|
||||
|
||||
/**
|
||||
* @brief Add child node.
|
||||
@@ -65,6 +65,12 @@ public:
|
||||
*/
|
||||
void AddChild(std::unique_ptr<TreeNode> child);
|
||||
|
||||
/** Non-owning parent; nullptr for a detached node or the root. */
|
||||
const TreeNode *GetParent() const;
|
||||
|
||||
/** Zero-based sibling position; zero for a detached node or the root. */
|
||||
std::size_t GetRow() const;
|
||||
|
||||
/**
|
||||
* @brief Get child count.
|
||||
* @return Number of children.
|
||||
@@ -110,6 +116,8 @@ public:
|
||||
const SignalInfo *GetSignal() const;
|
||||
|
||||
private:
|
||||
TreeNode *m_parent = nullptr;
|
||||
std::size_t m_row = 0U;
|
||||
NodeType m_type;
|
||||
std::string m_name;
|
||||
std::vector<std::unique_ptr<TreeNode>> m_children;
|
||||
|
||||
Reference in new issue
Block a user