fix bug that treebox.clear only rm the 1st node
This commit is contained in:
parent
a22954d8d8
commit
eb7ae0d635
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* A Categorize Implementation
|
* A Categorize Implementation
|
||||||
* Nana C++ Library(http://www.nanapro.org)
|
* Nana C++ Library(http://www.nanapro.org)
|
||||||
* Copyright(C) 2003-2016 Jinhao(cnjinhao@hotmail.com)
|
* Copyright(C) 2003-2017 Jinhao(cnjinhao@hotmail.com)
|
||||||
*
|
*
|
||||||
* Distributed under the Boost Software License, Version 1.0.
|
* Distributed under the Boost Software License, Version 1.0.
|
||||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* A Tree Container class implementation
|
* A Tree Container class implementation
|
||||||
* Copyright(C) 2003-2016 Jinhao(cnjinhao@hotmail.com)
|
* Copyright(C) 2003-2017 Jinhao(cnjinhao@hotmail.com)
|
||||||
*
|
*
|
||||||
* Distributed under the Boost Software License, Version 1.0.
|
* Distributed under the Boost Software License, Version 1.0.
|
||||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@ -76,12 +76,17 @@ namespace detail
|
|||||||
|
|
||||||
~tree_cont()
|
~tree_cont()
|
||||||
{
|
{
|
||||||
clear();
|
clear(&root_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear()
|
void clear(node_type* node)
|
||||||
{
|
{
|
||||||
remove(root_.child);
|
while (node->child)
|
||||||
|
{
|
||||||
|
//If there is a sibling of child, the root_.child
|
||||||
|
//will be assigned with the sibling.
|
||||||
|
remove(node->child);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool verify(const node_type* node) const
|
bool verify(const node_type* node) const
|
||||||
|
|||||||
@ -201,6 +201,9 @@ namespace nana
|
|||||||
/// Set the check state, and it returns itself.
|
/// Set the check state, and it returns itself.
|
||||||
item_proxy& check(bool);
|
item_proxy& check(bool);
|
||||||
|
|
||||||
|
/// Clears the child nodes
|
||||||
|
item_proxy& clear();
|
||||||
|
|
||||||
/// Return true when the node is expanded \todo change to expanded ??
|
/// Return true when the node is expanded \todo change to expanded ??
|
||||||
bool expanded() const;
|
bool expanded() const;
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* A Categorize Implementation
|
* A Categorize Implementation
|
||||||
* Nana C++ Library(http://www.nanapro.org)
|
* Nana C++ Library(http://www.nanapro.org)
|
||||||
* Copyright(C) 2003-2016 Jinhao(cnjinhao@hotmail.com)
|
* Copyright(C) 2003-2017 Jinhao(cnjinhao@hotmail.com)
|
||||||
*
|
*
|
||||||
* Distributed under the Boost Software License, Version 1.0.
|
* Distributed under the Boost Software License, Version 1.0.
|
||||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@ -343,7 +343,7 @@ namespace nana
|
|||||||
{
|
{
|
||||||
if(tree_.get_root()->child)
|
if(tree_.get_root()->child)
|
||||||
{
|
{
|
||||||
tree_.clear();
|
tree_.clear(tree_.get_root());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -2175,8 +2175,8 @@ namespace nana
|
|||||||
|
|
||||||
void treebox::clear()
|
void treebox::clear()
|
||||||
{
|
{
|
||||||
auto impl = get_drawer_trigger().impl();
|
auto& tree_cont = get_drawer_trigger().impl()->attr.tree_cont;
|
||||||
impl->attr.tree_cont.clear();
|
tree_cont.clear(tree_cont.get_root());
|
||||||
get_drawer_trigger().draw();
|
get_drawer_trigger().draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user