keyframe_list->setHorizontalHeaderItem(columnId, new QTableWidgetItem(paramName));
DoubleParameterWidget *doubleparam = new DoubleParameterWidget(paramName, 0,
- m_params.at(columnId).attribute("min").toInt(), m_params.at(columnId).attribute("max").toInt(),
- m_params.at(columnId).attribute("default").toInt(), comment, columnId, m_params.at(columnId).attribute("suffix"), this);
- connect(doubleparam, SIGNAL(valueChanged(int)), this, SLOT(slotAdjustKeyframeValue(int)));
+ m_params.at(columnId).attribute("min").toDouble(), m_params.at(columnId).attribute("max").toDouble(),
+ m_params.at(columnId).attribute("default").toDouble(), comment, columnId, m_params.at(columnId).attribute("suffix"), m_params.at(columnId).attribute("decimals").toInt(), this);
+ connect(doubleparam, SIGNAL(valueChanged(double)), this, SLOT(slotAdjustKeyframeValue(double)));
connect(this, SIGNAL(showComments(bool)), doubleparam, SLOT(slotShowComment(bool)));
connect(doubleparam, SIGNAL(setInTimeline(int)), this, SLOT(slotUpdateVisibleParameter(int)));
m_slidersLayout->addWidget(doubleparam, columnId, 0);
doubleparam->setInTimelineProperty(true);
}
- QStringList frames = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
+ QStringList frames = e.attribute("keyframes").split(';', QString::SkipEmptyParts);
for (int i = 0; i < frames.count(); i++) {
int frame = frames.at(i).section(':', 0, 0).toInt();
bool found = false;
for (int col = 0; col < keyframe_list->horizontalHeader()->count(); col++) {
item = keyframe_list->item(row, col);
+ if (!item) continue;
int v = item->text().toInt();
if (v >= m_params.at(col).attribute("max").toInt())
item->setText(m_params.at(col).attribute("max"));
continue;
doubleparam->blockSignals(true);
if (keyframe_list->item(item->row(), col)) {
- doubleparam->setValue(keyframe_list->item(item->row(), col)->text().toInt());
+ doubleparam->setValue(keyframe_list->item(item->row(), col)->text().toDouble());
} else {
kDebug() << "Null pointer exception caught: http://www.kdenlive.org/mantis/view.php?id=1771";
}
emit seekToPos(value - m_min);
}
-void KeyframeEdit::slotAdjustKeyframeValue(int value)
+void KeyframeEdit::slotAdjustKeyframeValue(double value)
{
Q_UNUSED(value)
DoubleParameterWidget *doubleparam = static_cast <DoubleParameterWidget*>(m_slidersLayout->itemAtPosition(col, 0)->widget());
if (!doubleparam)
continue;
- int val = doubleparam->getValue();
+ double val = doubleparam->getValue();
QTableWidgetItem *nitem = keyframe_list->item(item->row(), col);
- if (nitem && nitem->text().toInt() != val)
+ if (nitem && nitem->text().toDouble() != val)
nitem->setText(QString::number(val));
}
//keyframe_list->item(item->row() - 1, item->column());
if (m_params.count() == 0)
return;
- foreach(QDomElement elem, m_params) {
+ foreach(const QDomElement &elem, m_params) {
if (elem.attribute("intimeline") == "1")
return;
}
slotUpdateVisibleParameter(0);
}
+void KeyframeEdit::slotUpdateRange(int inPoint, int outPoint)
+{
+ m_min = inPoint;
+ m_max = outPoint;
+}
+
#include "keyframeedit.moc"