X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.cpp;h=c74204daabbfb2cb824379bd8a76c3f71b096fcf;hb=9f76a9103088feb8ae3feef0343ddfdcf0685fe6;hp=de411aaa4b80a68c860180c2f720cc76cec8cc12;hpb=e2a9141ae49c678889f39353b7e9ad10e657db83;p=kdenlive diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index de411aaa..c74204da 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -84,7 +84,6 @@ CustomTrackView::CustomTrackView(KdenliveDoc *doc, CustomTrackScene* projectscene, QWidget *parent) : QGraphicsView(projectscene, parent), m_tracksHeight(KdenliveSettings::trackheight()), - m_selectedTrack(0), m_projectDuration(0), m_cursorPos(0), m_document(doc), @@ -284,8 +283,9 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) int pos = event->x(); int mappedXPos = (int)(mapToScene(event->pos()).x() + 0.5); emit mousePosition(mappedXPos); + if (event->buttons() & Qt::MidButton) return; - if ((event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL) || event->modifiers() == Qt::ShiftModifier) { + if (m_operationMode == RUBBERSELECTION || (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL)) { QGraphicsView::mouseMoveEvent(event); m_moveOpMode = NONE; return; @@ -326,15 +326,15 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) m_dragItem->updateKeyFramePos(keyFramePos, pos); } - if (m_animation) delete m_animation; + delete m_animation; m_animation = NULL; - if (m_visualTip) delete m_visualTip; + delete m_visualTip; m_visualTip = NULL; return; } else if (m_operationMode == MOVEGUIDE) { - if (m_animation) delete m_animation; + delete m_animation; m_animation = NULL; - if (m_visualTip) delete m_visualTip; + delete m_visualTip; m_visualTip = NULL; QGraphicsView::mouseMoveEvent(event); return; @@ -385,7 +385,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) return; } else { if (m_visualTip) { - if (m_animation) delete m_animation; + delete m_animation; m_animation = NULL; m_animationTimer->stop(); delete m_visualTip; @@ -546,7 +546,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) slotCheckPositionScrolling(); } else m_moveOpMode = NONE; if (m_visualTip) { - if (m_animation) delete m_animation; + delete m_animation; m_animationTimer->stop(); m_animation = NULL; delete m_visualTip; @@ -2637,6 +2637,7 @@ void CustomTrackView::deleteClip(ItemInfo info) scene()->removeItem(item); if (m_dragItem == item) m_dragItem = NULL; delete item; + m_document->setModified(true); m_document->renderer()->doRefresh(); } @@ -2682,6 +2683,7 @@ void CustomTrackView::deleteSelectedClips() ClipItem *item = static_cast (itemList.at(i)); if (item->parentItem()) resetGroup = true; new AddTimelineClipCommand(this, item->xml(), item->clipProducer(), item->info(), item->effectList(), true, true, deleteSelected); + emit clipItemSelected(NULL); } else if (itemList.at(i)->type() == TRANSITIONWIDGET) { Transition *item = static_cast (itemList.at(i)); if (item->parentItem()) resetGroup = true; @@ -2690,8 +2692,10 @@ void CustomTrackView::deleteSelectedClips() info.endPos = item->endPos(); info.track = item->track(); new AddTransitionCommand(this, info, item->transitionEndTrack(), item->toXML(), true, true, deleteSelected); + emit transitionItemSelected(NULL); } } + m_commandStack->push(deleteSelected); } @@ -2847,6 +2851,8 @@ void CustomTrackView::addClip(QDomElement xml, const QString &clipId, ItemInfo i } ClipItem *item = new ClipItem(baseclip, info, m_document->fps(), xml.attribute("speed", "1").toDouble()); item->setEffectList(effects); + if (xml.hasAttribute("audio_only")) item->setAudioOnly(true); + else if (xml.hasAttribute("video_only")) item->setVideoOnly(true); scene()->addItem(item); int tracknumber = m_document->tracksCount() - info.track - 1; @@ -2888,7 +2894,7 @@ void CustomTrackView::slotUpdateClip(const QString &clipId) if (list.at(i)->type() == AVWIDGET) { clip = static_cast (list.at(i)); if (clip->clipProducer() == clipId) { - clip->refreshClip(); + clip->refreshClip(true); ItemInfo info = clip->info(); info.track = m_document->tracksCount() - clip->track(); m_document->renderer()->mltUpdateClip(info, clip->xml(), clip->baseClip()->producer()); @@ -3480,8 +3486,7 @@ void CustomTrackView::editGuide(const GenTime oldPos, const GenTime pos, const Q bool found = false; for (int i = 0; i < m_guides.count(); i++) { if (m_guides.at(i)->position() == oldPos) { - Guide *item = m_guides.takeAt(i); - delete item; + delete m_guides.takeAt(i); found = true; break; } @@ -3580,14 +3585,10 @@ void CustomTrackView::setScale(double scaleFactor) m_scene->setScale(scaleFactor); //scale(scaleFactor, 1); m_animationTimer->stop(); - if (m_visualTip) { - delete m_visualTip; - m_visualTip = NULL; - } - if (m_animation) { - delete m_animation; - m_animation = NULL; - } + delete m_visualTip; + m_visualTip = NULL; + delete m_animation; + m_animation = NULL; //setSceneRect(0, 0, m_projectDuration + 100 * scaleFactor, sceneRect().height()); setMatrix(matrix); @@ -3697,9 +3698,8 @@ void CustomTrackView::clearSearchStrings() void CustomTrackView::copyClip() { - while (m_copiedItems.count() > 0) { - delete m_copiedItems.takeFirst(); - } + qDeleteAll(m_copiedItems); + m_copiedItems.clear(); QList itemList = scene()->selectedItems(); if (itemList.count() == 0) { emit displayMessage(i18n("Select a clip before copying"), ErrorMessage); @@ -3985,7 +3985,7 @@ void CustomTrackView::slotUpdateAllThumbs() } } } - item->refreshClip(); + item->refreshClip(false); qApp->processEvents(); } } @@ -4457,4 +4457,5 @@ void CustomTrackView::updateClipTypeActions(ClipItem *clip) } } + #include "customtrackview.moc"