widgets/wipeval_ui.ui
widgets/boolval_ui.ui
widgets/colorval_ui.ui
- widgets/positionval_ui.ui
widgets/titlewidget_ui.ui
widgets/unicodedialog_ui.ui
widgets/timelinebuttons_ui.ui
geom->updateTimecodeFormat();
break;
}
+ if (type == "position") {
+ PositionEdit *posi = ((PositionEdit*)m_valueItems[paramName+"position"]);
+ posi->updateTimecodeFormat();
+ break;
+ }
}
}
delete m_effectedit;
}
+void EffectStackView::updateTimecodeFormat()
+{
+ m_effectedit->updateTimecodeFormat();
+}
+
void EffectStackView::setMenu(QMenu *menu)
{
m_ui.buttonNew->setMenu(menu);
if (c && !c->isEnabled()) return;
if (c && c == m_clipref) {
if (ix == -1) ix = m_ui.effectlist->currentRow();
+ //if (ix == -1 || ix == m_ui.effectlist->currentRow()) return;
} else {
m_clipref = c;
if (c) {
void clear();
void setMenu(QMenu *menu);
void updateProjectFormat(MltVideoProfile profile, Timecode t);
+ void updateTimecodeFormat();
private:
Ui::EffectStack_UI m_ui;
slotPositionChanged(0, false);
slotUpdateGeometry();
if (!m_fixedMode) {
- m_timePos.setMaximum(maxFrame - minFrame - 1);
+ m_timePos.setRange(0, maxFrame - minFrame - 1);
connect(&m_timePos, SIGNAL(editingFinished()), this , SLOT(slotPositionChanged()));
}
connect(spinTransp, SIGNAL(valueChanged(int)), this , SLOT(slotTransparencyChanged(int)));
ClipGenerator *iGenerator = qobject_cast<ClipGenerator *>(action->parent());
KUrl clipUrl = iGenerator->generatedClip(action->data().toString(), m_activeDocument->projectFolder(),
- QStringList(), QStringList(), m_activeDocument->fps(), m_activeDocument->width(), m_activeDocument->height());
+ QStringList(), QStringList(), m_activeDocument->fps(), m_activeDocument->width(), m_activeDocument->height());
if (!clipUrl.isEmpty()) {
m_projectList->slotAddClip(QList <QUrl> () << clipUrl);
}
m_clipMonitor->updateTimecodeFormat();
m_projectMonitor->updateTimecodeFormat();
m_transitionConfig->updateTimecodeFormat();
- m_activeTimeline->projectView()->clearSelection();
+ m_effectStack->updateTimecodeFormat();
+ //m_activeTimeline->projectView()->clearSelection();
m_activeTimeline->updateRuler();
}
/***************************************************************************
- geomeytrval.cpp - description
+ positionedit.cpp - description
-------------------
begin : 03 Aug 2008
copyright : (C) 2008 by Marco Gittler
#include <KDebug>
+#include <QLabel>
+#include <QSlider>
+
PositionEdit::PositionEdit(const QString name, int pos, int min, int max, const Timecode tc, QWidget* parent) :
- QWidget(parent),
- m_tc(tc),
- m_frameDisplay(KdenliveSettings::frametimecode())
+ QWidget(parent)
{
- m_ui.setupUi(this);
- m_ui.label->setText(name);
- m_ui.horizontalSlider->setRange(min, max);
- connect(m_ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(slotUpdateTimecode()));
- connect(m_ui.krestrictedline, SIGNAL(editingFinished()), this, SLOT(slotUpdatePosition()));
- m_ui.horizontalSlider->setValue(pos);
- if (m_frameDisplay) {
- QValidator *valid = new QIntValidator(this);
- m_ui.krestrictedline->setInputMask("");
- m_ui.krestrictedline->setValidator(valid);
- }
- m_ui.krestrictedline->setText(m_tc.getDisplayTimecodeFromFrames(pos, m_frameDisplay));
+ QVBoxLayout *l = new QVBoxLayout;
+ QLabel *lab = new QLabel(name);
+ l->addWidget(lab);
+
+ QHBoxLayout *l2 = new QHBoxLayout;
+ m_display = new TimecodeDisplay(tc);
+ m_slider = new QSlider(Qt::Horizontal);
+ m_slider->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred));
+ m_display->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred));
+ l2->addWidget(m_display);
+ l2->addWidget(m_slider);
+ m_display->setRange(min, max);
+ m_slider->setRange(min, max);
+ connect(m_slider, SIGNAL(valueChanged(int)), m_display, SLOT(setValue(int)));
+ connect(m_slider, SIGNAL(valueChanged(int)), this, SIGNAL(parameterChanged()));
+ connect(m_display, SIGNAL(editingFinished()), this, SLOT(slotUpdatePosition()));
+ m_slider->setValue(pos);
+ l->addLayout(l2);
+ setLayout(l);
}
-int PositionEdit::getPosition() const
+PositionEdit::~PositionEdit()
{
- return m_ui.horizontalSlider->value();
+ m_display->blockSignals(true);
+ m_slider->blockSignals(true);
+ delete m_slider;
+ delete m_display;
}
-void PositionEdit::setPosition(int pos)
+void PositionEdit::updateTimecodeFormat()
{
- m_ui.horizontalSlider->setValue(pos);
- m_ui.krestrictedline->setText(m_tc.getDisplayTimecodeFromFrames(pos, m_frameDisplay));
+ m_display->slotPrepareTimeCodeFormat(m_display->timecode());
}
-void PositionEdit::slotUpdateTimecode()
+int PositionEdit::getPosition() const
{
- m_ui.krestrictedline->setText(m_tc.getDisplayTimecodeFromFrames(m_ui.horizontalSlider->value(), m_frameDisplay));
- emit parameterChanged();
+ return m_slider->value();
}
+void PositionEdit::setPosition(int pos)
+{
+ m_slider->setValue(pos);
+ m_display->setValue(pos);
+}
+
+
void PositionEdit::slotUpdatePosition()
{
- m_ui.horizontalSlider->blockSignals(true);
- int pos = m_tc.getDisplayFrameCount(m_ui.krestrictedline->text(), m_frameDisplay);
- m_ui.horizontalSlider->setValue(pos);
- if (pos != m_ui.horizontalSlider->value()) {
- // Value out of range
- m_ui.krestrictedline->setText(m_tc.getDisplayTimecodeFromFrames(m_ui.horizontalSlider->value(), m_frameDisplay));
- }
- m_ui.horizontalSlider->blockSignals(false);
+ m_slider->blockSignals(true);
+ m_slider->setValue(m_display->value());
+ m_slider->blockSignals(false);
emit parameterChanged();
}
#include <QWidget>
-#include "ui_positionval_ui.h"
#include "timecode.h"
-
+#include "timecodedisplay.h"
class PositionEdit : public QWidget
{
Q_OBJECT
public:
explicit PositionEdit(const QString name, int pos, int min, int max, const Timecode tc, QWidget* parent = 0);
+ virtual ~PositionEdit();
int getPosition() const;
void setPosition(int pos);
+ void updateTimecodeFormat();
private:
- Ui::Positionval_UI m_ui;
- Timecode m_tc;
- bool m_frameDisplay;
+ TimecodeDisplay *m_display;
+ QSlider *m_slider;
private slots:
- void slotUpdateTimecode();
void slotUpdatePosition();
signals:
return frames;
}
-void TimecodeDisplay::setMinimum(int min)
+Timecode TimecodeDisplay::timecode() const
{
- m_minimum = min;
+ return m_timecode;
}
-void TimecodeDisplay::setMaximum(int max)
+void TimecodeDisplay::setRange(int min, int max)
{
+ m_minimum = min;
m_maximum = max;
}
int maximum() const;
/**
- * Sets the minimum value that can be entered.
+ * Sets the minimum maximum value that can be entered.
* @param min the minimum value
- */
- void setMinimum(int min);
-
- /**
- * Sets the maximum value that can be entered.
* @param max the maximum value
*/
- void setMaximum(int max);
+ void setRange(int min, int max);
/**
* The value shown.
*/
int value() const;
+ Timecode timecode() const;
+
//virtual QSize minimumSizeHint() const; ///< reimplemented from QComboBox
//virtual QSize sizeHint() const; ///< reimplemented from QComboBox
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Positionval_UI</class>
- <widget class="QWidget" name="Positionval_UI">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>167</width>
- <height>54</height>
- </rect>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Position</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="KRestrictedLine" name="krestrictedline">
- <property name="inputMask">
- <string>99:99:99:99; </string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QSlider" name="horizontalSlider">
- <property name="pageStep">
- <number>1</number>
- </property>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>KLineEdit</class>
- <extends>QLineEdit</extends>
- <header>klineedit.h</header>
- </customwidget>
- <customwidget>
- <class>KRestrictedLine</class>
- <extends>KLineEdit</extends>
- <header>krestrictedline.h</header>
- </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>