Fix deselecting clips in timeline with shift

parent 6411cad7
...@@ -3015,11 +3015,18 @@ void TimelineModel::requestRemoveFromSelection(int itemId) ...@@ -3015,11 +3015,18 @@ void TimelineModel::requestRemoveFromSelection(int itemId)
{ {
QWriteLocker locker(&m_lock); QWriteLocker locker(&m_lock);
TRACE(itemId); TRACE(itemId);
std::unordered_set<int> all_items = {itemId};
int parentGroup = m_groups->getDirectAncestor(itemId);
if (parentGroup > -1 && m_groups->getType(parentGroup) != GroupType::Selection) {
all_items = m_groups->getLeaves(parentGroup);
}
std::unordered_set<int> selection = getCurrentSelection(); std::unordered_set<int> selection = getCurrentSelection();
if (selection.count(itemId) > 0) { for (int current_itemId : all_items) {
selection.erase(itemId); if (selection.count(current_itemId) > 0) {
requestSetSelection(selection); selection.erase(current_itemId);
} }
}
requestSetSelection(selection);
} }
bool TimelineModel::requestSetSelection(const std::unordered_set<int> &ids) bool TimelineModel::requestSetSelection(const std::unordered_set<int> &ids)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment