As an example, consider "spectrum." If onNodeChanged is called, we end up setting lots of widget values. Each of these causes the widget to send its valueChanged signal, which calls a method, which calls mark/changed. We don't end up with lots of undo states because mark() checks updatingTabs (which is true). However, each of those calls results in a perform.
I could check updatingTabs (which is called around the onNodeChanged call in Tab.nodeChanged) but I don't know if that will cause problems. It might be ok in spectrum, but elsewhere?
As an example, consider "spectrum." If onNodeChanged is called, we end up setting lots of widget values. Each of these causes the widget to send its valueChanged signal, which calls a method, which calls mark/changed. We don't end up with lots of undo states because mark() checks updatingTabs (which is true). However, each of those calls results in a perform.
I could check updatingTabs (which is called around the onNodeChanged call in Tab.nodeChanged) but I don't know if that will cause problems. It might be ok in spectrum, but elsewhere?