| |
| |
| #include "toonzqt/functionkeyframenavigator.h" |
| |
| |
| #include "toonzqt/framenavigator.h" |
| |
| |
| #include "toonz/tframehandle.h" |
| #include "toonz/doubleparamcmd.h" |
| |
| |
| #include "tdoubleparam.h" |
| |
| |
| #include <QPushButton> |
| #include <QBoxLayout> |
| #include <QToolButton> |
| #include <QLabel> |
| #include <QAction> |
| #include <QIntValidator> |
| |
| FunctionKeyframeNavigator::FunctionKeyframeNavigator(QWidget *parent) |
| : KeyframeNavigator(parent) |
| { |
| } |
| |
| void FunctionKeyframeNavigator::setCurve(TDoubleParam *curve) |
| { |
| if (m_curve.getPointer() == curve) |
| return; |
| m_curve = curve; |
| if (isVisible()) |
| update(); |
| } |
| |
| bool FunctionKeyframeNavigator::hasNext() const |
| { |
| return m_curve && m_curve->getNextKeyframe(getCurrentFrame()) >= 0; |
| } |
| |
| bool FunctionKeyframeNavigator::hasPrev() const |
| { |
| return m_curve && m_curve->getPrevKeyframe(getCurrentFrame()) >= 0; |
| } |
| |
| bool FunctionKeyframeNavigator::hasKeyframes() const |
| { |
| return m_curve && m_curve->hasKeyframes(); |
| } |
| |
| bool FunctionKeyframeNavigator::isKeyframe() const |
| { |
| return m_curve && m_curve->isKeyframe(getCurrentFrame()); |
| } |
| |
| void FunctionKeyframeNavigator::toggle() |
| { |
| if (!m_curve) |
| return; |
| int frame = getCurrentFrame(); |
| double value = m_curve->getValue(frame); |
| if (m_curve->isKeyframe(frame)) |
| KeyframeSetter::removeKeyframeAt(m_curve.getPointer(), frame); |
| else { |
| KeyframeSetter setter(m_curve.getPointer()); |
| setter.createKeyframe(frame); |
| } |
| } |
| |
| void FunctionKeyframeNavigator::goNext() |
| { |
| if (!m_curve) |
| return; |
| int k = m_curve->getNextKeyframe(getCurrentFrame()); |
| if (k < 0) |
| return; |
| setCurrentFrame(m_curve->keyframeIndexToFrame(k)); |
| } |
| |
| void FunctionKeyframeNavigator::goPrev() |
| { |
| if (!m_curve) |
| return; |
| int k = m_curve->getPrevKeyframe(getCurrentFrame()); |
| if (k < 0) |
| return; |
| setCurrentFrame(m_curve->keyframeIndexToFrame(k)); |
| } |
| |
| void FunctionKeyframeNavigator::showEvent(QShowEvent *e) |
| { |
| KeyframeNavigator::showEvent(e); |
| } |
| |
| void FunctionKeyframeNavigator::hideEvent(QHideEvent *e) |
| { |
| KeyframeNavigator::hideEvent(e); |
| } |
| |