]> git.sesse.net Git - kdenlive/blobdiff - src/kdenlivedoc.cpp
Display Jpeg exif data in clip properties metadata
[kdenlive] / src / kdenlivedoc.cpp
index e8bec8ca75edc8814086178bc53ac578d466e294..2e0b13aca5df3ed8b5a4d12e90ed9d758113e10b 100644 (file)
@@ -269,10 +269,16 @@ QDomDocument KdenliveDoc::createEmptyDocument(int videotracks, int audiotracks)
 
     m_tracksList.clear();
 
+    // Tracks are added «backwards», so we need to reverse the track numbering
+    // mbt 331: http://www.kdenlive.org/mantis/view.php?id=331
+    // Better default names for tracks: Audio 1 etc. instead of blank numbers
     for (int i = 0; i < audiotracks; i++) {
+        audioTrack.trackName = QString("Audio ") + QString::number(audiotracks - i);
         m_tracksList.append(audioTrack);
+
     }
     for (int i = 0; i < videotracks; i++) {
+        videoTrack.trackName = QString("Video ") + QString::number(videotracks - i);
         m_tracksList.append(videoTrack);
     }
     return createEmptyDocument(m_tracksList);
@@ -359,13 +365,13 @@ QDomDocument KdenliveDoc::createEmptyDocument(QList <TrackInfo> tracks)
     track0.setAttribute("producer", "black_track");
     tractor.appendChild(track0);
 
-    // create audio tracks
+    // create audio and video tracks
     for (int i = 1; i < total; i++) {
         QDomElement track = doc.createElement("track");
         track.setAttribute("producer", "playlist" + QString::number(i));
-        if (tracks.at(i - 1).type == AUDIOTRACK)
+        if (tracks.at(i - 1).type == AUDIOTRACK) {
             track.setAttribute("hide", "video");
-        else if (tracks.at(i - 1).isBlind)
+        else if (tracks.at(i - 1).isBlind)
             track.setAttribute("hide", "video");
         if (tracks.at(i - 1).isMute)
             track.setAttribute("hide", "audio");
@@ -520,7 +526,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
 
     // tracks info
     QDomElement tracksinfo = sceneList.createElement("tracksinfo");
-    foreach(const TrackInfo &info, m_tracksList) {
+    foreach(const TrackInfo & info, m_tracksList) {
         QDomElement trackinfo = sceneList.createElement("trackinfo");
         if (info.type == AUDIOTRACK) trackinfo.setAttribute("type", "audio");
         trackinfo.setAttribute("mute", info.isMute);
@@ -961,7 +967,7 @@ QString KdenliveDoc::searchFileRecursively(const QDir &dir, const QString &match
                 * 1 MB = 1 second per 450 files (or faster)
                 * 10 MB = 9 seconds per 450 files (or faster)
                 */
-                if (file.size() > 1000000*2) {
+                if (file.size() > 1000000 * 2) {
                     fileData = file.read(1000000);
                     if (file.seek(file.size() - 1000000))
                         fileData.append(file.readAll());
@@ -1050,6 +1056,13 @@ DocClipBase *KdenliveDoc::getBaseClip(const QString &clipId)
     return m_clipManager->getClipById(clipId);
 }
 
+void KdenliveDoc::slotCreateXmlClip(const QString &name, const QDomElement xml, QString group, const QString &groupId)
+{
+    m_clipManager->slotAddXmlClipFile(name, xml, group, groupId);
+    setModified(true);
+    emit selectLastAddedClip(QString::number(m_clipManager->lastClipId()));
+}
+
 void KdenliveDoc::slotCreateColorClip(const QString &name, const QString &color, const QString &duration, QString group, const QString &groupId)
 {
     m_clipManager->slotAddColorClipFile(name, color, duration, group, groupId);
@@ -1151,7 +1164,7 @@ QPoint KdenliveDoc::getTracksCount() const
 {
     int audio = 0;
     int video = 0;
-    foreach(const TrackInfo &info, m_tracksList) {
+    foreach(const TrackInfo & info, m_tracksList) {
         if (info.type == VIDEOTRACK) video++;
         else audio++;
     }