void MainWindow::queryQuit()
{
kDebug() << "----- SAVING CONFUIG";
- if (queryClose()) kapp->quit();
+ if (queryClose()) {
+ Mlt::Factory::close();
+ kapp->quit();
+ }
}
//virtual
collection->addAction("add_text_clip", addTitleClip);
connect(addTitleClip , SIGNAL(triggered()), m_projectList, SLOT(slotAddTitleClip()));
+ QAction *addTitleTemplateClip = new KAction(KIcon("kdenlive-add-text-clip"), i18n("Add Template Title"), this);
+ collection->addAction("add_text_template_clip", addTitleTemplateClip);
+ connect(addTitleTemplateClip , SIGNAL(triggered()), m_projectList, SLOT(slotAddTitleTemplateClip()));
+
QAction *addFolderButton = new KAction(KIcon("folder-new"), i18n("Create Folder"), this);
collection->addAction("add_folder", addFolderButton);
connect(addFolderButton , SIGNAL(triggered()), m_projectList, SLOT(slotAddFolder()));
addClips->addAction(addColorClip);
addClips->addAction(addSlideClip);
addClips->addAction(addTitleClip);
+ addClips->addAction(addTitleTemplateClip);
addClips->addAction(addFolderButton);
addClips->addAction(reloadClip);
delete m_activeDocument;
m_activeDocument = NULL;
m_effectStack->clear();
- m_transitionConfig->slotTransitionItemSelected(NULL, QPoint(), false);
+ m_transitionConfig->slotTransitionItemSelected(NULL, 0, QPoint(), false);
} else delete docToClose;
if (w == m_activeTimeline) {
delete m_activeTimeline;
void MainWindow::slotDetectAudioDriver()
{
//decide which audio driver is really best, in some cases SDL is wrong
- if(KdenliveSettings::audiodrivername().isEmpty()) {
+ if (KdenliveSettings::audiodrivername().isEmpty()) {
QString driver;
KProcess readProcess;
//PulseAudio needs to be selected if it exists, the ALSA pulse pcm device is not fast enough.
QString result = QString(readProcess.readAllStandardOutput());
kDebug() << "// / / / / / READING PACTL: ";
kDebug() << result;
- if(!result.isEmpty()) {
+ if (!result.isEmpty()) {
driver = "pulse";
kDebug() << "// / / / / PULSEAUDIO DETECTED";
}
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*, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, QPoint, bool)));
- disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*, QPoint, bool)), this, SLOT(slotActivateTransitionView(Transition *)));
+ disconnect(m_activeTimeline->projectView(), SIGNAL(transitionItemSelected(Transition*, int, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, int, QPoint, bool)));
+ disconnect(m_activeTimeline->projectView(), SIGNAL(transitionItemSelected(Transition*, int, 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*, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, QPoint, bool)));
- connect(trackView, SIGNAL(transitionItemSelected(Transition*, QPoint, bool)), this, SLOT(slotActivateTransitionView(Transition *)));
+ connect(trackView->projectView(), SIGNAL(transitionItemSelected(Transition*, int, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, int, QPoint, bool)));
+ connect(trackView->projectView(), SIGNAL(transitionItemSelected(Transition*, int, 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()));
{
if (clip->clipType() == TEXT) {
QString titlepath = m_activeDocument->projectFolder().path() + "/titles/";
+ if (!clip->getProperty("xmltemplate").isEmpty()) {
+ // template text clip
+ KUrl path = KUrlRequesterDialog::getUrl(clip->getProperty("xmltemplate"), this, i18n("Change template path"));
+ if (!path.isEmpty() && (path.path() != clip->getProperty("xmltemplate"))) {
+ // Clip template modified, update
+ m_projectList->regenerateTemplate(clip->getId());
+ }
+ return;
+ }
QString path = clip->getProperty("resource");
TitleWidget *dia_ui = new TitleWidget(KUrl(), titlepath, m_projectMonitor->render, this);
QDomDocument doc;