]> git.sesse.net Git - kdenlive/commitdiff
Show clip size & fps in project tree tooltip
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 11 Feb 2013 22:56:06 +0000 (23:56 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 11 Feb 2013 22:56:06 +0000 (23:56 +0100)
src/docclipbase.cpp
src/docclipbase.h
src/projectitem.cpp

index dcf4ca822a80e433a9d342eeeb4506774750ac05..938cdb7eac00f470c70ddaef524eac27a1cb3572 100644 (file)
@@ -299,6 +299,57 @@ QDomElement DocClipBase::toXML(bool hideTemporaryProperties) const
     return doc.documentElement();
 }
 
+const QString DocClipBase::shortInfo() const
+{
+  
+    QString info;
+    if (m_clipType == AV || m_clipType == VIDEO || m_clipType == IMAGE || m_clipType == PLAYLIST) {
+       info = m_properties.value("frame_size") + " ";
+       if (m_properties.contains("fps")) {
+           info.append(i18n("%1 fps", m_properties.value("fps").left(5)));
+       }
+       if (!info.simplified().isEmpty()) info.prepend(" - ");
+    }
+    else if (m_clipType == AUDIO) {
+       info = " - " + m_properties.value("frequency") + i18n("Hz");
+    }
+    QString tip = "<b>";
+    switch (m_clipType) {
+    case AUDIO:
+        tip.append(i18n("Audio clip") + "</b>" + info + "<br />" + fileURL().path());
+        break;
+    case VIDEO:
+        tip.append(i18n("Mute video clip") + "</b>" + info + "<br />" + fileURL().path());
+        break;
+    case AV:
+        tip.append(i18n("Video clip") + "</b>" + info + "<br />" + fileURL().path());
+        break;
+    case COLOR:
+        tip.append(i18n("Color clip"));
+        break;
+    case IMAGE:
+        tip.append(i18n("Image clip") + "</b>" + info + "<br />" + fileURL().path());
+        break;
+    case TEXT:
+        if (!fileURL().isEmpty() && getProperty("xmldata").isEmpty()) tip.append(i18n("Template text clip") + "</b><br />" + fileURL().path());
+        else tip.append(i18n("Text clip") + "</b><br />" + fileURL().path());
+        break;
+    case SLIDESHOW:
+        tip.append(i18n("Slideshow clip") + "</b><br />" + fileURL().directory());
+        break;
+    case VIRTUAL:
+        tip.append(i18n("Virtual clip"));
+        break;
+    case PLAYLIST:
+        tip.append(i18n("Playlist clip") + "</b>" + info + "<br />" + fileURL().path());
+        break;
+    default:
+        tip.append(i18n("Unknown clip"));
+        break;
+    }
+    return tip;
+}
+
 
 void DocClipBase::setAudioThumbCreated(bool isDone)
 {
index 9eb12719e073aaba24b1b5b5ac2f66f19bec4c57..c56af7174fab72dd5369af332955278e6e8193a8 100644 (file)
@@ -211,6 +211,8 @@ Q_OBJECT public:
     /** Return the current values for a set of properties */
     QMap <QString, QString> currentProperties(QMap <QString, QString> props);
     QMap <QString, QStringList> metadata() const;
+    /** @brief Returns a short info string about the clip to display in tooltip */
+    const QString shortInfo() const;
 
 private:   // Private attributes
     /** The number of times this clip is used in the project - the number of references to this clip
index d1508f2e5556a21ab8c0c26a08420de107d564ba..aeb4a870844154b04ff3439393eaa87725eee146 100644 (file)
@@ -194,40 +194,7 @@ void ProjectItem::slotSetToolTip()
     if (hasProxy() && data(0, JobTypeRole).toInt() != PROXYJOB) {
         tip.append(i18n("Proxy clip") + " | ");
     }
-    tip.append("<b>");
-    switch (m_clipType) {
-    case AUDIO:
-        tip.append(i18n("Audio clip") + "</b><br />" + clipUrl().path());
-        break;
-    case VIDEO:
-        tip.append(i18n("Mute video clip") + "</b><br />" + clipUrl().path());
-        break;
-    case AV:
-        tip.append(i18n("Video clip") + "</b><br />" + clipUrl().path());
-        break;
-    case COLOR:
-        tip.append(i18n("Color clip"));
-        break;
-    case IMAGE:
-        tip.append(i18n("Image clip") + "</b><br />" + clipUrl().path());
-        break;
-    case TEXT:
-        if (!clipUrl().isEmpty() && m_clip->getProperty("xmldata").isEmpty()) tip.append(i18n("Template text clip") + "</b><br />" + clipUrl().path());
-        else tip.append(i18n("Text clip") + "</b><br />" + clipUrl().path());
-        break;
-    case SLIDESHOW:
-        tip.append(i18n("Slideshow clip") + "</b><br />" + clipUrl().directory());
-        break;
-    case VIRTUAL:
-        tip.append(i18n("Virtual clip"));
-        break;
-    case PLAYLIST:
-        tip.append(i18n("Playlist clip") + "</b><br />" + clipUrl().path());
-        break;
-    default:
-        tip.append(i18n("Unknown clip"));
-        break;
-    }
+    tip.append(m_clip->shortInfo());
     setToolTip(0, tip);
 }
 
@@ -237,6 +204,10 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con
     if (m_clip == NULL) return;
 
     QString prefix;
+
+    m_clip->setProperties(attributes);
+    m_clip->setMetadata(metadata);
+    
     if (m_clipType == UNKNOWN) {
         QString cliptype = attributes.value("type");
         if (cliptype == "audio") m_clipType = AUDIO;
@@ -254,6 +225,8 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con
             }
         }
     }
+    else if (attributes.contains("frame_size")) slotSetToolTip();
+    
     if (attributes.contains("duration")) {
         GenTime duration = GenTime(attributes.value("duration").toInt(), KdenliveSettings::project_fps());
         QString itemdata = data(0, DurationRole).toString();
@@ -266,9 +239,6 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con
         // No duration known, use an arbitrary one until it is.
     }
 
-    m_clip->setProperties(attributes);
-    m_clip->setMetadata(metadata);
-
     if (m_clip->description().isEmpty()) {
         if (metadata.contains("description")) {
             m_clip->setProperty("description", metadata.value("description"));