Differences
This shows you the differences between two versions of the page.
|
|
dev:keeping_gui_elements_updated [2018/02/07 16:07] |
dev:keeping_gui_elements_updated [2022/05/06 16:07] (current) |
| [[http://sourceforge.net/mailarchive/message.php?msg_name=200706112350.09420.glaurent%40telegraph-road.org|Mail archive link]] |
| |
| <code> |
| |
| Keeping GUI elements updated, e.g. notifying the NotationView if a |
| segment has changed, is done through the RefreshStatus class. This |
| class holds a set of 'observer IDs'. Every Segment carries a |
| RefreshStatus, and every edit part displaying one has an observer ID. |
| |
| |
| Whenever a change is made in a segment, its RefreshStatus is set to |
| 'has changed' for all observer IDs. Then each observer, whenever it's |
| refreshed, checks its status ID to see if the segment it displays has |
| changed since last update. This is done in EditViewBase::paintEvent(). |
| |
| |
| It certainly could have been done better, but it works :-). |
| |
| </code> |
| |