mirror of https://github.com/aseprite/aseprite.git
				
				
				
			Add SelectedFrames::size/empty() member functions
This commit is contained in:
		
							parent
							
								
									52d088ef80
								
							
						
					
					
						commit
						5e5a91444e
					
				|  | @ -12,6 +12,14 @@ | ||||||
| 
 | 
 | ||||||
| namespace doc { | namespace doc { | ||||||
| 
 | 
 | ||||||
|  | std::size_t SelectedFrames::size() const | ||||||
|  | { | ||||||
|  |   std::size_t size = 0; | ||||||
|  |   for (auto& range : m_ranges) | ||||||
|  |     size += (range.toFrame - range.fromFrame + 1); | ||||||
|  |   return size; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void SelectedFrames::insert(frame_t frame) | void SelectedFrames::insert(frame_t frame) | ||||||
| { | { | ||||||
|   if (m_ranges.empty()) { |   if (m_ranges.empty()) { | ||||||
|  |  | ||||||
|  | @ -61,6 +61,9 @@ namespace doc { | ||||||
|     const_iterator begin() const { return const_iterator(m_ranges.begin()); } |     const_iterator begin() const { return const_iterator(m_ranges.begin()); } | ||||||
|     const_iterator end() const { return const_iterator(m_ranges.end()); } |     const_iterator end() const { return const_iterator(m_ranges.end()); } | ||||||
| 
 | 
 | ||||||
|  |     std::size_t size() const; | ||||||
|  |     bool empty() const { return m_ranges.empty(); } | ||||||
|  | 
 | ||||||
|     void insert(frame_t frame); |     void insert(frame_t frame); | ||||||
|     void insert(frame_t fromFrame, frame_t toFrame); |     void insert(frame_t fromFrame, frame_t toFrame); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -20,9 +20,12 @@ using namespace doc; | ||||||
| TEST(SelectedFrames, BasicOneRange) | TEST(SelectedFrames, BasicOneRange) | ||||||
| { | { | ||||||
|   SelectedFrames f; |   SelectedFrames f; | ||||||
|  |   ASSERT_TRUE(f.empty()); | ||||||
|   f.insert(1); |   f.insert(1); | ||||||
|   f.insert(2); |   f.insert(2); | ||||||
|   f.insert(3); |   f.insert(3); | ||||||
|  |   ASSERT_FALSE(f.empty()); | ||||||
|  |   ASSERT_EQ(3, f.size()); | ||||||
| 
 | 
 | ||||||
|   std::vector<frame_t> res; |   std::vector<frame_t> res; | ||||||
|   std::copy(f.begin(), f.end(), std::back_inserter(res)); |   std::copy(f.begin(), f.end(), std::back_inserter(res)); | ||||||
|  | @ -39,6 +42,7 @@ TEST(SelectedFrames, BasicThreeRanges) | ||||||
|   f.insert(1); |   f.insert(1); | ||||||
|   f.insert(3); |   f.insert(3); | ||||||
|   f.insert(5); |   f.insert(5); | ||||||
|  |   ASSERT_EQ(3, f.size()); | ||||||
| 
 | 
 | ||||||
|   std::vector<frame_t> res; |   std::vector<frame_t> res; | ||||||
|   std::copy(f.begin(), f.end(), std::back_inserter(res)); |   std::copy(f.begin(), f.end(), std::back_inserter(res)); | ||||||
|  | @ -55,6 +59,7 @@ TEST(SelectedFrames, InsertSelectedFrameInsideSelectedRange) | ||||||
|   f.insert(3); |   f.insert(3); | ||||||
|   f.insert(5, 8); |   f.insert(5, 8); | ||||||
|   f.insert(7); |   f.insert(7); | ||||||
|  |   ASSERT_EQ(5, f.size()); | ||||||
| 
 | 
 | ||||||
|   std::vector<frame_t> res; |   std::vector<frame_t> res; | ||||||
|   std::copy(f.begin(), f.end(), std::back_inserter(res)); |   std::copy(f.begin(), f.end(), std::back_inserter(res)); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue