Mercurial > hg > svcore
comparison base/ViewManager.cpp @ 10:ec6886f0e673
* Fix update and play limits for play-selection mode when not looping
* Fix playback in loop mode when no selection -- but the GUI update for
this is still wrong on the flyback
* Various fixes and improvements to making selections, particularly during
playback
* Draw selection under non-opaque non-scrollable layers, so as to improve
cacheing
* Show selection limits as text when drawing selection
* Allow user to find missing audio files when loading session
* Cross-fade selections when in play-selection mode -- mostly. We don't
cross-fade on a processing block boundary, and unfortunately with short
selections the selection boundary is quite likely to coincide with a block
boundary.
author | Chris Cannam |
---|---|
date | Wed, 25 Jan 2006 17:46:28 +0000 |
parents | 73d85d19919f |
children | cc98d496d52b |
comparison
equal
deleted
inserted
replaced
9:73d85d19919f | 10:ec6886f0e673 |
---|---|
136 //!!! Likewise this needs to cope correctly with the situation | 136 //!!! Likewise this needs to cope correctly with the situation |
137 //where selection is not one of the original selection set but | 137 //where selection is not one of the original selection set but |
138 //simply overlaps one of them (cutting down the original selection | 138 //simply overlaps one of them (cutting down the original selection |
139 //appropriately) | 139 //appropriately) |
140 | 140 |
141 m_selections.erase(selection); | 141 if (m_selections.find(selection) != m_selections.end()) { |
142 | 142 m_selections.erase(selection); |
143 emit selectionChanged(); | 143 emit selectionChanged(); |
144 } | |
144 } | 145 } |
145 | 146 |
146 void | 147 void |
147 ViewManager::clearSelections() | 148 ViewManager::clearSelections() |
148 { | 149 { |
149 m_selections.clear(); | 150 if (!m_selections.empty()) { |
150 | 151 m_selections.clear(); |
151 emit selectionChanged(); | 152 emit selectionChanged(); |
153 } | |
152 } | 154 } |
153 | 155 |
154 Selection | 156 Selection |
155 ViewManager::getContainingSelection(size_t frame, bool defaultToFollowing) | 157 ViewManager::getContainingSelection(size_t frame, bool defaultToFollowing) |
156 { | 158 { |
221 { | 223 { |
222 while (!m_playParameters.empty()) { | 224 while (!m_playParameters.empty()) { |
223 delete m_playParameters.begin()->second; | 225 delete m_playParameters.begin()->second; |
224 m_playParameters.erase(m_playParameters.begin()); | 226 m_playParameters.erase(m_playParameters.begin()); |
225 } | 227 } |
228 } | |
229 | |
230 void | |
231 ViewManager::playStatusChanged(bool playing) | |
232 { | |
233 checkPlayStatus(); | |
226 } | 234 } |
227 | 235 |
228 void | 236 void |
229 ViewManager::checkPlayStatus() | 237 ViewManager::checkPlayStatus() |
230 { | 238 { |