Mercurial > hg > svcore
diff base/Selection.cpp @ 9:73d85d19919f
* Add play-selection and looping modes. Looping seems to work OK, but
the plain play-selection is miscalculating current frame number to
feed back to the GUI.
* Cache selection rectanges wherever possible in View::paintEvent.
author | Chris Cannam |
---|---|
date | Tue, 24 Jan 2006 16:20:58 +0000 |
parents | 214054a0d8b8 |
children | bb9291d84810 |
line wrap: on
line diff
--- a/base/Selection.cpp Mon Jan 23 17:02:57 2006 +0000 +++ b/base/Selection.cpp Tue Jan 24 16:20:58 2006 +0000 @@ -65,14 +65,28 @@ } bool +Selection::contains(size_t frame) const +{ + return (frame >= m_startFrame) && (frame < m_endFrame); +} + +bool Selection::operator<(const Selection &s) const { - return (m_startFrame < s.m_startFrame); + if (isEmpty()) { + if (s.isEmpty()) return false; + else return true; + } else { + if (s.isEmpty()) return false; + else return (m_startFrame < s.m_startFrame); + } } bool Selection::operator==(const Selection &s) const { + if (isEmpty()) return s.isEmpty(); + return (m_startFrame == s.m_startFrame && m_endFrame == s.m_endFrame); }