From 6c43f987273f567fa7659d5a4ad3a5e73f6e5b73 Mon Sep 17 00:00:00 2001 From: Till Theato Date: Thu, 3 Jun 2010 16:44:00 +0000 Subject: [PATCH] - Fix split audio with locked audio tracks - cleanup svn path=/trunk/kdenlive/; revision=4496 --- src/abstractgroupitem.cpp | 29 ++++++++--------------------- src/abstractgroupitem.h | 5 +++-- src/customtrackview.cpp | 2 +- src/kdenliveui.rc | 4 ++-- src/monitor.h | 4 +--- src/projectlist.h | 2 ++ src/renderer.cpp | 3 +-- 7 files changed, 18 insertions(+), 31 deletions(-) diff --git a/src/abstractgroupitem.cpp b/src/abstractgroupitem.cpp index cf5717a8..7d2cc39a 100644 --- a/src/abstractgroupitem.cpp +++ b/src/abstractgroupitem.cpp @@ -79,40 +79,27 @@ CustomTrackScene* AbstractGroupItem::projectScene() QPainterPath AbstractGroupItem::clipGroupShape(QPointF offset) const { - QPainterPath path; - QList children = childItems(); - for (int i = 0; i < children.count(); i++) { - if (children.at(i)->type() == AVWIDGET) { - QRectF r(children.at(i)->sceneBoundingRect()); - r.translate(offset); - path.addRect(r); - } else if (children.at(i)->type() == GROUPWIDGET) { - QList subchildren = children.at(i)->childItems(); - for (int j = 0; j < subchildren.count(); j++) { - if (subchildren.at(j)->type() == AVWIDGET) { - QRectF r(subchildren.at(j)->sceneBoundingRect()); - r.translate(offset); - path.addRect(r); - } - } - } - } - return path; + return groupShape(AVWIDGET, offset); } QPainterPath AbstractGroupItem::transitionGroupShape(QPointF offset) const +{ + return groupShape(TRANSITIONWIDGET, offset); +} + +QPainterPath AbstractGroupItem::groupShape(GRAPHICSRECTITEM type, QPointF offset) const { QPainterPath path; QList children = childItems(); for (int i = 0; i < children.count(); i++) { - if (children.at(i)->type() == TRANSITIONWIDGET) { + if (children.at(i)->type() == (int)type) { QRectF r(children.at(i)->sceneBoundingRect()); r.translate(offset); path.addRect(r); } else if (children.at(i)->type() == GROUPWIDGET) { QList subchildren = children.at(i)->childItems(); for (int j = 0; j < subchildren.count(); j++) { - if (subchildren.at(j)->type() == TRANSITIONWIDGET) { + if (subchildren.at(j)->type() == (int)type) { QRectF r(subchildren.at(j)->sceneBoundingRect()); r.translate(offset); path.addRect(r); diff --git a/src/abstractgroupitem.h b/src/abstractgroupitem.h index c6c59521..45ed0656 100644 --- a/src/abstractgroupitem.h +++ b/src/abstractgroupitem.h @@ -39,8 +39,8 @@ public: CustomTrackScene* projectScene(); void addItem(QGraphicsItem * item); int track() const; - QPainterPath clipGroupShape(QPointF) const; - QPainterPath transitionGroupShape(QPointF) const; + QPainterPath clipGroupShape(QPointF offset) const; + QPainterPath transitionGroupShape(QPointF offset) const; void setItemLocked(bool locked); bool isItemLocked() const; // ItemInfo info() const; @@ -55,6 +55,7 @@ protected: private: void fixItemRect(); + QPainterPath groupShape(GRAPHICSRECTITEM type, QPointF offset) const; }; #endif diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index d3c3b8b8..d151995e 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -5526,7 +5526,7 @@ void CustomTrackView::doSplitAudio(const GenTime &pos, int track, bool split) int freetrack = m_document->tracksCount() - track - 1; for (; freetrack > 0; freetrack--) { kDebug() << "// CHK DOC TRK:" << freetrack << ", DUR:" << m_document->renderer()->mltTrackDuration(freetrack); - if (m_document->trackInfoAt(freetrack - 1).type == AUDIOTRACK) { + 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; diff --git a/src/kdenliveui.rc b/src/kdenliveui.rc index 1d4e7510..1a8122bd 100644 --- a/src/kdenliveui.rc +++ b/src/kdenliveui.rc @@ -70,7 +70,7 @@ - + Timeline Selection @@ -160,7 +160,7 @@ Themes - + diff --git a/src/monitor.h b/src/monitor.h index 2d113081..6b0be9d3 100644 --- a/src/monitor.h +++ b/src/monitor.h @@ -92,9 +92,7 @@ protected: * * Moves towards the end of the clip/timeline on mouse wheel down/back, the * opposite on mouse wheel up/forward. - * Ctrl + wheel moves by a single frame, without Ctrl it moves by a second. - * - * See also http://www.kdenlive.org/mantis/view.php?id=265. */ + * Ctrl + wheel moves by a second, without Ctrl it moves by a single frame. */ virtual void wheelEvent(QWheelEvent * event); virtual void mouseMoveEvent(QMouseEvent *event); virtual QStringList mimeTypes() const; diff --git a/src/projectlist.h b/src/projectlist.h index 02753668..376c9c60 100644 --- a/src/projectlist.h +++ b/src/projectlist.h @@ -174,6 +174,7 @@ public slots: /** @brief Prepares removing the selected items. */ void slotRemoveClip(); void slotAddClip(const QList givenList = QList (), const QString &groupName = QString(), const QString &groupId = QString()); + /** @brief Adds, edits or deletes a folder item. * * This is triggered by AddFolderCommand and EditFolderCommand. */ @@ -228,6 +229,7 @@ private slots: void slotAddSlideshowClip(); void slotAddTitleClip(); void slotAddTitleTemplateClip(); + /** @brief Shows the context menu after enabling and disabling actions based on the item's type. * @param pos The position where the menu should pop up * @param item The item for which the checks should be done */ diff --git a/src/renderer.cpp b/src/renderer.cpp index 2a2f45df..2a78c8e6 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -538,8 +538,7 @@ void Render::slotSplitView(bool doit) if (service.type() != tractor_type || tractor.count() < 2) return; Mlt::Field *field = tractor.field(); if (doit) { - int screen = 0; - for (int i = 1; i < tractor.count() && screen < 4; i++) { + for (int i = 1, screen = 0; i < tractor.count() && screen < 4; i++) { Mlt::Producer trackProducer(tractor.track(i)); kDebug() << "// TRACK: " << i << ", HIDE: " << trackProducer.get("hide"); if (QString(trackProducer.get("hide")).toInt() != 1) { -- 2.39.2