return a + (b - a) * t;
}
-CornersWidget::CornersWidget(Monitor *monitor, QDomElement e, int minFrame, int maxFrame, Timecode tc, int activeKeyframe, QWidget* parent) :
+CornersWidget::CornersWidget(Monitor *monitor, const QDomElement& e, int minFrame, int maxFrame, const Timecode &tc, int activeKeyframe, QWidget* parent) :
KeyframeEdit(e, minFrame, maxFrame, tc, activeKeyframe, parent),
m_monitor(monitor),
m_showScene(true),
m_pos(0)
{
MonitorEditWidget *edit = monitor->getEffectEdit();
- edit->showVisibilityButton(true);
m_scene = edit->getScene();
+ m_scene->cleanup();
- m_item = new OnMonitorCornersItem(m_scene);
+ m_item = new OnMonitorCornersItem();
m_scene->addItem(m_item);
// TODO: Better Icons
- QToolButton *buttonShowControls = new QToolButton();
- buttonShowControls->setIcon(KIcon("transform-move"));
- buttonShowControls->setToolTip(i18n("Show additional controls"));
- buttonShowControls->setCheckable(true);
- buttonShowControls->setAutoRaise(true);
- buttonShowControls->setChecked(KdenliveSettings::onmonitoreffects_cornersshowcontrols());
- connect(buttonShowControls, SIGNAL(toggled(bool)), this, SLOT(slotShowControls(bool)));
- edit->addCustomControl(buttonShowControls);
-
- QToolButton *buttonShowLines = new QToolButton();
- buttonShowLines->setIcon(KIcon("insert-horizontal-rule"));
- buttonShowLines->setToolTip(i18n("Show/Hide the lines connecting the corners"));
- buttonShowLines->setCheckable(true);
- buttonShowControls->setAutoRaise(true);
- buttonShowLines->setChecked(KdenliveSettings::onmonitoreffects_cornersshowlines());
- connect(buttonShowLines, SIGNAL(toggled(bool)), this, SLOT(slotShowLines(bool)));
- edit->addCustomControl(buttonShowLines);
-
- connect(edit, SIGNAL(showEdit(bool)), this, SLOT(slotShowScene(bool)));
- connect(m_monitor, SIGNAL(renderPosition(int)), this, SLOT(slotCheckMonitorPosition(int)));
- connect(m_scene, SIGNAL(actionFinished()), this, SLOT(slotUpdateProperties()));
+ edit->removeCustomControls();
+ edit->addCustomButton(KIcon("transform-move"), i18n("Show additional controls"), this, SLOT(slotShowControls(bool)),
+ true, KdenliveSettings::onmonitoreffects_cornersshowcontrols());
+ edit->addCustomButton(KIcon("insert-horizontal-rule"), i18n("Show/Hide the lines connecting the corners"), this, SLOT(slotShowLines(bool)),
+ true, KdenliveSettings::onmonitoreffects_cornersshowlines());
+
+ connect(m_item, SIGNAL(changed()), this, SLOT(slotUpdateProperties()));
connect(m_scene, SIGNAL(addKeyframe()), this, SLOT(slotInsertKeyframe()));
- connect(keyframe_list, SIGNAL(cellChanged(int, int)), this, SLOT(slotUpdateItem()));
+ connect(keyframe_list, SIGNAL(cellChanged(int,int)), this, SLOT(slotUpdateItem()));
+ m_scene->centerView();
}
CornersWidget::~CornersWidget()
delete m_item;
if (m_monitor) {
MonitorEditWidget *edit = m_monitor->getEffectEdit();
- edit->showVisibilityButton(false);
edit->removeCustomControls();
- m_monitor->slotEffectScene(false);
}
}
-void CornersWidget::addParameter(QDomElement e, int activeKeyframe)
+void CornersWidget::addParameter(const QDomElement &e, int activeKeyframe)
{
KeyframeEdit::addParameter(e, activeKeyframe);
return points;
}
-void CornersWidget::slotCheckMonitorPosition(int renderPos)
-{
- if (m_showScene)
- emit checkMonitorPosition(renderPos);
-}
-
-void CornersWidget::slotShowScene(bool show)
-{
- m_showScene = show;
- if (!m_showScene)
- m_monitor->slotEffectScene(false);
- else
- slotCheckMonitorPosition(m_monitor->render->seekFramePosition());
-}
void CornersWidget::slotShowLines(bool show)
{
{
if (keyframe_list->rowCount()) {
relTimelinePos = qBound(0, relTimelinePos, m_max);
- if (relTimelinePos != m_pos) {
- m_pos = relTimelinePos;
+ if (relTimelinePos != m_pos - m_min) {
+ m_pos = relTimelinePos + m_min;
slotUpdateItem();
}
}
QPolygonF pol = m_item->polygon();
double val;
- for (int i = 0; i < keyframe_list->columnCount(); i++) {
+ for (int i = 0; i < keyframe_list->columnCount(); ++i) {
if (i < 8) {
if (i % 2 == 0)
val = pol.at(i / 2).x() / (double)m_monitor->render->frameRenderWidth();
keyframe_list->selectRow(row);
}
+
#include "cornerswidget.moc"