mirror of https://github.com/aseprite/aseprite.git
				
				
				
			Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		
						commit
						3935b10467
					
				|  | @ -190,7 +190,20 @@ void MiniEditorWindow::onClose(ui::CloseEvent& ev) | ||||||
| 
 | 
 | ||||||
| void MiniEditorWindow::onPlayClicked() | void MiniEditorWindow::onPlayClicked() | ||||||
| { | { | ||||||
|   resetTimer(); |   if (m_playButton->isPlaying()) { | ||||||
|  |     Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL); | ||||||
|  |     if (miniEditor && miniEditor->getDocument() != NULL) | ||||||
|  |       m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame()); | ||||||
|  |     else | ||||||
|  |       m_nextFrameTime = -1; | ||||||
|  | 
 | ||||||
|  |     m_curFrameTick = ji_clock; | ||||||
|  | 
 | ||||||
|  |     m_playTimer.start(); | ||||||
|  |   } | ||||||
|  |   else { | ||||||
|  |     m_playTimer.stop(); | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MiniEditorWindow::updateUsingEditor(Editor* editor) | void MiniEditorWindow::updateUsingEditor(Editor* editor) | ||||||
|  | @ -234,22 +247,6 @@ void MiniEditorWindow::hideWindow() | ||||||
|     closeWindow(NULL); |     closeWindow(NULL); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MiniEditorWindow::resetTimer() |  | ||||||
| { |  | ||||||
|   if (m_playButton->isPlaying()) { |  | ||||||
|     m_playTimer.start(); |  | ||||||
| 
 |  | ||||||
|     Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL); |  | ||||||
|     if (miniEditor && miniEditor->getDocument() != NULL) |  | ||||||
|       m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame()); |  | ||||||
|     else |  | ||||||
|       m_nextFrameTime = -1; |  | ||||||
|   } |  | ||||||
|   else { |  | ||||||
|     m_playTimer.stop(); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void MiniEditorWindow::onPlaybackTick() | void MiniEditorWindow::onPlaybackTick() | ||||||
| { | { | ||||||
|   Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL); |   Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL); | ||||||
|  | @ -257,15 +254,18 @@ void MiniEditorWindow::onPlaybackTick() | ||||||
|     return; |     return; | ||||||
| 
 | 
 | ||||||
|   if (m_nextFrameTime >= 0) { |   if (m_nextFrameTime >= 0) { | ||||||
|     m_nextFrameTime -= 10;      // onPlaybackTick()
 |     m_nextFrameTime -= (ji_clock - m_curFrameTick); | ||||||
|     if (m_nextFrameTime <= 0) { | 
 | ||||||
|  |     while (m_nextFrameTime <= 0) { | ||||||
|       FrameNumber frame = miniEditor->getFrame().next(); |       FrameNumber frame = miniEditor->getFrame().next(); | ||||||
|       if (frame > miniEditor->getSprite()->getLastFrame()) |       if (frame > miniEditor->getSprite()->getLastFrame()) | ||||||
|         frame = FrameNumber(0); |         frame = FrameNumber(0); | ||||||
|       miniEditor->setFrame(frame); |       miniEditor->setFrame(frame); | ||||||
| 
 | 
 | ||||||
|       m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame()); |       m_nextFrameTime += miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame()); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     m_curFrameTick = ji_clock; | ||||||
|   } |   } | ||||||
|   invalidate(); |   invalidate(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -45,7 +45,6 @@ namespace app { | ||||||
|     void onPlayClicked(); |     void onPlayClicked(); | ||||||
|     void onPlaybackTick(); |     void onPlaybackTick(); | ||||||
|     void hideWindow(); |     void hideWindow(); | ||||||
|     void resetTimer(); |  | ||||||
| 
 | 
 | ||||||
|     bool m_isEnabled; |     bool m_isEnabled; | ||||||
|     DocumentView* m_docView; |     DocumentView* m_docView; | ||||||
|  | @ -55,6 +54,7 @@ namespace app { | ||||||
|     // Number of milliseconds to go to the next frame if m_playTimer
 |     // Number of milliseconds to go to the next frame if m_playTimer
 | ||||||
|     // is activated.
 |     // is activated.
 | ||||||
|     int m_nextFrameTime; |     int m_nextFrameTime; | ||||||
|  |     int m_curFrameTick; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| } // namespace app
 | } // namespace app
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue