コード例 #1
0
void DocumentView::onAddFrame(DocumentEvent& ev)
{
  if (current_editor == m_editor)
    m_editor->setFrame(ev.frame());
  else if (m_editor->getFrame() > ev.frame())
    m_editor->setFrame(m_editor->getFrame().next());
}
コード例 #2
0
void DocumentView::onRemoveFrame(DocumentEvent& ev)
{
  // Adjust current frame of all editors that are in a frame more
  // advanced that the removed one.
  if (m_editor->getFrame() > ev.frame()) {
    m_editor->setFrame(m_editor->getFrame().previous());
  }
  // If the editor was in the previous "last frame" (current value of
  // getTotalFrames()), we've to adjust it to the new last frame
  // (getLastFrame())
  else if (m_editor->getFrame() >= m_editor->getSprite()->getTotalFrames()) {
    m_editor->setFrame(m_editor->getSprite()->getLastFrame());
  }
}