GenTime durationDiff = GenTime(posx, m_fps) - m_info.startPos;
if (durationDiff == GenTime()) return;
- if (type() == AVWIDGET && hasSizeLimit && (cropStart() + durationDiff < GenTime())) {
+ if (type() == AVWidget && hasSizeLimit && (cropStart() + durationDiff < GenTime())) {
durationDiff = GenTime() - cropStart();
} else if (durationDiff >= cropDuration()) {
return;
// set to true if crop from start is negative (possible for color clips, images as they have no size limit)
bool negCropStart = false;
- if (type() == AVWIDGET) {
+ if (type() == AVWidget) {
m_info.cropStart += durationDiff;
if (m_info.cropStart < GenTime())
negCropStart = true;
//kDebug() << "////// WARNING, DIFF IN XPOS: " << pos().x() << " == " << m_info.startPos.frames(m_fps);
GenTime diff = m_info.startPos - GenTime(posx, m_fps);
- if (type() == AVWIDGET)
+ if (type() == AVWidget)
m_info.cropStart += diff;
m_info.cropDuration -= diff;
setRect(0, 0, (m_cropDuration - diff).frames(m_fps) - 0.02, rect().height());
setPos((m_startPos + diff).frames(m_fps), pos().y());
m_startPos += diff;
- if (type() == AVWIDGET) m_cropStart += diff;
+ if (type() == AVWidget) m_cropStart += diff;
m_cropDuration = m_cropDuration - diff;
break;
}
bool isItemLocked() const;
void closeAnimation();
- virtual OPERATIONTYPE operationMode(const QPointF &pos) = 0;
+ virtual OperationType operationMode(const QPointF &pos) = 0;
virtual GenTime startPos() const ;
virtual void setTrack(int track);
virtual GenTime endPos() const ;
int AbstractGroupItem::type() const
{
- return GROUPWIDGET;
+ return GroupWidget;
}
int AbstractGroupItem::track() const
int topTrack = -1;
QList<QGraphicsItem *> children = childItems();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
children.append(children.at(i)->childItems());
continue;
}
QPainterPath AbstractGroupItem::clipGroupSpacerShape(const QPointF &offset) const
{
- return spacerGroupShape(AVWIDGET, offset);
+ return spacerGroupShape(AVWidget, offset);
}
QPainterPath AbstractGroupItem::clipGroupShape(const QPointF &offset) const
{
- return groupShape(AVWIDGET, offset);
+ return groupShape(AVWidget, offset);
}
QPainterPath AbstractGroupItem::transitionGroupShape(const QPointF &offset) const
{
- return groupShape(TRANSITIONWIDGET, offset);
+ return groupShape(TransitionWidget, offset);
}
-QPainterPath AbstractGroupItem::groupShape(GRAPHICSRECTITEM type, const QPointF &offset) const
+QPainterPath AbstractGroupItem::groupShape(GraphicsRectItem type, const QPointF &offset) const
{
QPainterPath path;
QList<QGraphicsItem *> children = childItems();
QRectF r(children.at(i)->sceneBoundingRect());
r.translate(offset);
path.addRect(r);
- } else if (children.at(i)->type() == GROUPWIDGET) {
+ } else if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++) {
if (subchildren.at(j)->type() == (int)type) {
return path;
}
-QPainterPath AbstractGroupItem::spacerGroupShape(GRAPHICSRECTITEM type, const QPointF &offset) const
+QPainterPath AbstractGroupItem::spacerGroupShape(GraphicsRectItem type, const QPointF &offset) const
{
QPainterPath path;
QList<QGraphicsItem *> children = childItems();
r.translate(offset);
r.setRight(scene()->width());
path.addRect(r);
- } else if (children.at(i)->type() == GROUPWIDGET) {
+ } else if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++) {
if (subchildren.at(j)->type() == (int)type) {
QList<QGraphicsItem *> children = childItems();
for (int i = 0; i < children.count(); ++i) {
int currentTrack = 0;
- if (children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET) {
+ if (children.at(i)->type() == AVWidget || children.at(i)->type() == TransitionWidget) {
currentTrack = static_cast <AbstractClipItem*> (children.at(i))->track();
if (!groupTracks.contains(currentTrack)) groupTracks.append(currentTrack);
}
- else if (children.at(i)->type() == GROUPWIDGET) {
+ else if (children.at(i)->type() == GroupWidget) {
currentTrack = static_cast <AbstractGroupItem*> (children.at(i))->track();
}
else continue;
- if (children.at(i)->type() == AVWIDGET) {
+ if (children.at(i)->type() == AVWidget) {
if (topTrack == -1 || currentTrack <= topTrack) {
offset = 0;
topTrack = currentTrack;
}
- } else if (children.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (children.at(i)->type() == TransitionWidget) {
if (topTrack == -1 || currentTrack < topTrack) {
offset = (int)(trackHeight / 3 * 2 - 1);
topTrack = currentTrack;
}
- } else if (children.at(i)->type() == GROUPWIDGET) {
+ } else if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
bool clipGroup = false;
for (int j = 0; j < subchildren.count(); j++) {
- if (subchildren.at(j)->type() == AVWIDGET || subchildren.at(j)->type() == TRANSITIONWIDGET) {
+ if (subchildren.at(j)->type() == AVWidget || subchildren.at(j)->type() == TransitionWidget) {
int subTrack = static_cast <AbstractClipItem*> (subchildren.at(j))->track();
if (!groupTracks.contains(subTrack)) groupTracks.append(subTrack);
clipGroup = true;
collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
collidingItems.removeAll(this);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++) {
collidingItems.removeAll(subchildren.at(j));
int offset = 0;
for (int i = 0; i < collidingItems.count(); ++i) {
QGraphicsItem *collision = collidingItems.at(i);
- if (collision->type() == AVWIDGET) {
+ if (collision->type() == AVWidget) {
// Collision
if (newPos.y() != pos().y()) {
// Track change results in collision, restore original position
collidingItems = scene()->items(clipGroupShape(newPos - pos()), Qt::IntersectsItemShape);
collidingItems.removeAll(this);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++) {
collidingItems.removeAll(subchildren.at(j));
collidingItems.removeAll(children.at(i));
}
for (int i = 0; i < collidingItems.count(); ++i)
- if (collidingItems.at(i)->type() == AVWIDGET) return pos();
+ if (collidingItems.at(i)->type() == AVWidget) return pos();
}
}
collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
collidingItems.removeAll(this);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++) {
collidingItems.removeAll(subchildren.at(j));
int offset = 0;
for (int i = 0; i < collidingItems.count(); ++i) {
QGraphicsItem *collision = collidingItems.at(i);
- if (collision->type() == TRANSITIONWIDGET) {
+ if (collision->type() == TransitionWidget) {
// Collision
if (newPos.y() != pos().y()) {
// Track change results in collision, restore original position
collidingItems.removeAll(children.at(i));
}
for (int i = 0; i < collidingItems.count(); ++i)
- if (collidingItems.at(i)->type() == TRANSITIONWIDGET) return pos();
+ if (collidingItems.at(i)->type() == TransitionWidget) return pos();
}
}
return newPos;
QList<QGraphicsItem *> selection = scene()->items(dropPos);
AbstractClipItem *dropChild = NULL;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
dropChild = (AbstractClipItem *) selection.at(i);
break;
}
QList <QGraphicsItem *>list = scene()->items(event->scenePos());
// only allow group move if we click over an item in the group
foreach(const QGraphicsItem *item, list) {
- if (item->type() == TRANSITIONWIDGET || item->type() == AVWIDGET) {
+ if (item->type() == TransitionWidget || item->type() == AVWidget) {
QGraphicsItem::mousePressEvent(event);
return;
}
int itemcount = 0;
for (int i = 0; i < children.count(); ++i) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(i));
- if (item && item->type() == AVWIDGET) {
+ if (item && item->type() == AVWidget) {
items << item;
if (info)
m_resizeInfos << item->info();
int itemcount = 0;
for (int i = 0; i < children.count(); ++i) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(i));
- if (item && item->type() == AVWIDGET) {
+ if (item && item->type() == AVWidget) {
items << item;
if (info)
m_resizeInfos << item->info();
GenTime start = GenTime(-1.0);
GenTime end = GenTime();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() != GROUPWIDGET) {
+ if (children.at(i)->type() != GroupWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(i));
if (item) {
if (start < GenTime() || item->startPos() < start)
private:
void fixItemRect();
- QPainterPath groupShape(GRAPHICSRECTITEM type, const QPointF &offset) const;
- QPainterPath spacerGroupShape(GRAPHICSRECTITEM type, const QPointF &offset) const;
+ QPainterPath groupShape(GraphicsRectItem type, const QPointF &offset) const;
+ QPainterPath spacerGroupShape(GraphicsRectItem type, const QPointF &offset) const;
/** Stores the original info of the items beeing resized. */
QList <ItemInfo> m_resizeInfos;
};
#include <QVBoxLayout>
-AbstractMonitor::AbstractMonitor(Kdenlive::MONITORID id, MonitorManager *manager, QWidget *parent):
+AbstractMonitor::AbstractMonitor(Kdenlive::MonitorId id, MonitorManager *manager, QWidget *parent):
QWidget(parent),
videoSurface(NULL),
m_id(id),
* @param name A unique identifier for this renderer
* @param winid The parent widget identifier (required for SDL display). Set to 0 for OpenGL rendering
* @param profile The MLT profile used for the renderer (default one will be used if empty). */
- explicit AbstractRender(Kdenlive::MONITORID name, QWidget *parent = 0)
+ explicit AbstractRender(Kdenlive::MonitorId name, QWidget *parent = 0)
: QObject(parent),
sendFrameForAnalysis(false),
analyseAudio(false),
{
Q_OBJECT
public:
- AbstractMonitor(Kdenlive::MONITORID id, MonitorManager *manager, QWidget *parent = 0);
- Kdenlive::MONITORID id() {return m_id;}
+ AbstractMonitor(Kdenlive::MonitorId id, MonitorManager *manager, QWidget *parent = 0);
+ Kdenlive::MonitorId id() {return m_id;}
virtual ~AbstractMonitor();
virtual AbstractRender *abstractRender() = 0;
bool isActive() const;
virtual void slotSwitchFullScreen() = 0;
protected:
- Kdenlive::MONITORID m_id;
+ Kdenlive::MonitorId m_id;
MonitorManager *m_monitorManager;
};
crop_end_box->addWidget(m_cropEnd);
bool allowCrop = true;
- if (clip->type() == AVWIDGET) {
+ if (clip->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(clip);
const int t = item->clipType();
- if (t == COLOR || t == IMAGE || t == TEXT)
+ if (t == Color || t == Image || t == Text)
allowCrop = false;
}
- if (!allowCrop || clip->type() == TRANSITIONWIDGET) {
+ if (!allowCrop || clip->type() == TransitionWidget) {
m_cropStart->setHidden(true);
crop_label->hide();
m_cropEnd->setHidden(true),
//setAcceptsHoverEvents(true);
connect(this , SIGNAL(prepareAudioThumb(double,int,int,int,int)) , this, SLOT(slotPrepareAudioThumb(double,int,int,int,int)));
- if (m_clipType == VIDEO || m_clipType == AV || m_clipType == SLIDESHOW || m_clipType == PLAYLIST) {
+ if (m_clipType == Video || m_clipType == AV || m_clipType == SlideShow || m_clipType == Playlist) {
m_baseColor = QColor(141, 166, 215);
if (!m_clip->isPlaceHolder()) {
m_hasThumbs = true;
if (generateThumbs) QTimer::singleShot(200, this, SLOT(slotFetchThumbs()));
}
- } else if (m_clipType == COLOR) {
+ } else if (m_clipType == Color) {
QString colour = m_clip->getProperty("colour");
colour = colour.replace(0, 2, "#");
m_baseColor = QColor(colour.left(7));
- } else if (m_clipType == IMAGE || m_clipType == TEXT) {
+ } else if (m_clipType == Image || m_clipType == Text) {
m_baseColor = QColor(141, 166, 215);
- if (m_clipType == TEXT) {
+ if (m_clipType == Text) {
connect(m_clip->thumbProducer(), SIGNAL(thumbReady(int,QImage)), this, SLOT(slotThumbReady(int,QImage)));
}
//m_startPix = KThumb::getImage(KUrl(clip->getProperty("resource")), (int)(KdenliveSettings::trackheight() * KdenliveSettings::project_display_ratio()), KdenliveSettings::trackheight());
- } else if (m_clipType == AUDIO) {
+ } else if (m_clipType == Audio) {
m_baseColor = QColor(141, 215, 166);
connect(m_clip, SIGNAL(gotAudioData()), this, SLOT(slotGotAudioData()));
}
m_startThumbTimer.stop();
if (scene())
scene()->removeItem(this);
- if (m_clipType == VIDEO || m_clipType == AV || m_clipType == SLIDESHOW || m_clipType == PLAYLIST) {
+ if (m_clipType == Video || m_clipType == AV || m_clipType == SlideShow || m_clipType == Playlist) {
//disconnect(m_clip->thumbProducer(), SIGNAL(thumbReady(int,QImage)), this, SLOT(slotThumbReady(int,QImage)));
//disconnect(m_clip, SIGNAL(gotAudioData()), this, SLOT(slotGotAudioData()));
}
ClipItem *ClipItem::clone(const ItemInfo &info) const
{
ClipItem *duplicate = new ClipItem(m_clip, info, m_fps, m_speed, m_strobe, FRAME_SIZE);
- if (m_clipType == IMAGE || m_clipType == TEXT) duplicate->slotSetStartThumb(m_startPix);
- else if (m_clipType != COLOR) {
+ if (m_clipType == Image || m_clipType == Text) duplicate->slotSetStartThumb(m_startPix);
+ else if (m_clipType != Color) {
if (info.cropStart == m_info.cropStart) duplicate->slotSetStartThumb(m_startPix);
if (info.cropStart + (info.endPos - info.startPos) == m_info.cropStart + m_info.cropDuration) {
duplicate->slotSetEndThumb(m_endPix);
{
if (checkDuration && (m_maxDuration != m_clip->maxDuration())) {
m_maxDuration = m_clip->maxDuration();
- if (m_clipType != IMAGE && m_clipType != TEXT && m_clipType != COLOR) {
+ if (m_clipType != Image && m_clipType != Text && m_clipType != Color) {
if (m_maxDuration != GenTime() && m_info.cropStart + m_info.cropDuration > m_maxDuration) {
// Clip duration changed, make sure to stay in correct range
if (m_info.cropStart > m_maxDuration) {
}
}
}
- if (m_clipType == COLOR) {
+ if (m_clipType == Color) {
QString colour = m_clip->getProperty("colour");
colour = colour.replace(0, 2, "#");
m_baseColor = QColor(colour.left(7));
void ClipItem::slotFetchThumbs()
{
- if (scene() == NULL || m_clipType == AUDIO || m_clipType == COLOR) return;
- if (m_clipType == IMAGE) {
+ if (scene() == NULL || m_clipType == Audio || m_clipType == Color) return;
+ if (m_clipType == Image) {
if (m_startPix.isNull()) {
m_startPix = KThumb::getImage(KUrl(m_clip->getProperty("resource")), (int)(KdenliveSettings::trackheight() * KdenliveSettings::project_display_ratio()), KdenliveSettings::trackheight());
update();
return;
}
- if (m_clipType == TEXT) {
+ if (m_clipType == Text) {
if (m_startPix.isNull()) slotGetStartThumb();
return;
}
m_startPix = pix;
m_startThumbRequested = false;
update(r.left(), r.top(), width, pix.height());
- if (m_clipType == IMAGE || m_clipType == TEXT) {
+ if (m_clipType == Image || m_clipType == Text) {
update(r.right() - width, r.top(), width, pix.height());
}
} else if (m_endThumbRequested && frame == (m_speedIndependantInfo.cropStart + m_speedIndependantInfo.cropDuration).frames(m_fps) - 1) {
int ClipItem::type() const
{
- return AVWIDGET;
+ return AVWidget;
}
DocClipBase *ClipItem::baseClip() const
// draw thumbnails
if (KdenliveSettings::videothumbnails() && !isAudioOnly()) {
QRectF thumbRect;
- if ((m_clipType == IMAGE || m_clipType == TEXT) && !m_startPix.isNull()) {
+ if ((m_clipType == Image || m_clipType == Text) && !m_startPix.isNull()) {
if (thumbRect.isNull()) thumbRect = QRectF(0, 0, mapped.height() / m_startPix.height() * m_startPix.width(), mapped.height());
thumbRect.moveTopRight(mapped.topRight());
painter->drawPixmap(thumbRect, m_startPix, m_startPix.rect());
}
// if we are in full zoom, paint thumbnail for every frame
- if (m_clip->thumbProducer() && clipType() != COLOR && clipType() != AUDIO && !m_audioOnly && transformation.m11() == FRAME_SIZE) {
+ if (m_clip->thumbProducer() && clipType() != Color && clipType() != Audio && !m_audioOnly && transformation.m11() == FRAME_SIZE) {
int offset = (m_info.startPos - m_info.cropStart).frames(m_fps);
int left = qMax((int) m_info.cropStart.frames(m_fps) + 1, (int) mapToScene(exposed.left(), 0).x() - offset);
int right = qMin((int)(m_info.cropStart + m_info.cropDuration).frames(m_fps) - 1, (int) mapToScene(exposed.right(), 0).x() - offset);
QPointF startPos = mapped.topLeft();
int startOffset = m_info.cropStart.frames(m_fps);
- if (clipType() == IMAGE || clipType() == TEXT) {
+ if (clipType() == Image || clipType() == Text) {
for (int i = left; i <= right; ++i) {
painter->drawPixmap(startPos + QPointF(FRAME_SIZE *(i - startOffset), 0), m_startPix);
}
}
}
// draw audio thumbnails
- if (KdenliveSettings::audiothumbnails() && m_speed == 1.0 && !isVideoOnly() && ((m_clipType == AV && (exposed.bottom() > (rect().height() / 2) || isAudioOnly())) || m_clipType == AUDIO) && m_audioThumbReady) {
+ if (KdenliveSettings::audiothumbnails() && m_speed == 1.0 && !isVideoOnly() && ((m_clipType == AV && (exposed.bottom() > (rect().height() / 2) || isAudioOnly())) || m_clipType == Audio) && m_audioThumbReady) {
double startpixel = exposed.left();
if (startpixel < 0)
}
-OPERATIONTYPE ClipItem::operationMode(const QPointF &pos)
+OperationType ClipItem::operationMode(const QPointF &pos)
{
- if (isItemLocked()) return NONE;
+ if (isItemLocked()) return None;
const double scale = projectScene()->scale().x();
double maximumOffset = 6 / scale;
if (isSelected() || (parentItem() && parentItem()->isSelected())) {
int kf = mouseOverKeyFrames(pos, maximumOffset);
if (kf != -1) {
m_editedKeyframe = kf;
- return KEYFRAME;
+ return KeyFrame;
}
}
QRectF rect = sceneBoundingRect();
int addtransitionOffset = 10;
// Don't allow add transition if track height is very small. No transitions for audio only clips
- if (rect.height() < 30 || isAudioOnly() || m_clipType == AUDIO) addtransitionOffset = 0;
+ if (rect.height() < 30 || isAudioOnly() || m_clipType == Audio) addtransitionOffset = 0;
if (qAbs((int)(pos.x() - (rect.x() + m_startFade))) < maximumOffset && qAbs((int)(pos.y() - rect.y())) < 6) {
- return FADEIN;
+ return FadeIn;
} else if ((pos.x() <= rect.x() + rect.width() / 2) && pos.x() - rect.x() < maximumOffset && (rect.bottom() - pos.y() > addtransitionOffset)) {
// If we are in a group, allow resize only if all clips start at same position
if (parentItem()) {
QGraphicsItemGroup *dragGroup = static_cast <QGraphicsItemGroup *>(parentItem());
QList<QGraphicsItem *> list = dragGroup->childItems();
for (int i = 0; i < list.count(); ++i) {
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
ClipItem *c = static_cast <ClipItem*>(list.at(i));
- if (c->startPos() != startPos()) return MOVE;
+ if (c->startPos() != startPos()) return MoveOperation;
}
}
}
- return RESIZESTART;
+ return ResizeStart;
} else if (qAbs((int)(pos.x() - (rect.x() + rect.width() - m_endFade))) < maximumOffset && qAbs((int)(pos.y() - rect.y())) < 6) {
- return FADEOUT;
+ return FadeOut;
} else if ((pos.x() >= rect.x() + rect.width() / 2) && (rect.right() - pos.x() < maximumOffset) && (rect.bottom() - pos.y() > addtransitionOffset)) {
// If we are in a group, allow resize only if all clips end at same position
if (parentItem()) {
QGraphicsItemGroup *dragGroup = static_cast <QGraphicsItemGroup *>(parentItem());
QList<QGraphicsItem *> list = dragGroup->childItems();
for (int i = 0; i < list.count(); ++i) {
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
ClipItem *c = static_cast <ClipItem*>(list.at(i));
- if (c->endPos() != endPos()) return MOVE;
+ if (c->endPos() != endPos()) return MoveOperation;
}
}
}
- return RESIZEEND;
+ return ResizeEnd;
} else if ((pos.x() - rect.x() < 16 / scale) && (rect.bottom() - pos.y() <= addtransitionOffset)) {
- return TRANSITIONSTART;
+ return TransitionStart;
} else if ((rect.right() - pos.x() < 16 / scale) && (rect.bottom() - pos.y() <= addtransitionOffset)) {
- return TRANSITIONEND;
+ return TransitionEnd;
}
- return MOVE;
+ return MoveOperation;
}
int ClipItem::itemHeight()
void ClipItem::resizeStart(int posx, bool /*size*/, bool emitChange)
{
bool sizeLimit = false;
- if (clipType() != IMAGE && clipType() != COLOR && clipType() != TEXT) {
+ if (clipType() != Image && clipType() != Color && clipType() != Text) {
const int min = (startPos() - cropStart()).frames(m_fps);
if (posx < min) posx = min;
sizeLimit = true;
m_audioOnly = force;
if (m_audioOnly) m_baseColor = QColor(141, 215, 166);
else {
- if (m_clipType == COLOR) {
+ if (m_clipType == Color) {
QString colour = m_clip->getProperty("colour");
colour = colour.replace(0, 2, "#");
m_baseColor = QColor(colour.left(7));
- } else if (m_clipType == AUDIO) m_baseColor = QColor(141, 215, 166);
+ } else if (m_clipType == Audio) m_baseColor = QColor(141, 215, 166);
else m_baseColor = QColor(141, 166, 215);
}
if (parentItem())
virtual int type() const;
void resizeStart(int posx, bool size = true, bool emitChange = true);
void resizeEnd(int posx, bool emitChange = true);
- OPERATIONTYPE operationMode(const QPointF &pos);
+ OperationType operationMode(const QPointF &pos);
static int itemHeight();
const QString clipProducer() const;
int clipType() const;
DocClipBase *m_clip;
ItemInfo m_speedIndependantInfo;
QString m_producer;
- CLIPTYPE m_clipType;
+ ClipType m_clipType;
QString m_clipName;
QString m_effectNames;
int m_startFade;
void ClipManager::addClip(DocClipBase *clip)
{
m_clipList.append(clip);
- if (clip->clipType() != COLOR && clip->clipType() != SLIDESHOW && !clip->fileURL().isEmpty()) {
+ if (clip->clipType() != Color && clip->clipType() != SlideShow && !clip->fileURL().isEmpty()) {
// listen for file change
//kDebug() << "// LISTEN FOR: " << clip->fileURL().path();
m_fileWatcher.addFile(clip->fileURL().path());
for (int i = 0; i < m_clipList.count(); ++i) {
if (m_clipList.at(i)->getId() == clipId) {
DocClipBase *clip = m_clipList.takeAt(i);
- if (clip->clipType() != COLOR && clip->clipType() != SLIDESHOW && !clip->fileURL().isEmpty()) {
+ if (clip->clipType() != Color && clip->clipType() != SlideShow && !clip->fileURL().isEmpty()) {
//if (m_clipList.at(i)->clipType() == IMAGE || m_clipList.at(i)->clipType() == AUDIO || (m_clipList.at(i)->clipType() == TEXT && !m_clipList.at(i)->fileURL().isEmpty())) {
// listen for file change
m_fileWatcher.removeFile(clip->fileURL().path());
KMimeType::Ptr type = KMimeType::findByUrl(file);
if (type->name().startsWith("image/")) {
- prod.setAttribute("type", (int) IMAGE);
+ prod.setAttribute("type", (int) Image);
prod.setAttribute("in", 0);
prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
if (KdenliveSettings::autoimagetransparency()) prod.setAttribute("transparency", 1);
QFile txtfile(file.path());
if (txtfile.open(QIODevice::ReadOnly) && txtdoc.setContent(&txtfile)) {
txtfile.close();
- prod.setAttribute("type", (int) TEXT);
+ prod.setAttribute("type", (int) Text);
// extract embeded images
QDomNodeList items = txtdoc.elementsByTagName("content");
for (int i = 0; i < items.count() ; ++i) {
QDomDocument doc;
doc.appendChild(doc.importNode(xml, true));
QDomElement prod = doc.documentElement();
- prod.setAttribute("type", (int) PLAYLIST);
+ prod.setAttribute("type", (int) Playlist);
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
prod.setAttribute("name", name);
doc.appendChild(prod);
prod.setAttribute("mlt_service", "colour");
prod.setAttribute("colour", color);
- prod.setAttribute("type", (int) COLOR);
+ prod.setAttribute("type", (int) Color);
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
prod.setAttribute("in", "0");
prod.setAttribute(i.key(), i.value());
++i;
}
- prod.setAttribute("type", (int) SLIDESHOW);
+ prod.setAttribute("type", (int) SlideShow);
uint id = m_clipIdCounter++;
if (!group.isEmpty()) {
prod.setAttribute("groupname", group);
prod.setAttribute("groupname", group);
prod.setAttribute("groupid", groupId);
}
- prod.setAttribute("type", (int) TEXT);
+ prod.setAttribute("type", (int) Text);
prod.setAttribute("transparency", "1");
prod.setAttribute("in", "0");
prod.setAttribute("out", duration - 1);
prod.setAttribute("groupname", group);
prod.setAttribute("groupid", groupId);
}
- prod.setAttribute("type", (int) TEXT);
+ prod.setAttribute("type", (int) Text);
prod.setAttribute("transparency", "1");
prod.setAttribute("in", "0");
groups.appendChild(group);
QList <QGraphicsItem *> children = m_groupsList.at(i)->childItems();
for (int j = 0; j < children.count(); j++) {
- if (children.at(j)->type() == AVWIDGET || children.at(j)->type() == TRANSITIONWIDGET) {
+ if (children.at(j)->type() == AVWidget || children.at(j)->type() == TransitionWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(j));
ItemInfo info = item->info();
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
QDomElement clip = doc.createElement("clipitem");
clip.setAttribute("track", info.track);
clip.setAttribute("position", info.startPos.frames(m_doc->fps()));
group.appendChild(clip);
- } else if (item->type() == TRANSITIONWIDGET) {
+ } else if (item->type() == TransitionWidget) {
QDomElement clip = doc.createElement("transitionitem");
clip.setAttribute("track", info.track);
clip.setAttribute("position", info.startPos.frames(m_doc->fps()));
new QTreeWidgetItem(m_view.clip_aproperties, QStringList() << i18n("Frequency") << props.value("frequency"));
- CLIPTYPE t = m_clip->clipType();
+ ClipType t = m_clip->clipType();
if (props.contains("proxy") && props.value("proxy") != "-") {
KFileItem f(KFileItem::Unknown, KFileItem::Unknown, KUrl(props.value("proxy")), true);
l->addWidget(pb);
connect(pb, SIGNAL(clicked()), this, SLOT(slotDeleteProxy()));
m_proxyContainer->setLayout(l);
- if (t == IMAGE) {
+ if (t == Image) {
m_view.tab_image->layout()->addWidget(line);
m_view.tab_image->layout()->addWidget(m_proxyContainer);
}
- else if (t == AUDIO) {
+ else if (t == Audio) {
m_view.tab_audio->layout()->addWidget(line);
m_view.tab_audio->layout()->addWidget(m_proxyContainer);
}
}
}
- if (t != AUDIO && t != AV) {
+ if (t != Audio && t != AV) {
m_view.clip_force_aindex->setEnabled(false);
}
- if (t != VIDEO && t != AV) {
+ if (t != Video && t != AV) {
m_view.clip_force_vindex->setEnabled(false);
}
- if (t == PLAYLIST)
+ if (t == Playlist)
m_view.tabWidget->setTabText(VIDEOTAB, i18n("Playlist"));
- if (t == IMAGE) {
+ if (t == Image) {
m_view.tabWidget->removeTab(SLIDETAB);
m_view.tabWidget->removeTab(COLORTAB);
m_view.tabWidget->removeTab(AUDIOTAB);
if (width % 2 == 1)
width++;
m_view.clip_thumb->setPixmap(QPixmap(url.path()).scaled(QSize(width, 180), Qt::KeepAspectRatio));
- } else if (t == COLOR) {
+ } else if (t == Color) {
m_view.clip_path->setEnabled(false);
m_view.tabWidget->removeTab(METATAB);
m_view.tabWidget->removeTab(IMAGETAB);
m_view.clip_thumb->setHidden(true);
m_view.clip_color->setColor(QColor('#' + props.value("colour").right(8).left(6)));
connect(m_view.clip_color, SIGNAL(changed(QColor)), this, SLOT(slotModified()));
- } else if (t == SLIDESHOW) {
+ } else if (t == SlideShow) {
if (url.fileName().startsWith(QLatin1String(".all."))) {
// the image sequence is defined by mimetype
m_view.clip_path->setText(url.directory());
connect(m_view.slide_luma, SIGNAL(stateChanged(int)), this, SLOT(slotEnableLumaFile(int)));
connect(m_view.image_type, SIGNAL(currentIndexChanged(int)), this, SLOT(parseFolder()));
- } else if (t != AUDIO) {
+ } else if (t != Audio) {
m_view.tabWidget->removeTab(IMAGETAB);
m_view.tabWidget->removeTab(SLIDETAB);
m_view.tabWidget->removeTab(COLORTAB);
m_view.clip_thumb->setMinimumSize(180 * KdenliveSettings::project_display_ratio(), 180);
- if (t == IMAGE || t == VIDEO || t == PLAYLIST)
+ if (t == Image || t == Video || t == Playlist)
m_view.tabWidget->removeTab(AUDIOTAB);
} else {
m_view.tabWidget->removeTab(IMAGETAB);
m_view.clip_thumb->setHidden(true);
}
- if (t != SLIDESHOW && t != COLOR) {
+ if (t != SlideShow && t != Color) {
KFileItem f(KFileItem::Unknown, KFileItem::Unknown, url, true);
m_view.clip_filesize->setText(KIO::convertSize(f.size()));
} else {
}
m_view.clip_duration->setInputMask(tc.mask());
m_view.clip_duration->setText(tc.getTimecode(m_clip->duration()));
- if (t != IMAGE && t != COLOR && t != TEXT) {
+ if (t != Image && t != Color && t != Text) {
m_view.clip_duration->setReadOnly(true);
} else {
connect(m_view.clip_duration, SIGNAL(editingFinished()), this, SLOT(slotCheckMaxLength()));
{
QMap <QString, QString> props;
QLocale locale;
- CLIPTYPE t = UNKNOWN;
+ ClipType t = Unknown;
if (m_clip != NULL) {
t = m_clip->clipType();
m_old_props = m_clip->properties();
if (m_old_props.value("description") != m_view.clip_description->text())
props["description"] = m_view.clip_description->text();
- if (t == COLOR) {
+ if (t == Color) {
QString new_color = m_view.clip_color->color().name();
if (new_color != QString('#' + m_old_props.value("colour").right(8).left(6))) {
m_clipNeedsRefresh = true;
if (duration != m_clip->duration().frames(m_fps)) {
props["out"] = QString::number(duration - 1);
}
- } else if (t == IMAGE) {
+ } else if (t == Image) {
if ((int) m_view.image_transparency->isChecked() != m_old_props.value("transparency").toInt()) {
props["transparency"] = QString::number((int)m_view.image_transparency->isChecked());
//m_clipNeedsRefresh = true;
if (duration != m_clip->duration().frames(m_fps)) {
props["out"] = QString::number(duration - 1);
}
- } else if (t == SLIDESHOW) {
+ } else if (t == SlideShow) {
QString value = QString::number((int) m_view.slide_loop->isChecked());
if (m_old_props.value("loop") != value) props["loop"] = value;
value = QString::number((int) m_view.slide_crop->isChecked());
, m_document(doc)
, m_scene(projectscene)
, m_cursorLine(NULL)
- , m_operationMode(NONE)
- , m_moveOpMode(NONE)
+ , m_operationMode(None)
+ , m_moveOpMode(None)
, m_dragItem(NULL)
, m_dragGuide(NULL)
, m_visualTip(NULL)
, m_scrollOffset(0)
, m_clipDrag(false)
, m_findIndex(0)
- , m_tool(SELECTTOOL)
+ , m_tool(SelectTool)
, m_copiedItems()
, m_menuPosition()
, m_blockRefresh(false)
QList<QGraphicsItem *> itemList = items();
ClipItem *item;
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
item = (ClipItem*) itemList.at(i);
item->resetFrameWidth(frameWidth);
item->resetThumbs(true);
bool snap = KdenliveSettings::snaptopoints();
KdenliveSettings::setSnaptopoints(false);
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
item = (ClipItem*) itemList.at(i);
item->setRect(0, 0, item->rect().width(), m_tracksHeight - 1);
item->setPos((qreal) item->startPos().frames(m_document->fps()), (qreal) item->track() * m_tracksHeight + 1);
item->resetFrameWidth(frameWidth);
item->resetThumbs(true);
- } else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (itemList.at(i)->type() == TransitionWidget) {
transitionitem = (Transition*) itemList.at(i);
transitionitem->setRect(0, 0, transitionitem->rect().width(), m_tracksHeight / 3 * 2 - 1);
transitionitem->setPos((qreal) transitionitem->startPos().frames(m_document->fps()), (qreal) transitionitem->track() * m_tracksHeight + m_tracksHeight / 3 * 2);
track = m_document->tracksCount() - track - 1;
track --;
for (int i = track; i > -1; --i) {
- if (m_document->trackInfoAt(i).type == VIDEOTRACK) return i + 1;
+ if (m_document->trackInfoAt(i).type == VideoTrack) return i + 1;
}
return 0;
}
void CustomTrackView::slotCheckPositionScrolling()
{
// If mouse is at a border of the view, scroll
- if (m_moveOpMode != SEEK) return;
+ if (m_moveOpMode != Seek) return;
if (mapFromScene(m_cursorPos, 0).x() < 3) {
if (horizontalScrollBar()->value() == 0) return;
horizontalScrollBar()->setValue(horizontalScrollBar()->value() - 2);
double snappedPos = getSnapPointForPos(mappedXPos);
emit mousePosition(mappedXPos);
- if (m_operationMode == SCROLLTIMELINE) {
+ if (m_operationMode == ScrollTimeline) {
QGraphicsView::mouseMoveEvent(event);
return;
}
if (event->buttons() & Qt::MidButton) return;
- if (dragMode() == QGraphicsView::RubberBandDrag || (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL && m_operationMode != RESIZESTART && m_operationMode != RESIZEEND)) {
+ if (dragMode() == QGraphicsView::RubberBandDrag || (event->modifiers() == Qt::ControlModifier && m_tool != SpacerTool && m_operationMode != ResizeStart && m_operationMode != ResizeEnd)) {
event->setAccepted(true);
- m_moveOpMode = NONE;
+ m_moveOpMode = None;
if (event->modifiers() != Qt::ControlModifier || dragMode() == QGraphicsView::RubberBandDrag) QGraphicsView::mouseMoveEvent(event);
return;
}
if (event->buttons() != Qt::NoButton) {
bool move = (event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance();
if (m_dragItem && move) m_clipDrag = true;
- if (m_dragItem && m_tool == SELECTTOOL) {
- if (m_operationMode == MOVE && m_clipDrag) {
+ if (m_dragItem && m_tool == SelectTool) {
+ if (m_operationMode == MoveOperation && m_clipDrag) {
QGraphicsView::mouseMoveEvent(event);
// If mouse is at a border of the view, scroll
if (pos < 5) {
} else if (m_scrollTimer.isActive()) {
m_scrollTimer.stop();
}
- } else if (m_operationMode == RESIZESTART && move) {
+ } else if (m_operationMode == ResizeStart && move) {
m_document->renderer()->pause();
- if (!m_controlModifier && m_dragItem->type() == AVWIDGET && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
+ if (!m_controlModifier && m_dragItem->type() == AVWidget && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
AbstractGroupItem *parent = static_cast <AbstractGroupItem *>(m_dragItem->parentItem());
if (parent)
parent->resizeStart((int)(snappedPos - m_dragItemInfo.startPos.frames(m_document->fps())));
QString duration = m_document->timecode().getDisplayTimecode(m_dragItem->cropDuration(), KdenliveSettings::frametimecode());
QString offset = m_document->timecode().getDisplayTimecode(m_dragItem->cropStart() - m_dragItemInfo.cropStart, KdenliveSettings::frametimecode());
emit displayMessage(i18n("Crop from start:") + ' ' + crop + ' ' + i18n("Duration:") + ' ' + duration + ' ' + i18n("Offset:") + ' ' + offset, InformationMessage);
- } else if (m_operationMode == RESIZEEND && move) {
+ } else if (m_operationMode == ResizeEnd && move) {
m_document->renderer()->pause();
- if (!m_controlModifier && m_dragItem->type() == AVWIDGET && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
+ if (!m_controlModifier && m_dragItem->type() == AVWidget && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
AbstractGroupItem *parent = static_cast <AbstractGroupItem *>(m_dragItem->parentItem());
if (parent)
parent->resizeEnd((int)(snappedPos - m_dragItemInfo.endPos.frames(m_document->fps())));
QString duration = m_document->timecode().getDisplayTimecode(m_dragItem->cropDuration(), KdenliveSettings::frametimecode());
QString offset = m_document->timecode().getDisplayTimecode(m_dragItem->cropDuration() - m_dragItemInfo.cropDuration, KdenliveSettings::frametimecode());
emit displayMessage(i18n("Duration:") + ' ' + duration + ' ' + i18n("Offset:") + ' ' + offset, InformationMessage);
- } else if (m_operationMode == FADEIN && move) {
+ } else if (m_operationMode == FadeIn && move) {
((ClipItem*) m_dragItem)->setFadeIn((int)(mappedXPos - m_dragItem->startPos().frames(m_document->fps())));
- } else if (m_operationMode == FADEOUT && move) {
+ } else if (m_operationMode == FadeOut && move) {
((ClipItem*) m_dragItem)->setFadeOut((int)(m_dragItem->endPos().frames(m_document->fps()) - mappedXPos));
- } else if (m_operationMode == KEYFRAME && move) {
+ } else if (m_operationMode == KeyFrame && move) {
GenTime keyFramePos = GenTime(mappedXPos, m_document->fps()) - m_dragItem->startPos() + m_dragItem->cropStart();
double pos = mapToScene(event->pos()).toPoint().y();
QRectF br = m_dragItem->sceneBoundingRect();
}
removeTipAnimation();
return;
- } else if (m_operationMode == MOVEGUIDE) {
+ } else if (m_operationMode == MoveGuide) {
removeTipAnimation();
QGraphicsView::mouseMoveEvent(event);
return;
- } else if (m_operationMode == SPACER && move && m_selectionGroup) {
+ } else if (m_operationMode == Spacer && move && m_selectionGroup) {
// spacer tool
snappedPos = getSnapPointForPos(mappedXPos + m_spacerOffset);
if (snappedPos < 0) snappedPos = 0;
QList<QGraphicsItem*> collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
collidingItems.removeAll(m_selectionGroup);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++)
collidingItems.removeAll(subchildren.at(j));
int offset = 0;
for (int i = 0; i < collidingItems.count(); ++i) {
if (!collidingItems.at(i)->isEnabled()) continue;
- if (collidingItems.at(i)->type() == AVWIDGET && snappedPos < m_selectionGroup->sceneBoundingRect().left()) {
+ if (collidingItems.at(i)->type() == AVWidget && snappedPos < m_selectionGroup->sceneBoundingRect().left()) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(collidingItems.at(i));
// Moving backward, determine best pos
QPainterPath clipPath;
collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
collidingItems.removeAll(m_selectionGroup);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++)
collidingItems.removeAll(subchildren.at(j));
for (int i = 0; i < collidingItems.count(); ++i) {
if (!collidingItems.at(i)->isEnabled()) continue;
- if (collidingItems.at(i)->type() == AVWIDGET) {
+ if (collidingItems.at(i)->type() == AVWidget) {
collision = true;
break;
}
collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
collidingItems.removeAll(m_selectionGroup);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++)
collidingItems.removeAll(subchildren.at(j));
offset = 0;
for (int i = 0; i < collidingItems.count(); ++i) {
- if (collidingItems.at(i)->type() == TRANSITIONWIDGET && snappedPos < m_selectionGroup->sceneBoundingRect().left()) {
+ if (collidingItems.at(i)->type() == TransitionWidget && snappedPos < m_selectionGroup->sceneBoundingRect().left()) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(collidingItems.at(i));
// Moving backward, determine best pos
QPainterPath clipPath;
collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
collidingItems.removeAll(m_selectionGroup);
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subchildren = children.at(i)->childItems();
for (int j = 0; j < subchildren.count(); j++)
collidingItems.removeAll(subchildren.at(j));
collidingItems.removeAll(children.at(i));
}
for (int i = 0; i < collidingItems.count(); ++i) {
- if (collidingItems.at(i)->type() == TRANSITIONWIDGET) {
+ if (collidingItems.at(i)->type() == TransitionWidget) {
collision = true;
break;
}
}
}
- if (m_tool == RAZORTOOL) {
+ if (m_tool == RazorTool) {
setCursor(m_razorCursor);
- } else if (m_tool == SPACERTOOL) {
+ } else if (m_tool == SpacerTool) {
setCursor(m_spacerCursor);
}
QList<QGraphicsItem *> itemList = items(event->pos());
QGraphicsRectItem *item = NULL;
- OPERATIONTYPE opMode = NONE;
+ OperationType opMode = None;
if (itemList.count() == 1 && itemList.at(0)->type() == GUIDEITEM) {
- opMode = MOVEGUIDE;
+ opMode = MoveGuide;
setCursor(Qt::SplitHCursor);
} else for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET) {
+ if (itemList.at(i)->type() == AVWidget || itemList.at(i)->type() == TransitionWidget) {
item = (QGraphicsRectItem*) itemList.at(i);
break;
}
}
- if (m_tool == SPACERTOOL) {
+ if (m_tool == SpacerTool) {
event->accept();
return;
}
if (item && event->buttons() == Qt::NoButton) {
AbstractClipItem *clip = static_cast <AbstractClipItem*>(item);
- if (m_tool == RAZORTOOL) {
+ if (m_tool == RazorTool) {
// razor tool over a clip, display current frame in monitor
- if (false && !m_blockRefresh && item->type() == AVWIDGET) {
+ if (false && !m_blockRefresh && item->type() == AVWidget) {
//TODO: solve crash when showing frame when moving razor over clip
emit showClipFrame(((ClipItem *) item)->baseClip(), QPoint(), false, mappedXPos - (clip->startPos() - clip->cropStart()).frames(m_document->fps()));
}
if (m_selectionGroup && clip->parentItem() == m_selectionGroup) {
// all other modes break the selection, so the user probably wants to move it
- opMode = MOVE;
+ opMode = MoveOperation;
} else {
if (clip->rect().width() * transform().m11() < 15) {
// If the item is very small, only allow move
- opMode = MOVE;
+ opMode = MoveOperation;
}
else opMode = clip->operationMode(mapToScene(event->pos()));
}
m_moveOpMode = opMode;
setTipAnimation(clip, opMode, size);
ClipItem *ci = NULL;
- if (item->type() == AVWIDGET)
+ if (item->type() == AVWidget)
ci = static_cast <ClipItem *>(item);
QString message;
- if (opMode == MOVE) {
+ if (opMode == MoveOperation) {
setCursor(Qt::OpenHandCursor);
if (ci) {
message = ci->clipName() + i18n(":");
message.append(i18n(" Position:") + m_document->timecode().getDisplayTimecode(ci->info().startPos, KdenliveSettings::frametimecode()));
message.append(i18n(" Duration:") + m_document->timecode().getDisplayTimecode(ci->cropDuration(), KdenliveSettings::frametimecode()));
- if (clip->parentItem() && clip->parentItem()->type() == GROUPWIDGET) {
+ if (clip->parentItem() && clip->parentItem()->type() == GroupWidget) {
AbstractGroupItem *parent = static_cast <AbstractGroupItem *>(clip->parentItem());
if (clip->parentItem() == m_selectionGroup)
message.append(i18n(" Selection duration:"));
else
message.append(i18n(" Group duration:"));
message.append(m_document->timecode().getDisplayTimecode(parent->duration(), KdenliveSettings::frametimecode()));
- if (parent->parentItem() && parent->parentItem()->type() == GROUPWIDGET) {
+ if (parent->parentItem() && parent->parentItem()->type() == GroupWidget) {
AbstractGroupItem *parent2 = static_cast <AbstractGroupItem *>(parent->parentItem());
message.append(i18n(" Selection duration:") + m_document->timecode().getDisplayTimecode(parent2->duration(), KdenliveSettings::frametimecode()));
}
}
}
- } else if (opMode == RESIZESTART) {
+ } else if (opMode == ResizeStart) {
setCursor(KCursor("left_side", Qt::SizeHorCursor));
if (ci)
message = i18n("Crop from start: ") + m_document->timecode().getDisplayTimecode(ci->cropStart(), KdenliveSettings::frametimecode());
- if (item->type() == AVWIDGET && item->parentItem() && item->parentItem() != m_selectionGroup)
+ if (item->type() == AVWidget && item->parentItem() && item->parentItem() != m_selectionGroup)
message.append(i18n("Use Ctrl to resize only current item, otherwise all items in this group will be resized at once."));
- } else if (opMode == RESIZEEND) {
+ } else if (opMode == ResizeEnd) {
setCursor(KCursor("right_side", Qt::SizeHorCursor));
if (ci)
message = i18n("Duration: ") + m_document->timecode().getDisplayTimecode(ci->cropDuration(), KdenliveSettings::frametimecode());
- if (item->type() == AVWIDGET && item->parentItem() && item->parentItem() != m_selectionGroup)
+ if (item->type() == AVWidget && item->parentItem() && item->parentItem() != m_selectionGroup)
message.append(i18n("Use Ctrl to resize only current item, otherwise all items in this group will be resized at once."));
- } else if (opMode == FADEIN || opMode == FADEOUT) {
+ } else if (opMode == FadeIn || opMode == FadeOut) {
setCursor(Qt::PointingHandCursor);
- if (ci && opMode == FADEIN && ci->fadeIn()) {
+ if (ci && opMode == FadeIn && ci->fadeIn()) {
message = i18n("Fade in duration: ");
message.append(m_document->timecode().getDisplayTimecodeFromFrames(ci->fadeIn(), KdenliveSettings::frametimecode()));
- } else if (ci && opMode == FADEOUT && ci->fadeOut()) {
+ } else if (ci && opMode == FadeOut && ci->fadeOut()) {
message = i18n("Fade out duration: ");
message.append(m_document->timecode().getDisplayTimecodeFromFrames(ci->fadeOut(), KdenliveSettings::frametimecode()));
} else {
message = i18n("Drag to add or resize a fade effect.");
}
- } else if (opMode == TRANSITIONSTART || opMode == TRANSITIONEND) {
+ } else if (opMode == TransitionStart || opMode == TransitionEnd) {
setCursor(Qt::PointingHandCursor);
message = i18n("Click to add a transition.");
- } else if (opMode == KEYFRAME) {
+ } else if (opMode == KeyFrame) {
setCursor(Qt::PointingHandCursor);
emit displayMessage(i18n("Move keyframe above or below clip to remove it, double click to add a new one."), InformationMessage);
}
if (!message.isEmpty())
emit displayMessage(message, InformationMessage);
} // no clip under mouse
- else if (m_tool == RAZORTOOL) {
+ else if (m_tool == RazorTool) {
event->accept();
return;
- } else if (opMode == MOVEGUIDE) {
+ } else if (opMode == MoveGuide) {
m_moveOpMode = opMode;
} else {
removeTipAnimation();
setCursor(Qt::ArrowCursor);
if (event->buttons() != Qt::NoButton && event->modifiers() == Qt::NoModifier) {
QGraphicsView::mouseMoveEvent(event);
- m_moveOpMode = SEEK;
+ m_moveOpMode = Seek;
if (mappedXPos != m_document->renderer()->getCurrentSeekPosition() && mappedXPos != cursorPos()) {
seekCursorPos(mappedXPos);
slotCheckPositionScrolling();
}
return;
- } else m_moveOpMode = NONE;
+ } else m_moveOpMode = None;
}
QGraphicsView::mouseMoveEvent(event);
}
if (event->button() == Qt::MidButton) {
emit playMonitor();
m_blockRefresh = false;
- m_operationMode = NONE;
+ m_operationMode = None;
return;
}
scene()->clearSelection();
}
m_blockRefresh = false;
- m_operationMode = RUBBERSELECTION;
+ m_operationMode = RubberSelection;
QGraphicsView::mousePressEvent(event);
return;
}
m_blockRefresh = true;
m_dragGuide = NULL;
- if (m_tool != RAZORTOOL) activateMonitor();
+ if (m_tool != RazorTool) activateMonitor();
else if (m_document->renderer()->isPlaying()) {
m_document->renderer()->pause();
return;
// check item under mouse
QList<QGraphicsItem *> collisionList = items(m_clickEvent);
- if (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL && collisionList.count() == 0) {
+ if (event->modifiers() == Qt::ControlModifier && m_tool != SpacerTool && collisionList.count() == 0) {
// Pressing Ctrl + left mouse button in an empty area scrolls the timeline
setDragMode(QGraphicsView::ScrollHandDrag);
m_blockRefresh = false;
- m_operationMode = SCROLLTIMELINE;
+ m_operationMode = ScrollTimeline;
QGraphicsView::mousePressEvent(event);
return;
}
m_dragGuide = (Guide *) collisionList.at(i);
if (event->button() == Qt::LeftButton) { // move it
m_dragGuide->setFlag(QGraphicsItem::ItemIsMovable, true);
- m_operationMode = MOVEGUIDE;
+ m_operationMode = MoveGuide;
// deselect all clips so that only the guide will move
m_scene->clearSelection();
resetSelectionGroup(false);
double yOffset = 0;
m_selectionMutex.lock();
while (!m_dragGuide && ct < collisionList.count()) {
- if (collisionList.at(ct)->type() == AVWIDGET || collisionList.at(ct)->type() == TRANSITIONWIDGET) {
+ if (collisionList.at(ct)->type() == AVWidget || collisionList.at(ct)->type() == TransitionWidget) {
collisionClip = static_cast <AbstractClipItem *>(collisionList.at(ct));
if (collisionClip->isItemLocked() || !collisionClip->isEnabled()) {
ct++;
m_selectionGroup->setProperty("y_absolute", yOffset);
m_selectionGroup->setProperty("locked_tracks", lockedTracks);
}
- if (m_dragItem->parentItem() && m_dragItem->parentItem()->type() == GROUPWIDGET && m_dragItem->parentItem() != m_selectionGroup) {
+ if (m_dragItem->parentItem() && m_dragItem->parentItem()->type() == GroupWidget && m_dragItem->parentItem() != m_selectionGroup) {
QGraphicsItem *topGroup = m_dragItem->parentItem();
- while (topGroup->parentItem() && topGroup->parentItem()->type() == GROUPWIDGET && topGroup->parentItem() != m_selectionGroup) {
+ while (topGroup->parentItem() && topGroup->parentItem()->type() == GroupWidget && topGroup->parentItem() != m_selectionGroup) {
topGroup = topGroup->parentItem();
}
dragGroup = static_cast <AbstractGroupItem *>(topGroup);
m_dragItem->setGraphicsEffect(eff);
}*/
#endif
- if (m_dragItem && m_dragItem->type() == TRANSITIONWIDGET && m_dragItem->isEnabled()) {
+ if (m_dragItem && m_dragItem->type() == TransitionWidget && m_dragItem->isEnabled()) {
// update transition menu action
m_autoTransition->setChecked(static_cast<Transition *>(m_dragItem)->isAutomatic());
m_autoTransition->setEnabled(true);
m_dragGuide = static_cast <Guide *>(guidesCollisionList.at(0));*/
}
- m_operationMode = NONE;
+ m_operationMode = None;
if (dragGroup == NULL) {
if (m_dragItem && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup)
dragGroup = static_cast<AbstractGroupItem*> (m_dragItem->parentItem());
}
m_selectionMutex.unlock();
// No item under click
- if (m_dragItem == NULL || m_tool == SPACERTOOL) {
+ if (m_dragItem == NULL || m_tool == SpacerTool) {
resetSelectionGroup(false);
m_scene->clearSelection();
//event->accept();
updateClipTypeActions(NULL);
- if (m_tool == SPACERTOOL) {
+ if (m_tool == SpacerTool) {
QList<QGraphicsItem *> selection;
if (event->modifiers() == Qt::ControlModifier) {
// Ctrl + click, select all items on track after click position
scene()->addItem(m_selectionGroup);
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->parentItem() == 0 && (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET)) {
+ if (selection.at(i)->parentItem() == 0 && (selection.at(i)->type() == AVWidget || selection.at(i)->type() == TransitionWidget)) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(selection.at(i));
if (item->isItemLocked()) continue;
offsetList.append(item->startPos());
offsetList.append(item->endPos());
m_selectionGroup->addItem(selection.at(i));
- } else if (/*selection.at(i)->parentItem() == 0 && */selection.at(i)->type() == GROUPWIDGET) {
+ } else if (/*selection.at(i)->parentItem() == 0 && */selection.at(i)->type() == GroupWidget) {
if (static_cast<AbstractGroupItem *>(selection.at(i))->isItemLocked()) continue;
QList<QGraphicsItem *> children = selection.at(i)->childItems();
for (int j = 0; j < children.count(); j++) {
}
updateSnapPoints(NULL, cleandOffsetList, true);
}
- m_operationMode = SPACER;
+ m_operationMode = Spacer;
} else if (event->button() != Qt::RightButton) {
setCursor(Qt::ArrowCursor);
seekCursorPos((int)(mapToScene(event->x(), 0).x()));
}
// Razor tool
- if (m_tool == RAZORTOOL && m_dragItem) {
+ if (m_tool == RazorTool && m_dragItem) {
GenTime cutPos = GenTime((int)(mapToScene(event->pos()).x()), m_document->fps());
- if (m_dragItem->type() == TRANSITIONWIDGET) {
+ if (m_dragItem->type() == TransitionWidget) {
emit displayMessage(i18n("Cannot cut a transition"), ErrorMessage);
} else {
m_document->renderer()->pause();
}
if (collisionClip != NULL || m_dragItem == NULL) {
- if (m_dragItem && m_dragItem->type() == AVWIDGET && !m_dragItem->isItemLocked()) {
+ if (m_dragItem && m_dragItem->type() == AVWidget && !m_dragItem->isItemLocked()) {
ClipItem *selected = static_cast <ClipItem*>(m_dragItem);
emit clipItemSelected(selected);
} else {
m_clickPoint = QPoint((int)(mapToScene(event->pos()).x() - m_dragItem->startPos().frames(m_document->fps())), (int)(event->pos().y() - m_dragItem->pos().y()));
if (m_selectionGroup && m_dragItem->parentItem() == m_selectionGroup) {
// all other modes break the selection, so the user probably wants to move it
- m_operationMode = MOVE;
+ m_operationMode = MoveOperation;
} else {
if (m_dragItem->rect().width() * transform().m11() < 15) {
// If the item is very small, only allow move
- m_operationMode = MOVE;
+ m_operationMode = MoveOperation;
}
else m_operationMode = m_dragItem->operationMode(mapToScene(event->pos()));
}
- } else m_operationMode = NONE;
+ } else m_operationMode = None;
m_controlModifier = (event->modifiers() == Qt::ControlModifier);
// Update snap points
if (m_selectionGroup == NULL) {
- if (m_operationMode == RESIZEEND || m_operationMode == RESIZESTART)
+ if (m_operationMode == ResizeEnd || m_operationMode == ResizeStart)
updateSnapPoints(NULL);
else
updateSnapPoints(m_dragItem);
QList <GenTime> offsetList;
QList<QGraphicsItem *> children = m_selectionGroup->childItems();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET) {
+ if (children.at(i)->type() == AVWidget || children.at(i)->type() == TransitionWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(i));
offsetList.append(item->startPos());
offsetList.append(item->endPos());
m_selectionMutex.unlock();
}
- if (m_operationMode == KEYFRAME) {
+ if (m_operationMode == KeyFrame) {
m_dragItem->updateSelectedKeyFrame();
m_blockRefresh = false;
return;
- } else if (m_operationMode == MOVE) {
+ } else if (m_operationMode == MoveOperation) {
setCursor(Qt::ClosedHandCursor);
- } else if (m_operationMode == TRANSITIONSTART && event->modifiers() != Qt::ControlModifier) {
+ } else if (m_operationMode == TransitionStart && event->modifiers() != Qt::ControlModifier) {
ItemInfo info;
info.startPos = m_dragItem->startPos();
info.track = m_dragItem->track();
QList<QGraphicsItem *> selection = m_scene->items(r);
bool transitionAccepted = true;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(selection.at(i));
if (tr->startPos() - info.startPos > GenTime(5, m_document->fps())) {
if (tr->startPos() < info.endPos) info.endPos = tr->startPos();
}
if (transitionAccepted) slotAddTransition((ClipItem *) m_dragItem, info, transitiontrack);
else emit displayMessage(i18n("Cannot add transition"), ErrorMessage);
- } else if (m_operationMode == TRANSITIONEND && event->modifiers() != Qt::ControlModifier) {
+ } else if (m_operationMode == TransitionEnd && event->modifiers() != Qt::ControlModifier) {
ItemInfo info;
info.endPos = GenTime(m_dragItem->endPos().frames(m_document->fps()), m_document->fps());
info.track = m_dragItem->track();
QList<QGraphicsItem *> selection = m_scene->items(r);
bool transitionAccepted = true;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(selection.at(i));
if (info.endPos - tr->endPos() > GenTime(5, m_document->fps())) {
if (tr->endPos() > info.startPos) info.startPos = tr->endPos();
if (transitionAccepted) slotAddTransition((ClipItem *) m_dragItem, info, transitiontrack, transition);
else emit displayMessage(i18n("Cannot add transition"), ErrorMessage);
- } else if ((m_operationMode == RESIZESTART || m_operationMode == RESIZEEND) && m_selectionGroup) {
+ } else if ((m_operationMode == ResizeStart || m_operationMode == ResizeEnd) && m_selectionGroup) {
resetSelectionGroup(false);
m_dragItem->setSelected(true);
}
AbstractGroupItem *group = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == GROUPWIDGET) {
+ if (list.at(i)->type() == GroupWidget) {
group = static_cast <AbstractGroupItem *>(list.at(i));
break;
}
m_selectionGroup = NULL;
for (int i = 0; i < children.count(); ++i) {
if (children.at(i)->parentItem() == 0) {
- if ((children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET)) {
+ if ((children.at(i)->type() == AVWidget || children.at(i)->type() == TransitionWidget)) {
if (!static_cast <AbstractClipItem *>(children.at(i))->isItemLocked()) {
children.at(i)->setFlag(QGraphicsItem::ItemIsMovable, true);
children.at(i)->setSelected(selectItems);
}
- } else if (children.at(i)->type() == GROUPWIDGET) {
+ } else if (children.at(i)->type() == GroupWidget) {
children.at(i)->setFlag(QGraphicsItem::ItemIsMovable, true);
children.at(i)->setSelected(selectItems);
}
for (int i = 0; i < selection.count(); ++i) {
if (selectNewGroup) selection.at(i)->setSelected(true);
- if (selection.at(i)->type() == GROUPWIDGET) {
+ if (selection.at(i)->type() == GroupWidget) {
AbstractGroupItem *it = static_cast <AbstractGroupItem *> (selection.at(i));
- while (it->parentItem() && it->parentItem()->type() == GROUPWIDGET) {
+ while (it->parentItem() && it->parentItem()->type() == GroupWidget) {
it = static_cast <AbstractGroupItem *>(it->parentItem());
}
if (!it || it->isItemLocked()) continue;
}
}
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET) {
- if (selection.at(i)->parentItem() && selection.at(i)->parentItem()->type() == GROUPWIDGET) {
+ if (selection.at(i)->type() == AVWidget || selection.at(i)->type() == TransitionWidget) {
+ if (selection.at(i)->parentItem() && selection.at(i)->parentItem()->type() == GroupWidget) {
AbstractGroupItem *it = static_cast <AbstractGroupItem *> (selection.at(i)->parentItem());
- while (it->parentItem() && it->parentItem()->type() == GROUPWIDGET) {
+ while (it->parentItem() && it->parentItem()->type() == GroupWidget) {
it = static_cast <AbstractGroupItem *>(it->parentItem());
}
if (!it || it->isItemLocked()) continue;
foreach (QGraphicsItemGroup *value, groupsList) {
QList<QGraphicsItem *> children = value->childItems();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET)
+ if (children.at(i)->type() == AVWidget || children.at(i)->type() == TransitionWidget)
itemsList.insert(children.at(i));
}
AbstractGroupItem *grp = static_cast<AbstractGroupItem *>(value);
return;
}
- if (item->type() == GROUPWIDGET || (item->parentItem() && item->parentItem()->type() == GROUPWIDGET)) {
+ if (item->type() == GroupWidget || (item->parentItem() && item->parentItem()->type() == GroupWidget)) {
emit displayMessage(i18n("Cannot edit an item in a group"), ErrorMessage);
return;
}
if (!item->isItemLocked()) {
GenTime minimum;
GenTime maximum;
- if (item->type() == TRANSITIONWIDGET)
+ if (item->type() == TransitionWidget)
getTransitionAvailableSpace(item, minimum, maximum);
else
getClipAvailableSpace(item, minimum, maximum);
if (d->exec() == QDialog::Accepted) {
ItemInfo clipInfo = item->info();
ItemInfo startInfo = clipInfo;
- if (item->type() == TRANSITIONWIDGET) {
+ if (item->type() == TransitionWidget) {
// move & resize transition
clipInfo.startPos = d->startPos();
clipInfo.endPos = clipInfo.startPos + d->duration();
m_timelineContextClipMenu->popup(pos);
} else {
m_ungroupAction->setEnabled(false);
- if (clip->type() == AVWIDGET) {
+ if (clip->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem*>(clip);
//build go to marker menu
if (item->baseClip()) {
updateClipTypeActions(item);
m_pasteEffectsAction->setEnabled(m_copiedItems.count() == 1);
m_timelineContextClipMenu->popup(pos);
- } else if (clip->type() == TRANSITIONWIDGET) {
+ } else if (clip->type() == TransitionWidget) {
m_timelineContextTransitionMenu->popup(pos);
}
}
pasteInfo.startPos = GenTime(m_cursorPos, m_document->fps());
pasteInfo.endPos = pasteInfo.startPos + info.endPos;
pasteInfo.track = selectedTrack();
- bool ok = canBePastedTo(pasteInfo, AVWIDGET);
+ bool ok = canBePastedTo(pasteInfo, AVWidget);
if (!ok) {
// Cannot be inserted at cursor pos, insert at end of track
int duration = m_document->renderer()->mltTrackDuration(m_document->tracksCount() - pasteInfo.track) + 1;
pasteInfo.startPos = GenTime(duration, m_document->fps());
pasteInfo.endPos = pasteInfo.startPos + info.endPos;
- ok = canBePastedTo(pasteInfo, AVWIDGET);
+ ok = canBePastedTo(pasteInfo, AVWidget);
}
if (!ok) {
emit displayMessage(i18n("Cannot insert clip in timeline"), ErrorMessage);
pasteInfo.track = (int)(framePos.y() / m_tracksHeight);
framePos.setX((int)(framePos.x() + 0.5));
framePos.setY(pasteInfo.track * m_tracksHeight);
- if (!canBePastedTo(pasteInfo, AVWIDGET)) {
+ if (!canBePastedTo(pasteInfo, AVWidget)) {
return true;
}
m_selectionGroup = new AbstractGroupItem(m_document->fps());
infoList.append(info);
start += info.cropDuration;
}
- if (!canBePastedTo(infoList, AVWIDGET)) {
+ if (!canBePastedTo(infoList, AVWidget)) {
return true;
}
if (ids.size() > 1) m_selectionGroup = new AbstractGroupItem(m_document->fps());
if (clip) {
// Special case: speed effect
if (effect.attribute("id") == "speed") {
- if (clip->clipType() != VIDEO && clip->clipType() != AV && clip->clipType() != PLAYLIST) {
+ if (clip->clipType() != Video && clip->clipType() != AV && clip->clipType() != Playlist) {
emit displayMessage(i18n("Problem adding effect to clip"), ErrorMessage);
return;
}
else effectName = i18n("effect");
effectCommand->setText(i18n("Add %1", effectName));
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == GROUPWIDGET) {
+ if (itemList.at(i)->type() == GroupWidget) {
itemList << itemList.at(i)->childItems();
}
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
if (effect.tagName() == "effectgroup") {
QDomNodeList effectlist = effect.elementsByTagName("effect");
//expand groups
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == GROUPWIDGET) {
+ if (itemList.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subitems = itemList.at(i)->childItems();
for (int j = 0; j < subitems.count(); j++) {
if (!itemList.contains(subitems.at(j))) itemList.append(subitems.at(j));
}
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
if (effect.tagName() == "effectgroup") {
QDomNodeList effectlist = effect.elementsByTagName("effect");
/*if (effectCommand->childCount() == 1) {
// Display newly added clip effect
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast<ClipItem *>(itemList.at(i));
clip->setSelectedEffect(clip->effectsCount());
if (!clip->isSelected() && (!m_dragItem || !itemList.contains(m_dragItem))) {
}
else {
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast<ClipItem *>(itemList.at(i));
if (clip->isMainSelectedClip()) {
emit clipItemSelected(clip);
{
if (effect.attribute("type") == "audio") {
// Don't add audio effects on video clips
- if (item->isVideoOnly() || (item->clipType() != AUDIO && item->clipType() != AV && item->clipType() != PLAYLIST)) {
+ if (item->isVideoOnly() || (item->clipType() != Audio && item->clipType() != AV && item->clipType() != Playlist)) {
/* do not show error message when item is part of a group as the user probably knows what he does then
* and the message is annoying when working with the split audio feature */
if (!item->parentItem() || item->parentItem() == m_selectionGroup)
}
} else if (effect.attribute("type") == "video" || !effect.hasAttribute("type")) {
// Don't add video effect on audio clips
- if (item->isAudioOnly() || item->clipType() == AUDIO) {
+ if (item->isAudioOnly() || item->clipType() == Audio) {
/* do not show error message when item is part of a group as the user probably knows what he does then
* and the message is annoying when working with the split audio feature */
if (!item->parentItem() || item->parentItem() == m_selectionGroup)
//expand groups
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == GROUPWIDGET) {
+ if (items.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> subitems = items.at(i)->childItems();
for (int j = 0; j < subitems.count(); j++) {
if (!items.contains(subitems.at(j))) items.append(subitems.at(j));
}
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == AVWIDGET) {
+ if (items.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(items.at(i));
int ix = item->hasEffect(effect.attribute("tag"), effect.attribute("id"));
if (ix != -1) {
{
QList<QGraphicsItem *> itemList = scene()->selectedItems();
if (itemList.count() == 1) {
- if (itemList.at(0)->type() == AVWIDGET) {
+ if (itemList.at(0)->type() == AVWidget) {
ClipItem *item = (ClipItem *) itemList.at(0);
ItemInfo info;
info.track = item->track();
QList<QGraphicsItem *> selection = m_scene->items(r);
bool transitionAccepted = true;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(selection.at(i));
if (tr->startPos() - info.startPos > GenTime(5, m_document->fps())) {
if (tr->startPos() < info.endPos) info.endPos = tr->startPos();
QList<QGraphicsItem *> selection = m_scene->items(r);
bool transitionAccepted = true;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(selection.at(i));
if (info.endPos - tr->endPos() > GenTime(5, m_document->fps())) {
if (tr->endPos() > info.startPos) info.startPos = tr->endPos();
}
}
} else for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = (ClipItem *) itemList.at(i);
ItemInfo info;
info.startPos = item->startPos();
QList<QGraphicsItem *> selection = m_scene->items(r);
bool transitionAccepted = true;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(selection.at(i));
if (tr->startPos() - info.startPos > GenTime(5, m_document->fps())) {
if (tr->startPos() < info.endPos) info.endPos = tr->startPos();
for (int i = 0; i < items.count(); ++i) {
ClipItem *item = static_cast <ClipItem *>(items.at(i));
- if (!hasVideoClip && (item->clipType() == AV || item->clipType() == VIDEO)) hasVideoClip = true;
+ if (!hasVideoClip && (item->clipType() == AV || item->clipType() == Video)) hasVideoClip = true;
if (items.count() == 1) {
updateClipTypeActions(item);
} else {
if (item->baseClip()->isTransparent() && getTransitionItemAtStart(info.startPos, info.track) == NULL) {
// add transparency transition if space is available
- if (canBePastedTo(info, TRANSITIONWIDGET)) {
+ if (canBePastedTo(info, TransitionWidget)) {
QDomElement trans = MainWindow::transitions.getEffectByTag("affine", QString()).cloneNode().toElement();
new AddTransitionCommand(this, info, getPreviousVideoTrack(info.track), trans, false, true, addCommand);
}
kDebug()<<"// ITEMS on TRACK: "<<selection.count();
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
int start = clip->startPos().frames(m_document->fps());
int end = clip->endPos().frames(m_document->fps());
if (item) selection.removeAll(item);
for (int i = 0; i < selection.count(); ++i) {
if (!selection.at(i)->isEnabled()) continue;
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast<ClipItem *>(selection.at(i));
if (clip->startPos() < info.startPos) {
if (clip->endPos() > info.endPos) {
QList<QGraphicsItem *> selection = m_scene->items(rect);
if (item) selection.removeAll(item);
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast<ClipItem *>(selection.at(i));
if (clip->startPos() < info.startPos) {
if (clip->endPos() > info.startPos) {
selection.removeAll(item);
for (int i = 0; i < selection.count(); ++i) {
if (!selection.at(i)->isEnabled()) continue;
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast<Transition *>(selection.at(i));
if (tr->startPos() < info.startPos) {
ItemInfo firstPos = tr->info();
QList <TransitionInfo> transitionInfos;
if (ix == -1 || ix == m_document->tracksCount()) {
m_document->insertTrack(0, type);
- transitionInfos = m_document->renderer()->mltInsertTrack(1, type.type == VIDEOTRACK);
+ transitionInfos = m_document->renderer()->mltInsertTrack(1, type.type == VideoTrack);
} else {
m_document->insertTrack(m_document->tracksCount() - ix, type);
// insert track in MLT playlist
- transitionInfos = m_document->renderer()->mltInsertTrack(m_document->tracksCount() - ix, type.type == VIDEOTRACK);
+ transitionInfos = m_document->renderer()->mltInsertTrack(m_document->tracksCount() - ix, type.type == VideoTrack);
double startY = ix * m_tracksHeight + 1 + m_tracksHeight / 2;
QRectF r(0, startY, sceneRect().width(), sceneRect().height() - startY);
m_selectionGroup = new AbstractGroupItem(m_document->fps());
scene()->addItem(m_selectionGroup);
for (int i = 0; i < selection.count(); ++i) {
- if ((!selection.at(i)->parentItem()) && (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET || selection.at(i)->type() == GROUPWIDGET)) {
+ if ((!selection.at(i)->parentItem()) && (selection.at(i)->type() == AVWidget || selection.at(i)->type() == TransitionWidget || selection.at(i)->type() == GroupWidget)) {
m_selectionGroup->addItem(selection.at(i));
}
}
Mlt::Tractor *tractor = m_document->renderer()->lockService();
QList<QGraphicsItem *> children = m_selectionGroup->childItems();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
AbstractGroupItem *grp = static_cast<AbstractGroupItem*>(children.at(i));
children << grp->childItems();
continue;
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(i));
item->updateItem();
ItemInfo clipinfo = item->info();
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(item);
// slowmotion clips are not track dependant, so no need to update them
if (clip->speed() != 1.0) continue;
// We add a move clip command so that we get the correct producer for new track number
- if (clip->clipType() == AV || clip->clipType() == AUDIO) {
+ if (clip->clipType() == AV || clip->clipType() == Audio) {
Mlt::Producer *prod = clip->getProducer(clipinfo.track);
if (m_document->renderer()->mltUpdateClipProducer(tractor, (int)(m_document->tracksCount() - clipinfo.track), clipinfo.startPos.frames(m_document->fps()), prod) == false) {
// problem updating clip
m_selectionGroup = new AbstractGroupItem(m_document->fps());
scene()->addItem(m_selectionGroup);
for (int i = 0; i < selection.count(); ++i) {
- if ((selection.at(i) && !selection.at(i)->parentItem() && selection.at(i)->isEnabled()) && (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET || selection.at(i)->type() == GROUPWIDGET)) {
+ if ((selection.at(i) && !selection.at(i)->parentItem() && selection.at(i)->isEnabled()) && (selection.at(i)->type() == AVWidget || selection.at(i)->type() == TransitionWidget || selection.at(i)->type() == GroupWidget)) {
m_selectionGroup->addItem(selection.at(i));
}
}
QList<QGraphicsItem *> children = m_selectionGroup->childItems();
//kDebug() << "// FOUND CLIPS TO MOVE: " << children.count();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
AbstractGroupItem *grp = static_cast<AbstractGroupItem*>(children.at(i));
children << grp->childItems();
continue;
}
- if (children.at(i)->type() == AVWIDGET) {
+ if (children.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(children.at(i));
clip->updateItem();
ItemInfo clipinfo = clip->info();
// We add a move clip command so that we get the correct producer for new track number
- if (clip->clipType() == AV || clip->clipType() == AUDIO || clip->clipType() == PLAYLIST) {
+ if (clip->clipType() == AV || clip->clipType() == Audio || clip->clipType() == Playlist) {
Mlt::Producer *prod = clip->getProducer(clipinfo.track);
if (prod == NULL || !m_document->renderer()->mltUpdateClipProducer(tractor, (int)(m_document->tracksCount() - clipinfo.track), clipinfo.startPos.frames(m_document->fps()), prod)) {
emit displayMessage(i18n("Cannot update clip (time: %1, track: %2)", clipinfo.startPos.frames(m_document->fps()), clipinfo.track), ErrorMessage);
}
}
- } else if (children.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (children.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(children.at(i));
tr->updateItem();
int track = tr->transitionEndTrack();
QList<QGraphicsItem *> selection = m_scene->items(0, ix * m_tracksHeight + m_tracksHeight / 2, sceneRect().width(), m_tracksHeight / 2 - 2);
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == GROUPWIDGET && (AbstractGroupItem *)selection.at(i) != m_selectionGroup) {
+ if (selection.at(i)->type() == GroupWidget && (AbstractGroupItem *)selection.at(i) != m_selectionGroup) {
if (selection.at(i)->parentItem() && m_selectionGroup) {
selection.removeAll((QGraphicsItem*)m_selectionGroup);
resetSelectionGroup();
QList <QGraphicsItem *> children = selection.at(i)->childItems();
for (int j = 0; j < children.count(); ++j) {
if (children.at(j)->isSelected()) {
- if (children.at(j)->type() == AVWIDGET)
+ if (children.at(j)->type() == AVWidget)
emit clipItemSelected(NULL);
- else if (children.at(j)->type() == TRANSITIONWIDGET)
+ else if (children.at(j)->type() == TransitionWidget)
emit transitionItemSelected(NULL);
else
continue;
}
if (changeGroupLock && hasClipOnTrack)
((AbstractGroupItem*)selection.at(i))->setItemLocked(lock);
- } else if((selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET)) {
+ } else if((selection.at(i)->type() == AVWidget || selection.at(i)->type() == TransitionWidget)) {
if (selection.at(i)->parentItem()) {
if (selection.at(i)->parentItem() == m_selectionGroup) {
selection.removeAll((QGraphicsItem*)m_selectionGroup);
}
if (selection.at(i)->isSelected()) {
- if (selection.at(i)->type() == AVWIDGET)
+ if (selection.at(i)->type() == AVWidget)
emit clipItemSelected(NULL);
else
emit transitionItemSelected(NULL);
int maxHeight = m_tracksHeight * 1.5;
for (int i = 0; i < selection.count(); ++i) {
// Check that we don't try to move a group with clips on other tracks
- if (selection.at(i)->type() == GROUPWIDGET && (selection.at(i)->boundingRect().height() >= maxHeight)) {
+ if (selection.at(i)->type() == GroupWidget && (selection.at(i)->boundingRect().height() >= maxHeight)) {
*ok = false;
break;
} else if (selection.at(i)->parentItem() && (selection.at(i)->parentItem()->boundingRect().height() >= maxHeight)) {
QList<ItemInfo> transitionsToMove;
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == AVWIDGET || items.at(i)->type() == TRANSITIONWIDGET) {
+ if (items.at(i)->type() == AVWidget || items.at(i)->type() == TransitionWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
ItemInfo info = item->info();
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
clipsToMove.append(info);
- } else if (item->type() == TRANSITIONWIDGET) {
+ } else if (item->type() == TransitionWidget) {
transitionsToMove.append(info);
}
}
items = scene()->items(rect);
int transitionCorrection = -1;
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == TRANSITIONWIDGET) {
+ if (items.at(i)->type() == TransitionWidget) {
// There is a transition on the way
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
int transitionEnd = item->endPos().frames(m_document->fps());
QList<ItemInfo> transitionsToMove;
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == AVWIDGET || items.at(i)->type() == TRANSITIONWIDGET) {
+ if (items.at(i)->type() == AVWidget || items.at(i)->type() == TransitionWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
ItemInfo info = item->info();
- if (item->type() == AVWIDGET)
+ if (item->type() == AVWidget)
clipsToMove.append(info);
- else if (item->type() == TRANSITIONWIDGET)
+ else if (item->type() == TransitionWidget)
transitionsToMove.append(info);
}
}
QList<QGraphicsItem *> itemList = m_selectionGroup->childItems();
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET) {
+ if (itemList.at(i)->type() == AVWidget || itemList.at(i)->type() == TransitionWidget) {
static_cast < AbstractClipItem *>(itemList.at(i))->updateItem();
- } else if (itemList.at(i)->type() == GROUPWIDGET) {
+ } else if (itemList.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> children = itemList.at(i)->childItems();
for (int j = 0; j < children.count(); j++) {
AbstractClipItem * clp = static_cast < AbstractClipItem *>(children.at(j));
new RefreshMonitorCommand(this, false, true, deleteCommand);
int count = 0;
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = (ClipItem *)itemList.at(i);
if (item->clipProducer() == clipId) {
count++;
void CustomTrackView::mouseReleaseEvent(QMouseEvent * event)
{
- if (m_moveOpMode == SEEK) m_moveOpMode = NONE;
- if (m_operationMode == SCROLLTIMELINE) {
- m_operationMode = NONE;
+ if (m_moveOpMode == Seek) m_moveOpMode = None;
+ if (m_operationMode == ScrollTimeline) {
+ m_operationMode = None;
setDragMode(QGraphicsView::NoDrag);
QGraphicsView::mouseReleaseEvent(event);
return;
}
- if (!m_controlModifier && m_operationMode != RUBBERSELECTION) {
+ if (!m_controlModifier && m_operationMode != RubberSelection) {
//event->accept();
setDragMode(QGraphicsView::NoDrag);
if (m_clipDrag) QGraphicsView::mouseReleaseEvent(event);
return;
}
- if (m_operationMode == MOVEGUIDE) {
+ if (m_operationMode == MoveGuide) {
setCursor(Qt::ArrowCursor);
- m_operationMode = NONE;
+ m_operationMode = None;
m_dragGuide->setFlag(QGraphicsItem::ItemIsMovable, false);
GenTime newPos = GenTime(m_dragGuide->pos().x(), m_document->fps());
if (newPos != m_dragGuide->position()) {
m_dragItem = NULL;
QGraphicsView::mouseReleaseEvent(event);
return;
- } else if (m_operationMode == SPACER && m_selectionGroup) {
+ } else if (m_operationMode == Spacer && m_selectionGroup) {
int track;
if (event->modifiers() != Qt::ControlModifier) {
// We are moving all tracks
}
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == GROUPWIDGET) {
+ if (items.at(i)->type() == GroupWidget) {
AbstractGroupItem* group = (AbstractGroupItem*)items.at(i);
if (!groups.contains(group)) groups.append(group);
items += items.at(i)->childItems();
}
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() == AVWIDGET) {
+ if (items.at(i)->type() == AVWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
ItemInfo info = item->info();
clipsToMove.append(info);
item->updateItem();
if (trackClipStartList.value(m_document->tracksCount() - info.track) == -1 || info.startPos.frames(m_document->fps()) < trackClipStartList.value(m_document->tracksCount() - info.track))
trackClipStartList[m_document->tracksCount() - info.track] = info.startPos.frames(m_document->fps());
- } else if (items.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (items.at(i)->type() == TransitionWidget) {
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
ItemInfo info = item->info();
transitionsToMove.append(info);
clearSelection();
- m_operationMode = NONE;
- } else if (m_operationMode == RUBBERSELECTION) {
+ m_operationMode = None;
+ } else if (m_operationMode == RubberSelection) {
//event->accept();
QGraphicsView::mouseReleaseEvent(event);
setDragMode(QGraphicsView::NoDrag);
if (event->modifiers() != Qt::ControlModifier) m_dragItem = NULL;
resetSelectionGroup();
groupSelectedItems();
- m_operationMode = NONE;
+ m_operationMode = None;
if (m_selectionGroup == NULL && m_dragItem) {
// Only 1 item selected
- if (m_dragItem->type() == AVWIDGET)
+ if (m_dragItem->type() == AVWidget)
emit clipItemSelected(static_cast<ClipItem *>(m_dragItem));
}
}
ItemInfo info;
if (m_dragItem) info = m_dragItem->info();
- if (m_operationMode == MOVE) {
+ if (m_operationMode == MoveOperation) {
setCursor(Qt::OpenHandCursor);
if (m_dragItem->parentItem() == 0) {
// we are moving one clip, easy
- if (m_dragItem->type() == AVWIDGET && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) {
+ if (m_dragItem->type() == AVWidget && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) {
ClipItem *item = static_cast <ClipItem *>(m_dragItem);
Mlt::Producer *prod = item->getProducer(info.track);
bool success = m_document->renderer()->mltMoveClip((int)(m_document->tracksCount() - m_dragItemInfo.track), (int)(m_document->tracksCount() - info.track), (int) m_dragItemInfo.startPos.frames(m_document->fps()), (int)(info.startPos.frames(m_document->fps())), prod, m_scene->editMode() == OVERWRITEEDIT, m_scene->editMode() == INSERTEDIT);
emit displayMessage(i18n("Cannot move clip to position %1", m_document->timecode().getTimecodeFromFrames(info.startPos.frames(m_document->fps()))), ErrorMessage);
}
setDocumentModified();
- } else if (m_dragItem->type() == TRANSITIONWIDGET && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) {
+ } else if (m_dragItem->type() == TransitionWidget && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) {
Transition *transition = static_cast <Transition *>(m_dragItem);
transition->updateTransitionEndTrack(getPreviousVideoTrack(m_dragItem->track()));
if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - m_dragItemInfo.track), (int)(m_document->tracksCount() - m_dragItem->track()), transition->transitionEndTrack(), m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos)) {
// Expand groups
int max = items.count();
for (int i = 0; i < max; ++i) {
- if (items.at(i)->type() == GROUPWIDGET) {
+ if (items.at(i)->type() == GroupWidget) {
items += items.at(i)->childItems();
}
}
m_document->renderer()->blockSignals(true);
for (int i = 0; i < items.count(); ++i) {
- if (items.at(i)->type() != AVWIDGET && items.at(i)->type() != TRANSITIONWIDGET) continue;
+ if (items.at(i)->type() != AVWidget && items.at(i)->type() != TransitionWidget) continue;
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
ItemInfo info = item->info();
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
if (m_document->renderer()->mltRemoveClip(m_document->tracksCount() - info.track, info.startPos) == false) {
// error, clip cannot be removed from playlist
emit displayMessage(i18n("Error removing clip at %1 on track %2", m_document->timecode().getTimecodeFromFrames(info.startPos.frames(m_document->fps())), info.track), ErrorMessage);
m_document->renderer()->blockSignals(false);
for (int i = 0; i < items.count(); ++i) {
// re-add items in correct place
- if (items.at(i)->type() != AVWIDGET && items.at(i)->type() != TRANSITIONWIDGET) continue;
+ if (items.at(i)->type() != AVWidget && items.at(i)->type() != TransitionWidget) continue;
AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i));
item->updateItem();
ItemInfo info = item->info();
item->setItemLocked(true);
}
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem*>(item);
int trackProducer = info.track;
info.track = m_document->tracksCount() - info.track;
QSet <QGraphicsItem*> itemList;
while (!items.isEmpty()) {
QGraphicsItem *first = items.takeFirst();
- if (first->type() == GROUPWIDGET) {
+ if (first->type() == GroupWidget) {
if (first != m_selectionGroup) {
groupList.insert(first);
}
}
- else if (first->type() == AVWIDGET || first->type() == TRANSITIONWIDGET) {
- if (first->parentItem() && first->parentItem()->type() == GROUPWIDGET) {
+ else if (first->type() == AVWidget || first->type() == TransitionWidget) {
+ if (first->parentItem() && first->parentItem()->type() == GroupWidget) {
if (first->parentItem() != m_selectionGroup) {
groupList.insert(first->parentItem());
}
}
}
m_document->renderer()->doRefresh();
- } else if (m_operationMode == RESIZESTART && m_dragItem->startPos() != m_dragItemInfo.startPos) {
+ } else if (m_operationMode == ResizeStart && m_dragItem->startPos() != m_dragItemInfo.startPos) {
// resize start
- if (!m_controlModifier && m_dragItem->type() == AVWIDGET && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
+ if (!m_controlModifier && m_dragItem->type() == AVWidget && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
AbstractGroupItem *parent = static_cast <AbstractGroupItem *>(m_dragItem->parentItem());
if (parent) {
QUndoCommand *resizeCommand = new QUndoCommand();
int itemcount = 0;
for (int i = 0; i < items.count(); ++i) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(items.at(i));
- if (item && item->type() == AVWIDGET) {
+ if (item && item->type() == AVWidget) {
ItemInfo info = infos.at(itemcount);
prepareResizeClipStart(item, info, item->startPos().frames(m_document->fps()), false, resizeCommand);
++itemcount;
}
} else {
prepareResizeClipStart(m_dragItem, m_dragItemInfo, m_dragItem->startPos().frames(m_document->fps()));
- if (m_dragItem->type() == AVWIDGET) static_cast <ClipItem*>(m_dragItem)->slotUpdateRange();
+ if (m_dragItem->type() == AVWidget) static_cast <ClipItem*>(m_dragItem)->slotUpdateRange();
}
- } else if (m_operationMode == RESIZEEND && m_dragItem->endPos() != m_dragItemInfo.endPos) {
+ } else if (m_operationMode == ResizeEnd && m_dragItem->endPos() != m_dragItemInfo.endPos) {
// resize end
- if (!m_controlModifier && m_dragItem->type() == AVWIDGET && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
+ if (!m_controlModifier && m_dragItem->type() == AVWidget && m_dragItem->parentItem() && m_dragItem->parentItem() != m_selectionGroup) {
AbstractGroupItem *parent = static_cast <AbstractGroupItem *>(m_dragItem->parentItem());
if (parent) {
QUndoCommand *resizeCommand = new QUndoCommand();
int itemcount = 0;
for (int i = 0; i < items.count(); ++i) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(items.at(i));
- if (item && item->type() == AVWIDGET) {
+ if (item && item->type() == AVWidget) {
ItemInfo info = infos.at(itemcount);
prepareResizeClipEnd(item, info, item->endPos().frames(m_document->fps()), false, resizeCommand);
++itemcount;
}
} else {
prepareResizeClipEnd(m_dragItem, m_dragItemInfo, m_dragItem->endPos().frames(m_document->fps()));
- if (m_dragItem->type() == AVWIDGET) static_cast <ClipItem*>(m_dragItem)->slotUpdateRange();
+ if (m_dragItem->type() == AVWidget) static_cast <ClipItem*>(m_dragItem)->slotUpdateRange();
}
- } else if (m_operationMode == FADEIN) {
+ } else if (m_operationMode == FadeIn) {
// resize fade in effect
ClipItem * item = static_cast <ClipItem *>(m_dragItem);
int ix = item->hasEffect("volume", "fadein");
}
} else if (item->fadeIn() != 0 && ix2 == -1) {
QDomElement effect;
- if (item->isVideoOnly() || (item->clipType() != AUDIO && item->clipType() != AV && item->clipType() != PLAYLIST)) {
+ if (item->isVideoOnly() || (item->clipType() != Audio && item->clipType() != AV && item->clipType() != Playlist)) {
// add video fade
effect = MainWindow::videoEffects.getEffectByTag("", "fade_from_black").cloneNode().toElement();
} else effect = MainWindow::audioEffects.getEffectByTag("volume", "fadein").cloneNode().toElement();
emit clipItemSelected(item);
}
}
- } else if (m_operationMode == FADEOUT) {
+ } else if (m_operationMode == FadeOut) {
// resize fade out effect
ClipItem * item = static_cast <ClipItem *>(m_dragItem);
int ix = item->hasEffect("volume", "fadeout");
}
} else if (item->fadeOut() != 0 && ix2 == -1) {
QDomElement effect;
- if (item->isVideoOnly() || (item->clipType() != AUDIO && item->clipType() != AV && item->clipType() != PLAYLIST)) {
+ if (item->isVideoOnly() || (item->clipType() != Audio && item->clipType() != AV && item->clipType() != Playlist)) {
// add video fade
effect = MainWindow::videoEffects.getEffectByTag("", "fade_to_black").cloneNode().toElement();
} else effect = MainWindow::audioEffects.getEffectByTag("volume", "fadeout").cloneNode().toElement();
emit clipItemSelected(item);
}
}
- } else if (m_operationMode == KEYFRAME) {
+ } else if (m_operationMode == KeyFrame) {
// update the MLT effect
ClipItem * item = static_cast <ClipItem *>(m_dragItem);
QDomElement oldEffect = item->selectedEffect().cloneNode().toElement();
updateEffect(m_document->tracksCount() - item->track(), item->startPos(), item->selectedEffect());
emit clipItemSelected(item);
}
- if (m_operationMode != NONE && m_operationMode != MOVE) setDocumentModified();
- m_operationMode = NONE;
+ if (m_operationMode != None && m_operationMode != MoveOperation) setDocumentModified();
+ m_operationMode = None;
}
void CustomTrackView::deleteClip(ItemInfo info, bool refresh)
int transitionCount = 0;
// expand & destroy groups
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == GROUPWIDGET) {
+ if (itemList.at(i)->type() == GroupWidget) {
groupCount++;
QList<QGraphicsItem *> children = itemList.at(i)->childItems();
QList <ItemInfo> clipInfos;
QList <ItemInfo> transitionInfos;
for (int j = 0; j < children.count(); j++) {
- if (children.at(j)->type() == AVWIDGET) {
+ if (children.at(j)->type() == AVWidget) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(children.at(j));
if (!clip->isItemLocked()) clipInfos.append(clip->info());
- } else if (children.at(j)->type() == TRANSITIONWIDGET) {
+ } else if (children.at(j)->type() == TransitionWidget) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(children.at(j));
if (!clip->isItemLocked()) transitionInfos.append(clip->info());
}
if (clipInfos.count() > 0)
new GroupClipsCommand(this, clipInfos, transitionInfos, false, deleteSelected);
- } else if (itemList.at(i)->parentItem() && itemList.at(i)->parentItem()->type() == GROUPWIDGET)
+ } else if (itemList.at(i)->parentItem() && itemList.at(i)->parentItem()->type() == GroupWidget)
itemList.insert(i + 1, itemList.at(i)->parentItem());
}
emit clipItemSelected(NULL);
emit transitionItemSelected(NULL);
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
clipCount++;
ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
//kDebug()<<"// DELETE CLP AT: "<<item->info().startPos.frames(25);
new AddTimelineClipCommand(this, item->xml(), item->clipProducer(), item->info(), item->effectList(), false, false, true, true, deleteSelected);
- } else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (itemList.at(i)->type() == TransitionWidget) {
transitionCount++;
Transition *item = static_cast <Transition *>(itemList.at(i));
//kDebug()<<"// DELETE TRANS AT: "<<item->info().startPos.frames(25);
for (int i = 0; i < itemList.count(); ++i) {
if (!itemList.at(i))
continue;
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
if (item->parentItem() && item->parentItem() != m_selectionGroup) {
AbstractGroupItem *group = static_cast <AbstractGroupItem *>(item->parentItem());
RazorClipCommand *command = new RazorClipCommand(this, item->info(), item->effectList(), currentPos);
m_commandStack->push(command);
}
- } else if (itemList.at(i)->type() == GROUPWIDGET && itemList.at(i) != m_selectionGroup) {
+ } else if (itemList.at(i)->type() == GroupWidget && itemList.at(i) != m_selectionGroup) {
AbstractGroupItem *group = static_cast<AbstractGroupItem *>(itemList.at(i));
if (!groups.contains(group))
groups << group;
for (int i = 0; i < children.count(); ++i) {
children.at(i)->setSelected(false);
AbstractClipItem *child = static_cast <AbstractClipItem *>(children.at(i));
- if (child->type() == AVWIDGET) {
+ if (child->type() == AVWidget) {
if (cutPos > child->endPos())
clips1 << child->info();
else if (cutPos < child->startPos())
// Expand groups
int max = itemList.count();
for (int i = 0; i < max; ++i) {
- if (itemList.at(i)->type() == GROUPWIDGET) {
+ if (itemList.at(i)->type() == GroupWidget) {
itemList += itemList.at(i)->childItems();
}
}
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(itemList.at(i));
if (!clip->isItemLocked()) clipInfos.append(clip->info());
- } else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (itemList.at(i)->type() == TransitionWidget) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(itemList.at(i));
if (!clip->isItemLocked()) transitionInfos.append(clip->info());
}
for (int i = 0; i < clipInfos.count(); ++i) {
ClipItem *clip = getClipItemAt(clipInfos.at(i).startPos, clipInfos.at(i).track);
if (clip == NULL) continue;
- if (clip->parentItem() && clip->parentItem()->type() == GROUPWIDGET) {
+ if (clip->parentItem() && clip->parentItem()->type() == GroupWidget) {
AbstractGroupItem *grp = static_cast <AbstractGroupItem *>(clip->parentItem());
m_document->clipManager()->removeGroup(grp);
if (grp == m_selectionGroup) m_selectionGroup = NULL;
for (int i = 0; i < transitionInfos.count(); ++i) {
Transition *tr = getTransitionItemAt(transitionInfos.at(i).startPos, transitionInfos.at(i).track);
if (tr == NULL) continue;
- if (tr->parentItem() && tr->parentItem()->type() == GROUPWIDGET) {
+ if (tr->parentItem() && tr->parentItem()->type() == GroupWidget) {
AbstractGroupItem *grp = static_cast <AbstractGroupItem *>(tr->parentItem());
m_document->clipManager()->removeGroup(grp);
if (grp == m_selectionGroup) m_selectionGroup = NULL;
DocClipBase *baseClip = NULL;
Mlt::Tractor *tractor = m_document->renderer()->lockService();
for (int i = 0; i < list.size(); ++i) {
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
clip = static_cast <ClipItem *>(list.at(i));
if (clip->clipProducer() == clipId) {
if (baseClip == NULL) {
ClipItem *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
ClipItem *test = static_cast <ClipItem *>(list.at(i));
if (test->endPos() == pos) clip = test;
break;
ClipItem *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
ClipItem *test = static_cast <ClipItem *>(list.at(i));
if (test->startPos() == pos) clip = test;
break;
ClipItem *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
clip = static_cast <ClipItem *>(list.at(i));
break;
}
Transition *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == TRANSITIONWIDGET) {
+ if (list.at(i)->type() == TransitionWidget) {
clip = static_cast <Transition *>(list.at(i));
break;
}
Transition *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == TRANSITIONWIDGET) {
+ if (list.at(i)->type() == TransitionWidget) {
Transition *test = static_cast <Transition *>(list.at(i));
if (test->endPos() == pos) clip = test;
break;
Transition *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
if (!list.at(i)->isEnabled()) continue;
- if (list.at(i)->type() == TRANSITIONWIDGET) {
+ if (list.at(i)->type() == TransitionWidget) {
Transition *test = static_cast <Transition *>(list.at(i));
if (test->startPos() == pos) clip = test;
break;
// Expand groups
int max = children.count();
for (int i = 0; i < max; ++i) {
- if (children.at(i)->type() == GROUPWIDGET) {
+ if (children.at(i)->type() == GroupWidget) {
children += children.at(i)->childItems();
//AbstractGroupItem *grp = static_cast<AbstractGroupItem *>(children.at(i));
//grp->moveBy(offset.frames(m_document->fps()), trackOffset *(qreal) m_tracksHeight);
for (int i = 0; i < children.count(); ++i) {
// re-add items in correct place
- if (children.at(i)->type() != AVWIDGET && children.at(i)->type() != TRANSITIONWIDGET) continue;
+ if (children.at(i)->type() != AVWidget && children.at(i)->type() != TransitionWidget) continue;
AbstractClipItem *item = static_cast <AbstractClipItem *>(children.at(i));
item->updateItem();
ItemInfo info = item->info();
else if (item->isItemLocked())
item->setItemLocked(false);
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem*>(item);
int trackProducer = info.track;
info.track = m_document->tracksCount() - info.track;
for (int i = 0; i < clip->effectsCount(); ++i) {
m_document->renderer()->mltAddEffect(info.track, info.startPos, getEffectArgs(clip->effect(i)), false);
}
- } else if (item->type() == TRANSITIONWIDGET) {
+ } else if (item->type() == TransitionWidget) {
Transition *tr = static_cast <Transition*>(item);
int newTrack;
if (!tr->forcedTrack()) {
new RebuildGroupCommand(this, item->info().track, item->endPos() - GenTime(1, m_document->fps()), command);
ItemInfo info = item->info();
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
ItemInfo resizeinfo = oldInfo;
resizeinfo.track = m_document->tracksCount() - resizeinfo.track;
bool success = m_document->renderer()->mltResizeClipStart(resizeinfo, item->startPos() - oldInfo.startPos);
KdenliveSettings::setSnaptopoints(snap);
emit displayMessage(i18n("Error when resizing clip"), ErrorMessage);
}
- } else if (item->type() == TRANSITIONWIDGET) {
+ } else if (item->type() == TransitionWidget) {
Transition *transition = static_cast <Transition *>(item);
if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - oldInfo.track), (int)(m_document->tracksCount() - oldInfo.track), transition->transitionEndTrack(), oldInfo.startPos, oldInfo.endPos, info.startPos, info.endPos)) {
// Cannot resize transition
new RebuildGroupCommand(this, item->info().track, item->startPos(), command);
ItemInfo info = item->info();
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
if (!hasParentCommand) command->setText(i18n("Resize clip end"));
ItemInfo resizeinfo = info;
resizeinfo.track = m_document->tracksCount() - resizeinfo.track;
KdenliveSettings::setSnaptopoints(true);
emit displayMessage(i18n("Error when resizing clip"), ErrorMessage);
}
- } else if (item->type() == TRANSITIONWIDGET) {
+ } else if (item->type() == TransitionWidget) {
if (!hasParentCommand) command->setText(i18n("Resize transition end"));
Transition *transition = static_cast <Transition *>(item);
if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - oldInfo.track), (int)(m_document->tracksCount() - oldInfo.track), transition->transitionEndTrack(), oldInfo.startPos, oldInfo.endPos, info.startPos, info.endPos)) {
for (int i = 0; i < itemList.count(); ++i) {
if (itemList.at(i) == selected) continue;
if (skipSelectedItems && itemList.at(i)->isSelected()) continue;
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
GenTime start = item->startPos();
GenTime end = item->endPos();
}
}
}
- } else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (itemList.at(i)->type() == TransitionWidget) {
Transition *transition = static_cast <Transition*>(itemList.at(i));
GenTime start = transition->startPos();
GenTime end = transition->endPos();
m_commandStack->push(deleteAll);
}
-void CustomTrackView::setTool(PROJECTTOOL tool)
+void CustomTrackView::setTool(ProjectTool tool)
{
m_tool = tool;
switch (m_tool) {
- case RAZORTOOL:
+ case RazorTool:
setCursor(m_razorCursor);
break;
- case SPACERTOOL:
+ case SpacerTool:
setCursor(m_spacerCursor);
break;
default:
QColor audioColor = palette().alternateBase().color();
for (int i = 0; i < maxTrack; ++i) {
TrackInfo info = m_document->trackInfoAt(maxTrack - i - 1);
- if (info.isLocked || info.type == AUDIOTRACK || i == m_selectedTrack) {
+ if (info.isLocked || info.type == AudioTrack || i == m_selectedTrack) {
const QRectF track(min, m_tracksHeight * i + 1, max - min, m_tracksHeight - 1);
if (i == m_selectedTrack)
painter->fillRect(track, m_activeTrackBrush.brush(this));
QList<QGraphicsItem *> itemList = items();
for (int i = 0; i < itemList.count(); ++i) {
// parse all clip names
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
GenTime start = item->startPos();
CommentedTime t(start, item->clipName());
QList<ItemInfo> matchingInfo;
QList<QGraphicsItem *> itemList = items();
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *item = (ClipItem *)itemList.at(i);
if (item->clipProducer() == clipId)
matchingInfo << item->info();
return;
}
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(itemList.at(i));
ClipItem *clone = clip->clone(clip->info());
m_copiedItems.append(clone);
- } else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (itemList.at(i)->type() == TransitionWidget) {
Transition *dup = static_cast <Transition *>(itemList.at(i));
m_copiedItems.append(dup->clone());
}
}
int height = m_tracksHeight - 2;
int offset = 0;
- if (type == TRANSITIONWIDGET) {
+ if (type == TransitionWidget) {
height = Transition::itemHeight();
offset = Transition::itemOffset();
}
- else if (type == AVWIDGET) {
+ else if (type == AVWidget) {
height = ClipItem::itemHeight();
offset = ClipItem::itemOffset();
}
}
QList<QGraphicsItem *> collisions = scene()->items(movePath, Qt::IntersectsItemBoundingRect);
for (int i = 0; i < collisions.count(); ++i) {
- if ((collisions.at(i)->type() == AVWIDGET || collisions.at(i)->type() == TRANSITIONWIDGET) && !items.contains(static_cast <AbstractClipItem *>(collisions.at(i)))) {
+ if ((collisions.at(i)->type() == AVWidget || collisions.at(i)->type() == TransitionWidget) && !items.contains(static_cast <AbstractClipItem *>(collisions.at(i)))) {
kDebug() << " //////////// CLIP COLLISION, MOVE NOT ALLOWED";
return false;
}
for (int i = 0; i < m_copiedItems.count(); ++i) {
// parse all clip names
- if (m_copiedItems.at(i) && m_copiedItems.at(i)->type() == AVWIDGET) {
+ if (m_copiedItems.at(i) && m_copiedItems.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(m_copiedItems.at(i));
ItemInfo info = clip->info();
info.startPos += offset;
info.endPos += offset;
info.track += trackOffset;
- if (canBePastedTo(info, AVWIDGET)) {
+ if (canBePastedTo(info, AVWidget)) {
new AddTimelineClipCommand(this, clip->xml(), clip->clipProducer(), info, clip->effectList(), m_scene->editMode() == OVERWRITEEDIT, m_scene->editMode() == INSERTEDIT, true, false, pasteClips);
} else emit displayMessage(i18n("Cannot paste clip to selected place"), ErrorMessage);
- } else if (m_copiedItems.at(i) && m_copiedItems.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (m_copiedItems.at(i) && m_copiedItems.at(i)->type() == TransitionWidget) {
Transition *tr = static_cast <Transition *>(m_copiedItems.at(i));
ItemInfo info;
info.startPos = tr->startPos() + offset;
int transitionEndTrack;
if (!tr->forcedTrack()) transitionEndTrack = getPreviousVideoTrack(info.track);
else transitionEndTrack = tr->transitionEndTrack();
- if (canBePastedTo(info, TRANSITIONWIDGET)) {
+ if (canBePastedTo(info, TransitionWidget)) {
if (info.startPos >= info.endPos) {
emit displayMessage(i18n("Invalid transition"), ErrorMessage);
} else new AddTransitionCommand(this, info, transitionEndTrack, tr->toXML(), false, true, pasteClips);
void CustomTrackView::pasteClipEffects()
{
- if (m_copiedItems.count() != 1 || m_copiedItems.at(0)->type() != AVWIDGET) {
+ if (m_copiedItems.count() != 1 || m_copiedItems.at(0)->type() != AVWidget) {
emit displayMessage(i18n("You must copy exactly one clip before pasting effects"), ErrorMessage);
return;
}
// expand groups
for (int i = 0; i < clips.count(); ++i) {
- if (clips.at(i)->type() == GROUPWIDGET) {
+ if (clips.at(i)->type() == GroupWidget) {
QList<QGraphicsItem *> children = clips.at(i)->childItems();
for (int j = 0; j < children.count(); j++) {
- if (children.at(j)->type() == AVWIDGET && !clips.contains(children.at(j))) {
+ if (children.at(j)->type() == AVWidget && !clips.contains(children.at(j))) {
clips.append(children.at(j));
}
}
}
for (int i = 0; i < clips.count(); ++i) {
- if (clips.at(i)->type() == AVWIDGET) {
+ if (clips.at(i)->type() == AVWidget) {
ClipItem *item = static_cast < ClipItem *>(clips.at(i));
for (int j = 0; j < clip->effectsCount(); j++) {
QDomElement eff = clip->effect(j);
//adjust effects (fades, ...)
for (int i = 0; i < clips.count(); ++i) {
- if (clips.at(i)->type() == AVWIDGET) {
+ if (clips.at(i)->type() == AVWidget) {
ClipItem *item = static_cast < ClipItem *>(clips.at(i));
updatePositionEffects(item, item->info());
}
QRectF rect((double) m_cursorPos, 0.0, 1.0, (double)(m_tracksHeight * m_document->tracksCount()));
QList<QGraphicsItem *> collisions = scene()->items(rect, Qt::IntersectsItemBoundingRect);
for (int i = 0; i < collisions.count(); ++i) {
- if (collisions.at(i)->type() == AVWIDGET) {
+ if (collisions.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast < ClipItem *>(collisions.at(i));
if (!clip->isItemLocked()) return clip;
}
} else {
AbstractClipItem *item = NULL;
for (int i = 0; i < clips.count(); ++i) {
- if (clips.at(i)->type() == AVWIDGET) {
+ if (clips.at(i)->type() == AVWidget) {
item = static_cast < AbstractClipItem *>(clips.at(i));
if (clips.count() > 1 && item->startPos().frames(m_document->fps()) <= m_cursorPos && item->endPos().frames(m_document->fps()) >= m_cursorPos) break;
}
ClipItem *item;
// remove all items in the list that are not clips
for (int i = 0; i < clips.count();) {
- if (clips.at(i)->type() != AVWIDGET) clips.removeAt(i);
+ if (clips.at(i)->type() != AVWidget) clips.removeAt(i);
else ++i;
}
if (clips.count() == 1 && allowOutsideCursor) return static_cast < ClipItem *>(clips.at(0));
for (int i = 0; i < clips.count(); ++i) {
- if (clips.at(i)->type() == AVWIDGET) {
+ if (clips.at(i)->type() == AVWidget) {
item = static_cast < ClipItem *>(clips.at(i));
if (item->startPos().frames(m_document->fps()) <= m_cursorPos && item->endPos().frames(m_document->fps()) >= m_cursorPos)
return item;
{
AbstractClipItem *clip = getActiveClipUnderCursor(true);
if (clip == NULL) {
- if (m_dragItem && m_dragItem->type() == TRANSITIONWIDGET) {
+ if (m_dragItem && m_dragItem->type() == TransitionWidget) {
clip = m_dragItem;
} else {
emit displayMessage(i18n("You must select one clip for this action"), ErrorMessage);
QList <QGraphicsItem *> items = parent->childItems();
for (int i = 0; i < items.count(); ++i) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(items.at(i));
- if (item && item->type() == AVWIDGET) {
+ if (item && item->type() == AVWidget) {
prepareResizeClipStart(item, item->info(), m_cursorPos, true, resizeCommand);
}
}
{
AbstractClipItem *clip = getActiveClipUnderCursor(true);
if (clip == NULL) {
- if (m_dragItem && m_dragItem->type() == TRANSITIONWIDGET) {
+ if (m_dragItem && m_dragItem->type() == TransitionWidget) {
clip = m_dragItem;
} else {
emit displayMessage(i18n("You must select one clip for this action"), ErrorMessage);
QList <QGraphicsItem *> items = parent->childItems();
for (int i = 0; i < items.count(); ++i) {
AbstractClipItem *item = static_cast<AbstractClipItem *>(items.at(i));
- if (item && item->type() == AVWIDGET) {
+ if (item && item->type() == AVWidget) {
prepareResizeClipEnd(item, item->info(), m_cursorPos, true, resizeCommand);
}
}
ClipItem *item;
const QString thumbBase = m_document->projectFolder().path() + "/thumbs/";
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
item = static_cast <ClipItem *>(itemList.at(i));
- if (item && item->isEnabled() && item->clipType() != COLOR && item->clipType() != AUDIO) {
+ if (item && item->isEnabled() && item->clipType() != Color && item->clipType() != Audio) {
// Check if we have a cached thumbnail
- if (item->clipType() == IMAGE || item->clipType() == TEXT) {
+ if (item->clipType() == Image || item->clipType() == Text) {
QString thumb = thumbBase + item->baseClip()->getClipHash() + "_0.png";
if (QFile::exists(thumb)) {
QPixmap pix(thumb);
ClipItem *item;
QString thumbBase = m_document->projectFolder().path() + "/thumbs/";
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == AVWIDGET) {
+ if (itemList.at(i)->type() == AVWidget) {
item = static_cast <ClipItem *>(itemList.at(i));
- if (item->clipType() != COLOR) {
+ if (item->clipType() != Color) {
// Check if we have a cached thumbnail
- if (item->clipType() == IMAGE || item->clipType() == TEXT || item->clipType() == AUDIO) {
+ if (item->clipType() == Image || item->clipType() == Text || item->clipType() == Audio) {
QString thumb = thumbBase + item->baseClip()->getClipHash() + "_0.png";
if (!QFile::exists(thumb)) {
QPixmap pix(item->startThumb());
info.isLocked = false;
info.effectsList = EffectsList(true);
if (d->video_track->isChecked()) {
- info.type = VIDEOTRACK;
+ info.type = VideoTrack;
info.isBlind = false;
} else {
- info.type = AUDIOTRACK;
+ info.type = AudioTrack;
info.isBlind = true;
}
AddTrackCommand *addTrack = new AddTrackCommand(this, ix, info, true);
// Delete all clips in selected track
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *item = static_cast <ClipItem *>(selection.at(i));
new AddTimelineClipCommand(this, item->xml(), item->clipProducer(), item->info(), item->effectList(), false, false, false, true, deleteTrack);
m_waitingThumbs.removeAll(item);
m_scene->removeItem(item);
delete item;
item = NULL;
- } else if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ } else if (selection.at(i)->type() == TransitionWidget) {
Transition *item = static_cast <Transition *>(selection.at(i));
new AddTransitionCommand(this, item->info(), item->transitionEndTrack(), item->toXML(), true, false, deleteTrack);
m_scene->removeItem(item);
void CustomTrackView::autoTransition()
{
QList<QGraphicsItem *> itemList = scene()->selectedItems();
- if (itemList.count() != 1 || itemList.at(0)->type() != TRANSITIONWIDGET) {
+ if (itemList.count() != 1 || itemList.at(0)->type() != TransitionWidget) {
emit displayMessage(i18n("You must select one transition for this action"), ErrorMessage);
return;
}
QList<QGraphicsItem *> list = scene()->items();
ClipItem *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
clip = static_cast <ClipItem *>(list.at(i));
if (clip->clipProducer() == id) {
clip->setClipName(name);
selection.removeAll(item);
for (int i = 0; i < selection.count(); ++i) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(selection.at(i));
- if (clip && clip->type() == AVWIDGET) {
+ if (clip && clip->type() == AVWidget) {
if (clip->endPos() <= item->startPos() && clip->endPos() > minimum) minimum = clip->endPos();
if (clip->startPos() > item->startPos() && (clip->startPos() < maximum || maximum == GenTime())) maximum = clip->startPos();
}
selection.removeAll(item);
for (int i = 0; i < selection.count(); ++i) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(selection.at(i));
- if (clip && clip->type() == TRANSITIONWIDGET) {
+ if (clip && clip->type() == TransitionWidget) {
if (clip->endPos() <= item->startPos() && clip->endPos() > minimum) minimum = clip->endPos();
if (clip->startPos() > item->startPos() && (clip->startPos() < maximum || maximum == GenTime())) maximum = clip->startPos();
}
QUndoCommand *splitCommand = new QUndoCommand();
splitCommand->setText(i18n("Split audio"));
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
- if (clip->clipType() == AV || clip->clipType() == PLAYLIST) {
+ if (clip->clipType() == AV || clip->clipType() == Playlist) {
if (clip->parentItem()) {
emit displayMessage(i18n("Cannot split audio of grouped clips"), ErrorMessage);
} else {
if (m_audioCorrelator != NULL) {
delete m_audioCorrelator;
}
- if (selection.at(0)->type() == AVWIDGET) {
+ if (selection.at(0)->type() == AVWidget) {
ClipItem *clip = static_cast<ClipItem*>(selection.at(0));
- if (clip->clipType() == AV || clip->clipType() == AUDIO) {
+ if (clip->clipType() == AV || clip->clipType() == Audio) {
m_audioAlignmentReference = clip;
AudioEnvelope *envelope = new AudioEnvelope(clip->baseClip()->fileURL().path(), clip->getProducer(clip->track()));
int counter = 0;
QList<QGraphicsItem *> selection = scene()->selectedItems();
foreach (QGraphicsItem *item, selection) {
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
ClipItem *clip = static_cast<ClipItem*>(item);
if (clip == m_audioAlignmentReference) {
continue;
}
- if (clip->clipType() == AV || clip->clipType() == AUDIO) {
+ if (clip->clipType() == AV || clip->clipType() == Audio) {
AudioEnvelope *envelope = new AudioEnvelope(clip->baseClip()->fileURL().path(), clip->getProducer(clip->track()), clip->info().cropStart.frames(m_document->fps()), clip->info().cropDuration.frames(m_document->fps()));
// FFT only for larger vectors. We could use it all time, but for small vectors
int freetrack = m_document->tracksCount() - track - 1;
// do not split audio when we are on an audio track
- if (m_document->trackInfoAt(freetrack).type == AUDIOTRACK)
+ if (m_document->trackInfoAt(freetrack).type == AudioTrack)
return;
for (; freetrack > 0; freetrack--) {
//kDebug() << "// CHK DOC TRK:" << freetrack << ", DUR:" << m_document->renderer()->mltTrackDuration(freetrack);
- if (m_document->trackInfoAt(freetrack - 1).type == AUDIOTRACK && !m_document->trackInfoAt(freetrack - 1).isLocked) {
+ if (m_document->trackInfoAt(freetrack - 1).type == AudioTrack && !m_document->trackInfoAt(freetrack - 1).isLocked) {
//kDebug() << "// CHK DOC TRK:" << freetrack << ", DUR:" << m_document->renderer()->mltTrackDuration(freetrack);
if (m_document->renderer()->mltTrackDuration(freetrack) < start || m_document->renderer()->mltGetSpaceLength(pos, freetrack, false) >= clip->cropDuration().frames(m_document->fps())) {
//kDebug() << "FOUND SPACE ON TRK: " << freetrack;
}
} else {
// unsplit clip: remove audio part and change video part to normal clip
- if (clip->parentItem() == NULL || clip->parentItem()->type() != GROUPWIDGET) {
+ if (clip->parentItem() == NULL || clip->parentItem()->type() != GroupWidget) {
kDebug() << "//CANNOT FIND CLP GRP";
return;
}
QUndoCommand *videoCommand = new QUndoCommand();
videoCommand->setText(i18n("Video only"));
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
- if (clip->clipType() == AV || clip->clipType() == PLAYLIST) {
+ if (clip->clipType() == AV || clip->clipType() == Playlist) {
if (clip->parentItem()) {
emit displayMessage(i18n("Cannot change grouped clips"), ErrorMessage);
} else {
QUndoCommand *videoCommand = new QUndoCommand();
videoCommand->setText(i18n("Audio only"));
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
- if (clip->clipType() == AV || clip->clipType() == PLAYLIST) {
+ if (clip->clipType() == AV || clip->clipType() == Playlist) {
if (clip->parentItem()) {
emit displayMessage(i18n("Cannot change grouped clips"), ErrorMessage);
} else {
QUndoCommand *videoCommand = new QUndoCommand();
videoCommand->setText(i18n("Audio and Video"));
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
- if (clip->clipType() == AV || clip->clipType() == PLAYLIST) {
+ if (clip->clipType() == AV || clip->clipType() == Playlist) {
if (clip->parentItem()) {
emit displayMessage(i18n("Cannot change grouped clips"), ErrorMessage);
} else {
{
bool hasAudio;
bool hasAV;
- if (clip == NULL || (clip->clipType() != AV && clip->clipType() != PLAYLIST)) {
+ if (clip == NULL || (clip->clipType() != AV && clip->clipType() != Playlist)) {
m_clipTypeGroup->setEnabled(false);
- hasAudio = clip != NULL && clip->clipType() == AUDIO;
+ hasAudio = clip != NULL && clip->clipType() == Audio;
hasAV = false;
} else {
switch (clip->clipType()) {
case AV:
- case PLAYLIST:
+ case Playlist:
hasAudio = true;
hasAV = true;
break;
- case AUDIO:
+ case Audio:
hasAudio = true;
hasAV = false;
break;
Transition *transitionitem;
QDomElement transitionXml;
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ if (itemList.at(i)->type() == TransitionWidget) {
transitionitem = static_cast <Transition*>(itemList.at(i));
transitionXml = transitionitem->toXML();
if (transitionXml.attribute("id") == "luma" && transitionXml.attribute("tag") == "luma") {
if (itemList.at(i) != m_cursorLine && itemList.at(i)->parentItem() == NULL) m_scene->removeItem(itemList.at(i));
}
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->parentItem() == 0 && (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET)) {
+ if (itemList.at(i)->parentItem() == 0 && (itemList.at(i)->type() == AVWidget || itemList.at(i)->type() == TransitionWidget)) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(itemList.at(i));
clip->updateFps(m_document->fps());
m_scene->addItem(clip);
- } else if (itemList.at(i)->type() == GROUPWIDGET) {
+ } else if (itemList.at(i)->type() == GroupWidget) {
AbstractGroupItem *grp = static_cast <AbstractGroupItem *>(itemList.at(i));
QList<QGraphicsItem *> children = grp->childItems();
for (int j = 0; j < children.count(); j++) {
- if (children.at(j)->type() == AVWIDGET || children.at(j)->type() == TRANSITIONWIDGET) {
+ if (children.at(j)->type() == AVWidget || children.at(j)->type() == TransitionWidget) {
AbstractClipItem *clip = static_cast <AbstractClipItem *>(children.at(j));
clip->setFlag(QGraphicsItem::ItemIsMovable, true);
clip->updateFps(m_document->fps());
scene()->destroyItemGroup(grp);
scene()->clearSelection();
/*for (int j = 0; j < children.count(); j++) {
- if (children.at(j)->type() == AVWIDGET || children.at(j)->type() == TRANSITIONWIDGET) {
+ if (children.at(j)->type() == AVWidget || children.at(j)->type() == TRANSITIONWIDGET) {
//children.at(j)->setParentItem(0);
children.at(j)->setSelected(true);
}
QStringList clipIds;
QList<QGraphicsItem *> selection = m_scene->selectedItems();
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *item = (ClipItem *)selection.at(i);
clipIds << item->clipProducer();
}
QList<ClipItem *> clips;
QList<QGraphicsItem *> selection = m_scene->selectedItems();
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
clips.append((ClipItem *)selection.at(i));
}
}
m_scene->clearSelection();
QList<QGraphicsItem *> list;
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET || selection.at(i)->type() == GROUPWIDGET) {
+ if (selection.at(i)->type() == AVWidget || selection.at(i)->type() == TransitionWidget || selection.at(i)->type() == GroupWidget) {
list.append(selection.at(i));
}
}
resetSelectionGroup(group);
if (!group) m_scene->clearSelection();
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
selection.at(i)->setSelected(add);
break;
}
resetSelectionGroup(group);
if (!group) m_scene->clearSelection();
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == TRANSITIONWIDGET) {
+ if (selection.at(i)->type() == TransitionWidget) {
selection.at(i)->setSelected(add);
break;
}
Transition *transitionitem;
QDomElement transitionXml;
for (int i = 0; i < itemList.count(); ++i) {
- if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ if (itemList.at(i)->type() == TransitionWidget) {
transitionitem = static_cast <Transition*>(itemList.at(i));
transitionXml = transitionitem->toXML();
// luma files in transitions can be in "resource" or "luma" property
QList <int> timelineList;
timelineList.append(0);
for (int i = 0; i < selection.count(); ++i) {
- if (selection.at(i)->type() == AVWIDGET) {
+ if (selection.at(i)->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
int start = clip->startPos().frames(m_document->fps());
int end = clip->endPos().frames(m_document->fps());
}
}
-void CustomTrackView::setTipAnimation(AbstractClipItem *clip, OPERATIONTYPE mode, const double size)
+void CustomTrackView::setTipAnimation(AbstractClipItem *clip, OperationType mode, const double size)
{
if (m_visualTip == NULL) {
QRectF rect = clip->sceneBoundingRect();
m_animation->setScaleAt(1, 1, 1);
QPolygon polygon;
switch (mode) {
- case FADEIN:
- case FADEOUT:
+ case FadeIn:
+ case FadeOut:
m_visualTip = new QGraphicsEllipseItem(-size, -size, size * 2, size * 2);
((QGraphicsEllipseItem*) m_visualTip)->setBrush(m_tipColor);
((QGraphicsEllipseItem*) m_visualTip)->setPen(m_tipPen);
- if (mode == FADEIN)
+ if (mode == FadeIn)
m_visualTip->setPos(rect.x() + ((ClipItem *) clip)->fadeIn(), rect.y());
else
m_visualTip->setPos(rect.right() - ((ClipItem *) clip)->fadeOut(), rect.y());
m_animation->setScaleAt(.5, 2, 2);
break;
- case RESIZESTART:
- case RESIZEEND:
+ case ResizeStart:
+ case ResizeEnd:
polygon << QPoint(0, - size * 2);
- if (mode == RESIZESTART)
+ if (mode == ResizeStart)
polygon << QPoint(size * 2, 0);
else
polygon << QPoint(- size * 2, 0);
m_visualTip = new QGraphicsPolygonItem(polygon);
((QGraphicsPolygonItem*) m_visualTip)->setBrush(m_tipColor);
((QGraphicsPolygonItem*) m_visualTip)->setPen(m_tipPen);
- if (mode == RESIZESTART)
+ if (mode == ResizeStart)
m_visualTip->setPos(rect.x(), rect.y() + rect.height() / 2);
else
m_visualTip->setPos(rect.right(), rect.y() + rect.height() / 2);
m_animation->setScaleAt(.5, 2, 1);
break;
- case TRANSITIONSTART:
- case TRANSITIONEND:
+ case TransitionStart:
+ case TransitionEnd:
polygon << QPoint(0, - size * 2);
- if (mode == TRANSITIONSTART)
+ if (mode == TransitionStart)
polygon << QPoint(size * 2, 0);
else
polygon << QPoint(- size * 2, 0);
m_visualTip = new QGraphicsPolygonItem(polygon);
((QGraphicsPolygonItem*) m_visualTip)->setBrush(m_tipColor);
((QGraphicsPolygonItem*) m_visualTip)->setPen(m_tipPen);
- if (mode == TRANSITIONSTART)
+ if (mode == TransitionStart)
m_visualTip->setPos(rect.x(), rect.bottom());
else
m_visualTip->setPos(rect.right(), rect.bottom());
for (int i = 0; i < collisions.count(); ++i) {
item = collisions.at(i);
if (!item->isEnabled()) continue;
- if (item->type() == AVWIDGET) {
+ if (item->type() == AVWidget) {
ClipItem *clip = static_cast <ClipItem *>(item);
- if (!clip->isVideoOnly() && (clip->clipType() == AUDIO || clip->clipType() == AV || clip->clipType() == PLAYLIST)) return true;
+ if (!clip->isVideoOnly() && (clip->clipType() == Audio || clip->clipType() == AV || clip->clipType() == Playlist)) return true;
}
}
return false;
int audioTracks = 0;
for (int i = max - 1; i >= 0; --i) {
TrackInfo info = tracks.at(i);
- if (info.type == VIDEOTRACK)
+ if (info.type == VideoTrack)
videoTracks++;
else
audioTracks++;
if (i <= docTrack) {
- QString type = (info.type == VIDEOTRACK ? "Video " : "Audio ");
- int typeNumber = (info.type == VIDEOTRACK ? videoTracks : audioTracks);
+ QString type = (info.type == VideoTrack ? "Video " : "Audio ");
+ int typeNumber = (info.type == VideoTrack ? videoTracks : audioTracks);
if (added) {
if (i == docTrack || info.trackName == type + QString::number(typeNumber - 1)) {
QList<QGraphicsItem *> list = scene()->items();
ClipItem *clip = NULL;
for (int i = 0; i < list.size(); ++i) {
- if (list.at(i)->type() == AVWIDGET) {
+ if (list.at(i)->type() == AVWidget) {
clip = static_cast <ClipItem *>(list.at(i));
if (clip->clipProducer() == id) {
clip->refreshClip(true, resetThumbs);
}
-void CustomTrackView::slotImportClipKeyframes(GRAPHICSRECTITEM type)
+void CustomTrackView::slotImportClipKeyframes(GraphicsRectItem type)
{
ClipItem *item = NULL;
- if (type == TRANSITIONWIDGET) {
+ if (type == TransitionWidget) {
// We want to import keyframes to a transition
if (!m_selectionGroup) {
emit displayMessage(i18n("You need to select one clip and one transition"), ErrorMessage);
// Make sure there is no collision
QList<QGraphicsItem *> children = m_selectionGroup->childItems();
for (int i = 0; i < children.count(); ++i) {
- if (children.at(i)->type() == AVWIDGET) {
+ if (children.at(i)->type() == AVWidget) {
item = (ClipItem*) children.at(i);
break;
}
bool checkTrackHeight();
void updateSceneFrameWidth();
//QList <TrackInfo> tracksList() const;
- void setTool(PROJECTTOOL tool);
+ void setTool(ProjectTool tool);
ClipItem *cutClip(const ItemInfo &info, const GenTime &cutTime, bool cut, const EffectsList &oldStack = EffectsList(), bool execute = true);
void slotSeekToPreviousSnap();
void slotSeekToNextSnap();
void updateSnapPoints(AbstractClipItem *selected, QList <GenTime> offsetList = QList <GenTime> (), bool skipSelectedItems = false);
void slotAddEffect(ClipItem *clip, const QDomElement &effect);
- void slotImportClipKeyframes(GRAPHICSRECTITEM type);
+ void slotImportClipKeyframes(GraphicsRectItem type);
/** @brief Get effect parameters ready for MLT*/
static void adjustEffectParameters(EffectsParameterList ¶meters, QDomNodeList params, MltVideoProfile profile, const QString &prefix = QString());
QGraphicsLineItem *m_cursorLine;
ItemInfo m_dragItemInfo;
ItemInfo m_selectionGroupInfo;
- OPERATIONTYPE m_operationMode;
- OPERATIONTYPE m_moveOpMode;
+ OperationType m_operationMode;
+ OperationType m_moveOpMode;
AbstractClipItem *m_dragItem;
Guide *m_dragGuide;
QUndoStack *m_commandStack;
bool m_clipDrag;
int m_findIndex;
- PROJECTTOOL m_tool;
+ ProjectTool m_tool;
QCursor m_razorCursor;
QCursor m_spacerCursor;
/** list containing items currently copied in the timeline */
* @param clip clip to display the tip on
* @param mode operation mode for which the tip should be displayed
* @param size size of the tip */
- void setTipAnimation(AbstractClipItem *clip, OPERATIONTYPE mode, const double size);
+ void setTipAnimation(AbstractClipItem *clip, OperationType mode, const double size);
/** @brief Takes care of updating effects and attached transitions during a resize from start.
* @param item Item to resize
/** @brief Cursor position changed, repaint ruler.*/
void updateRuler();
/** @brief Send data from a clip to be imported as keyframes for effect / transition.*/
- void importKeyframes(GRAPHICSRECTITEM type, const QString&, int maximum);
+ void importKeyframes(GraphicsRectItem type, const QString&, int maximum);
};
#endif
qd << "\tCrop duration: " << info.cropDuration.toString();
return qd.maybeSpace();
}
+
+
+MltVideoProfile::MltVideoProfile() :
+ frame_rate_num(0),
+ frame_rate_den(0),
+ width(0),
+ height(0),
+ progressive(0),
+ sample_aspect_num(0),
+ sample_aspect_den(0),
+ display_aspect_num(0),
+ display_aspect_den(0),
+ colorspace(0)
+{
+}
+
+bool MltVideoProfile::operator==(const MltVideoProfile &point) const
+{
+ if (!description.isEmpty() && point.description == description) {
+ return true;
+ }
+ return point.frame_rate_num == frame_rate_num &&
+ point.frame_rate_den == frame_rate_den &&
+ point.width == width &&
+ point.height == height &&
+ point.progressive == progressive &&
+ point.sample_aspect_num == sample_aspect_num &&
+ point.sample_aspect_den == sample_aspect_den &&
+ point.display_aspect_den == display_aspect_den &&
+ point.colorspace == colorspace;
+}
+
+bool MltVideoProfile::operator!=(const MltVideoProfile &other) const {
+ return !(*this == other);
+}
+
+
+EffectInfo::EffectInfo() {isCollapsed = false; groupIndex = -1; groupIsCollapsed = false;}
+
+QString EffectInfo::toString() const {
+ QStringList data;
+ // effect collapsed state: 0 = effect not collapsed, 1 = effect collapsed,
+ // 2 = group collapsed - effect not, 3 = group and effect collapsed
+ int collapsedState = (int) isCollapsed;
+ if (groupIsCollapsed) collapsedState += 2;
+ data << QString::number(collapsedState) << QString::number(groupIndex) << groupName;
+ return data.join(QLatin1String("/"));
+}
+
+void EffectInfo::fromString(QString value) {
+ if (value.isEmpty()) return;
+ QStringList data = value.split(QLatin1String("/"));
+ isCollapsed = data.at(0).toInt() == 1 || data.at(0).toInt() == 3;
+ groupIsCollapsed = data.at(0).toInt() >= 2;
+ if (data.count() > 1) groupIndex = data.at(1).toInt();
+ if (data.count() > 2) groupName = data.at(2);
+}
+
+
+EffectParameter::EffectParameter(const QString &name, const QString &value): m_name(name), m_value(value) {}
+
+QString EffectParameter::name() const {
+ return m_name;
+}
+
+QString EffectParameter::value() const {
+ return m_value;
+}
+
+void EffectParameter::setValue(const QString &value) {
+ m_value = value;
+}
+
+
+EffectsParameterList::EffectsParameterList(): QList < EffectParameter >() {}
+
+bool EffectsParameterList::hasParam(const QString &name) const {
+ for (int i = 0; i < size(); ++i)
+ if (at(i).name() == name) return true;
+ return false;
+}
+
+void EffectsParameterList::setParamValue(const QString &name, const QString &value) {
+ bool found = false;
+ for (int i = 0; i < size(); ++i)
+ if (at(i).name() == name) {
+ // update value
+ replace(i, EffectParameter(name, value));
+ found = true;
+ }
+ if (!found) addParam(name, value);
+}
+
+QString EffectsParameterList::paramValue(const QString &name, const QString &defaultValue) const {
+ for (int i = 0; i < size(); ++i) {
+ if (at(i).name() == name) return at(i).value();
+ }
+ return defaultValue;
+}
+
+void EffectsParameterList::addParam(const QString &name, const QString &value) {
+ if (name.isEmpty()) return;
+ append(EffectParameter(name, value));
+}
+
+void EffectsParameterList::removeParam(const QString &name) {
+ for (int i = 0; i < size(); ++i)
+ if (at(i).name() == name) {
+ removeAt(i);
+ break;
+ }
+}
+
+
+CommentedTime::CommentedTime(): t(GenTime(0)), type(0) {}
+
+
+CommentedTime::CommentedTime(const GenTime &time, const QString &comment, int markerType)
+ : t(time), c(comment), type(markerType) { }
+
+QString CommentedTime::comment() const {
+ return (c.isEmpty() ? i18n("Marker") : c);
+}
+
+GenTime CommentedTime::time() const {
+ return t;
+}
+
+void CommentedTime::setComment(const QString &comm) {
+ c = comm;
+}
+
+void CommentedTime::setMarkerType(int t) {
+ type = t;
+}
+
+int CommentedTime::markerType() const {
+ return type;
+}
+
+QColor CommentedTime::markerColor(int type) {
+ switch (type) {
+ case 0:
+ return Qt::red;
+ break;
+ case 1:
+ return Qt::blue;
+ break;
+ case 2:
+ return Qt::green;
+ break;
+ case 3:
+ return Qt::yellow;
+ break;
+ default:
+ return Qt::cyan;
+ break;
+ }
+}
+
+bool CommentedTime::operator>(CommentedTime op) const {
+ return t > op.time();
+}
+
+bool CommentedTime::operator<(CommentedTime op) const {
+ return t < op.time();
+}
+
+bool CommentedTime::operator>=(CommentedTime op) const {
+ return t >= op.time();
+}
+
+bool CommentedTime::operator<=(CommentedTime op) const {
+ return t <= op.time();
+}
+
+bool CommentedTime::operator==(CommentedTime op) const {
+ return t == op.time();
+}
+
+bool CommentedTime::operator!=(CommentedTime op) const {
+ return t != op.time();
+}
const int MAXCLIPDURATION = 15000;
-
namespace Kdenlive {
-enum MONITORID { noMonitor, clipMonitor, projectMonitor, recordMonitor, stopmotionMonitor, dvdMonitor };
+
+enum MonitorId {
+ NoMonitor,
+ ClipMonitor,
+ ProjectMonitor,
+ RecordMonitor,
+ StopMotionMonitor,
+ DvdMonitor
+};
+
const int DefaultThumbHeight = 100;
-/*const QString clipMonitor("clipMonitor");
- const QString recordMonitor("recordMonitor");
- const QString projectMonitor("projectMonitor");
- const QString stopmotionMonitor("stopmotionMonitor");*/
+/*
+const QString clipMonitor("clipMonitor");
+const QString recordMonitor("recordMonitor");
+const QString projectMonitor("projectMonitor");
+const QString stopmotionMonitor("stopmotionMonitor");
+*/
+
}
-enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5, TRANSITIONSTART = 6, TRANSITIONEND = 7, MOVEGUIDE = 8, KEYFRAME = 9, SEEK = 10, SPACER = 11, RUBBERSELECTION = 12, SCROLLTIMELINE = 13};
-enum CLIPTYPE { UNKNOWN = 0, AUDIO = 1, VIDEO = 2, AV = 3, COLOR = 4, IMAGE = 5, TEXT = 6, SLIDESHOW = 7, VIRTUAL = 8, PLAYLIST = 9 };
+enum OperationType {
+ None = 0,
+ MoveOperation = 1,
+ ResizeStart = 2,
+ ResizeEnd = 3,
+ FadeIn = 4,
+ FadeOut = 5,
+ TransitionStart = 6,
+ TransitionEnd = 7,
+ MoveGuide = 8,
+ KeyFrame = 9,
+ Seek = 10,
+ Spacer = 11,
+ RubberSelection = 12,
+ ScrollTimeline = 13
+};
+
+enum ClipType {
+ Unknown = 0,
+ Audio = 1,
+ Video = 2,
+ AV = 3,
+ Color = 4,
+ Image = 5,
+ Text = 6,
+ SlideShow = 7,
+ Virtual = 8,
+ Playlist = 9
+};
-enum PROJECTITEMTYPE { PROJECTCLIPTYPE = QTreeWidgetItem::UserType, PROJECTFOLDERTYPE, PROJECTSUBCLIPTYPE };
+enum ProjectItemType {
+ ProjectClipType = QTreeWidgetItem::UserType,
+ ProjectFoldeType,
+ ProjectSubclipType
+};
-enum GRAPHICSRECTITEM { AVWIDGET = 70000 , LABELWIDGET , TRANSITIONWIDGET , GROUPWIDGET};
+enum GraphicsRectItem {
+ AVWidget = 70000,
+ LabelWidget,
+ TransitionWidget,
+ GroupWidget
+};
-enum PROJECTTOOL { SELECTTOOL = 0 , RAZORTOOL = 1 , SPACERTOOL = 2 };
+enum ProjectTool {
+ SelectTool = 0,
+ RazorTool = 1,
+ SpacerTool = 2
+};
-enum TRANSITIONTYPE {
+enum TransitionType {
/** TRANSITIONTYPE: between 0-99: video trans, 100-199: video+audio trans, 200-299: audio trans */
- LUMA_TRANSITION = 0,
- COMPOSITE_TRANSITION = 1,
- PIP_TRANSITION = 2,
- LUMAFILE_TRANSITION = 3,
- MIX_TRANSITION = 200
+ LumaTransition = 0,
+ CompositeTransition = 1,
+ PipTransition = 2,
+ LumaFileTransition = 3,
+ MixTransition = 200
};
enum MessageType {
MltError
};
-enum TRACKTYPE { AUDIOTRACK = 0, VIDEOTRACK = 1 };
+enum TrackType {
+ AudioTrack = 0,
+ VideoTrack = 1
+};
-enum CLIPJOBSTATUS { NOJOB = 0, JOBWAITING = -1, JOBWORKING = -2, JOBDONE = -3, JOBCRASHED = -4, JOBABORTED = -5};
+enum ClipJobStatus {
+ NoJob = 0,
+ JobWaiting = -1,
+ JobWorking = -2,
+ JobDone = -3,
+ JobCrashed = -4,
+ JobAborted = -5
+};
class TrackInfo {
+
public:
- TRACKTYPE type;
+ TrackType type;
QString trackName;
bool isMute;
bool isBlind;
EffectsList effectsList;
int duration;
TrackInfo() :
- type(VIDEOTRACK),
+ type(VideoTrack),
isMute(0),
isBlind(0),
isLocked(0),
int display_aspect_num;
int display_aspect_den;
int colorspace;
- MltVideoProfile() :
- frame_rate_num(0),
- frame_rate_den(0),
- width(0),
- height(0),
- progressive(0),
- sample_aspect_num(0),
- sample_aspect_den(0),
- display_aspect_num(0),
- display_aspect_den(0),
- colorspace(0) {}
- bool operator==(const MltVideoProfile& point) const
- {
- if (!description.isEmpty() && point.description == description) return true;
- return point.frame_rate_num == frame_rate_num &&
- point.frame_rate_den == frame_rate_den &&
- point.width == width &&
- point.height == height &&
- point.progressive == progressive &&
- point.sample_aspect_num == sample_aspect_num &&
- point.sample_aspect_den == sample_aspect_den &&
- point.display_aspect_den == display_aspect_den &&
- point.colorspace == colorspace;
- }
- bool operator!=(const MltVideoProfile &other) const {
- return !(*this == other);
- }
+ MltVideoProfile();
+ bool operator==(const MltVideoProfile& point) const;
+ bool operator!=(const MltVideoProfile &other) const;
};
/**)
class EffectInfo
{
public:
- EffectInfo() {isCollapsed = false; groupIndex = -1; groupIsCollapsed = false;}
+ EffectInfo();
bool isCollapsed;
bool groupIsCollapsed;
int groupIndex;
QString groupName;
- QString toString() const {
- QStringList data;
- // effect collapsed state: 0 = effect not collapsed, 1 = effect collapsed,
- // 2 = group collapsed - effect not, 3 = group and effect collapsed
- int collapsedState = (int) isCollapsed;
- if (groupIsCollapsed) collapsedState += 2;
- data << QString::number(collapsedState) << QString::number(groupIndex) << groupName;
- return data.join(QLatin1String("/"));
- }
- void fromString(QString value) {
- if (value.isEmpty()) return;
- QStringList data = value.split(QLatin1String("/"));
- isCollapsed = data.at(0).toInt() == 1 || data.at(0).toInt() == 3;
- groupIsCollapsed = data.at(0).toInt() >= 2;
- if (data.count() > 1) groupIndex = data.at(1).toInt();
- if (data.count() > 2) groupName = data.at(2);
- }
+ QString toString() const;
+ void fromString(QString value);
};
class EffectParameter
{
public:
- EffectParameter(const QString &name, const QString &value): m_name(name), m_value(value) {}
- QString name() const {
- return m_name;
- }
- QString value() const {
- return m_value;
- }
- void setValue(const QString &value) {
- m_value = value;
- }
+ EffectParameter(const QString &name, const QString &value);
+ QString name() const;
+ QString value() const;
+ void setValue(const QString &value);
private:
QString m_name;
class EffectsParameterList: public QList < EffectParameter >
{
public:
- EffectsParameterList(): QList < EffectParameter >() {}
- bool hasParam(const QString &name) const {
- for (int i = 0; i < size(); ++i)
- if (at(i).name() == name) return true;
- return false;
- }
- void setParamValue(const QString &name, const QString &value) {
- bool found = false;
- for (int i = 0; i < size(); ++i)
- if (at(i).name() == name) {
- // update value
- replace(i, EffectParameter(name, value));
- found = true;
- }
- if (!found) addParam(name, value);
- }
-
- QString paramValue(const QString &name, const QString &defaultValue = QString()) const {
- for (int i = 0; i < size(); ++i) {
- if (at(i).name() == name) return at(i).value();
- }
- return defaultValue;
- }
- void addParam(const QString &name, const QString &value) {
- if (name.isEmpty()) return;
- append(EffectParameter(name, value));
- }
- void removeParam(const QString &name) {
- for (int i = 0; i < size(); ++i)
- if (at(i).name() == name) {
- removeAt(i);
- break;
- }
- }
+ EffectsParameterList();
+ bool hasParam(const QString &name) const;
+ void setParamValue(const QString &name, const QString &value);
+
+ QString paramValue(const QString &name, const QString &defaultValue = QString()) const;
+ void addParam(const QString &name, const QString &value);
+ void removeParam(const QString &name);
};
class CommentedTime
{
public:
- CommentedTime(): t(GenTime(0)), type(0) {}
- CommentedTime(const GenTime &time, const QString& comment, int markerType = 0)
- : t(time), c(comment), type(markerType) { }
-
- QString comment() const {
- return (c.isEmpty() ? i18n("Marker") : c);
- }
- GenTime time() const {
- return t;
- }
- void setComment(const QString &comm) {
- c = comm;
- }
- void setMarkerType(int t) {
- type = t;
- }
- int markerType() const {
- return type;
- }
- static QColor markerColor(int type) {
- switch (type) {
- case 0:
- return Qt::red;
- break;
- case 1:
- return Qt::blue;
- break;
- case 2:
- return Qt::green;
- break;
- case 3:
- return Qt::yellow;
- break;
- default:
- return Qt::cyan;
- break;
- }
- }
+ CommentedTime();
+ CommentedTime(const GenTime &time, const QString& comment, int markerType = 0);
+
+ QString comment() const;
+ GenTime time() const;
+ void setComment(const QString &comm);
+ void setMarkerType(int t);
+ int markerType() const;
+ static QColor markerColor(int type);
/* Implementation of > operator; Works identically as with basic types. */
- bool operator>(CommentedTime op) const {
- return t > op.time();
- }
+ bool operator>(CommentedTime op) const;
/* Implementation of < operator; Works identically as with basic types. */
- bool operator<(CommentedTime op) const {
- return t < op.time();
- }
+ bool operator<(CommentedTime op) const;
/* Implementation of >= operator; Works identically as with basic types. */
- bool operator>=(CommentedTime op) const {
- return t >= op.time();
- }
+ bool operator>=(CommentedTime op) const;
/* Implementation of <= operator; Works identically as with basic types. */
- bool operator<=(CommentedTime op) const {
- return t <= op.time();
- }
+ bool operator<=(CommentedTime op) const;
/* Implementation of == operator; Works identically as with basic types. */
- bool operator==(CommentedTime op) const {
- return t == op.time();
- }
+ bool operator==(CommentedTime op) const;
/* Implementation of != operator; Works identically as with basic types. */
- bool operator!=(CommentedTime op) const {
- return t != op.time();
- }
+ bool operator!=(CommentedTime op) const;
private:
GenTime t;
QDebug operator << (QDebug qd, const ItemInfo &info);
-
#endif
m_properties()
{
int type = xml.attribute("type").toInt();
- m_clipType = (CLIPTYPE) type;
+ m_clipType = (ClipType) type;
if (m_placeHolder) xml.removeAttribute("placeholder");
QDomNamedNodeMap attributes = xml.attributes();
for (int i = 0; i < attributes.count(); ++i) {
bool DocClipBase::hasAudioThumb() const
{
- if (m_clipType == AUDIO || m_clipType == AV || m_clipType == PLAYLIST) return true;
+ if (m_clipType == Audio || m_clipType == AV || m_clipType == Playlist) return true;
return false;
}
return m_id;
}
-const CLIPTYPE & DocClipBase::clipType() const
+const ClipType & DocClipBase::clipType() const
{
return m_clipType;
}
-void DocClipBase::setClipType(CLIPTYPE type)
+void DocClipBase::setClipType(ClipType type)
{
m_clipType = type;
m_properties.insert("type", QString::number((int) type));
KUrl DocClipBase::fileURL() const
{
QString res = m_properties.value("resource");
- if (m_clipType != COLOR && !res.isEmpty()) return KUrl(res);
+ if (m_clipType != Color && !res.isEmpty()) return KUrl(res);
return KUrl();
}
const GenTime DocClipBase::maxDuration() const
{
- if (m_clipType == COLOR || m_clipType == IMAGE || m_clipType == TEXT || (m_clipType == SLIDESHOW && m_properties.value("loop") == "1")) {
+ if (m_clipType == Color || m_clipType == Image || m_clipType == Text || (m_clipType == SlideShow && m_properties.value("loop") == "1")) {
/*const GenTime dur(15000, KdenliveSettings::project_fps());
return dur;*/
return GenTime();
{
QString info;
- if (m_clipType == AV || m_clipType == VIDEO || m_clipType == IMAGE || m_clipType == PLAYLIST) {
+ if (m_clipType == AV || m_clipType == Video || m_clipType == Image || m_clipType == Playlist) {
info = m_properties.value("frame_size") + " ";
if (m_properties.contains("fps")) {
info.append(i18n("%1 fps", m_properties.value("fps").left(5)));
}
if (!info.simplified().isEmpty()) info.prepend(" - ");
}
- else if (m_clipType == AUDIO) {
+ else if (m_clipType == Audio) {
info = " - " + m_properties.value("frequency") + i18n("Hz");
}
QString tip = "<b>";
switch (m_clipType) {
- case AUDIO:
+ case Audio:
tip.append(i18n("Audio clip") + "</b>" + info + "<br />" + fileURL().path());
break;
- case VIDEO:
+ case Video:
tip.append(i18n("Mute video clip") + "</b>" + info + "<br />" + fileURL().path());
break;
case AV:
tip.append(i18n("Video clip") + "</b>" + info + "<br />" + fileURL().path());
break;
- case COLOR:
+ case Color:
tip.append(i18n("Color clip"));
break;
- case IMAGE:
+ case Image:
tip.append(i18n("Image clip") + "</b>" + info + "<br />" + fileURL().path());
break;
- case TEXT:
+ case Text:
if (!fileURL().isEmpty() && getProperty("xmldata").isEmpty()) tip.append(i18n("Template text clip") + "</b><br />" + fileURL().path());
else tip.append(i18n("Text clip") + "</b><br />" + fileURL().path());
break;
- case SLIDESHOW:
+ case SlideShow:
tip.append(i18n("Slideshow clip") + "</b><br />" + fileURL().directory());
break;
- case VIRTUAL:
+ case Virtual:
tip.append(i18n("Virtual clip"));
break;
- case PLAYLIST:
+ case Playlist:
tip.append(i18n("Playlist clip") + "</b>" + info + "<br />" + fileURL().path());
break;
default:
delete[] tmp;
}
else if (m_thumbProd && !m_thumbProd->hasProducer()) {
- if (m_clipType != AUDIO) {
+ if (m_clipType != Audio) {
if (!id.endsWith("_audio"))
m_thumbProd->setProducer(producer);
}
}
else delete producer;
}
- if (updated && readPropertiesFromProducer && (m_clipType != COLOR && m_clipType != IMAGE && m_clipType != TEXT))
+ if (updated && readPropertiesFromProducer && (m_clipType != Color && m_clipType != Image && m_clipType != Text))
setDuration(GenTime(producer->get_length(), KdenliveSettings::project_fps()));
}
{
Mlt::Producer *source = NULL;
Mlt::Producer *prod = NULL;
- if (m_clipType != AUDIO && m_clipType != AV && m_clipType != PLAYLIST) {
+ if (m_clipType != Audio && m_clipType != AV && m_clipType != Playlist) {
source = getProducer();
if (!source) return NULL;
}
- if (m_clipType == COLOR) {
+ if (m_clipType == Color) {
prod = new Mlt::Producer(*(source->profile()), 0, QString("colour:" + QString(source->get("resource"))).toUtf8().constData());
- } else if (m_clipType == TEXT) {
+ } else if (m_clipType == Text) {
prod = new Mlt::Producer(*(source->profile()), 0, QString("kdenlivetitle:" + QString(source->get("resource"))).toUtf8().constData());
if (prod && prod->is_valid() && m_properties.contains("xmldata"))
prod->set("xmldata", m_properties.value("xmldata").toUtf8().constData());
if (m_properties.contains("duration")) prod->set("length", m_properties.value("duration").toInt());
if (m_properties.contains("out"))prod->set("out", m_properties.value("out").toInt());
}
- if (m_clipType == AUDIO) {
+ if (m_clipType == Audio) {
prod->set("_audioclip", 1);
}
}
Mlt::Producer *DocClipBase::getProducer(int track)
{
QMutexLocker locker(&m_producerMutex);
- if (track == -1 || (m_clipType != AUDIO && m_clipType != AV && m_clipType != PLAYLIST)) {
+ if (track == -1 || (m_clipType != Audio && m_clipType != AV && m_clipType != Playlist)) {
if (m_baseTrackProducers.count() == 0) {
return NULL;
}
// Xml producer sometimes loses the correct url
url = m_properties.value("resource");
}
- if (m_clipType == SLIDESHOW || KIO::NetAccess::exists(KUrl(url), KIO::NetAccess::SourceSide, 0)) {
+ if (m_clipType == SlideShow || KIO::NetAccess::exists(KUrl(url), KIO::NetAccess::SourceSide, 0)) {
result = new Mlt::Producer(*(source->profile()), url.toUtf8().constData());
}
if (result == NULL || !result->is_valid()) {
void DocClipBase::slotRefreshProducer()
{
if (m_baseTrackProducers.count() == 0) return;
- if (m_clipType == SLIDESHOW) {
+ if (m_clipType == SlideShow) {
setProducerProperty("ttl", getProperty("ttl").toInt());
//m_clipProducer->set("id", getProperty("id"));
if (!getProperty("animation").isEmpty()) {
while (i.hasNext()) {
i.next();
setProperty(i.key(), i.value());
- if (m_clipType == SLIDESHOW && keys.contains(i.key())) refreshProducer = true;
+ if (m_clipType == SlideShow && keys.contains(i.key())) refreshProducer = true;
}
if (properties.contains("proxy")) {
QString value = properties.value("proxy");
void DocClipBase::getFileHash(const QString &url)
{
- if (m_clipType == SLIDESHOW) return;
+ if (m_clipType == SlideShow) return;
QFile file(url);
if (file.open(QIODevice::ReadOnly)) { // write size and hash only if resource points to a file
QByteArray fileData;
QString DocClipBase::getClipHash() const
{
QString hash;
- if (m_clipType == SLIDESHOW) hash = QCryptographicHash::hash(m_properties.value("resource").toAscii().data(), QCryptographicHash::Md5).toHex();
- else if (m_clipType == COLOR) hash = QCryptographicHash::hash(m_properties.value("colour").toAscii().data(), QCryptographicHash::Md5).toHex();
- else if (m_clipType == TEXT) hash = QCryptographicHash::hash(QString("title" + getId() + m_properties.value("xmldata")).toUtf8().data(), QCryptographicHash::Md5).toHex();
+ if (m_clipType == SlideShow) hash = QCryptographicHash::hash(m_properties.value("resource").toAscii().data(), QCryptographicHash::Md5).toHex();
+ else if (m_clipType == Color) hash = QCryptographicHash::hash(m_properties.value("colour").toAscii().data(), QCryptographicHash::Md5).toHex();
+ else if (m_clipType == Text) hash = QCryptographicHash::hash(QString("title" + getId() + m_properties.value("xmldata")).toUtf8().data(), QCryptographicHash::Md5).toHex();
else {
if (m_properties.contains("file_hash")) hash = m_properties.value("file_hash");
if (hash.isEmpty()) hash = getHash(fileURL().path());
void setDuration(const GenTime &dur);
/** returns clip type (audio, text, image,...) */
- const CLIPTYPE & clipType() const;
+ const ClipType & clipType() const;
/** set clip type (audio, text, image,...) */
- void setClipType(CLIPTYPE type);
+ void setClipType(ClipType type);
/** remove tmp file if the clip has one (for example text clips) */
void removeTmpFile() const;
QList <Mlt::Producer *> m_videoTrackProducers;
QList <Mlt::Producer *> m_audioTrackProducers;
QList <Mlt::Producer *> m_toDeleteProducers;
- CLIPTYPE m_clipType;
+ ClipType m_clipType;
/** A list of snap markers; these markers are added to a clips snap-to points, and are displayed as necessary. */
QList < CommentedTime > m_snapMarkers;
for (int i = 0; i < max; ++i) {
e = m_info.item(i).toElement();
clipType = e.attribute("type").toInt();
- if (clipType == COLOR) continue;
- if (clipType != TEXT && clipType != IMAGE && clipType != SLIDESHOW) {
+ if (clipType == Color) continue;
+ if (clipType != Text && clipType != Image && clipType != SlideShow) {
QString id = e.attribute("id");
int duration = e.attribute("duration").toInt();
int mltDuration = -1;
}
}
- if (clipType == TEXT) {
+ if (clipType == Text) {
//TODO: Check is clip template is missing (xmltemplate) or hash changed
QStringList images = TitleWidget::extractImageList(e.attribute("xmldata"));
QStringList fonts = TitleWidget::extractFontList(e.attribute("xmldata"));
}
}
}
- if (clipType == SLIDESHOW) resource = KUrl(resource).directory();
+ if (clipType == SlideShow) resource = KUrl(resource).directory();
if (!KIO::NetAccess::exists(KUrl(resource), KIO::NetAccess::SourceSide, 0)) {
// Missing clip found
m_missingClips.append(e);
} else {
// Check if the clip has changed
- if (clipType != SLIDESHOW && e.hasAttribute("file_hash")) {
+ if (clipType != SlideShow && e.hasAttribute("file_hash")) {
if (e.attribute("file_hash") != DocClipBase::getHash(e.attribute("resource")))
e.removeAttribute("file_hash");
}
case AV:
clipType = i18n("Video clip");
break;
- case VIDEO:
+ case Video:
clipType = i18n("Mute video clip");
break;
- case AUDIO:
+ case Audio:
clipType = i18n("Audio clip");
break;
- case PLAYLIST:
+ case Playlist:
clipType = i18n("Playlist clip");
break;
- case IMAGE:
+ case Image:
clipType = i18n("Image clip");
break;
- case SLIDESHOW:
+ case SlideShow:
clipType = i18n("Slideshow clip");
break;
case TITLE_IMAGE_ELEMENT:
case AV:
clipType = i18n("Video clip");
break;
- case VIDEO:
+ case Video:
clipType = i18n("Mute video clip");
break;
- case AUDIO:
+ case Audio:
clipType = i18n("Audio clip");
break;
- case PLAYLIST:
+ case Playlist:
clipType = i18n("Playlist clip");
break;
- case IMAGE:
+ case Image:
clipType = i18n("Image clip");
break;
- case SLIDESHOW:
+ case SlideShow:
clipType = i18n("Slideshow clip");
break;
default:
void DocumentChecker::slotEditItem(QTreeWidgetItem *item, int)
{
int t = item->data(0, typeRole).toInt();
- if (t == TITLE_FONT_ELEMENT || t == UNKNOWN) return;
+ if (t == TITLE_FONT_ELEMENT || t == Unknown) return;
//|| t == TITLE_IMAGE_ELEMENT) {
KUrl url = KUrlRequesterDialog::getUrl(item->text(1), m_dialog, i18n("Enter new location for file"));
markers.insertAfter(mark, QDomNode());
}
prod.removeChild(m);
- } else if (prod.attribute("type").toInt() == TEXT) {
+ } else if (prod.attribute("type").toInt() == Text) {
// convert title clip
if (m.toElement().tagName() == "textclip") {
QDomDocument tdoc;
if (wproducer.attribute("id") == "black") continue;
// We have to do slightly different things, depending on the type
kDebug() << "Converting producer element with type" << wproducer.attribute("type");
- if (wproducer.attribute("type").toInt() == TEXT) {
+ if (wproducer.attribute("type").toInt() == Text) {
kDebug() << "Found TEXT element in producer" << endl;
QDomElement kproducer = wproducer.cloneNode(true).toElement();
kproducer.setTagName("kdenlive_producer");
QDomNodeList kproducerNodes = m_doc.elementsByTagName("kdenlive_producer");
for (int i = 0; i < kproducerNodes.count() && convert != KMessageBox::No; ++i) {
QDomElement kproducer = kproducerNodes.at(i).toElement();
- if (kproducer.attribute("type").toInt() == TEXT) {
+ if (kproducer.attribute("type").toInt() == Text) {
QDomDocument data;
data.setContent(kproducer.attribute("xmldata"));
QDomNodeList items = data.firstChild().childNodes();
QDomNodeList kproducerNodes = m_doc.elementsByTagName("kdenlive_producer");
for (int i = 0; i < kproducerNodes.count(); ++i) {
QDomElement kproducer = kproducerNodes.at(i).toElement();
- if (kproducer.attribute("type").toInt() == TEXT) {
+ if (kproducer.attribute("type").toInt() == Text) {
QString data = kproducer.attribute("xmldata");
QString datafile = kproducer.attribute("resource");
if (!datafile.endsWith(".kdenlivetitle")) {
{
QString profile = DvdWizardVob::getDvdProfile(format);
if (m_monitor == NULL) {
- m_monitor = new Monitor(Kdenlive::dvdMonitor, m_manager, profile, this);
+ m_monitor = new Monitor(Kdenlive::DvdMonitor, m_manager, profile, this);
//m_monitor->start();
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(m_monitor);
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
adjustSize();
updateGeometry();
- m_manager->activateMonitor(Kdenlive::dvdMonitor);
+ m_manager->activateMonitor(Kdenlive::DvdMonitor);
m_monitor->refreshMonitor();
}
void showComments(bool show);
void startFilterJob(const ItemInfo &info, const QString &clipId, const QString &filterName, const QString &filterParams, const QString &consumer, const QString &consumerParams, const QMap<QString, QString> &extraParams);
void addEffect(ClipItem*,const QDomElement &);
- void importClipKeyframes(GRAPHICSRECTITEM = AVWIDGET);
+ void importClipKeyframes(GraphicsRectItem = AVWidget);
};
#endif
void effectStateChanged(bool enabled);
/** @brief Start an MLT filter job on this clip. */
void startFilterJob(const QString &filterName, const QString &filterParams, const QString &consumer, const QString &consumerParams, const QMap <QString, QString>&);
- void importClipKeyframes(GRAPHICSRECTITEM = AVWIDGET);
+ void importClipKeyframes(GraphicsRectItem = AVWidget);
};
#endif
FolderProjectItem::FolderProjectItem(QTreeWidget * parent, const QStringList & strings, const QString &clipId) :
- QTreeWidgetItem(parent, strings, PROJECTFOLDERTYPE),
+ QTreeWidgetItem(parent, strings, ProjectFoldeType),
m_groupName(strings.at(0)),
m_clipId(clipId)
{
/** Make sure folders appear on top of the tree widget */
virtual bool operator<(const QTreeWidgetItem &other)const {
int column = treeWidget()->sortColumn();
- if (other.type() == PROJECTFOLDERTYPE)
+ if (other.type() == ProjectFoldeType)
return text(column).toLower() < other.text(column).toLower();
else return true;
}
updateEffectLabel(info.effectsList.effectNames());
setAcceptDrops(true);
- if (m_type == VIDEOTRACK) {
+ if (m_type == VideoTrack) {
setBackgroundRole(QPalette::AlternateBase);
setAutoFillBackground(true);
if (!info.isBlind)
m_isSelected = true;
setBackgroundRole(QPalette::Button);
setAutoFillBackground(true);
- } else if (m_type != VIDEOTRACK) {
+ } else if (m_type != VideoTrack) {
m_isSelected = false;
setAutoFillBackground(false);
} else {
{
// Don't show track buttons if size is too small
bool smallTracks = height < 40;
- if (m_type == VIDEOTRACK)
+ if (m_type == VideoTrack)
buttonVideo->setHidden(smallTracks);
buttonAudio->setHidden(smallTracks);
buttonLock->setHidden(smallTracks);
private:
int m_index;
- TRACKTYPE m_type;
+ TrackType m_type;
bool m_isSelected;
QString m_name;
if (e.tagName() == "trackinfo") {
TrackInfo projectTrack;
if (e.attribute("type") == "audio")
- projectTrack.type = AUDIOTRACK;
+ projectTrack.type = AudioTrack;
else
- projectTrack.type = VIDEOTRACK;
+ projectTrack.type = VideoTrack;
projectTrack.isMute = e.attribute("mute").toInt();
projectTrack.isBlind = e.attribute("blind").toInt();
projectTrack.isLocked = e.attribute("locked").toInt();
// Better default names for tracks: Audio 1 etc. instead of blank numbers
for (int i = 0; i < audiotracks; ++i) {
TrackInfo audioTrack;
- audioTrack.type = AUDIOTRACK;
+ audioTrack.type = AudioTrack;
audioTrack.isMute = false;
audioTrack.isBlind = true;
audioTrack.isLocked = false;
}
for (int i = 0; i < videotracks; ++i) {
TrackInfo videoTrack;
- videoTrack.type = VIDEOTRACK;
+ videoTrack.type = VideoTrack;
videoTrack.isMute = false;
videoTrack.isBlind = false;
videoTrack.isLocked = false;
for (int i = 1; i < total; ++i) {
QDomElement track = doc.createElement("track");
track.setAttribute("producer", "playlist" + QString::number(i));
- if (tracks.at(i - 1).type == AUDIOTRACK) {
+ if (tracks.at(i - 1).type == AudioTrack) {
track.setAttribute("hide", "video");
} else if (tracks.at(i - 1).isBlind)
track.setAttribute("hide", "video");
QDomElement tracksinfo = sceneList.createElement("tracksinfo");
foreach(const TrackInfo & info, m_tracksList) {
QDomElement trackinfo = sceneList.createElement("trackinfo");
- if (info.type == AUDIOTRACK) trackinfo.setAttribute("type", "audio");
+ if (info.type == AudioTrack) trackinfo.setAttribute("type", "audio");
trackinfo.setAttribute("mute", info.isMute);
trackinfo.setAttribute("blind", info.isBlind);
trackinfo.setAttribute("locked", info.isLocked);
KUrl::List cacheUrls;
for (int i = 0; i < list.count(); ++i) {
DocClipBase *clip = list.at(i);
- if (clip->clipType() == TEXT) {
+ if (clip->clipType() == Text) {
// the image for title clip must be moved
KUrl oldUrl = clip->fileURL();
KUrl newUrl = KUrl(url.path(KUrl::AddTrailingSlash) + "titles/" + oldUrl.fileName());
elem.setAttribute("id", producerId);
QString path = elem.attribute("resource");
QString extension;
- if (elem.attribute("type").toInt() == SLIDESHOW) {
+ if (elem.attribute("type").toInt() == SlideShow) {
extension = KUrl(path).fileName();
path = KUrl(path).directory();
}
if (elem.hasAttribute("_missingsource")) {
// Clip has proxy but missing original source
}
- else if (path.isEmpty() == false && QFile::exists(path) == false && elem.attribute("type").toInt() != TEXT && !elem.hasAttribute("placeholder")) {
+ else if (path.isEmpty() == false && QFile::exists(path) == false && elem.attribute("type").toInt() != Text && !elem.hasAttribute("placeholder")) {
kDebug() << "// FOUND MISSING CLIP: " << path << ", TYPE: " << elem.attribute("type").toInt();
const QString size = elem.attribute("file_size");
const QString hash = elem.attribute("file_hash");
else
action = (KMessageBox::ButtonCode) KMessageBox::questionYesNoCancel(kapp->activeWindow(), i18n("Clip <b>%1</b><br />is invalid, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search automatically")), KGuiItem(i18n("Keep as placeholder")));
} else {
- if (elem.attribute("type").toInt() == SLIDESHOW) {
+ if (elem.attribute("type").toInt() == SlideShow) {
int res = KMessageBox::questionYesNoCancel(kapp->activeWindow(), i18n("Clip <b>%1</b><br />is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), KGuiItem(i18n("Keep as placeholder")));
if (res == KMessageBox::Yes)
newpath = KFileDialog::getExistingDirectory(KUrl("kfiledialog:///clipfolder"), kapp->activeWindow(), i18n("Looking for %1", path));
elem.setAttribute("placeholder", '1');
}
if (!newpath.isEmpty()) {
- if (elem.attribute("type").toInt() == SLIDESHOW)
+ if (elem.attribute("type").toInt() == SlideShow)
newpath.append('/' + extension);
elem.setAttribute("resource", newpath);
setNewClipResource(clipId, newpath);
int audio = 0;
int video = 0;
foreach(const TrackInfo & info, m_tracksList) {
- if (info.type == VIDEOTRACK) video++;
+ if (info.type == VideoTrack) video++;
else audio++;
}
return QPoint(video, audio);
m_clipMonitorDock = new QDockWidget(i18n("Clip Monitor"), this);
m_clipMonitorDock->setObjectName("clip_monitor");
- m_clipMonitor = new Monitor(Kdenlive::clipMonitor, m_monitorManager, QString(), m_timelineArea);
+ m_clipMonitor = new Monitor(Kdenlive::ClipMonitor, m_monitorManager, QString(), m_timelineArea);
m_clipMonitorDock->setWidget(m_clipMonitor);
// Connect the project list
m_projectMonitorDock = new QDockWidget(i18n("Project Monitor"), this);
m_projectMonitorDock->setObjectName("project_monitor");
- m_projectMonitor = new Monitor(Kdenlive::projectMonitor, m_monitorManager, QString());
+ m_projectMonitor = new Monitor(Kdenlive::ProjectMonitor, m_monitorManager, QString());
m_projectMonitorDock->setWidget(m_projectMonitor);
#ifndef Q_WS_MAC
m_recMonitorDock = new QDockWidget(i18n("Record Monitor"), this);
m_recMonitorDock->setObjectName("record_monitor");
- m_recMonitor = new RecMonitor(Kdenlive::recordMonitor, m_monitorManager);
+ m_recMonitor = new RecMonitor(Kdenlive::RecordMonitor, m_monitorManager);
m_recMonitorDock->setWidget(m_recMonitor);
connect(m_recMonitor, SIGNAL(addProjectClip(KUrl)), this, SLOT(slotAddProjectClip(KUrl)));
connect(m_recMonitor, SIGNAL(addProjectClipList(KUrl::List)), this, SLOT(slotAddProjectClipList(KUrl::List)));
connectDocument(trackView, doc);
} else
m_timelineArea->setTabBarHidden(false);
- m_monitorManager->activateMonitor(Kdenlive::clipMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ClipMonitor);
m_closeAction->setEnabled(m_timelineArea->count() > 1);
}
disconnect(m_effectStack, SIGNAL(displayMessage(QString,int)), this, SLOT(slotGotProgressInfo(QString,int)));
disconnect(m_transitionConfig, SIGNAL(transitionUpdated(Transition*,QDomElement)), m_activeTimeline->projectView() , SLOT(slotTransitionUpdated(Transition*,QDomElement)));
disconnect(m_transitionConfig, SIGNAL(seekTimeline(int)), m_activeTimeline->projectView() , SLOT(setCursorPos(int)));
- disconnect(m_transitionConfig, SIGNAL(importClipKeyframes(GRAPHICSRECTITEM)), m_activeTimeline->projectView() , SLOT(slotImportClipKeyframes(GRAPHICSRECTITEM)));
+ disconnect(m_transitionConfig, SIGNAL(importClipKeyframes(GraphicsRectItem)), m_activeTimeline->projectView() , SLOT(slotImportClipKeyframes(GraphicsRectItem)));
disconnect(m_activeTimeline->projectView(), SIGNAL(activateDocumentMonitor()), m_projectMonitor, SLOT(slotActivateMonitor()));
disconnect(m_activeTimeline, SIGNAL(zoneMoved(int,int)), this, SLOT(slotZoneMoved(int,int)));
connect(trackView, SIGNAL(mousePosition(int)), this, SLOT(slotUpdateMousePosition(int)));
connect(trackView->projectView(), SIGNAL(forceClipProcessing(QString)), m_projectList, SLOT(slotForceProcessing(QString)));
- connect(trackView->projectView(), SIGNAL(importKeyframes(GRAPHICSRECTITEM,QString,int)), this, SLOT(slotProcessImportKeyframes(GRAPHICSRECTITEM,QString,int)));
+ connect(trackView->projectView(), SIGNAL(importKeyframes(GraphicsRectItem,QString,int)), this, SLOT(slotProcessImportKeyframes(GraphicsRectItem,QString,int)));
connect(m_projectMonitor, SIGNAL(renderPosition(int)), trackView, SLOT(moveCursorPos(int)));
connect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), trackView, SLOT(slotSetZone(QPoint)));
connect(m_effectStack, SIGNAL(refreshEffectStack(ClipItem*)), trackView->projectView(), SLOT(slotRefreshEffects(ClipItem*)));
connect(m_effectStack, SIGNAL(seekTimeline(int)), trackView->projectView(), SLOT(seekCursorPos(int)));
- connect(m_effectStack, SIGNAL(importClipKeyframes(GRAPHICSRECTITEM)), trackView->projectView(), SLOT(slotImportClipKeyframes(GRAPHICSRECTITEM)));
+ connect(m_effectStack, SIGNAL(importClipKeyframes(GraphicsRectItem)), trackView->projectView(), SLOT(slotImportClipKeyframes(GraphicsRectItem)));
connect(m_effectStack, SIGNAL(reloadEffects()), this, SLOT(slotReloadEffects()));
connect(m_effectStack, SIGNAL(displayMessage(QString,int)), this, SLOT(slotGotProgressInfo(QString,int)));
// Transition config signals
connect(m_transitionConfig, SIGNAL(transitionUpdated(Transition*,QDomElement)), trackView->projectView() , SLOT(slotTransitionUpdated(Transition*,QDomElement)));
- connect(m_transitionConfig, SIGNAL(importClipKeyframes(GRAPHICSRECTITEM)), trackView->projectView() , SLOT(slotImportClipKeyframes(GRAPHICSRECTITEM)));
+ connect(m_transitionConfig, SIGNAL(importClipKeyframes(GraphicsRectItem)), trackView->projectView() , SLOT(slotImportClipKeyframes(GraphicsRectItem)));
connect(m_transitionConfig, SIGNAL(seekTimeline(int)), trackView->projectView() , SLOT(seekCursorPos(int)));
connect(trackView->projectView(), SIGNAL(activateDocumentMonitor()), m_projectMonitor, SLOT(slotActivateMonitor()));
// Make sure monitor is visible so that it is painted black on startup
show();
- m_monitorManager->activateMonitor(Kdenlive::clipMonitor, true);
+ m_monitorManager->activateMonitor(Kdenlive::ClipMonitor, true);
// set tool to select tool
m_buttonSelectTool->setChecked(true);
}
void MainWindow::slotInsertTrack(int ix)
{
- m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ProjectMonitor);
if (m_activeTimeline) {
if (ix == -1) ix = m_activeTimeline->projectView()->selectedTrack();
m_activeTimeline->projectView()->slotInsertTrack(ix);
void MainWindow::slotDeleteTrack(int ix)
{
- m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ProjectMonitor);
if (m_activeTimeline) {
if (ix == -1) ix = m_activeTimeline->projectView()->selectedTrack();
m_activeTimeline->projectView()->slotDeleteTrack(ix);
void MainWindow::slotConfigTrack(int ix)
{
- m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ProjectMonitor);
if (m_activeTimeline)
m_activeTimeline->projectView()->slotConfigTracks(ix);
if (m_activeDocument)
void MainWindow::slotSelectTrack()
{
- m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ProjectMonitor);
if (m_activeTimeline) {
m_activeTimeline->projectView()->slotSelectClipsInTrack();
}
void MainWindow::slotSelectAllTracks()
{
- m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ProjectMonitor);
if (m_activeTimeline)
m_activeTimeline->projectView()->slotSelectAllClips();
}
void MainWindow::slotShowClipProperties(DocClipBase *clip)
{
- if (clip->clipType() == TEXT) {
+ if (clip->clipType() == Text) {
QString titlepath = m_activeDocument->projectFolder().path(KUrl::AddTrailingSlash) + "titles/";
if (!clip->getProperty("resource").isEmpty() && clip->getProperty("xmldata").isEmpty()) {
// template text clip
// any type of clip but a title
ClipProperties *dia = new ClipProperties(clip, m_activeDocument->timecode(), m_activeDocument->fps(), this);
- if (clip->clipType() == AV || clip->clipType() == VIDEO || clip->clipType() == PLAYLIST || clip->clipType() == SLIDESHOW) {
+ if (clip->clipType() == AV || clip->clipType() == Video || clip->clipType() == Playlist || clip->clipType() == SlideShow) {
// request clip thumbnails
connect(m_activeDocument->clipManager(), SIGNAL(gotClipPropertyThumbnail(QString,QImage)), dia, SLOT(slotGotThumbnail(QString,QImage)));
connect(dia, SIGNAL(requestThumb(QString,QList<int>)), m_activeDocument->clipManager(), SLOT(slotRequestThumbs(QString,QList<int>)));
for (int i = 0; i < cliplist.count(); ++i) {
DocClipBase *clip = cliplist.at(i);
- if (clip->clipType() == IMAGE)
+ if (clip->clipType() == Image)
new EditClipCommand(m_projectList, clip->getId(), clip->currentProperties(newImageProps), newImageProps, true, command);
else
new EditClipCommand(m_projectList, clip->getId(), clip->currentProperties(newProps), newProps, true, command);
void MainWindow::slotChangeTool(QAction * action)
{
if (action == m_buttonSelectTool)
- slotSetTool(SELECTTOOL);
+ slotSetTool(SelectTool);
else if (action == m_buttonRazorTool)
- slotSetTool(RAZORTOOL);
+ slotSetTool(RazorTool);
else if (action == m_buttonSpacerTool)
- slotSetTool(SPACERTOOL);
+ slotSetTool(SpacerTool);
}
void MainWindow::slotChangeEdit(QAction * action)
m_activeTimeline->projectView()->setEditMode(NORMALEDIT);
}
-void MainWindow::slotSetTool(PROJECTTOOL tool)
+void MainWindow::slotSetTool(ProjectTool tool)
{
if (m_activeDocument && m_activeTimeline) {
//m_activeDocument->setTool(tool);
QString message;
switch (tool) {
- case SPACERTOOL:
+ case SpacerTool:
message = i18n("Ctrl + click to use spacer on current track only");
break;
- case RAZORTOOL:
+ case RazorTool:
message = i18n("Click on a clip to cut it");
break;
default:
void MainWindow::slotDvdWizard(const QString &url)
{
// We must stop the monitors since we create a new on in the dvd wizard
- m_monitorManager->activateMonitor(Kdenlive::dvdMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::DvdMonitor);
QPointer<DvdWizard> w = new DvdWizard(m_monitorManager, url, this);
w->exec();
delete w;
- m_monitorManager->activateMonitor(Kdenlive::clipMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ClipMonitor);
}
void MainWindow::slotShowTimeline(bool show)
}
}
-void MainWindow::slotProcessImportKeyframes(GRAPHICSRECTITEM type, const QString& data, int maximum)
+void MainWindow::slotProcessImportKeyframes(GraphicsRectItem type, const QString& data, int maximum)
{
- if (type == AVWIDGET) {
+ if (type == AVWidget) {
// This data should be sent to the effect stack
m_effectStack->setKeyframes(data, maximum);
}
- else if (type == TRANSITIONWIDGET) {
+ else if (type == TransitionWidget) {
// This data should be sent to the transition stack
m_transitionConfig->setKeyframes(data, maximum);
}
void MainWindow::slotAlignPlayheadToMousePos()
{
- m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_monitorManager->activateMonitor(Kdenlive::ProjectMonitor);
m_activeTimeline->projectView()->slotAlignPlayheadToMousePos();
}
void slotActivateTransitionView(Transition *);
void slotChangeTool(QAction * action);
void slotChangeEdit(QAction * action);
- void slotSetTool(PROJECTTOOL tool);
+ void slotSetTool(ProjectTool tool);
void slotSnapForward();
void slotSnapRewind();
void slotClipStart();
/** @brief Save current timeline clip as mlt playlist. */
void slotSaveTimelineClip();
/** @brief Process keyframe data sent from a clip to effect / transition stack. */
- void slotProcessImportKeyframes(GRAPHICSRECTITEM type, const QString& data, int maximum);
+ void slotProcessImportKeyframes(GraphicsRectItem type, const QString& data, int maximum);
/** @brief Move playhead to mouse curser position if defined key is pressed */
void slotAlignPlayheadToMousePos();
/** @brief Set MLT's consumer deinterlace method */
int swidth = (int) (Kdenlive::DefaultThumbHeight * m_profile->width() / m_profile->height() + 0.5);
switch (m_clip->clipType()) {
- case VIDEO:
+ case Video:
case AV:
- case SLIDESHOW:
- case PLAYLIST:
+ case SlideShow:
+ case Playlist:
connect(this, SIGNAL(updateThumb()), m_previewTimer, SLOT(start()));
break;
- case IMAGE:
- case TEXT:
+ case Image:
+ case Text:
m_image = KThumb::getFrame(m_producer, m_in->getValue(), swidth, width, Kdenlive::DefaultThumbHeight);
p = QPixmap::fromImage(m_image);
break;
- case COLOR:
+ case Color:
colour = colour.replace(0, 2, "#");
p.fill(QColor(colour.left(7)));
break;
MltDeviceCapture::MltDeviceCapture(QString profile, VideoSurface *surface, QWidget *parent) :
- AbstractRender(Kdenlive::recordMonitor, parent),
+ AbstractRender(Kdenlive::RecordMonitor, parent),
doCapture(0),
sendFrameForAnalysis(false),
processingImage(false),
#define SEEK_INACTIVE (-1)
-Monitor::Monitor(Kdenlive::MONITORID id, MonitorManager *manager, QString profile, QWidget *parent) :
+Monitor::Monitor(Kdenlive::MonitorId id, MonitorManager *manager, QString profile, QWidget *parent) :
AbstractMonitor(id, manager, parent)
, render(NULL)
, m_currentClip(NULL)
m_pauseIcon = KIcon("media-playback-pause");
- if (id != Kdenlive::dvdMonitor) {
+ if (id != Kdenlive::DvdMonitor) {
m_toolbar->addAction(KIcon("kdenlive-zone-start"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
m_toolbar->addAction(KIcon("kdenlive-zone-end"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
}
playButton->setDefaultAction(m_playAction);
- if (id != Kdenlive::dvdMonitor) {
+ if (id != Kdenlive::DvdMonitor) {
QToolButton *configButton = new QToolButton(m_toolbar);
m_configMenu = new QMenu(i18n("Misc..."), this);
configButton->setIcon(KIcon("system-run"));
configButton->setPopupMode(QToolButton::QToolButton::InstantPopup);
m_toolbar->addWidget(configButton);
- if (id == Kdenlive::clipMonitor) {
+ if (id == Kdenlive::ClipMonitor) {
m_markerMenu = new QMenu(i18n("Go to marker..."), this);
m_markerMenu->setEnabled(false);
m_configMenu->addMenu(m_markerMenu);
// Monitor ruler
m_ruler = new SmallRuler(this, render);
- if (id == Kdenlive::dvdMonitor) m_ruler->setZone(-3, -2);
+ if (id == Kdenlive::DvdMonitor) m_ruler->setZone(-3, -2);
layout->addWidget(m_ruler);
connect(m_audioSlider, SIGNAL(valueChanged(int)), this, SLOT(slotSetVolume(int)));
connect(render, SIGNAL(rendererStopped(int)), this, SLOT(rendererStopped(int)));
connect(render, SIGNAL(rendererPosition(int)), this, SLOT(seekCursor(int)));
- if (id != Kdenlive::clipMonitor) {
+ if (id != Kdenlive::ClipMonitor) {
connect(render, SIGNAL(rendererPosition(int)), this, SIGNAL(renderPosition(int)));
connect(render, SIGNAL(durationChanged(int)), this, SIGNAL(durationChanged(int)));
connect(m_ruler, SIGNAL(zoneChanged(QPoint)), this, SIGNAL(zoneUpdated(QPoint)));
if (videoSurface) videoSurface->show();
- if (id == Kdenlive::projectMonitor) {
+ if (id == Kdenlive::ProjectMonitor) {
m_effectWidget = new MonitorEditWidget(render, videoBox);
connect(m_effectWidget, SIGNAL(showEdit(bool,bool)), this, SLOT(slotShowEffectScene(bool,bool)));
m_toolbar->addAction(m_effectWidget->getVisibilityAction());
}
//TODO: add save zone to timeline monitor when fixed
- if (m_id == Kdenlive::clipMonitor) {
+ if (m_id == Kdenlive::ClipMonitor) {
m_contextMenu->addMenu(m_markerMenu);
m_contextMenu->addAction(KIcon("document-save"), i18n("Save zone"), this, SLOT(slotSaveZone()));
QAction *extractZone = m_configMenu->addAction(KIcon("document-new"), i18n("Extract Zone"), this, SLOT(slotExtractCurrentZone()));
QAction *extractFrame = m_configMenu->addAction(KIcon("document-new"), i18n("Extract frame"), this, SLOT(slotExtractCurrentFrame()));
m_contextMenu->addAction(extractFrame);
- if (m_id != Kdenlive::clipMonitor) {
+ if (m_id != Kdenlive::ClipMonitor) {
QAction *splitView = m_contextMenu->addAction(KIcon("view-split-left-right"), i18n("Split view"), render, SLOT(slotSplitView(bool)));
splitView->setCheckable(true);
m_configMenu->addAction(splitView);
void Monitor::slotShowEffectScene(bool show, bool manuallyTriggered)
{
- if (m_id == Kdenlive::projectMonitor) {
+ if (m_id == Kdenlive::ProjectMonitor) {
if (!m_effectWidget->getVisibilityAction()->isChecked())
show = false;
if (m_effectWidget->isVisible() == show)
Q_OBJECT
public:
- Monitor(Kdenlive::MONITORID id, MonitorManager *manager, QString profile = QString(), QWidget *parent = 0);
+ Monitor(Kdenlive::MonitorId id, MonitorManager *manager, QString profile = QString(), QWidget *parent = 0);
~Monitor();
Render *render;
AbstractRender *abstractRender();
m_clipMonitor = clipMonitor;
m_projectMonitor = projectMonitor;
- connect(m_clipMonitor->render, SIGNAL(activateMonitor(Kdenlive::MONITORID)), this, SLOT(activateMonitor(Kdenlive::MONITORID)));
- connect(m_projectMonitor->render, SIGNAL(activateMonitor(Kdenlive::MONITORID)), this, SLOT(activateMonitor(Kdenlive::MONITORID)));
+ connect(m_clipMonitor->render, SIGNAL(activateMonitor(Kdenlive::MonitorId)), this, SLOT(activateMonitor(Kdenlive::MonitorId)));
+ connect(m_projectMonitor->render, SIGNAL(activateMonitor(Kdenlive::MonitorId)), this, SLOT(activateMonitor(Kdenlive::MonitorId)));
m_monitorsList.append(clipMonitor);
m_monitorsList.append(projectMonitor);
m_monitorsList.removeAll(monitor);
}
-AbstractMonitor* MonitorManager::monitor(Kdenlive::MONITORID monitorName)
+AbstractMonitor* MonitorManager::monitor(Kdenlive::MonitorId monitorName)
{
AbstractMonitor *monitor = NULL;
for (int i = 0; i < m_monitorsList.size(); ++i) {
if (m_projectMonitor) m_projectMonitor->render->setConsumerProperty(name, value);
}
-bool MonitorManager::activateMonitor(Kdenlive::MONITORID name, bool forceRefresh)
+bool MonitorManager::activateMonitor(Kdenlive::MonitorId name, bool forceRefresh)
{
if (m_clipMonitor == NULL || m_projectMonitor == NULL)
return false;
return (m_activeMonitor != NULL);
}
-bool MonitorManager::isActive(Kdenlive::MONITORID id) const
+bool MonitorManager::isActive(Kdenlive::MonitorId id) const
{
return m_activeMonitor ? m_activeMonitor->id() == id: false;
}
void MonitorManager::slotSwitchMonitors(bool activateClip)
{
if (activateClip)
- activateMonitor(Kdenlive::clipMonitor);
+ activateMonitor(Kdenlive::ClipMonitor);
else
- activateMonitor(Kdenlive::projectMonitor);
+ activateMonitor(Kdenlive::ProjectMonitor);
}
void MonitorManager::stopActiveMonitor()
return;
}
blockSignals(true);
- Kdenlive::MONITORID active = m_activeMonitor ? m_activeMonitor->id() : Kdenlive::noMonitor;
+ Kdenlive::MonitorId active = m_activeMonitor ? m_activeMonitor->id() : Kdenlive::NoMonitor;
m_clipMonitor->resetProfile(KdenliveSettings::current_profile());
m_projectMonitor->resetProfile(KdenliveSettings::current_profile());
- if (active != Kdenlive::noMonitor) activateMonitor(active);
+ if (active != Kdenlive::NoMonitor) activateMonitor(active);
blockSignals(false);
if (m_activeMonitor) m_activeMonitor->parentWidget()->raise();
emit checkColorScopes();
/** Searches for a monitor with the given name.
@return NULL, if no monitor could be found, or the monitor otherwise.
*/
- AbstractMonitor *monitor(Kdenlive::MONITORID monitorName);
+ AbstractMonitor *monitor(Kdenlive::MonitorId monitorName);
void updateScopeSource();
void clearScopeSource();
/** @brief Returns current project's folder. */
/** @brief Activates a monitor.
* @param name name of the monitor to activate */
- bool activateMonitor(Kdenlive::MONITORID, bool forceRefresh = false);
- bool isActive(Kdenlive::MONITORID id) const;
+ bool activateMonitor(Kdenlive::MonitorId, bool forceRefresh = false);
+ bool isActive(Kdenlive::MonitorId id) const;
void slotPlay();
void slotPause();
void slotPlayZone();
const int itemHeight = 38;
ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip, const QSize &pixmapSize) :
- QTreeWidgetItem(parent, PROJECTCLIPTYPE),
+ QTreeWidgetItem(parent, ProjectClipType),
m_clip(clip),
m_clipId(clip->getId()),
m_pixmapSet(false)
}
ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip, const QSize &pixmapSize) :
- QTreeWidgetItem(parent, PROJECTCLIPTYPE),
+ QTreeWidgetItem(parent, ProjectClipType),
m_clip(clip),
m_clipId(clip->getId()),
m_pixmapSet(false)
else setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsDropEnabled);
QString name = m_clip->getProperty("name");
if (name.isEmpty()) name = KUrl(m_clip->getProperty("resource")).fileName();
- m_clipType = (CLIPTYPE) m_clip->getProperty("type").toInt();
+ m_clipType = (ClipType) m_clip->getProperty("type").toInt();
switch(m_clipType) {
- case AUDIO:
+ case Audio:
setData(0, Qt::DecorationRole, KIcon("audio-x-generic").pixmap(pixmapSize));
m_pixmapSet = true;
break;
- case IMAGE:
- case SLIDESHOW:
+ case Image:
+ case SlideShow:
setData(0, Qt::DecorationRole, KIcon("image-x-generic").pixmap(pixmapSize));
break;
default:
setData(0, Qt::DecorationRole, KIcon("video-x-generic").pixmap(pixmapSize));
}
- if (m_clipType != UNKNOWN) slotSetToolTip();
+ if (m_clipType != Unknown) slotSetToolTip();
setText(0, name);
setText(1, m_clip->description());
if (duration != GenTime()) {
durationText = Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps());
}
- if (m_clipType == PLAYLIST) {
+ if (m_clipType == Playlist) {
// Check if the playlist xml contains a proxy inside, and inform user
if (playlistHasProxies(m_clip->fileURL().path())) {
durationText.prepend(i18n("Contains proxies") + " / ");
return m_clipId;
}
-CLIPTYPE ProjectItem::clipType() const
+ClipType ProjectItem::clipType() const
{
return m_clipType;
}
const KUrl ProjectItem::clipUrl() const
{
- if (m_clipType != COLOR && m_clipType != VIRTUAL && m_clipType != UNKNOWN)
+ if (m_clipType != Color && m_clipType != Virtual && m_clipType != Unknown)
return KUrl(m_clip->getProperty("resource"));
else return KUrl();
}
m_clip->setProperties(attributes);
m_clip->setMetadata(metadata);
- if (m_clipType == UNKNOWN) {
+ if (m_clipType == Unknown) {
QString cliptype = attributes.value("type");
- if (cliptype == "audio") m_clipType = AUDIO;
- else if (cliptype == "video") m_clipType = VIDEO;
+ if (cliptype == "audio") m_clipType = Audio;
+ else if (cliptype == "video") m_clipType = Video;
else if (cliptype == "av") m_clipType = AV;
- else if (cliptype == "playlist") m_clipType = PLAYLIST;
+ else if (cliptype == "playlist") m_clipType = Playlist;
else m_clipType = AV;
m_clip->setClipType(m_clipType);
slotSetToolTip();
- if (m_clipType == PLAYLIST) {
+ if (m_clipType == Playlist) {
// Check if the playlist xml contains a proxy inside, and inform user
if (playlistHasProxies(m_clip->fileURL().path())) {
prefix = i18n("Contains proxies") + " / ";
}
}
-void ProjectItem::setJobStatus(JOBTYPE jobType, CLIPJOBSTATUS status, int progress, const QString &statusMessage)
+void ProjectItem::setJobStatus(JOBTYPE jobType, ClipJobStatus status, int progress, const QString &statusMessage)
{
setData(0, JobTypeRole, jobType);
if (progress > 0) setData(0, JobProgressRole, qMin(100, progress));
else {
setData(0, JobProgressRole, status);
- if ((status == JOBABORTED || status == JOBCRASHED || status == JOBDONE) || !statusMessage.isEmpty())
+ if ((status == JobAborted || status == JobCrashed || status == JobDone) || !statusMessage.isEmpty())
setData(0, JobStatusMessage, statusMessage);
slotSetToolTip();
}
}
-void ProjectItem::setConditionalJobStatus(CLIPJOBSTATUS status, JOBTYPE requestedJobType)
+void ProjectItem::setConditionalJobStatus(ClipJobStatus status, JOBTYPE requestedJobType)
{
if (data(0, JobTypeRole).toInt() == requestedJobType) {
setData(0, JobProgressRole, status);
bool ProjectItem::hasProxy() const
{
if (m_clip == NULL) return false;
- if (m_clip->getProperty("proxy").size() < 2 || data(0, JobProgressRole).toInt() == JOBCRASHED) return false;
+ if (m_clip->getProperty("proxy").size() < 2 || data(0, JobProgressRole).toInt() == JobCrashed) return false;
return true;
}
bool ProjectItem::isProxyReady() const
{
- return (data(0, JobProgressRole).toInt() == JOBDONE);
+ return (data(0, JobProgressRole).toInt() == JobDone);
}
bool ProjectItem::isJobRunning() const
{
int s = data(0, JobProgressRole).toInt();
- if (s == JOBWAITING || s == JOBWORKING || s > 0) return true;
+ if (s == JobWaiting || s == JobWorking || s > 0) return true;
return false;
}
bool ProjectItem::isProxyRunning() const
{
int s = data(0, JobProgressRole).toInt();
- if ((s == JOBWORKING || s > 0) && data(0, JobTypeRole).toInt() == (int) PROXYJOB) return true;
+ if ((s == JobWorking || s > 0) && data(0, JobTypeRole).toInt() == (int) PROXYJOB) return true;
return false;
}
const QString &clipId() const;
const KUrl clipUrl() const;
int clipMaxDuration() const;
- CLIPTYPE clipType() const;
+ ClipType clipType() const;
void changeDuration(int frames);
DocClipBase *referencedClip();
void setProperties(const QMap <QString, QString> &props);
static int itemDefaultHeight();
void slotSetToolTip();
/** \brief Set the status of the clip job. */
- void setJobStatus(JOBTYPE jobType, CLIPJOBSTATUS status, int progress = 0, const QString &statusMessage = QString());
+ void setJobStatus(JOBTYPE jobType, ClipJobStatus status, int progress = 0, const QString &statusMessage = QString());
/** \brief Set the status of a clip job if it is of the specified job type. */
- void setConditionalJobStatus(CLIPJOBSTATUS status, JOBTYPE requestedJobType);
+ void setConditionalJobStatus(ClipJobStatus status, JOBTYPE requestedJobType);
/** \brief Returns the proxy status for this clip (true means there is a proxy clip). */
bool hasProxy() const;
/** \brief Returns true if the proxy for this clip is ready. */
virtual bool operator<(const QTreeWidgetItem &other)const {
int column = treeWidget()->sortColumn();
- if (other.type() != PROJECTFOLDERTYPE)
+ if (other.type() != ProjectFoldeType)
return text(column).toLower() < other.text(column).toLower();
else return false;
}
private:
- CLIPTYPE m_clipType;
+ ClipType m_clipType;
DocClipBase *m_clip;
QString m_clipId;
bool m_pixmapSet;
{
m_abortAllJobs = true;
for (int i = 0; i < m_jobList.count(); ++i) {
- m_jobList.at(i)->setStatus(JOBABORTED);
+ m_jobList.at(i)->setStatus(JobAborted);
}
m_closing = true;
m_thumbnailQueue.clear();
{
QList<QTreeWidgetItem *> list = m_listView->selectedItems();
if (list.isEmpty()) return;
- if (list.count() > 1 || list.at(0)->type() == PROJECTFOLDERTYPE) {
+ if (list.count() > 1 || list.at(0)->type() == ProjectFoldeType) {
editClipSelection(list);
return;
}
ProjectItem *item;
- if (!m_listView->currentItem() || m_listView->currentItem()->type() == PROJECTFOLDERTYPE)
+ if (!m_listView->currentItem() || m_listView->currentItem()->type() == ProjectFoldeType)
return;
- if (m_listView->currentItem()->type() == PROJECTSUBCLIPTYPE)
+ if (m_listView->currentItem()->type() == ProjectSubclipType)
item = static_cast <ProjectItem*>(m_listView->currentItem()->parent());
else
item = static_cast <ProjectItem*>(m_listView->currentItem());
ProjectItem *item;
for (int i = 0; i < list.count(); ++i) {
item = NULL;
- if (list.at(i)->type() == PROJECTFOLDERTYPE) {
+ if (list.at(i)->type() == ProjectFoldeType) {
// Add folder items to the list
int ct = list.at(i)->childCount();
for (int j = 0; j < ct; j++) {
}
continue;
}
- else if (list.at(i)->type() == PROJECTSUBCLIPTYPE)
+ else if (list.at(i)->type() == ProjectSubclipType)
item = static_cast <ProjectItem*>(list.at(i)->parent());
else
item = static_cast <ProjectItem*>(list.at(i));
// check properties
DocClipBase *clip = item->referencedClip();
if (clipList.contains(clip)) continue;
- if (clip->clipType() == IMAGE) {
+ if (clip->clipType() == Image) {
hasImages = true;
if (clip->getProperty("transparency").isEmpty() || clip->getProperty("transparency").toInt() == 0) {
if (transparency == "-") {
}
}
}
- if (clip->clipType() != COLOR && clip->clipType() != IMAGE && clip->clipType() != TEXT)
+ if (clip->clipType() != Color && clip->clipType() != Image && clip->clipType() != Text)
allowDurationChange = false;
if (allowDurationChange && commonDuration != 0) {
if (commonDuration == -1)
void ProjectList::slotOpenClip()
{
ProjectItem *item;
- if (!m_listView->currentItem() || m_listView->currentItem()->type() == PROJECTFOLDERTYPE)
+ if (!m_listView->currentItem() || m_listView->currentItem()->type() == ProjectFoldeType)
return;
if (m_listView->currentItem()->type() == QTreeWidgetItem::UserType + 1)
item = static_cast <ProjectItem*>(m_listView->currentItem()->parent());
else
item = static_cast <ProjectItem*>(m_listView->currentItem());
if (item) {
- if (item->clipType() == IMAGE) {
+ if (item->clipType() == Image) {
if (KdenliveSettings::defaultimageapp().isEmpty())
KMessageBox::sorry(kapp->activeWindow(), i18n("Please set a default application to open images in the Settings dialog"));
else
QProcess::startDetached(KdenliveSettings::defaultimageapp(), QStringList() << item->clipUrl().path());
}
- if (item->clipType() == AUDIO) {
+ if (item->clipType() == Audio) {
if (KdenliveSettings::defaultaudioapp().isEmpty())
KMessageBox::sorry(kapp->activeWindow(), i18n("Please set a default application to open audio files in the Settings dialog"));
else
QTreeWidgetItemIterator it(m_listView);
ProjectItem *item;
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
it++;
continue;
}
QStringList ids;
QStringList urls;
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
it++;
continue;
}
// Check that we don't use the URL in another clip
QTreeWidgetItemIterator it2(m_listView);
while (*it2) {
- if ((*it2)->type() != PROJECTCLIPTYPE) {
+ if ((*it2)->type() != ProjectClipType) {
it2++;
continue;
}
}
ProjectItem *item;
for (int i = 0; i < selected.count(); ++i) {
- if (selected.at(i)->type() != PROJECTCLIPTYPE) {
- if (selected.at(i)->type() == PROJECTFOLDERTYPE) {
+ if (selected.at(i)->type() != ProjectClipType) {
+ if (selected.at(i)->type() == ProjectFoldeType) {
for (int j = 0; j < selected.at(i)->childCount(); j++)
selected.append(selected.at(i)->child(j));
}
kDebug()<<"//// TRYING TO RELOAD: "<<item->clipId()<<", but it is busy";
continue;
}
- CLIPTYPE t = item->clipType();
- if (t == TEXT) {
+ ClipType t = item->clipType();
+ if (t == Text) {
if (clip && !clip->getProperty("xmltemplate").isEmpty())
regenerateTemplate(item);
- } else if (t != COLOR && t != SLIDESHOW && clip && clip->checkHash() == false) {
+ } else if (t != Color && t != SlideShow && clip && clip->checkHash() == false) {
item->referencedClip()->setPlaceHolder(true);
item->setProperty("file_hash", QString());
- } else if (t == IMAGE) {
+ } else if (t == Image) {
//clip->getProducer() clip->getProducer()->set("force_reload", 1);
}
QDomElement e = item->toXml();
// Make sure we get the correct producer length if it was adjusted in timeline
- if (t == COLOR || t == IMAGE || t == SLIDESHOW || t == TEXT) {
+ if (t == Color || t == Image || t == SlideShow || t == Text) {
int length = QString(clip->producerProperty("length")).toInt();
if (length > 0 && !e.hasAttribute("length")) {
e.setAttribute("length", length);
bool missing = false;
QTreeWidgetItemIterator it(m_listView);
while (*it) {
- if ((*it)->type() == PROJECTCLIPTYPE && !((*it)->flags() & Qt::ItemIsDragEnabled)) {
+ if ((*it)->type() == ProjectClipType && !((*it)->flags() & Qt::ItemIsDragEnabled)) {
missing = true;
break;
}
QTreeWidgetItem *item = m_listView->currentItem();
ProjectItem *clip = NULL;
if (item) {
- if (item->type() == PROJECTFOLDERTYPE) {
+ if (item->type() == ProjectFoldeType) {
emit clipSelected(NULL);
m_editButton->defaultAction()->setEnabled(item->childCount() > 0);
m_deleteButton->defaultAction()->setEnabled(true);
m_transcodeAction->setEnabled(false);
m_clipsActionsMenu->setEnabled(false);
} else {
- if (item->type() == PROJECTSUBCLIPTYPE) {
+ if (item->type() == ProjectSubclipType) {
// this is a sub item, use base clip
m_deleteButton->defaultAction()->setEnabled(true);
clip = static_cast <ProjectItem*>(item->parent());
m_extractAudioAction->setEnabled(true);
m_transcodeAction->setEnabled(true);
m_clipsActionsMenu->setEnabled(true);
- if (clip && clip->clipType() == IMAGE && !KdenliveSettings::defaultimageapp().isEmpty()) {
+ if (clip && clip->clipType() == Image && !KdenliveSettings::defaultimageapp().isEmpty()) {
m_openAction->setIcon(KIcon(KdenliveSettings::defaultimageapp()));
m_openAction->setEnabled(true);
- } else if (clip && clip->clipType() == AUDIO && !KdenliveSettings::defaultaudioapp().isEmpty()) {
+ } else if (clip && clip->clipType() == Audio && !KdenliveSettings::defaultaudioapp().isEmpty()) {
m_openAction->setIcon(KIcon(KdenliveSettings::defaultaudioapp()));
m_openAction->setEnabled(true);
} else {
void ProjectList::adjustProxyActions(ProjectItem *clip) const
{
if (!m_proxyAction) return;
- if (clip == NULL || clip->type() != PROJECTCLIPTYPE || clip->clipType() == COLOR || clip->clipType() == TEXT || clip->clipType() == SLIDESHOW || clip->clipType() == AUDIO) {
+ if (clip == NULL || clip->type() != ProjectClipType || clip->clipType() == Color || clip->clipType() == Text || clip->clipType() == SlideShow || clip->clipType() == Audio) {
m_proxyAction->setEnabled(false);
return;
}
void ProjectList::adjustStabilizeActions(ProjectItem *clip) const
{
- if (clip == NULL || clip->type() != PROJECTCLIPTYPE || clip->clipType() == COLOR || clip->clipType() == TEXT || clip->clipType() == SLIDESHOW) {
+ if (clip == NULL || clip->type() != ProjectClipType || clip->clipType() == Color || clip->clipType() == Text || clip->clipType() == SlideShow) {
m_clipsActionsMenu->setEnabled(false);
return;
}
void ProjectList::adjustTranscodeActions(ProjectItem *clip) const
{
- if (clip == NULL || clip->type() != PROJECTCLIPTYPE || clip->clipType() == COLOR || clip->clipType() == TEXT || clip->clipType() == PLAYLIST || clip->clipType() == SLIDESHOW) {
+ if (clip == NULL || clip->type() != ProjectClipType || clip->clipType() == Color || clip->clipType() == Text || clip->clipType() == Playlist || clip->clipType() == SlideShow) {
m_transcodeAction->setEnabled(false);
m_extractAudioAction->setEnabled(false);
return;
if (properties.contains("proxy")) {
if (properties.value("proxy") == "-" || properties.value("proxy").isEmpty())
// this should only apply to proxy jobs
- clip->setConditionalJobStatus(NOJOB, PROXYJOB);
+ clip->setConditionalJobStatus(NoJob, PROXYJOB);
}
if (properties.contains("name")) {
monitorItemEditing(false);
emit clipNameChanged(clip->clipId(), properties.value("name"));
}
if (properties.contains("description")) {
- CLIPTYPE type = clip->clipType();
+ ClipType type = clip->clipType();
monitorItemEditing(false);
clip->setText(1, properties.value("description"));
monitorItemEditing(true);
void ProjectList::slotItemEdited(QTreeWidgetItem *item, int column)
{
- if (item->type() == PROJECTSUBCLIPTYPE) {
+ if (item->type() == ProjectSubclipType) {
// this is a sub-item
if (column == 1) {
// user edited description
}
return;
}
- if (item->type() == PROJECTFOLDERTYPE) {
+ if (item->type() == ProjectFoldeType) {
if (column == 0) {
FolderProjectItem *folder = static_cast <FolderProjectItem*>(item);
if (item->text(0) == folder->groupName()) return;
oldprops["description"] = clip->referencedClip()->getProperty("description");
newprops["description"] = item->text(1);
- if (clip->clipType() == TEXT) {
+ if (clip->clipType() == Text) {
// This is a text template clip, update the image
/*oldprops.insert("xmldata", clip->referencedClip()->getProperty("xmldata"));
newprops.insert("xmldata", generateTemplateXml(clip->referencedClip()->getProperty("xmltemplate"), item->text(2)).toString());*/
m_clipsActionsMenu->setEnabled(enable);
if (enable) {
ProjectItem *clip = NULL;
- if (m_listView->currentItem()->type() == PROJECTSUBCLIPTYPE) {
+ if (m_listView->currentItem()->type() == ProjectSubclipType) {
clip = static_cast <ProjectItem*>(item->parent());
m_extractAudioAction->setEnabled(false);
m_transcodeAction->setEnabled(false);
m_clipsActionsMenu->setEnabled(false);
adjustProxyActions(clip);
- } else if (m_listView->currentItem()->type() == PROJECTCLIPTYPE) {
+ } else if (m_listView->currentItem()->type() == ProjectClipType) {
clip = static_cast <ProjectItem*>(item);
// Display relevant transcoding actions only
adjustTranscodeActions(clip);
m_transcodeAction->setEnabled(false);
m_clipsActionsMenu->setEnabled(false);
}
- if (clip && clip->clipType() == IMAGE && !KdenliveSettings::defaultimageapp().isEmpty()) {
+ if (clip && clip->clipType() == Image && !KdenliveSettings::defaultimageapp().isEmpty()) {
m_openAction->setIcon(KIcon(KdenliveSettings::defaultimageapp()));
m_openAction->setEnabled(true);
- } else if (clip && clip->clipType() == AUDIO && !KdenliveSettings::defaultaudioapp().isEmpty()) {
+ } else if (clip && clip->clipType() == Audio && !KdenliveSettings::defaultaudioapp().isEmpty()) {
m_openAction->setIcon(KIcon(KdenliveSettings::defaultaudioapp()));
m_openAction->setEnabled(true);
} else {
QUndoCommand *delCommand = new QUndoCommand();
delCommand->setText(i18n("Delete Clip Zone"));
for (int i = 0; i < selected.count(); ++i) {
- if (selected.at(i)->type() == PROJECTSUBCLIPTYPE) {
+ if (selected.at(i)->type() == ProjectSubclipType) {
// subitem
SubProjectItem *sub = static_cast <SubProjectItem *>(selected.at(i));
ProjectItem *item = static_cast <ProjectItem *>(sub->parent());
new AddClipCutCommand(this, item->clipId(), sub->zone().x(), sub->zone().y(), sub->description(), false, true, delCommand);
- } else if (selected.at(i)->type() == PROJECTFOLDERTYPE) {
+ } else if (selected.at(i)->type() == ProjectFoldeType) {
// folder
FolderProjectItem *folder = static_cast <FolderProjectItem *>(selected.at(i));
folderids[folder->groupName()] = folder->clipId();
if (!m_listView->currentItem())
m_listView->setCurrentItem(m_listView->topLevelItem(0));
QTreeWidgetItem *item = m_listView->currentItem();
- if (item && item->type() == PROJECTCLIPTYPE) {
+ if (item && item->type() == ProjectClipType) {
m_editButton->defaultAction()->setEnabled(true);
m_openAction->setEnabled(true);
m_reloadAction->setEnabled(true);
m_clipsActionsMenu->setEnabled(true);
return;
}
- else if (item && item->type() == PROJECTFOLDERTYPE && item->childCount() > 0) {
+ else if (item && item->type() == ProjectFoldeType && item->childCount() > 0) {
m_editButton->defaultAction()->setEnabled(true);
}
else m_editButton->defaultAction()->setEnabled(false);
ProjectItem *item;
while (*it && !m_closing) {
- if ((*it)->type() == PROJECTCLIPTYPE) {
+ if ((*it)->type() == ProjectClipType) {
item = static_cast <ProjectItem *>(*it);
if (item->referencedClip()->getProperty("proxy") == proxyPath)
slotGotProxy(item);
QDomElement e = clip->toXML().cloneNode().toElement();
// Make sure we get the correct producer length if it was adjusted in timeline
- CLIPTYPE t = item->clipType();
- if (t == COLOR || t == IMAGE || t == SLIDESHOW || t == TEXT) {
+ ClipType t = item->clipType();
+ if (t == Color || t == Image || t == SlideShow || t == Text) {
int length = QString(clip->producerProperty("length")).toInt();
if (length > 0 && !e.hasAttribute("length")) {
e.setAttribute("length", length);
m_listView->blockSignals(true);
m_abortAllJobs = true;
for (int i = 0; i < m_jobList.count(); ++i) {
- m_jobList.at(i)->setStatus(JOBABORTED);
+ m_jobList.at(i)->setStatus(JobAborted);
}
m_closing = true;
m_jobThreads.waitForFinished();
while (*it) {
emit displayMessage(i18n("Loading thumbnails"), (int)(100 *(max - ct++) / max));
- if ((*it)->type() == PROJECTSUBCLIPTYPE) {
+ if ((*it)->type() == ProjectSubclipType) {
// subitem
SubProjectItem *sub = static_cast <SubProjectItem *>(*it);
if (displayRatioChanged) {
}
++it;
continue;
- } else if ((*it)->type() == PROJECTFOLDERTYPE) {
+ } else if ((*it)->type() == ProjectFoldeType) {
// folder
++it;
continue;
bool replace = false;
if (brokenClips.contains(item->clipId())) {
// if this is a proxy clip, disable proxy
- item->setConditionalJobStatus(NOJOB, PROXYJOB);
+ item->setConditionalJobStatus(NoJob, PROXYJOB);
discardJobs(item->clipId(), PROXYJOB);
clip->setProperty("proxy", "-");
replace = true;
kDebug() << "Proxy duration is wrong, try changing transcoding parameters.";
emit displayMessage(i18n("Proxy clip unusable (duration is different from original)."), -2, ErrorMessage);
}
- slotUpdateJobStatus(item, PROXYJOB, JOBCRASHED, i18n("Failed to create proxy for %1. check parameters", item->text(0)), "project_settings");
+ slotUpdateJobStatus(item, PROXYJOB, JobCrashed, i18n("Failed to create proxy for %1. check parameters", item->text(0)), "project_settings");
QString path = item->referencedClip()->getProperty("proxy");
KUrl proxyFolder(m_doc->projectFolder().path( KUrl::AddTrailingSlash) + "proxy/");
{
QStringList result;
QTreeWidgetItem *item = m_listView->currentItem();
- while (item && item->type() != PROJECTFOLDERTYPE)
+ while (item && item->type() != ProjectFoldeType)
item = item->parent();
if (item) {
m_listView->blockSignals(true);
m_abortAllJobs = true;
for (int i = 0; i < m_jobList.count(); ++i) {
- m_jobList.at(i)->setStatus(JOBABORTED);
+ m_jobList.at(i)->setStatus(JobAborted);
}
m_closing = true;
m_jobThreads.waitForFinished();
if (!item && framePos == 0) pItem = getItemById(id);
if (!item && !pItem) return;
if (item) {
- if (item->type() == PROJECTCLIPTYPE) static_cast<ProjectItem*>(item)->setPixmap(QPixmap::fromImage(img));
+ if (item->type() == ProjectClipType) static_cast<ProjectItem*>(item)->setPixmap(QPixmap::fromImage(img));
else item->setData(0, Qt::DecorationRole, QPixmap::fromImage(img));
}
else if (pItem) pItem->setPixmap(QPixmap::fromImage(img));
doc.appendChild(prods);
QTreeWidgetItemIterator it(m_listView);
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
// subitem
++it;
continue;
ProjectItem *item = NULL;
bool isSubItem = false;
int frame;
- if (it->type() == PROJECTFOLDERTYPE) return;
- if (it->type() == PROJECTSUBCLIPTYPE) {
+ if (it->type() == ProjectFoldeType) return;
+ if (it->type() == ProjectSubclipType) {
item = static_cast <ProjectItem *>(it->parent());
frame = static_cast <SubProjectItem *>(it)->zone().x();
isSubItem = true;
int height = m_listView->iconSize().height();
int swidth = (int)(height * m_render->frameRenderWidth() / m_render->renderHeight()+ 0.5);
int dwidth = (int)(height * m_render->dar() + 0.5);
- if (clip->clipType() == IMAGE) {
+ if (clip->clipType() == Image) {
img = KThumb::getFrame(item->referencedClip()->getProducer(), 0, swidth, dwidth, height);
}
- else if (clip->clipType() != AUDIO) {
+ else if (clip->clipType() != Audio) {
img = item->referencedClip()->extractImage(frame, dwidth, height);
}
if (!img.isNull()) {
void ProjectList::extractMetadata(DocClipBase *clip)
{
- CLIPTYPE t = clip->clipType();
- if (t != AV && t != VIDEO) {
+ ClipType t = clip->clipType();
+ if (t != AV && t != Video) {
// Currently, we only use exiftool on video files
return;
}
// Proxy stuff
QString size = properties.value("frame_size");
if (!useProxy() && clip->getProperty("proxy").isEmpty()) {
- item->setConditionalJobStatus(NOJOB, PROXYJOB);
+ item->setConditionalJobStatus(NoJob, PROXYJOB);
discardJobs(clipId, PROXYJOB);
}
if (useProxy() && generateProxy() && clip->getProperty("proxy") == "-") {
- item->setConditionalJobStatus(NOJOB, PROXYJOB);
+ item->setConditionalJobStatus(NoJob, PROXYJOB);
discardJobs(clipId, PROXYJOB);
}
else if (useProxy() && !item->hasProxy() && !hasPendingJob(item, PROXYJOB)) {
// proxy video and image clips
int maxSize;
- CLIPTYPE t = item->clipType();
- if (t == IMAGE) maxSize = m_doc->getDocumentProperty("proxyimageminsize").toInt();
+ ClipType t = item->clipType();
+ if (t == Image) maxSize = m_doc->getDocumentProperty("proxyimageminsize").toInt();
else maxSize = m_doc->getDocumentProperty("proxyminsize").toInt();
- if ((((t == AV || t == VIDEO || t == PLAYLIST) && generateProxy()) || (t == IMAGE && generateImageProxy())) && (size.section('x', 0, 0).toInt() > maxSize || size.section('x', 1, 1).toInt() > maxSize)) {
+ if ((((t == AV || t == Video || t == Playlist) && generateProxy()) || (t == Image && generateImageProxy())) && (size.section('x', 0, 0).toInt() > maxSize || size.section('x', 1, 1).toInt() > maxSize)) {
if (clip->getProperty("proxy").isEmpty()) {
KUrl proxyPath = m_doc->projectFolder();
proxyPath.addPath("proxy/");
- proxyPath.addPath(clip->getClipHash() + '.' + (t == IMAGE ? "png" : m_doc->getDocumentProperty("proxyextension")));
+ proxyPath.addPath(clip->getClipHash() + '.' + (t == Image ? "png" : m_doc->getDocumentProperty("proxyextension")));
QMap <QString, QString> newProps;
// insert required duration for proxy
- if (t != IMAGE) newProps.insert("proxy_out", clip->producerProperty("out"));
+ if (t != Image) newProps.insert("proxy_out", clip->producerProperty("out"));
newProps.insert("proxy", proxyPath.path());
QMap <QString, QString> oldProps = clip->properties();
oldProps.insert("proxy", QString());
m_listView->setCurrentItem(item);
bool updatedProfile = false;
if (item->parent()) {
- if (item->parent()->type() == PROJECTFOLDERTYPE)
+ if (item->parent()->type() == ProjectFoldeType)
static_cast <FolderProjectItem *>(item->parent())->switchIcon();
} else if (KdenliveSettings::checkfirstprojectclip() && m_listView->topLevelItemCount() == 1 && m_refreshed && m_allClipsProcessed) {
// this is the first clip loaded in project, check if we want to adjust project settings to the clip
bool ProjectList::adjustProjectProfileToItem(ProjectItem *item)
{
if (item == NULL) {
- if (m_listView->currentItem() && m_listView->currentItem()->type() != PROJECTFOLDERTYPE)
+ if (m_listView->currentItem() && m_listView->currentItem()->type() != ProjectFoldeType)
item = static_cast <ProjectItem*>(m_listView->currentItem());
}
if (item == NULL || item->referencedClip() == NULL) {
if (height == 1088) height = 1080;
double fps = item->referencedClip()->getProperty("fps").toDouble();
double par = item->referencedClip()->getProperty("aspect_ratio").toDouble();
- if (item->clipType() == IMAGE || item->clipType() == AV || item->clipType() == VIDEO) {
- if (ProfilesDialog::matchProfile(width, height, fps, par, item->clipType() == IMAGE, m_doc->mltProfile()) == false) {
+ if (item->clipType() == Image || item->clipType() == AV || item->clipType() == Video) {
+ if (ProfilesDialog::matchProfile(width, height, fps, par, item->clipType() == Image, m_doc->mltProfile()) == false) {
// get a list of compatible profiles
- QMap <QString, QString> suggestedProfiles = ProfilesDialog::getProfilesFromProperties(width, height, fps, par, item->clipType() == IMAGE);
+ QMap <QString, QString> suggestedProfiles = ProfilesDialog::getProfilesFromProperties(width, height, fps, par, item->clipType() == Image);
if (!suggestedProfiles.isEmpty()) {
KDialog *dialog = new KDialog(this);
dialog->setCaption(i18n("Change project profile"));
ProjectItem *result = NULL;
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
// subitem
++it;
continue;
ProjectItem *item;
QTreeWidgetItemIterator it(m_listView);
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
// subitem or folder
++it;
continue;
FolderProjectItem *item = NULL;
QList <QTreeWidgetItem *> hits = m_listView->findItems(name, Qt::MatchExactly, 0);
for (int i = 0; i < hits.count(); ++i) {
- if (hits.at(i)->type() == PROJECTFOLDERTYPE) {
+ if (hits.at(i)->type() == ProjectFoldeType) {
item = static_cast<FolderProjectItem *>(hits.at(i));
break;
}
FolderProjectItem *item;
QTreeWidgetItemIterator it(m_listView);
while (*it) {
- if ((*it)->type() == PROJECTFOLDERTYPE) {
+ if ((*it)->type() == ProjectFoldeType) {
item = static_cast<FolderProjectItem *>(*it);
if (item->clipId() == id)
return item;
m_extractAudioAction->setEnabled(true);
m_transcodeAction->setEnabled(true);
m_clipsActionsMenu->setEnabled(true);
- if (clip->clipType() == IMAGE && !KdenliveSettings::defaultimageapp().isEmpty()) {
+ if (clip->clipType() == Image && !KdenliveSettings::defaultimageapp().isEmpty()) {
m_openAction->setIcon(KIcon(KdenliveSettings::defaultimageapp()));
m_openAction->setEnabled(true);
- } else if (clip->clipType() == AUDIO && !KdenliveSettings::defaultaudioapp().isEmpty()) {
+ } else if (clip->clipType() == Audio && !KdenliveSettings::defaultaudioapp().isEmpty()) {
m_openAction->setIcon(KIcon(KdenliveSettings::defaultaudioapp()));
m_openAction->setEnabled(true);
} else {
QString ProjectList::currentClipUrl() const
{
ProjectItem *item;
- if (!m_listView->currentItem() || m_listView->currentItem()->type() == PROJECTFOLDERTYPE) return QString();
- if (m_listView->currentItem()->type() == PROJECTSUBCLIPTYPE) {
+ if (!m_listView->currentItem() || m_listView->currentItem()->type() == ProjectFoldeType) return QString();
+ if (m_listView->currentItem()->type() == ProjectSubclipType) {
// subitem
item = static_cast <ProjectItem*>(m_listView->currentItem()->parent());
} else {
ProjectItem *item;
QList<QTreeWidgetItem *> list = m_listView->selectedItems();
for (int i = 0; i < list.count(); ++i) {
- if (list.at(i)->type() == PROJECTFOLDERTYPE)
+ if (list.at(i)->type() == ProjectFoldeType)
continue;
- if (list.at(i)->type() == PROJECTSUBCLIPTYPE) {
+ if (list.at(i)->type() == ProjectSubclipType) {
// subitem
item = static_cast <ProjectItem*>(list.at(i)->parent());
} else {
item = static_cast <ProjectItem*>(list.at(i));
}
- if (item == NULL || item->type() == COLOR || item->type() == SLIDESHOW || item->type() == TEXT)
+ if (item == NULL || item->type() == Color || item->type() == SlideShow || item->type() == Text)
continue;
DocClipBase *clip = item->referencedClip();
if (!condition.isEmpty()) {
ProjectItem *item;
QList<QTreeWidgetItem *> list = m_listView->selectedItems();
for (int i = 0; i < list.count(); ++i) {
- if (list.at(i)->type() == PROJECTFOLDERTYPE)
+ if (list.at(i)->type() == ProjectFoldeType)
continue;
- if (list.at(i)->type() == PROJECTSUBCLIPTYPE) {
+ if (list.at(i)->type() == ProjectSubclipType) {
// subitem
item = static_cast <ProjectItem*>(list.at(i)->parent());
} else {
item = static_cast <ProjectItem*>(list.at(i));
}
- if (item == NULL || item->type() == COLOR || item->type() == SLIDESHOW || item->type() == TEXT)
+ if (item == NULL || item->type() == Color || item->type() == SlideShow || item->type() == Text)
continue;
DocClipBase *clip = item->referencedClip();
if (!condition.isEmpty()) {
if (clip) {
for (int i = 0; i < clip->childCount(); ++i) {
QTreeWidgetItem *it = clip->child(i);
- if (it->type() == PROJECTSUBCLIPTYPE) {
+ if (it->type() == ProjectSubclipType) {
sub = static_cast <SubProjectItem*>(it);
if (sub->zone() == zone)
break;
void ProjectList::slotUpdateClipCut(QPoint p)
{
- if (!m_listView->currentItem() || m_listView->currentItem()->type() != PROJECTSUBCLIPTYPE)
+ if (!m_listView->currentItem() || m_listView->currentItem()->type() != ProjectSubclipType)
return;
SubProjectItem *sub = static_cast <SubProjectItem*>(m_listView->currentItem());
ProjectItem *item = static_cast <ProjectItem *>(sub->parent());
ProjectItem *item;
QTreeWidgetItemIterator it(m_listView);
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
++it;
continue;
}
if (!item || hasPendingJob(item, PROXYJOB) || item->referencedClip()->isPlaceHolder()) return;
QString path = item->referencedClip()->getProperty("proxy");
if (path.isEmpty()) {
- slotUpdateJobStatus(item, PROXYJOB, JOBCRASHED, i18n("Failed to create proxy, empty path."));
+ slotUpdateJobStatus(item, PROXYJOB, JobCrashed, i18n("Failed to create proxy, empty path."));
return;
}
if (QFileInfo(path).size() > 0) {
// Proxy already created
- setJobStatus(item, PROXYJOB, JOBDONE);
+ setJobStatus(item, PROXYJOB, JobDone);
slotGotProxy(path);
return;
}
QString sourcePath = item->clipUrl().path();
- if (item->clipType() == PLAYLIST) {
+ if (item->clipType() == Playlist) {
// Special case: playlists use the special 'consumer' producer to support resizing
sourcePath.prepend("consumer:");
}
}
m_jobList.append(job);
- setJobStatus(item, job->jobType, JOBWAITING, 0, job->statusMessage());
+ setJobStatus(item, job->jobType, JobWaiting, 0, job->statusMessage());
slotCheckJobProcess();
}
return;
}
m_jobList.append(job);
- setJobStatus(item, job->jobType, JOBWAITING, 0, job->statusMessage());
+ setJobStatus(item, job->jobType, JobWaiting, 0, job->statusMessage());
slotCheckJobProcess();
}
continue;
}
m_jobList.append(job);
- setJobStatus(item, job->jobType, JOBWAITING, 0, job->statusMessage());
+ setJobStatus(item, job->jobType, JobWaiting, 0, job->statusMessage());
++i;
}
delete d;
m_jobMutex.lock();
int count = 0;
for (int i = 0; i < m_jobList.count(); ++i) {
- if (m_jobList.at(i)->status() == JOBWORKING || m_jobList.at(i)->status() == JOBWAITING)
+ if (m_jobList.at(i)->status() == JobWorking || m_jobList.at(i)->status() == JobWaiting)
count ++;
else {
// remove finished jobs
ProjectItem *item = getItemById(id);
if (!item) return;
if (!item->isProxyRunning()) slotGotProxy(item);
- item->setConditionalJobStatus(NOJOB, PROXYJOB);
+ item->setConditionalJobStatus(NoJob, PROXYJOB);
discardJobs(id, PROXYJOB);
}
int count = 0;
m_jobMutex.lock();
for (int i = 0; i < m_jobList.count(); ++i) {
- if (m_jobList.at(i)->status() == JOBWAITING) {
+ if (m_jobList.at(i)->status() == JobWaiting) {
if (job == NULL) {
- m_jobList.at(i)->setStatus(JOBWORKING);
+ m_jobList.at(i)->setStatus(JobWorking);
job = m_jobList.at(i);
}
count++;
}
- else if (m_jobList.at(i)->status() == JOBWORKING)
+ else if (m_jobList.at(i)->status() == JobWorking)
count ++;
}
// Set jobs count
DocClipBase *currentClip = m_doc->clipManager()->getClipById(job->clipId());
//ProjectItem *processingItem = getItemById(job->clipId());
if (currentClip == NULL) {
- job->setStatus(JOBDONE);
+ job->setStatus(JobDone);
continue;
}
// Set clip status to started
if (!destination.isEmpty()) {
QFile file(destination);
if (!file.open(QIODevice::WriteOnly)) {
- emit updateJobStatus(job->clipId(), job->jobType, JOBCRASHED, i18n("Cannot write to path: %1", destination));
- job->setStatus(JOBCRASHED);
+ emit updateJobStatus(job->clipId(), job->jobType, JobCrashed, i18n("Cannot write to path: %1", destination));
+ job->setStatus(JobCrashed);
continue;
}
file.close();
connect(job, SIGNAL(gotFilterJobResults(QString,int,int,stringMap,stringMap)), this, SIGNAL(gotFilterJobResults(QString,int,int,stringMap,stringMap)));
}
job->startJob();
- if (job->status() == JOBDONE) {
- emit updateJobStatus(job->clipId(), job->jobType, JOBDONE);
+ if (job->status() == JobDone) {
+ emit updateJobStatus(job->clipId(), job->jobType, JobDone);
//TODO: replace with more generic clip replacement framework
if (job->jobType == PROXYJOB) emit gotProxy(job->clipId());
if (job->addClipToProject()) {
emit addClip(destination, QString(), QString());
}
- } else if (job->status() == JOBCRASHED || job->status() == JOBABORTED) {
+ } else if (job->status() == JobCrashed || job->status() == JobAborted) {
emit updateJobStatus(job->clipId(), job->jobType, job->status(), job->errorMessage(), QString(), job->logDetails());
}
}
command->setText(i18n("Update proxy settings"));
QString proxydir = m_doc->projectFolder().path( KUrl::AddTrailingSlash) + "proxy/";
while (*it) {
- if ((*it)->type() != PROJECTCLIPTYPE) {
+ if ((*it)->type() != ProjectClipType) {
++it;
continue;
}
++it;
continue;
}
- CLIPTYPE t = item->clipType();
- if ((t == VIDEO || t == AV || t == UNKNOWN) && item->referencedClip() != NULL) {
+ ClipType t = item->clipType();
+ if ((t == Video || t == AV || t == Unknown) && item->referencedClip() != NULL) {
if (generateProxy() && useProxy() && !hasPendingJob(item, PROXYJOB)) {
DocClipBase *clip = item->referencedClip();
if (clip->getProperty("frame_size").section('x', 0, 0).toInt() > m_doc->getDocumentProperty("proxyminsize").toInt()) {
new EditClipCommand(this, item->clipId(), item->referencedClip()->currentProperties(newProps), newProps, true, command);
}
}
- else if (t == IMAGE && item->referencedClip() != NULL) {
+ else if (t == Image && item->referencedClip() != NULL) {
if (generateImageProxy() && useProxy()) {
DocClipBase *clip = item->referencedClip();
int maxImageSize = m_doc->getDocumentProperty("proxyimageminsize").toInt();
void ProjectList::slotProcessLog(const QString &id, int progress, int type, const QString &message)
{
ProjectItem *item = getItemById(id);
- setJobStatus(item, (JOBTYPE) type, JOBWORKING, progress, message);
+ setJobStatus(item, (JOBTYPE) type, JobWorking, progress, message);
}
void ProjectList::slotProxyCurrentItem(bool doProxy, ProjectItem *itemToProxy)
QList<ProjectItem *> clipList;
for (int i = 0; i < list.count(); ++i) {
listItem = list.at(i);
- if (listItem->type() == PROJECTFOLDERTYPE) {
+ if (listItem->type() == ProjectFoldeType) {
for (int j = 0; j < listItem->childCount(); j++) {
QTreeWidgetItem *sub = listItem->child(j);
- if (sub->type() == PROJECTCLIPTYPE) {
+ if (sub->type() == ProjectClipType) {
ProjectItem *item = static_cast <ProjectItem*>(sub);
if (!clipList.contains(item)) clipList.append(item);
}
}
}
- else if (listItem->type() == PROJECTSUBCLIPTYPE) {
+ else if (listItem->type() == ProjectSubclipType) {
QTreeWidgetItem *sub = listItem->parent();
ProjectItem *item = static_cast <ProjectItem*>(sub);
if (!clipList.contains(item)) clipList.append(item);
}
- else if (listItem->type() == PROJECTCLIPTYPE) {
+ else if (listItem->type() == ProjectClipType) {
ProjectItem *item = static_cast <ProjectItem*>(listItem);
if (!clipList.contains(item)) clipList.append(item);
}
if (!doProxy) newProps.insert("proxy", "-");
for (int i = 0; i < clipList.count(); ++i) {
ProjectItem *item = clipList.at(i);
- CLIPTYPE t = item->clipType();
- if ((t == VIDEO || t == AV || t == UNKNOWN || t == IMAGE || t == PLAYLIST) && item->referencedClip()) {
+ ClipType t = item->clipType();
+ if ((t == Video || t == AV || t == Unknown || t == Image || t == Playlist) && item->referencedClip()) {
if ((doProxy && item->hasProxy()) || (!doProxy && !item->hasProxy() && item->referencedClip()->getProducer() != NULL)) continue;
DocClipBase *clip = item->referencedClip();
if (!clip || !clip->isClean() || m_render->isProcessing(item->clipId())) {
//oldProps = clip->properties();
if (doProxy) {
newProps.clear();
- QString path = proxydir + clip->getClipHash() + '.' + (t == IMAGE ? "png" : m_doc->getDocumentProperty("proxyextension"));
+ QString path = proxydir + clip->getClipHash() + '.' + (t == Image ? "png" : m_doc->getDocumentProperty("proxyextension"));
// insert required duration for proxy
newProps.insert("proxy_out", clip->producerProperty("out"));
newProps.insert("proxy", path);
QTreeWidgetItemIterator it(m_listView);
ProjectItem *item;
while (*it) {
- if ((*it)->type() == PROJECTCLIPTYPE) {
+ if ((*it)->type() == ProjectClipType) {
item = static_cast <ProjectItem *>(*it);
if (item->referencedClip()->getProperty("proxy") == proxyPath) {
QMap <QString, QString> props;
QFile::remove(proxyPath);
}
-void ProjectList::setJobStatus(ProjectItem *item, JOBTYPE jobType, CLIPJOBSTATUS status, int progress, const QString &statusMessage)
+void ProjectList::setJobStatus(ProjectItem *item, JOBTYPE jobType, ClipJobStatus status, int progress, const QString &statusMessage)
{
if (item == NULL || (m_abortAllJobs && m_closing)) return;
monitorItemEditing(false);
item->setJobStatus(jobType, status, progress, statusMessage);
- if (status == JOBCRASHED) {
+ if (status == JobCrashed) {
DocClipBase *clip = item->referencedClip();
if (!clip) {
kDebug()<<"// PROXY CRASHED";
FolderProjectItem *item;
QTreeWidgetItemIterator it(m_listView);
while (*it) {
- if ((*it)->type() != PROJECTFOLDERTYPE) {
+ if ((*it)->type() != ProjectFoldeType) {
++it;
continue;
}
{
m_abortAllJobs = true;
for (int i = 0; i < m_jobList.count(); ++i) {
- m_jobList.at(i)->setStatus(JOBABORTED);
+ m_jobList.at(i)->setStatus(JobAborted);
}
m_jobThreads.waitForFinished();
m_jobThreads.clearFutures();
for (int i = 0; i < m_jobList.count(); ++i) {
if (m_abortAllJobs) break;
job = m_jobList.at(i);
- if (job->clipId() == item->clipId() && job->jobType == type && (job->status() == JOBWAITING || job->status() == JOBWORKING)) return true;
+ if (job->clipId() == item->clipId() && job->jobType == type && (job->status() == JobWaiting || job->status() == JobWorking)) return true;
}
return false;
QMutexLocker lock(&m_jobMutex);
for (int i = 0; i < m_jobList.count(); ++i) {
if (m_jobList.at(i)->clipId() == clipId) {
- m_jobList.at(i)->setStatus(JOBABORTED);
+ m_jobList.at(i)->setStatus(JobAborted);
}
}
}
void ProjectList::slotUpdateJobStatus(ProjectItem *item, int type, int status, const QString &label, const QString &actionName, const QString details)
{
- item->setJobStatus((JOBTYPE) type, (CLIPJOBSTATUS) status);
- if (status != JOBCRASHED) return;
+ item->setJobStatus((JOBTYPE) type, (ClipJobStatus) status);
+ if (status != JobCrashed) return;
#if KDE_IS_VERSION(4,7,0)
QList<QAction *> actions = m_infoMessage->actions();
if (m_infoMessage->isHidden()) {
QStringList result;
QMutexLocker lock(&m_jobMutex);
for (int i = 0; i < m_jobList.count(); ++i) {
- if (m_jobList.at(i)->clipId() == id && (m_jobList.at(i)->status() == JOBWAITING || m_jobList.at(i)->status() == JOBWORKING)) {
+ if (m_jobList.at(i)->clipId() == id && (m_jobList.at(i)->status() == JobWaiting || m_jobList.at(i)->status() == JobWorking)) {
// discard this job
result << m_jobList.at(i)->description;
}
for (int i = 0; i < m_jobList.count(); ++i) {
if (m_jobList.at(i)->clipId() == id && (m_jobList.at(i)->jobType == type || type == NOJOBTYPE)) {
// discard this job
- m_jobList.at(i)->setStatus(JOBABORTED);
+ m_jobList.at(i)->setStatus(JobAborted);
}
}
}
}
job->description = i18n("Filter %1", extraParams.value("finalfilter"));
m_jobList.append(job);
- setJobStatus(item, job->jobType, JOBWAITING, 0, job->statusMessage());
+ setJobStatus(item, job->jobType, JobWaiting, 0, job->statusMessage());
slotCheckJobProcess();
}
}
job->description = description;
m_jobList.append(job);
- setJobStatus(item, job->jobType, JOBWAITING, 0, job->statusMessage());
+ setJobStatus(item, job->jobType, JobWaiting, 0, job->statusMessage());
slotCheckJobProcess();
}
}
void ProjectList::slotPrepareJobsMenu()
{
ProjectItem *item;
- if (!m_listView->currentItem() || m_listView->currentItem()->type() == PROJECTFOLDERTYPE)
+ if (!m_listView->currentItem() || m_listView->currentItem()->type() == ProjectFoldeType)
return;
- if (m_listView->currentItem()->type() == PROJECTSUBCLIPTYPE)
+ if (m_listView->currentItem()->type() == ProjectSubclipType)
item = static_cast <ProjectItem*>(m_listView->currentItem()->parent());
else
item = static_cast <ProjectItem*>(m_listView->currentItem());
* @param status The job status (see definitions.h)
* @param progress The job progress (in percents)
* @param statusMessage The job info message */
- void setJobStatus(ProjectItem *item, JOBTYPE jobType, CLIPJOBSTATUS status, int progress = 0, const QString &statusMessage = QString());
+ void setJobStatus(ProjectItem *item, JOBTYPE jobType, ClipJobStatus status, int progress = 0, const QString &statusMessage = QString());
void monitorItemEditing(bool enable);
/** @brief Get cached thumbnail for a project's clip or create it if no cache. */
void getCachedThumbnail(ProjectItem *item);
void ProjectListView::slotCollapsed(QTreeWidgetItem *item)
{
- if (item->type() == PROJECTFOLDERTYPE) {
+ if (item->type() == ProjectFoldeType) {
blockSignals(true);
static_cast <FolderProjectItem *>(item)->switchIcon();
blockSignals(false);
void ProjectListView::slotExpanded(QTreeWidgetItem *item)
{
- if (item->type() == PROJECTFOLDERTYPE) {
+ if (item->type() == ProjectFoldeType) {
blockSignals(true);
static_cast <FolderProjectItem *>(item)->switchIcon();
blockSignals(false);
return;
}
ProjectItem *item;
- if (it->type() == PROJECTFOLDERTYPE) {
+ if (it->type() == ProjectFoldeType) {
if ((columnAt(event->pos().x()) == 0)) {
QPixmap pix = qVariantValue<QPixmap>(it->data(0, Qt::DecorationRole));
int offset = pix.width() + indentation();
}
return;
}
- if (it->type() == PROJECTSUBCLIPTYPE) {
+ if (it->type() == ProjectSubclipType) {
// subitem
if ((columnAt(event->pos().x()) == 1)) {
QTreeWidget::mouseDoubleClickEvent(event);
if (!(item->flags() & Qt::ItemIsDragEnabled)) return;
int column = columnAt(event->pos().x());
- if (column == 0 && (item->clipType() == SLIDESHOW || item->clipType() == TEXT || item->clipType() == COLOR || it->childCount() > 0)) {
+ if (column == 0 && (item->clipType() == SlideShow || item->clipType() == Text || item->clipType() == Color || it->childCount() > 0)) {
QPixmap pix = qVariantValue<QPixmap>(it->data(0, Qt::DecorationRole));
int offset = pix.width() + indentation();
if (item->parent()) offset += indentation();
return;
}
}
- if ((column == 1) && it->type() != PROJECTSUBCLIPTYPE) {
+ if ((column == 1) && it->type() != ProjectSubclipType) {
QTreeWidget::mouseDoubleClickEvent(event);
return;
}
{
FolderProjectItem *item = NULL;
QTreeWidgetItem *it = itemAt(event->pos());
- while (it && it->type() != PROJECTFOLDERTYPE) {
+ while (it && it->type() != ProjectFoldeType) {
it = it->parent();
}
if (it) item = static_cast <FolderProjectItem *>(it);
QString parentId = item->clipId();
foreach(QTreeWidgetItem *it, list) {
// TODO allow dragging of folders ?
- if (it->type() == PROJECTCLIPTYPE) {
+ if (it->type() == ProjectClipType) {
if (it->parent()) clone = (ProjectItem*) it->parent()->takeChild(it->parent()->indexOfChild(it));
else clone = (ProjectItem*) takeTopLevelItem(indexOfTopLevelItem(it));
if (clone && item) {
const QList <QTreeWidgetItem *> list = selectedItems();
ProjectItem *clone;
foreach(QTreeWidgetItem *it, list) {
- if (it->type() != PROJECTCLIPTYPE) continue;
+ if (it->type() != ProjectClipType) continue;
QTreeWidgetItem *parent = it->parent();
if (parent/* && ((ProjectItem *) it)->clipId() < 10000*/) {
kDebug() << "++ item parent: " << parent->text(1);
const QList <QTreeWidgetItem *> list = selectedItems();
QStringList ids;
foreach(const QTreeWidgetItem *item, list) {
- if (item->type() == PROJECTFOLDERTYPE) {
+ if (item->type() == ProjectFoldeType) {
const int children = item->childCount();
for (int i = 0; i < children; ++i) {
ids.append(static_cast <ProjectItem *>(item->child(i))->clipId());
}
- } else if (item->type() == PROJECTSUBCLIPTYPE) {
+ } else if (item->type() == ProjectSubclipType) {
const ProjectItem *parentclip = static_cast <const ProjectItem *>(item->parent());
const SubProjectItem *clickItem = static_cast <const SubProjectItem *>(item);
QPoint p = clickItem->zone();
QRectF bounding;
painter->drawText(r2, Qt::AlignLeft | Qt::AlignVCenter , subText, &bounding);
int jobProgress = index.data(Qt::UserRole + 5).toInt();
- if (jobProgress != 0 && jobProgress != JOBDONE && jobProgress != JOBABORTED) {
- if (jobProgress != JOBCRASHED) {
+ if (jobProgress != 0 && jobProgress != JobDone && jobProgress != JobAborted) {
+ if (jobProgress != JobCrashed) {
// Draw job progress bar
QColor color = option.palette.alternateBase().color();
color.setAlpha(150);
painter->drawRect(progress);
painter->setBrush(option.palette.link());
progress.adjust(2, 2, -2, -2);
- if (jobProgress == JOBWAITING) {
+ if (jobProgress == JobWaiting) {
progress.setLeft(progress.right() - 2);
painter->drawRect(progress);
progress.moveLeft(progress.left() - 5);
progress.setWidth(progress.width() * jobProgress / 100);
painter->drawRect(progress);
}
- } else if (jobProgress == JOBCRASHED) {
+ } else if (jobProgress == JobCrashed) {
QString jobText = index.data(Qt::UserRole + 7).toString();
if (!jobText.isEmpty()) {
QRectF txtBounding = painter->boundingRect(r2, Qt::AlignRight | Qt::AlignVCenter, QLatin1Char(' ') + jobText + QLatin1Char(' ') );
QList <DocClipBase*> list = m_projectList->documentClipList();
for (int i = 0; i < list.count(); ++i) {
DocClipBase *clip = list.at(i);
- if (clip->numReferences() == 0 && clip->clipType() != SLIDESHOW) {
+ if (clip->numReferences() == 0 && clip->clipType() != SlideShow) {
KUrl url = clip->fileURL();
if (!url.isEmpty() && !toDelete.contains(url.path())) toDelete << url.path();
}
for (int i = 0; i < list.count(); ++i) {
DocClipBase *clip = list.at(i);
- if (clip->clipType() == SLIDESHOW) {
+ if (clip->clipType() == SlideShow) {
QStringList subfiles = extractSlideshowUrls(clip->fileURL());
foreach(const QString & file, subfiles) {
count++;
} else if (!clip->fileURL().isEmpty()) {
//allFiles.append(clip->fileURL().path());
switch (clip->clipType()) {
- case TEXT:
+ case Text:
new QTreeWidgetItem(texts, QStringList() << clip->fileURL().path());
break;
- case AUDIO:
+ case Audio:
new QTreeWidgetItem(sounds, QStringList() << clip->fileURL().path());
break;
- case IMAGE:
+ case Image:
new QTreeWidgetItem(images, QStringList() << clip->fileURL().path());
break;
- case PLAYLIST:
+ case Playlist:
new QTreeWidgetItem(playlists, QStringList() << clip->fileURL().path());
break;
- case UNKNOWN:
+ case Unknown:
new QTreeWidgetItem(others, QStringList() << clip->fileURL().path());
break;
default:
}
count++;
}
- if (clip->clipType() == TEXT) {
+ if (clip->clipType() == Text) {
QStringList imagefiles = TitleWidget::extractImageList(clip->getProperty("xmldata"));
QStringList fonts = TitleWidget::extractFontList(clip->getProperty("xmldata"));
foreach(const QString & file, imagefiles) {
new QTreeWidgetItem(images, QStringList() << file);
}
allFonts << fonts;
- } else if (clip->clipType() == PLAYLIST) {
+ } else if (clip->clipType() == Playlist) {
QStringList files = extractPlaylistUrls(clip->fileURL().path());
foreach(const QString & file, files) {
count++;
#include <KLocalizedString>
-AbstractClipJob::AbstractClipJob(JOBTYPE type, CLIPTYPE cType, const QString &id, const QStringList &) :
+AbstractClipJob::AbstractClipJob(JOBTYPE type, ClipType cType, const QString &id, const QStringList &) :
QObject(),
clipType(cType),
jobType(type),
replaceClip(false),
- m_jobStatus(NOJOB),
+ m_jobStatus(NoJob),
m_clipId(id),
m_addClipToProject(false),
m_jobProcess(NULL)
m_addClipToProject = add;
}
-void AbstractClipJob::setStatus(CLIPJOBSTATUS status)
+void AbstractClipJob::setStatus(ClipJobStatus status)
{
m_jobStatus = status;
}
-CLIPJOBSTATUS AbstractClipJob::status()
+ClipJobStatus AbstractClipJob::status()
{
return m_jobStatus;
}
Q_OBJECT
public:
- AbstractClipJob(JOBTYPE type, CLIPTYPE cType, const QString &id, const QStringList ¶meters); virtual ~ AbstractClipJob();
- CLIPTYPE clipType;
+ AbstractClipJob(JOBTYPE type, ClipType cType, const QString &id, const QStringList ¶meters); virtual ~ AbstractClipJob();
+ ClipType clipType;
JOBTYPE jobType;
QString description;
bool replaceClip;
const QString clipId() const;
const QString errorMessage() const;
const QString logDetails() const;
- CLIPJOBSTATUS status();
- virtual void setStatus(CLIPJOBSTATUS status);
+ ClipJobStatus status();
+ virtual void setStatus(ClipJobStatus status);
virtual const QString destination() const;
virtual void startJob();
virtual stringMap cancelProperties();
void setAddClipToProject(bool add);
protected:
- CLIPJOBSTATUS m_jobStatus;
+ ClipJobStatus m_jobStatus;
QString m_clipId;
QString m_errorMessage;
QString m_logDetails;
#include <KDebug>
#include <KLocalizedString>
-CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, const QStringList ¶meters) : AbstractClipJob(CUTJOB, cType, id, parameters)
+CutClipJob::CutClipJob(ClipType cType, const QString &id, const QStringList ¶meters) : AbstractClipJob(CUTJOB, cType, id, parameters)
{
- m_jobStatus = JOBWAITING;
+ m_jobStatus = JobWaiting;
m_dest = parameters.at(0);
m_src = parameters.at(1);
m_start = parameters.at(2);
void CutClipJob::startJob()
{
// Special case: playlist clips (.mlt or .kdenlive project files)
- if (clipType == AV || clipType == AUDIO || clipType == VIDEO) {
+ if (clipType == AV || clipType == Audio || clipType == Video) {
QStringList parameters;
parameters << "-i" << m_src;
if (!m_start.isEmpty())
m_jobProcess->waitForStarted();
while (m_jobProcess->state() != QProcess::NotRunning) {
processLogInfo();
- if (m_jobStatus == JOBABORTED) {
+ if (m_jobStatus == JobAborted) {
m_jobProcess->close();
m_jobProcess->waitForFinished();
QFile::remove(m_dest);
m_jobProcess->waitForFinished(400);
}
- if (m_jobStatus != JOBABORTED) {
+ if (m_jobStatus != JobAborted) {
int result = m_jobProcess->exitStatus();
if (result == QProcess::NormalExit) {
if (QFileInfo(m_dest).size() == 0) {
// File was not created
processLogInfo();
m_errorMessage.append(i18n("Failed to create file."));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
} else {
- setStatus(JOBDONE);
+ setStatus(JobDone);
}
} else if (result == QProcess::CrashExit) {
// Proxy process crashed
QFile::remove(m_dest);
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
}
}
delete m_jobProcess;
} else {
m_errorMessage = i18n("Cannot process this clip type.");
}
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
void CutClipJob::processLogInfo()
{
- if (!m_jobProcess || m_jobDuration == 0 || m_jobStatus == JOBABORTED) return;
+ if (!m_jobProcess || m_jobDuration == 0 || m_jobStatus == JobAborted) return;
QString log = m_jobProcess->readAll();
if (!log.isEmpty()) m_logDetails.append(log + '\n');
int progress;
{
QString statusInfo;
switch (m_jobStatus) {
- case JOBWORKING:
+ case JobWorking:
if (m_start.isEmpty()) statusInfo = i18n("Transcoding clip");
else statusInfo = i18n("Extracting clip cut");
break;
- case JOBWAITING:
+ case JobWaiting:
if (m_start.isEmpty()) statusInfo = i18n("Waiting - transcode clip");
else statusInfo = i18n("Waiting - cut clip");
break;
Q_OBJECT
public:
- CutClipJob(CLIPTYPE cType, const QString &id, const QStringList ¶meters);
+ CutClipJob(ClipType cType, const QString &id, const QStringList ¶meters);
virtual ~ CutClipJob();
const QString destination() const;
void startJob();
self->emitFrameNumber((int) frame.get_position());
}
-MeltJob::MeltJob(CLIPTYPE cType, const QString &id, const QStringList ¶meters, const QMap <QString, QString>&extraParams)
+MeltJob::MeltJob(ClipType cType, const QString &id, const QStringList ¶meters, const QMap <QString, QString>&extraParams)
: AbstractClipJob(MLTJOB, cType, id, parameters),
addClipToProject(0),
m_consumer(NULL),
m_length(0),
m_extra(extraParams)
{
- m_jobStatus = JOBWAITING;
+ m_jobStatus = JobWaiting;
m_params = parameters;
description = i18n("Process clip");
QString consum = m_params.at(5);
{
if (m_url.isEmpty()) {
m_errorMessage.append(i18n("No producer for this clip."));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
int in = m_params.takeFirst().toInt();
if (out != -1 && out <= in) {
m_errorMessage.append(i18n("Clip zone undefined (%1 - %2).", in, out));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
if (m_extra.contains("producer_profile")) {
if (!m_producer || !m_producer->is_valid()) {
// Clip was removed or something went wrong, Notify user?
//m_errorMessage.append(i18n("Invalid clip"));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
if (m_extra.contains("producer_profile")) {
}
if (!m_consumer || !m_consumer->is_valid()) {
m_errorMessage.append(i18n("Cannot create consumer %1.", consumer));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
m_filter = new Mlt::Filter(*m_profile, filter.toUtf8().data());
if (!m_filter || !m_filter->is_valid()) {
m_errorMessage = i18n("Filter %1 crashed", filter);
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
list = filterParams.split(' ', QString::SkipEmptyParts);
m_consumer->run();
QMap <QString, QString> jobResults;
- if (m_jobStatus != JOBABORTED && m_extra.contains("key")) {
+ if (m_jobStatus != JobAborted && m_extra.contains("key")) {
QString result = m_filter->get(m_extra.value("key").toUtf8().constData());
jobResults.insert(m_extra.value("key"), result);
}
- if (!jobResults.isEmpty() && m_jobStatus != JOBABORTED) {
+ if (!jobResults.isEmpty() && m_jobStatus != JobAborted) {
emit gotFilterJobResults(m_clipId, startPos, track, jobResults, m_extra);
}
- if (m_jobStatus == JOBABORTED || m_jobStatus == JOBWORKING) m_jobStatus = JOBDONE;
+ if (m_jobStatus == JobAborted || m_jobStatus == JobWorking) m_jobStatus = JobDone;
}
{
QString statusInfo;
switch (m_jobStatus) {
- case JOBWORKING:
+ case JobWorking:
statusInfo = description;
break;
- case JOBWAITING:
+ case JobWaiting:
statusInfo = i18n("Waiting to process clip");
break;
default:
return m_extra.contains("projecttreefilter");
}
-void MeltJob::setStatus(CLIPJOBSTATUS status)
+void MeltJob::setStatus(ClipJobStatus status)
{
m_jobStatus = status;
- if (status == JOBABORTED && m_consumer) m_consumer->stop();
+ if (status == JobAborted && m_consumer) m_consumer->stop();
}
Q_OBJECT
public:
- MeltJob(CLIPTYPE cType, const QString &id, const QStringList& parameters, const stringMap& extraParams = stringMap());
+ MeltJob(ClipType cType, const QString &id, const QStringList& parameters, const stringMap& extraParams = stringMap());
virtual ~ MeltJob();
const QString destination() const;
void startJob();
stringMap cancelProperties();
bool addClipToProject;
const QString statusMessage();
- void setStatus(CLIPJOBSTATUS status);
+ void setStatus(ClipJobStatus status);
void setProducer(Mlt::Producer *producer, const KUrl &url);
void emitFrameNumber(int pos);
/** Make the job work on a project tree clip. */
#include <KDebug>
#include <KLocalizedString>
-ProxyJob::ProxyJob(CLIPTYPE cType, const QString &id, const QStringList& parameters)
+ProxyJob::ProxyJob(ClipType cType, const QString &id, const QStringList& parameters)
: AbstractClipJob(PROXYJOB, cType, id, parameters),
m_jobDuration(0),
m_isFfmpegJob(true)
{
- m_jobStatus = JOBWAITING;
+ m_jobStatus = JobWaiting;
description = i18n("proxy");
m_dest = parameters.at(0);
m_src = parameters.at(1);
{
// Special case: playlist clips (.mlt or .kdenlive project files)
m_jobDuration = 0;
- if (clipType == PLAYLIST) {
+ if (clipType == Playlist) {
// change FFmpeg params to MLT format
m_isFfmpegJob = false;
QStringList mltParameters;
m_jobProcess->start(KdenliveSettings::rendererpath(), mltParameters);
m_jobProcess->waitForStarted();
}
- else if (clipType == IMAGE) {
+ else if (clipType == Image) {
m_isFfmpegJob = false;
// Image proxy
QImage i(m_src);
if (i.isNull()) {
m_errorMessage.append(i18n("Cannot load image %1.", m_src));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
return;
}
} else {
proxy.save(m_dest);
}
- setStatus(JOBDONE);
+ setStatus(JobDone);
return;
} else {
m_isFfmpegJob = true;
}
while (m_jobProcess->state() != QProcess::NotRunning) {
processLogInfo();
- if (m_jobStatus == JOBABORTED) {
+ if (m_jobStatus == JobAborted) {
emit cancelRunningJob(m_clipId, cancelProperties());
m_jobProcess->close();
m_jobProcess->waitForFinished();
m_jobProcess->waitForFinished(400);
}
- if (m_jobStatus != JOBABORTED) {
+ if (m_jobStatus != JobAborted) {
int result = m_jobProcess->exitStatus();
if (result == QProcess::NormalExit) {
if (QFileInfo(m_dest).size() == 0) {
// File was not created
processLogInfo();
m_errorMessage.append(i18n("Failed to create proxy clip."));
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
}
- else setStatus(JOBDONE);
+ else setStatus(JobDone);
}
else if (result == QProcess::CrashExit) {
// Proxy process crashed
QFile::remove(m_dest);
- setStatus(JOBCRASHED);
+ setStatus(JobCrashed);
}
}
void ProxyJob::processLogInfo()
{
- if (!m_jobProcess || m_jobStatus == JOBABORTED) return;
+ if (!m_jobProcess || m_jobStatus == JobAborted) return;
QString log = m_jobProcess->readAll();
if (!log.isEmpty())
m_logDetails.append(log + '\n');
{
QString statusInfo;
switch (m_jobStatus) {
- case JOBWORKING:
+ case JobWorking:
statusInfo = i18n("Creating proxy");
break;
- case JOBWAITING:
+ case JobWaiting:
statusInfo = i18n("Waiting - proxy");
break;
default:
Q_OBJECT
public:
- ProxyJob(CLIPTYPE cType, const QString &id, const QStringList& parameters);
+ ProxyJob(ClipType cType, const QString &id, const QStringList& parameters);
virtual ~ ProxyJob();
const QString destination() const;
void startJob();
#include <QDesktopWidget>
-RecMonitor::RecMonitor(Kdenlive::MONITORID name, MonitorManager *manager, QWidget *parent) :
+RecMonitor::RecMonitor(Kdenlive::MonitorId name, MonitorManager *manager, QWidget *parent) :
AbstractMonitor(name, manager, parent),
m_isCapturing(false),
m_didCapture(false),
Q_OBJECT
public:
- explicit RecMonitor(Kdenlive::MONITORID name, MonitorManager *manager, QWidget *parent = 0);
+ explicit RecMonitor(Kdenlive::MonitorId name, MonitorManager *manager, QWidget *parent = 0);
~RecMonitor();
AbstractRender *abstractRender();
emit self->mltFrameReceived(new Mlt::Frame(frame_ptr));
}
-Render::Render(Kdenlive::MONITORID rendererName, int winid, QString profile, QWidget *parent) :
+Render::Render(Kdenlive::MonitorId rendererName, int winid, QString profile, QWidget *parent) :
AbstractRender(rendererName, parent),
requestedSeekPosition(SEEK_INACTIVE),
showFrameSemaphore(1),
m_blackClip = new Mlt::Producer(*m_mltProfile, "colour:black");
m_blackClip->set("id", "black");
m_blackClip->set("mlt_type", "producer");
- if (KdenliveSettings::external_display() && m_name != Kdenlive::clipMonitor && m_winid != 0) {
+ if (KdenliveSettings::external_display() && m_name != Kdenlive::ClipMonitor && m_winid != 0) {
// Use blackmagic card for video output
int device = KdenliveSettings::blackmagic_output_device();
if (device >= 0) {
if (m_winid == 0) {
// OpenGL monitor
if (!m_mltConsumer) {
- if (KdenliveSettings::external_display() && m_name != Kdenlive::clipMonitor) {
+ if (KdenliveSettings::external_display() && m_name != Kdenlive::ClipMonitor) {
int device = KdenliveSettings::blackmagic_output_device();
if (device >= 0) {
QString decklink = "decklink:" + QString::number(KdenliveSettings::blackmagic_output_device());
}
KUrl url(path);
Mlt::Producer *producer = NULL;
- CLIPTYPE type = (CLIPTYPE)info.xml.attribute("type").toInt();
- if (type == COLOR) {
+ ClipType type = (ClipType)info.xml.attribute("type").toInt();
+ if (type == Color) {
producer = new Mlt::Producer(*m_mltProfile, 0, ("colour:" + info.xml.attribute("colour")).toUtf8().constData());
- } else if (type == TEXT) {
+ } else if (type == Text) {
producer = new Mlt::Producer(*m_mltProfile, 0, ("kdenlivetitle:" + info.xml.attribute("resource")).toUtf8().constData());
if (producer && producer->is_valid() && info.xml.hasAttribute("xmldata"))
producer->set("xmldata", info.xml.attribute("xmldata").toUtf8().constData());
if (info.xml.hasAttribute("out")) clipOut = info.xml.attribute("out").toInt();
// setup length here as otherwise default length (currently 15000 frames in MLT) will be taken even if outpoint is larger
- if (type == COLOR || type == TEXT || type == IMAGE || type == SLIDESHOW) {
+ if (type == Color || type == Text || type == Image || type == SlideShow) {
int length;
if (info.xml.hasAttribute("length")) {
length = info.xml.attribute("length").toInt();
filePropertyMap["duration"] = QString::number(duration);
//kDebug() << "/////// PRODUCER: " << url.path() << " IS: " << producer->get_playtime();
- if (type == SLIDESHOW) {
+ if (type == SlideShow) {
int ttl = info.xml.hasAttribute("ttl") ? info.xml.attribute("ttl").toInt() : 0;
if (ttl) producer->set("ttl", ttl);
if (!info.xml.attribute("animation").isEmpty()) {
Mlt::Consumer xmlConsumer(*m_mltProfile, ("xml:" + url.path()).toUtf8().constData());
m_mltProducer->optimise();
xmlConsumer.set("terminate_on_pause", 1);
- if (m_name == Kdenlive::clipMonitor) {
+ if (m_name == Kdenlive::ClipMonitor) {
Mlt::Producer *prod = m_mltProducer->cut(zone.x(), zone.y());
Mlt::Playlist list;
list.insert_at(0, prod, 0);
return;
if (m_isZoneMode) resetZoneMode();
if (play && m_paused) {
- if (m_name == Kdenlive::clipMonitor && m_mltConsumer->position() == m_mltProducer->get_out()) m_mltProducer->seek(0);
+ if (m_name == Kdenlive::ClipMonitor && m_mltConsumer->position() == m_mltProducer->get_out()) m_mltProducer->seek(0);
m_paused = false;
m_mltProducer->set_speed(1.0);
if (m_mltConsumer->is_stopped()) {
* @param rendererName A unique identifier for this renderer
* @param winid The parent widget identifier (required for SDL display). Set to 0 for OpenGL rendering
* @param profile The MLT profile used for the renderer (default one will be used if empty). */
- Render(Kdenlive::MONITORID rendererName, int winid, QString profile = QString(), QWidget *parent = 0);
+ Render(Kdenlive::MonitorId rendererName, int winid, QString profile = QString(), QWidget *parent = 0);
/** @brief Destroy the MLT Renderer. */
virtual ~Render();
*
* Useful to identify the renderers by what they do - e.g. background
* rendering, workspace monitor, etc. */
- Kdenlive::MONITORID m_name;
+ Kdenlive::MonitorId m_name;
Mlt::Consumer * m_mltConsumer;
Mlt::Producer * m_mltProducer;
Mlt::Profile *m_mltProfile;
void addClip(const KUrl &, stringMap);
void checkSeeking();
/** @brief Activate current monitor. */
- void activateMonitor(Kdenlive::MONITORID);
+ void activateMonitor(Kdenlive::MonitorId);
void mltFrameReceived(Mlt::Frame *);
public slots:
m_lastConnectedRenderer = m_monitorManager->activeRenderer();
// DVD monitor shouldn't be monitored or will cause crash on deletion
- if (m_monitorManager->isActive(Kdenlive::dvdMonitor)) m_lastConnectedRenderer = NULL;
+ if (m_monitorManager->isActive(Kdenlive::DvdMonitor)) m_lastConnectedRenderer = NULL;
// Connect new renderer
if (m_lastConnectedRenderer != NULL) {
// Notify monitors whether frames are still required
Monitor *monitor;
- monitor = static_cast<Monitor*>( m_monitorManager->monitor(Kdenlive::projectMonitor) );
+ monitor = static_cast<Monitor*>( m_monitorManager->monitor(Kdenlive::ProjectMonitor) );
if (monitor != NULL) {
if (monitor->effectSceneDisplayed()) monitor->render->sendFrameForAnalysis = true;
else monitor->render->sendFrameForAnalysis = imageStillRequested;
}
- monitor = static_cast<Monitor*>( m_monitorManager->monitor(Kdenlive::clipMonitor) );
+ monitor = static_cast<Monitor*>( m_monitorManager->monitor(Kdenlive::ClipMonitor) );
if (monitor != NULL) { monitor->render->sendFrameForAnalysis = imageStillRequested; }
- RecMonitor *recMonitor = static_cast<RecMonitor*>( m_monitorManager->monitor(Kdenlive::recordMonitor) );
+ RecMonitor *recMonitor = static_cast<RecMonitor*>( m_monitorManager->monitor(Kdenlive::RecordMonitor) );
if (recMonitor != NULL) { recMonitor->analyseFrames(imageStillRequested); }
}
StopmotionMonitor::StopmotionMonitor(MonitorManager *manager, QWidget *parent) :
- AbstractMonitor(Kdenlive::stopmotionMonitor, manager, parent),
+ AbstractMonitor(Kdenlive::StopMotionMonitor, manager, parent),
m_captureDevice(NULL)
{
createVideoSurface();
return m_captureDevice;
}
-Kdenlive::MONITORID StopmotionMonitor::id() const
+Kdenlive::MonitorId StopmotionMonitor::id() const
{
- return Kdenlive::stopmotionMonitor;
+ return Kdenlive::StopMotionMonitor;
}
connect(m_captureDevice, SIGNAL(frameSaved(QString)), this, SLOT(slotNewThumb(QString)));
}
- m_manager->activateMonitor(Kdenlive::stopmotionMonitor);
+ m_manager->activateMonitor(Kdenlive::StopMotionMonitor);
QString producer = createProducer(profile, service, resource);
if (m_captureDevice->slotStartPreview(producer, true)) {
if (m_showOverlay->isChecked()) {
StopmotionMonitor(MonitorManager *manager, QWidget *parent);
~StopmotionMonitor();
AbstractRender *abstractRender();
- Kdenlive::MONITORID id() const;
+ Kdenlive::MonitorId id() const;
void setRender(MltDeviceCapture *render);
private:
const int itemHeight = 30;
SubProjectItem::SubProjectItem(double display_ratio, QTreeWidgetItem * parent, int in, int out, const QString &description) :
- QTreeWidgetItem(parent, PROJECTSUBCLIPTYPE), m_in(in), m_out(out), m_description(description)
+ QTreeWidgetItem(parent, ProjectSubclipType), m_in(in), m_out(out), m_description(description)
{
setSizeHint(0, QSize((int) (itemHeight * display_ratio) + 2, itemHeight + 2));
setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsDropEnabled);
/** Make sure folders appear on top of the tree widget */
virtual bool operator<(const QTreeWidgetItem &other)const {
int column = treeWidget()->sortColumn();
- if (other.type() != PROJECTFOLDERTYPE)
+ if (other.type() != ProjectFoldeType)
return text(column).toLower() < other.text(column).toLower();
else return false;
}
setupUi(this);
for (int i = 0; i < doc->tracksCount(); ++i) {
TrackInfo info = doc->trackInfoAt(doc->tracksCount() - i - 1);
- comboTracks->addItem(info.type == VIDEOTRACK ? videoIcon : audioIcon,
+ comboTracks->addItem(info.type == VideoTrack ? videoIcon : audioIcon,
info.trackName.isEmpty() ? QString::number(i) : info.trackName + " (" + QString::number(i) + ')');
}
}
info.trackName = table->item(i, 0)->text();
QTableWidgetItem *item = table->item(i, 1);
if (item->text() == i18n("Audio")) {
- info.type = AUDIOTRACK;
+ info.type = AudioTrack;
info.isBlind = true;
} else {
- info.type = VIDEOTRACK;
+ info.type = VideoTrack;
info.isBlind = (table->item(i, 2)->checkState() == Qt::Checked);
}
info.isMute = (table->item(i, 3)->checkState() == Qt::Checked);
table->setItem(i, 0, new QTableWidgetItem(info.trackName));
QTableWidgetItem *item1 = new QTableWidgetItem(i18n("Video"));
- if (info.type == AUDIOTRACK)
+ if (info.type == AudioTrack)
item1->setText(i18n("Audio"));
table->setItem(i, 1, item1);
table->openPersistentEditor(item1);
QTableWidgetItem *item2 = new QTableWidgetItem("");
item2->setFlags(item2->flags() & ~Qt::ItemIsEditable);
item2->setCheckState(info.isBlind ? Qt::Checked : Qt::Unchecked);
- if (info.type == AUDIOTRACK)
+ if (info.type == AudioTrack)
item2->setFlags(item2->flags() & ~Qt::ItemIsEnabled);
table->setItem(i, 2, item2);
kDebug() << "///// REMOVED INVALID TRANSITION: " << e.attribute("id");
tractor.removeChild(transitions.item(i));
--i;
- } else if (m_trackview->canBePastedTo(transitionInfo, TRANSITIONWIDGET)) {
+ } else if (m_trackview->canBePastedTo(transitionInfo, TransitionWidget)) {
Transition *tr = new Transition(transitionInfo, a_track, m_doc->fps(), base, isAutomatic);
if (forceTrack) tr->setForcedTrack(true, a_track);
m_scene->addItem(tr);
// Found correct producer
m_documentErrors.append(i18n("Replaced wrong clip producer %1 with %2", id, clip->getId()) + '\n');
QString prodId = clip->getId();
- if (clip->clipType() == PLAYLIST || clip->clipType() == AV || clip->clipType() == AUDIO) {
+ if (clip->clipType() == Playlist || clip->clipType() == AV || clip->clipType() == Audio) {
// We need producer for the track
prodId.append('_' + QString::number(ix));
}
producerXml.setAttribute("mlt_type", type);
producerXml.setAttribute("resource", resource);
producerXml.setAttribute("duration", length);
- if (service == "colour") producerXml.setAttribute("type", COLOR);
- else if (service == "qimage" || service == "pixbuf") producerXml.setAttribute("type", IMAGE);
- else if (service == "kdenlivetitle") producerXml.setAttribute("type", TEXT);
+ if (service == "colour") producerXml.setAttribute("type", Color);
+ else if (service == "qimage" || service == "pixbuf") producerXml.setAttribute("type", Image);
+ else if (service == "kdenlivetitle") producerXml.setAttribute("type", Text);
else producerXml.setAttribute("type", AV);
clip = new DocClipBase(m_doc->clipManager(), doc.documentElement(), id);
m_doc->clipManager()->addClip(clip);
int Transition::type() const
{
- return TRANSITIONWIDGET;
+ return TransitionWidget;
}
//virtual
}
-OPERATIONTYPE Transition::operationMode(const QPointF &pos)
+OperationType Transition::operationMode(const QPointF &pos)
{
- if (isItemLocked()) return NONE;
+ if (isItemLocked()) return None;
const double scale = projectScene()->scale().x();
double maximumOffset = 6 / scale;
QRectF rect = sceneBoundingRect();
- if (qAbs((int)(pos.x() - rect.x())) < maximumOffset) return RESIZESTART;
- else if (qAbs((int)(pos.x() - (rect.right()))) < maximumOffset) return RESIZEEND;
- return MOVE;
+ if (qAbs((int)(pos.x() - rect.x())) < maximumOffset) return ResizeStart;
+ else if (qAbs((int)(pos.x() - (rect.right()))) < maximumOffset) return ResizeEnd;
+ return MoveOperation;
}
//static
int transitionEndTrack() const;
QString transitionTag() const;
QStringList transitionInfo() const;
- OPERATIONTYPE operationMode(const QPointF &pos);
+ OperationType operationMode(const QPointF &pos);
static int itemHeight();
static int itemOffset();
//const QMap < QString, QString > transitionParameters() const;
int m_transitionTrack;
/** @brief Returns the display name for a transition type. */
- QString getTransitionName(const TRANSITIONTYPE & type);
+ QString getTransitionName(const TransitionType & type);
/** @brief Returns the transition type for a given name. */
- TRANSITIONTYPE getTransitionForName(const QString & type);
+ TransitionType getTransitionForName(const QString & type);
};
#endif
KIcon audioIcon("kdenlive-show-audio");
for (int i = limit; i < m_tracks.count(); ++i) {
int ix = m_tracks.count() - i - 1;
- transitionTrack->addItem(m_tracks.at(ix).type == VIDEOTRACK ? videoIcon : audioIcon,
+ transitionTrack->addItem(m_tracks.at(ix).type == VideoTrack ? videoIcon : audioIcon,
m_tracks.at(ix).trackName.isEmpty() ? QString::number(i) : m_tracks.at(ix).trackName + " (" + QString::number(i) + ')',
m_tracks.count() - i);
}
signals:
void transitionUpdated(Transition *, const QDomElement&);
void seekTimeline(int);
- void importClipKeyframes(GRAPHICSRECTITEM = TRANSITIONWIDGET);
+ void importClipKeyframes(GraphicsRectItem = TransitionWidget);
};
#endif
for (int i = 0; i < list.count(); ++i) {
DocClipBase *clip = list.at(i);
- CLIPTYPE t = clip->clipType();
+ ClipType t = clip->clipType();
QString id = clip->getId();
- if (t == SLIDESHOW) {
+ if (t == SlideShow) {
KUrl slideUrl = clip->fileURL();
//TODO: Slideshow files
slideUrls.insert(id, slideUrl.path());
}
- else if (t == IMAGE) imageUrls.insert(id, clip->fileURL().path());
- else if (t == TEXT) {
+ else if (t == Image) imageUrls.insert(id, clip->fileURL().path());
+ else if (t == Text) {
QStringList imagefiles = TitleWidget::extractImageList(clip->getProperty("xmldata"));
QStringList fonts = TitleWidget::extractFontList(clip->getProperty("xmldata"));
extraImageUrls << imagefiles;
allFonts << fonts;
- } else if (t == PLAYLIST) {
+ } else if (t == Playlist) {
playlistUrls.insert(id, clip->fileURL().path());
QStringList files = ProjectSettings::extractPlaylistUrls(clip->fileURL().path());
otherUrls << files;
}
else if (!clip->fileURL().isEmpty()) {
- if (t == AUDIO) audioUrls.insert(id, clip->fileURL().path());
+ if (t == Audio) audioUrls.insert(id, clip->fileURL().path());
else {
videoUrls.insert(id, clip->fileURL().path());
// Check if we have a proxy