TreeModel: Rework tree iteration

Use function objects to apply directly during a depth-first
walk of the tree instead of faking a flat container of tree
nodes. Less code, and allows even some non-const operations.

Change-Id: I804ab11df358fe937b40809cbcb772e6f3ff8dc5
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2016-05-04 16:41:15 +02:00
parent aa2e135379
commit dee7ad3806
14 changed files with 85 additions and 227 deletions

View File

@@ -39,6 +39,7 @@ namespace Debugger {
namespace Internal {
class GdbMi;
class ThreadItem;
class ThreadsHandler : public Utils::TreeModel
{
@@ -77,6 +78,8 @@ public:
void resetLocation();
void scheduleResetLocation();
void foreachThread(const std::function<void(ThreadItem *item)> &func);
private:
void updateThreadBox();