X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftrackview.cpp;h=4efc9067860ebc7fc45bcb3866042f847076dcaf;hb=7448dd52292cc53cd97ce3fdba5c26246faba3f1;hp=a2f2de4e5c87a7581d12c91e90bb6cc397b3ac1d;hpb=1513be73305aeab04ae7810a7f5078bcdc763283;p=kdenlive diff --git a/src/trackview.cpp b/src/trackview.cpp index a2f2de4e..4efc9067 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -31,6 +31,7 @@ #include "customtrackview.h" #include "initeffects.h" #include "profilesdialog.h" +#include "configtrackscommand.h" #include #include @@ -146,6 +147,21 @@ int TrackView::tracksNumber() const return m_projectTracks - 1; } +bool TrackView::checkProjectAudio() const +{ + bool hasAudio = false; + const QList list = m_doc->tracksList(); + int max = list.count(); + for (int i = 0; i < max; i++) { + TrackInfo info = list.at(max - i - 1); + if (!info.isMute && m_trackview->hasAudio(i)) { + hasAudio = true; + break; + } + } + return hasAudio; +} + int TrackView::inPoint() const { return m_ruler->inPoint(); @@ -430,8 +446,10 @@ void TrackView::parseDocument(QDomDocument doc) ct++; backupFile = baseFile + "_backup" + QString::number(ct) + ".kdenlive"; } - if (KIO::NetAccess::file_copy(m_doc->url(), KUrl(backupFile), this)) KMessageBox::information(this, i18n("Your project file was upgraded to the latest Kdenlive document version.\n To make sure you don't lose data, a backup copy called %1 was created.", backupFile)); - else KMessageBox::information(this, i18n("Your project file was upgraded to the latest Kdenlive document version, it was not possible to create a backup copy.", backupFile)); + if (KIO::NetAccess::file_copy(m_doc->url(), KUrl(backupFile), this)) + KMessageBox::information(this, i18n("Your project file was upgraded to the latest Kdenlive document version.\nTo make sure you don't lose data, a backup copy called %1 was created.", backupFile)); + else + KMessageBox::information(this, i18n("Your project file was upgraded to the latest Kdenlive document version, but it was not possible to create a backup copy.", backupFile)); } //m_trackview->setCursorPos(cursorPos); //m_scrollBox->setGeometry(0, 0, 300 * zoomFactor(), m_scrollArea->height()); @@ -463,8 +481,10 @@ void TrackView::slotChangeZoom(int horizontal, int vertical) m_trackview->setScale(m_scale, m_scene->scale().y()); } else { m_verticalZoom = vertical; - if (m_verticalZoom == 0) m_trackview->setScale(m_scale, 0.5); - else m_trackview->setScale(m_scale, m_verticalZoom); + if (m_verticalZoom == 0) + m_trackview->setScale(m_scale, 0.5); + else + m_trackview->setScale(m_scale, m_verticalZoom); adjustTrackHeaders(); } } @@ -535,8 +555,8 @@ void TrackView::slotRebuildTrackHeaders() connect(header, SIGNAL(selectTrack(int)), m_trackview, SLOT(slotSelectTrack(int))); connect(header, SIGNAL(deleteTrack(int)), this, SIGNAL(deleteTrack(int))); connect(header, SIGNAL(insertTrack(int)), this, SIGNAL(insertTrack(int))); - connect(header, SIGNAL(changeTrack(int)), this, SIGNAL(changeTrack(int))); - connect(header, SIGNAL(renameTrack(int)), this, SLOT(slotRenameTrack(int))); + connect(header, SIGNAL(renameTrack(int, QString)), this, SLOT(slotRenameTrack(int, QString))); + connect(header, SIGNAL(configTrack(int)), this, SIGNAL(configTrack(int))); headers_container->layout()->addWidget(header); } frame = new QFrame(this); @@ -907,8 +927,10 @@ void TrackView::slotVerticalZoomDown() if (m_verticalZoom == 0) return; m_verticalZoom--; m_doc->setZoom(m_doc->zoom().x(), m_verticalZoom); - if (m_verticalZoom == 0) m_trackview->setScale(m_scene->scale().x(), 0.5); - else m_trackview->setScale(m_scene->scale().x(), 1); + if (m_verticalZoom == 0) + m_trackview->setScale(m_scene->scale().x(), 0.5); + else + m_trackview->setScale(m_scene->scale().x(), 1); adjustTrackHeaders(); m_trackview->verticalScrollBar()->setValue(headers_area->verticalScrollBar()->value()); } @@ -918,8 +940,10 @@ void TrackView::slotVerticalZoomUp() if (m_verticalZoom == 2) return; m_verticalZoom++; m_doc->setZoom(m_doc->zoom().x(), m_verticalZoom); - if (m_verticalZoom == 2) m_trackview->setScale(m_scene->scale().x(), 2); - else m_trackview->setScale(m_scene->scale().x(), 1); + if (m_verticalZoom == 2) + m_trackview->setScale(m_scene->scale().x(), 2); + else + m_trackview->setScale(m_scene->scale().x(), 1); adjustTrackHeaders(); m_trackview->verticalScrollBar()->setValue(headers_area->verticalScrollBar()->value()); } @@ -930,18 +954,14 @@ void TrackView::updateProjectFps() m_trackview->updateProjectFps(); } -void TrackView::slotRenameTrack(int ix) +void TrackView::slotRenameTrack(int ix, QString name) { int tracknumber = m_doc->tracksCount() - ix; - TrackInfo info = m_doc->trackInfoAt(tracknumber - 1); - bool ok; - QString newName = QInputDialog::getText(this, i18n("New Track Name"), i18n("Enter new name"), QLineEdit::Normal, info.trackName, &ok); - if (ok) { - info.trackName = newName; - m_doc->setTrackType(tracknumber - 1, info); - QTimer::singleShot(300, this, SLOT(slotReloadTracks())); - m_doc->setModified(true); - } + QList tracks = m_doc->tracksList(); + tracks[tracknumber - 1].trackName = name; + ConfigTracksCommand *configTracks = new ConfigTracksCommand(m_trackview, m_doc->tracksList(), tracks); + m_doc->commandStack()->push(configTracks); + m_doc->setModified(true); } void TrackView::slotUpdateVerticalScroll(int /*min*/, int max) @@ -951,4 +971,9 @@ void TrackView::slotUpdateVerticalScroll(int /*min*/, int max) headers_container->layout()->setContentsMargins(0, m_trackview->frameWidth(), 0, height); } +void TrackView::updateRuler() +{ + m_ruler->update(); +} + #include "trackview.moc"