***************************************************************************/
#include "keyframeedit.h"
-#include "doubleparameterwidget.h"
+#include "widgets/doubleparameterwidget.h"
#include "positionedit.h"
#include "kdenlivesettings.h"
#include <QHeaderView>
-KeyframeEdit::KeyframeEdit(const QDomElement &e, int minFrame, int maxFrame, Timecode tc, int activeKeyframe, QWidget* parent) :
- QWidget(parent),
- m_min(minFrame),
- m_max(maxFrame),
- m_timecode(tc)
+KeyframeEdit::KeyframeEdit(const QDomElement &e, int minFrame, int maxFrame, const Timecode &tc, int activeKeyframe, QWidget* parent) :
+ QWidget(parent),
+ m_min(minFrame),
+ m_max(maxFrame),
+ m_timecode(tc)
{
setupUi(this);
if (m_max == -1) {
}
}
-void KeyframeEdit::addParameter(QDomElement e, int activeKeyframe)
+void KeyframeEdit::addParameter(const QDomElement &e, int activeKeyframe)
{
keyframe_list->blockSignals(true);
m_params.append(e.cloneNode().toElement());
keyframe_list->setHorizontalHeaderItem(columnId, new QTableWidgetItem(paramName));
DoubleParameterWidget *doubleparam = new DoubleParameterWidget(paramName, 0,
- 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);
+ 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)));
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();
+ int frame = frames.at(i).section('=', 0, 0).toInt();
bool found = false;
int j;
for (j = 0; j < keyframe_list->rowCount(); j++) {
int currentPos = getPos(j);
if (frame == currentPos) {
- keyframe_list->setItem(j, columnId, new QTableWidgetItem(frames.at(i).section(':', 1, 1)));
+ keyframe_list->setItem(j, columnId, new QTableWidgetItem(frames.at(i).section('=', 1, 1)));
found = true;
break;
} else if (currentPos > frame) {
if (!found) {
keyframe_list->insertRow(j);
keyframe_list->setVerticalHeaderItem(j, new QTableWidgetItem(getPosString(frame)));
- keyframe_list->setItem(j, columnId, new QTableWidgetItem(frames.at(i).section(':', 1, 1)));
+ keyframe_list->setItem(j, columnId, new QTableWidgetItem(frames.at(i).section('=', 1, 1)));
keyframe_list->resizeRowToContents(j);
}
if ((activeKeyframe > -1) && (activeKeyframe == frame)) {
for (int col = 0; col < keyframe_list->horizontalHeader()->count(); col++) {
item = keyframe_list->item(row, col);
- if (!item) continue;
+ 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"));
QString keyframes;
for (int i = 0; i < keyframe_list->rowCount(); ++i) {
if (keyframe_list->item(i, col))
- keyframes.append(QString::number(getPos(i)) + ':' + keyframe_list->item(i, col)->text() + ';');
+ keyframes.append(QString::number(getPos(i)) + '=' + keyframe_list->item(i, col)->text() + ';');
}
m_params[col].setAttribute("keyframes", keyframes);
}
QString keyframes;
for (int i = 0; i < keyframe_list->rowCount(); ++i) {
if (keyframe_list->item(i, column))
- keyframes.append(QString::number(getPos(i)) + ':' + keyframe_list->item(i, column)->text() + ';');
+ keyframes.append(QString::number(getPos(i)) + '=' + keyframe_list->item(i, column)->text() + ';');
}
m_params[column].setAttribute("keyframes", keyframes);
emit parameterChanged();
QString keyframes;
for (int i = 0; i < keyframe_list->rowCount(); ++i) {
if (keyframe_list->item(i, col))
- keyframes.append(QString::number(getPos(i)) + ':' + keyframe_list->item(i, col)->text() + ';');
+ keyframes.append(QString::number(getPos(i)) + '=' + keyframe_list->item(i, col)->text() + ';');
}
m_params[col].setAttribute("keyframes", keyframes);
}
int KeyframeEdit::getPos(int row)
{
if (!keyframe_list->verticalHeaderItem(row))
- return 0;
+ return 0;
if (KdenliveSettings::frametimecode())
return keyframe_list->verticalHeaderItem(row)->text().toInt();
else
void KeyframeEdit::slotUpdateVisibleParameter(int id, bool update)
{
for (int i = 0; i < m_params.count(); ++i) {
- m_params[i].setAttribute("intimeline", (i == id ? "1" : "0"));
+ m_params[i].setAttribute("intimeline", (i == id ? "1" : "0"));
}
for (int col = 0; col < keyframe_list->columnCount(); col++) {
DoubleParameterWidget *doubleparam = static_cast <DoubleParameterWidget*>(m_slidersLayout->itemAtPosition(col, 0)->widget());