if (m_renderWidget) {
int waitingJobs = m_renderWidget->waitingJobsCount();
if (waitingJobs > 0) {
- switch (KMessageBox::warningYesNoCancel(this, i18n("You have %1 rendering jobs waiting in the queue.\nWhat do you want to do with these jobs?", waitingJobs), QString(), KGuiItem(i18n("Start them now")), KGuiItem(i18n("Delete them")))) {
+ switch (KMessageBox::warningYesNoCancel(this, i18np("You have 1 rendering job waiting in the queue.\nWhat do you want to do with this job?", "You have %1 rendering jobs waiting in the queue.\nWhat do you want to do with these jobs?", waitingJobs), QString(), KGuiItem(i18n("Start them now")), KGuiItem(i18n("Delete them")))) {
case KMessageBox::Yes :
// create script with waiting jobs and start it
if (m_renderWidget->startWaitingRenderJobs() == false) return false;
m_statusProgressBar->setMaximumWidth(150);
m_statusProgressBar->setVisible(false);
- KToolBar *toolbar = new KToolBar("statusToolBar", this, Qt::NoToolBarArea);
+ KToolBar *toolbar = new KToolBar("statusToolBar", this, Qt::BottomToolBarArea);
toolbar->setMovable(false);
m_toolGroup = new QActionGroup(this);
statusBar()->setStyleSheet(QString("QStatusBar QLabel {font-size:%1pt;} QStatusBar::item { border: 0px; font-size:%1pt;padding:0px; }").arg(statusBar()->font().pointSize()));
projectRender->setShortcut(Qt::CTRL + Qt::Key_Return);
connect(projectRender, SIGNAL(triggered(bool)), this, SLOT(slotRenderProject()));
+ KAction* projectClean = new KAction(KIcon("edit-clear"), i18n("Clean Project"), this);
+ collection->addAction("project_clean", projectClean);
+ connect(projectClean, SIGNAL(triggered(bool)), this, SLOT(slotCleanProject()));
+
KAction* monitorPlay = new KAction(KIcon("media-playback-start"), i18n("Play"), this);
KShortcut playShortcut;
playShortcut.setPrimary(Qt::Key_Space);
profileName = KdenliveSettings::default_profile();
projectFolder = KdenliveSettings::defaultprojectfolder();
} else {
- ProjectSettings *w = new ProjectSettings(projectTracks.x(), projectTracks.y(), KdenliveSettings::defaultprojectfolder(), false, this);
+ ProjectSettings *w = new ProjectSettings(projectTracks.x(), projectTracks.y(), KdenliveSettings::defaultprojectfolder(), false, true, this);
if (w->exec() != QDialog::Accepted) return;
if (!KdenliveSettings::activatetabs()) closeCurrentDocument();
KdenliveSettings::setVideothumbnails(w->enableVideoThumbs());
void MainWindow::slotEditProjectSettings()
{
QPoint p = m_activeDocument->getTracksCount();
- ProjectSettings *w = new ProjectSettings(p.x(), p.y(), m_activeDocument->projectFolder().path(), true, this);
+ ProjectSettings *w = new ProjectSettings(p.x(), p.y(), m_activeDocument->projectFolder().path(), true, !m_activeDocument->isModified(), this);
if (w->exec() == QDialog::Accepted) {
QString profile = w->selectedProfile();
m_effectStack->slotClipItemSelected(NULL, 0);
m_transitionConfig->slotTransitionItemSelected(NULL, 0, QPoint(), false);
m_clipMonitor->slotSetXml(NULL, 0);
- m_activeDocument->setProfilePath(profile);
+ bool updateFps = m_activeDocument->setProfilePath(profile);
KdenliveSettings::setCurrent_profile(profile);
KdenliveSettings::setProject_fps(m_activeDocument->fps());
setCaption(m_activeDocument->description(), m_activeDocument->isModified());
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();
- m_activeTimeline->updateProjectFps();
-
+ if (updateFps) m_activeTimeline->updateProjectFps();
+ m_activeDocument->setModified(true);
+ m_commandStack->activeStack()->clear();
// We need to desactivate & reactivate monitors to get a refresh
//m_monitorManager->switchMonitors();
}
if (m_renderWidget) m_renderWidget->setRenderStatus(url, status, error);
}
+void MainWindow::slotCleanProject()
+{
+ if (KMessageBox::warningContinueCancel(this, i18n("This will remove all unused clips from your project."), i18n("Clean up project")) == KMessageBox::Cancel) return;
+ m_projectList->cleanup();
+}
+
void MainWindow::slotUpdateMousePosition(int pos)
{
if (m_activeDocument)
disconnect(m_activeTimeline->projectView(), SIGNAL(activateDocumentMonitor()), m_projectMonitor, SLOT(activateMonitor()));
disconnect(m_activeTimeline, SIGNAL(zoneMoved(int, int)), this, SLOT(slotZoneMoved(int, int)));
disconnect(m_projectList, SIGNAL(loadingIsOver()), m_activeTimeline->projectView(), SLOT(slotUpdateAllThumbs()));
+ disconnect(m_projectList, SIGNAL(displayMessage(const QString&, MessageType)), m_messageLabel, SLOT(setMessage(const QString&, MessageType)));
m_effectStack->clear();
}
//m_activeDocument->setRenderer(NULL);
connect(trackView->projectView(), SIGNAL(activateDocumentMonitor()), m_projectMonitor, SLOT(activateMonitor()));
connect(trackView, SIGNAL(zoneMoved(int, int)), this, SLOT(slotZoneMoved(int, int)));
connect(m_projectList, SIGNAL(loadingIsOver()), trackView->projectView(), SLOT(slotUpdateAllThumbs()));
+ connect(m_projectList, SIGNAL(displayMessage(const QString&, MessageType)), m_messageLabel, SLOT(setMessage(const QString&, MessageType)));
+
trackView->projectView()->setContextMenu(m_timelineContextMenu, m_timelineContextClipMenu, m_timelineContextTransitionMenu, m_clipTypeGroup);
m_activeTimeline = trackView;
if (m_renderWidget) {