break;
case KMessageBox::Cancel :
return;
+ break;
default:
break;
}
m_timelineArea->setTabBarHidden(true);
m_closeAction->setEnabled(false);
}
- delete docToClose;
- delete w;
- if (m_timelineArea->count() == 0) {
+ if (docToClose == m_activeDocument) {
+ delete m_activeDocument;
m_activeDocument = NULL;
m_effectStack->clear();
- m_transitionConfig->slotTransitionItemSelected(NULL, false);
- }
+ m_transitionConfig->slotTransitionItemSelected(NULL, QPoint(), false);
+ } else delete docToClose;
+ if (w == m_activeTimeline) {
+ delete m_activeTimeline;
+ m_activeTimeline = NULL;
+ } else delete w;
}
bool MainWindow::saveFileAs(const QString &outputFileName)
if (m_renderWidget) m_renderWidget->setDocumentPath(w->selectedFolder().path());
if (m_activeDocument->profilePath() != profile) {
// Profile was changed
+ double dar = m_activeDocument->dar();
m_activeDocument->setProfilePath(profile);
KdenliveSettings::setCurrent_profile(profile);
KdenliveSettings::setProject_fps(m_activeDocument->fps());
if (m_renderWidget) m_renderWidget->setProfile(m_activeDocument->mltProfile());
m_timelineArea->setTabText(m_timelineArea->currentIndex(), m_activeDocument->description());
m_activeDocument->clipManager()->resetProducersList(m_projectMonitor->render->producersList());
-
+ if (dar != m_activeDocument->dar()) m_projectList->reloadClipThumbnails();
// We need to desactivate & reactivate monitors to get a refresh
m_monitorManager->switchMonitors();
}
disconnect(m_activeDocument, SIGNAL(deleteTimelineClip(const QString &)), m_activeTimeline, SLOT(slotDeleteClip(const QString &)));
disconnect(m_activeTimeline->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), m_effectStack, SLOT(slotClipItemSelected(ClipItem*, int)));
disconnect(m_activeTimeline->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), this, SLOT(slotActivateEffectStackView()));
- disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, bool)));
- disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*, bool)), this, SLOT(slotActivateTransitionView(Transition *)));
+ disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, QPoint, bool)));
+ disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*, QPoint, bool)), this, SLOT(slotActivateTransitionView(Transition *)));
disconnect(m_zoomSlider, SIGNAL(valueChanged(int)), m_activeTimeline, SLOT(slotChangeZoom(int)));
disconnect(m_activeTimeline->projectView(), SIGNAL(displayMessage(const QString&, MessageType)), m_messageLabel, SLOT(setMessage(const QString&, MessageType)));
disconnect(m_activeTimeline->projectView(), SIGNAL(showClipFrame(DocClipBase *, const int)), m_clipMonitor, SLOT(slotSetXml(DocClipBase *, const int)));
connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), m_effectStack, SLOT(slotClipItemSelected(ClipItem*, int)));
connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), this, SLOT(slotActivateEffectStackView()));
- connect(trackView, SIGNAL(transitionItemSelected(Transition*, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, bool)));
- connect(trackView, SIGNAL(transitionItemSelected(Transition*, bool)), this, SLOT(slotActivateTransitionView(Transition *)));
+ connect(trackView, SIGNAL(transitionItemSelected(Transition*, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, QPoint, bool)));
+ connect(trackView, SIGNAL(transitionItemSelected(Transition*, QPoint, bool)), this, SLOT(slotActivateTransitionView(Transition *)));
m_zoomSlider->setValue(doc->zoom());
connect(m_zoomSlider, SIGNAL(valueChanged(int)), trackView, SLOT(slotChangeZoom(int)));
connect(trackView->projectView(), SIGNAL(zoomIn()), this, SLOT(slotZoomIn()));
//m_clipManager->slotEditTextClipFile(id, dia_ui->xml().toString());
QMap <QString, QString> newprops;
newprops.insert("xmldata", dia_ui->xml().toString());
+ newprops.insert("frame_size", QString::number(pix.width()) + 'x' + QString::number(pix.height()));
EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newprops, true);
m_activeDocument->commandStack()->push(command);
m_clipMonitor->refreshMonitor(true);
}
}
-void MainWindow::slotTranscode(QString url)
+void MainWindow::slotTranscode(KUrl::List urls)
{
QString params;
- if (url.isEmpty()) {
- url = m_projectList->currentClipUrl();
+ if (urls.isEmpty()) {
+ urls.append(m_projectList->currentClipUrl());
QAction *action = qobject_cast<QAction *>(sender());
params = action->data().toString();
-
}
- if (url.isEmpty()) return;
- ClipTranscode *d = new ClipTranscode(url, params);
+ if (urls.isEmpty()) return;
+ ClipTranscode *d = new ClipTranscode(urls, params);
connect(d, SIGNAL(addClip(KUrl)), this, SLOT(slotAddProjectClip(KUrl)));
d->show();
//QProcess::startDetached("ffmpeg", parameters);
void MainWindow::slotTranscodeClip()
{
- KUrl url = KFileDialog::getOpenUrl(KUrl("kfiledialog:///projectfolder"));
- if (url.isEmpty()) return;
- slotTranscode(url.path());
+ KUrl::List urls = KFileDialog::getOpenUrls(KUrl("kfiledialog:///projectfolder"));
+ if (urls.isEmpty()) return;
+ slotTranscode(urls);
}
#include "mainwindow.moc"