48d47
< std::vector<Flag *> _kids;
56c55
< std::vector<Flag *> kids() { return _kids; }
---
> virtual std::vector<Flag *> kids() { return std::vector<Flag*>(); }
59a59
> virtual void sync() {}
63a64
> static bool _active; // whether debug tracings are enabled
65c66,67
< bool _status;
---
> bool _tracing; // tracing is enabled and flag is on
> bool _status; // flag status
72,74c74,76
< bool status() const { return _status; }
< operator bool() const { return _status; }
< bool operator!() const { return !_status; }
---
> bool status() const { return _tracing; }
> operator bool() const { return _tracing; }
> bool operator!() const { return !_tracing; }
76,77c78,84
< void enable() { _status = true; }
< void disable() { _status = false; }
---
> void enable() { _status = true; sync(); }
> void disable() { _status = false; sync(); }
>
> void sync() { _tracing = _active && _status; }
>
> static void enableAll();
> static void disableAll();
80c87
< class CompoundFlag : public SimpleFlag
---
> class CompoundFlag : public Flag
82a90,91
> std::vector<Flag *> _kids;
>
102c111
< : SimpleFlag(name, desc)
---
> : Flag(name, desc)
109a119,120
> std::vector<Flag *> kids() { return _kids; }
>