From c2a5ec6ae0103705f22a53d08bb948468eb58edd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Mon, 22 Sep 2008 14:47:31 +0000 Subject: [PATCH] * Allow user to set number of audio/video tracks at project creation * Remove transitions that where not implemented svn path=/branches/KDE4/; revision=2402 --- src/initeffects.cpp | 5 +++ src/kdenlivedoc.cpp | 14 +++---- src/kdenlivedoc.h | 4 +- src/mainwindow.cpp | 6 ++- src/projectsettings.cpp | 9 ++++ src/projectsettings.h | 1 + src/widgets/projectsettings_ui.ui | 68 ++++++++++++++++++++++++++----- 7 files changed, 84 insertions(+), 23 deletions(-) diff --git a/src/initeffects.cpp b/src/initeffects.cpp index 27496efc..10d6a313 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -463,6 +463,11 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, } void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* transitions, QStringList names) { + // remove transitions that are not implemented + int pos = names.indexOf("mix"); + if (pos != -1) names.takeAt(pos); + pos = names.indexOf("region"); + if (pos != -1) names.takeAt(pos); foreach(const QString &name, names) { QDomDocument ret; QDomElement ktrans = ret.createElement("ktransition"); diff --git a/src/kdenlivedoc.cpp b/src/kdenlivedoc.cpp index 6f7332a8..7c35b273 100644 --- a/src/kdenlivedoc.cpp +++ b/src/kdenlivedoc.cpp @@ -37,7 +37,7 @@ #include "mainwindow.h" -KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, const QString &profileName, MainWindow *parent): QObject(parent), m_render(NULL), m_url(url), m_projectFolder(projectFolder), m_commandStack(new QUndoStack(undoGroup)), m_modified(false), m_documentLoadingProgress(0), m_documentLoadingStep(0.0), m_startPos(0), m_zoom(7), m_autosave(NULL) { +KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, const QString &profileName, const QPoint tracks, MainWindow *parent): QObject(parent), m_render(NULL), m_url(url), m_projectFolder(projectFolder), m_commandStack(new QUndoStack(undoGroup)), m_modified(false), m_documentLoadingProgress(0), m_documentLoadingStep(0.0), m_startPos(0), m_zoom(7), m_autosave(NULL) { m_clipManager = new ClipManager(this); if (!url.isEmpty()) { QString tmpFile; @@ -113,18 +113,18 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup } else { parent->slotGotProgressInfo(i18n("File %1 is not a Kdenlive project file."), 100); kWarning() << " NO KDENLIVE INFO FOUND IN FILE: " << url.path(); - m_document = createEmptyDocument(); + m_document = createEmptyDocument(tracks.x(), tracks.y()); setProfilePath(profileName); } KIO::NetAccess::removeTempFile(tmpFile); } else { KMessageBox::error(parent, KIO::NetAccess::lastErrorString()); parent->slotGotProgressInfo(i18n("File %1 is not a Kdenlive project file."), 100); - m_document = createEmptyDocument(); + m_document = createEmptyDocument(tracks.x(), tracks.y()); setProfilePath(profileName); } } else { - m_document = createEmptyDocument(); + m_document = createEmptyDocument(tracks.x(), tracks.y()); setProfilePath(profileName); } m_scenelist = m_document.toString(); @@ -144,7 +144,7 @@ KdenliveDoc::~KdenliveDoc() { m_autosave->remove(); } -QDomDocument KdenliveDoc::createEmptyDocument() { +QDomDocument KdenliveDoc::createEmptyDocument(const int videotracks, const int audiotracks) { // Creating new document QDomDocument doc; QDomElement westley = doc.createElement("westley"); @@ -159,8 +159,6 @@ QDomDocument KdenliveDoc::createEmptyDocument() { // create playlists - const int audiotracks = 2; - const int videotracks = 3; int total = audiotracks + videotracks + 1; for (int i = 1; i < total; i++) { @@ -765,7 +763,7 @@ void KdenliveDoc::slotCreateTextClip(QString group, const QString &groupId) { QString titleName = "title"; int counter = 0; QString path = titlesFolder + titleName + QString::number(counter).rightJustified(3, '0', false); - while (QFile::exists(path + ".kdenlivetitle")) { + while (QFile::exists(path + ".png")) { counter++; path = titlesFolder + titleName + QString::number(counter).rightJustified(3, '0', false); } diff --git a/src/kdenlivedoc.h b/src/kdenlivedoc.h index bf15ba55..f62c989d 100644 --- a/src/kdenlivedoc.h +++ b/src/kdenlivedoc.h @@ -46,7 +46,7 @@ class MainWindow; class KdenliveDoc: public QObject { Q_OBJECT public: - KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, const QString &profileName, MainWindow *parent = 0); + KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, const QString &profileName, const QPoint tracks, MainWindow *parent = 0); ~KdenliveDoc(); QDomNodeList producersList(); double fps() const; @@ -129,7 +129,7 @@ private: double m_documentLoadingStep; double m_documentLoadingProgress; void convertDocument(double version); - QDomDocument createEmptyDocument(); + QDomDocument createEmptyDocument(const int videotracks, const int audiotracks); public slots: void slotCreateTextClip(QString group, const QString &groupId); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 63050356..45ea96df 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -777,15 +777,17 @@ void MainWindow::readOptions() { void MainWindow::newFile() { QString profileName; KUrl projectFolder; + QPoint projectTracks(3, 2); if (m_timelineArea->count() == 0) profileName = KdenliveSettings::default_profile(); else { ProjectSettings *w = new ProjectSettings; if (w->exec() != QDialog::Accepted) return; profileName = w->selectedProfile(); projectFolder = w->selectedFolder(); + projectTracks = w->tracks(); delete w; } - KdenliveDoc *doc = new KdenliveDoc(KUrl(), projectFolder, m_commandStack, profileName, this); + KdenliveDoc *doc = new KdenliveDoc(KUrl(), projectFolder, m_commandStack, profileName, projectTracks, this); doc->m_autosave = new KAutoSaveFile(KUrl(), doc); TrackView *trackView = new TrackView(doc, this); m_timelineArea->addTab(trackView, KIcon("kdenlive"), doc->description()); @@ -899,7 +901,7 @@ void MainWindow::openFile(const KUrl &url) { void MainWindow::doOpenFile(const KUrl &url, KAutoSaveFile *stale) { KdenliveDoc *doc; - doc = new KdenliveDoc(url, KUrl(), m_commandStack, QString(), this); + doc = new KdenliveDoc(url, KUrl(), m_commandStack, QString(), QPoint(3, 2), this); if (stale == NULL) { stale = new KAutoSaveFile(url, doc); doc->m_autosave = stale; diff --git a/src/projectsettings.cpp b/src/projectsettings.cpp index e0f62a1f..5dbb5282 100644 --- a/src/projectsettings.cpp +++ b/src/projectsettings.cpp @@ -49,6 +49,8 @@ ProjectSettings::ProjectSettings(QWidget * parent): QDialog(parent), m_isCustomP //buttonOk->setEnabled(false); m_view.audio_thumbs->setChecked(KdenliveSettings::audiothumbnails()); m_view.video_thumbs->setChecked(KdenliveSettings::videothumbnails()); + m_view.audio_tracks->setValue(2); + m_view.video_tracks->setValue(3); slotUpdateDisplay(); connect(m_view.profiles_list, SIGNAL(currentIndexChanged(int)), this, SLOT(slotUpdateDisplay())); connect(m_view.project_folder, SIGNAL(textChanged(const QString &)), this, SLOT(slotUpdateButton(const QString &))); @@ -79,6 +81,13 @@ KUrl ProjectSettings::selectedFolder() const { return m_view.project_folder->url(); } +QPoint ProjectSettings::tracks() { + QPoint p; + p.setX(m_view.video_tracks->value()); + p.setY(m_view.audio_tracks->value()); + return p; +} + #include "projectsettings.moc" diff --git a/src/projectsettings.h b/src/projectsettings.h index e36fe8df..6175a7fa 100644 --- a/src/projectsettings.h +++ b/src/projectsettings.h @@ -33,6 +33,7 @@ public: ProjectSettings(QWidget * parent = 0); QString selectedProfile() const; KUrl selectedFolder() const; + QPoint tracks(); private slots: void slotUpdateDisplay(); diff --git a/src/widgets/projectsettings_ui.ui b/src/widgets/projectsettings_ui.ui index ff5c8ba4..f5660afe 100644 --- a/src/widgets/projectsettings_ui.ui +++ b/src/widgets/projectsettings_ui.ui @@ -5,25 +5,25 @@ 0 0 - 370 - 257 + 315 + 273 Project Settings - + Project folder - + - + Video Profile @@ -109,28 +109,61 @@ - + + + + Video tracks + + + + + + + + + + Audio tracks + + + + + + + + + + Qt::Horizontal + + + + 67 + 20 + + + + + Thumbnails: - + Video - + Audio - + Qt::Horizontal @@ -143,7 +176,7 @@ - + Qt::Vertical @@ -156,7 +189,7 @@ - + Qt::Horizontal @@ -167,6 +200,19 @@ + label_4 + project_folder + properties + label_2 + video_thumbs + audio_thumbs + buttonBox + label_6 + horizontalSpacer_2 + label_8 + label_7 + video_tracks + audio_tracks -- 2.39.2