mirror of
https://github.com/aseprite/aseprite.git
synced 2024-10-06 23:09:58 +00:00
Add SelectedFrames::reversed() function
This commit is contained in:
parent
e58d54600a
commit
ad518b7fb2
@ -97,6 +97,21 @@ namespace doc {
|
||||
mutable frame_t m_frame;
|
||||
};
|
||||
|
||||
class Reversed {
|
||||
public:
|
||||
typedef const_reverse_iterator const_iterator;
|
||||
|
||||
const_iterator begin() const { return m_selectedFrames.rbegin(); }
|
||||
const_iterator end() const { return m_selectedFrames.rend(); }
|
||||
|
||||
Reversed(const SelectedFrames& selectedFrames)
|
||||
: m_selectedFrames(selectedFrames) {
|
||||
}
|
||||
|
||||
private:
|
||||
const SelectedFrames& m_selectedFrames;
|
||||
};
|
||||
|
||||
const_iterator begin() const { return const_iterator(m_ranges.begin()); }
|
||||
const_iterator end() const { return const_iterator(m_ranges.end()); }
|
||||
const_reverse_iterator rbegin() const { return const_reverse_iterator(m_ranges.rbegin()); }
|
||||
@ -114,6 +129,8 @@ namespace doc {
|
||||
frame_t firstFrame() const { return (!m_ranges.empty() ? m_ranges.front().fromFrame: -1); }
|
||||
frame_t lastFrame() const { return (!m_ranges.empty() ? m_ranges.back().toFrame: -1); }
|
||||
|
||||
Reversed reversed() const { return Reversed(*this); }
|
||||
|
||||
private:
|
||||
Ranges m_ranges;
|
||||
};
|
||||
|
@ -115,6 +115,12 @@ TEST(SelectedFrames, ReverseIterators)
|
||||
EXPECT_EQ(6, res[1]);
|
||||
EXPECT_EQ(5, res[2]);
|
||||
EXPECT_EQ(1, res[3]);
|
||||
|
||||
std::vector<frame_t> res2;
|
||||
for (frame_t frame : f.reversed())
|
||||
res2.push_back(frame);
|
||||
|
||||
EXPECT_EQ(res, res2);
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
|
Loading…
Reference in New Issue
Block a user