playlist: make reverse operate on iterator range

This commit is contained in:
Andrzej Rybczak
2012-09-18 21:17:04 +02:00
parent 059592e28e
commit e108604641
3 changed files with 20 additions and 27 deletions

View File

@@ -75,6 +75,21 @@ std::vector<Iterator> getSelected(Iterator first, Iterator last)
return result;
}
/// @return selected range within given range or original range if no item is selected
template <typename Iterator>
std::pair<Iterator, Iterator> getSelectedRange(Iterator first, Iterator second)
{
auto result = std::make_pair(first, second);
if (hasSelected(first, second))
{
while (!result.first->isSelected())
++result.first;
while (!(result.second-1)->isSelected())
--result.second;
}
return result;
}
template <typename T>
void selectCurrentIfNoneSelected(NC::Menu<T> &m)
{