]> git.sesse.net Git - kdenlive/blobdiff - src/projectitem.cpp
Const'ref
[kdenlive] / src / projectitem.cpp
index c26f5ce94b8f330be69914175ce0948c2cc336c3..6b5f573e6e0b711d368e85193d3cb42086364c1d 100644 (file)
@@ -35,7 +35,7 @@ const int JobTypeRole = Qt::UserRole + 6;
 const int JobStatusMessage = Qt::UserRole + 7;
 const int itemHeight = 38;
 
-ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip, QSize pixmapSize) :
+ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip, const QSize &pixmapSize) :
         QTreeWidgetItem(parent, PROJECTCLIPTYPE),
         m_clip(clip),
         m_clipId(clip->getId()),
@@ -44,7 +44,7 @@ ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip, QSize pixmapSi
     buildItem(pixmapSize);
 }
 
-ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip, QSize pixmapSize) :
+ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip, const QSize &pixmapSize) :
         QTreeWidgetItem(parent, PROJECTCLIPTYPE),
         m_clip(clip),
         m_clipId(clip->getId()),
@@ -54,7 +54,7 @@ ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip, QSize pixm
     buildItem(pixmapSize);
 }
 
-void ProjectItem::buildItem(QSize pixmapSize)
+void ProjectItem::buildItem(const QSize &pixmapSize)
 {
     setSizeHint(0, QSize(itemHeight * 3, itemHeight));
     if (m_clip->isPlaceHolder()) setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
@@ -74,6 +74,7 @@ void ProjectItem::buildItem(QSize pixmapSize)
        default:
            setData(0, Qt::DecorationRole, KIcon("video-x-generic").pixmap(pixmapSize));
     }
+    if (m_clipType != UNKNOWN) slotSetToolTip();
     
     setText(0, name);
     setText(1, m_clip->description());
@@ -100,7 +101,7 @@ bool ProjectItem::hasPixmap() const
     return m_pixmapSet;
 }
 
-void ProjectItem::setPixmap(const QPixmap p)
+void ProjectItem::setPixmap(const QPixmap& p)
 {
     m_pixmapSet = true;
     setData(0, Qt::DecorationRole, p);
@@ -153,7 +154,7 @@ void ProjectItem::changeDuration(int frames)
     setData(0, DurationRole, itemdata + Timecode::getEasyTimecode(GenTime(frames, KdenliveSettings::project_fps()), KdenliveSettings::project_fps()));
 }
 
-void ProjectItem::setProperties(QMap <QString, QString> props)
+void ProjectItem::setProperties(const QMap<QString, QString> &props)
 {
     if (m_clip == NULL) return;
     m_clip->setProperties(props);
@@ -193,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);
 }
 
@@ -236,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;
@@ -253,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();
@@ -265,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"));
@@ -324,7 +295,7 @@ bool ProjectItem::isProxyRunning() const
     return false;
 }
 
-bool ProjectItem::playlistHasProxies(const QString path)
+bool ProjectItem::playlistHasProxies(const QString& path)
 {
     kDebug()<<"// CHECKING FOR PROXIES";
     QFile file(path);
@@ -338,7 +309,7 @@ bool ProjectItem::playlistHasProxies(const QString path)
     file.close();
     QString root = doc.documentElement().attribute("root");
     QDomNodeList kdenliveProducers = doc.elementsByTagName("kdenlive_producer");
-    for (int i = 0; i < kdenliveProducers.count(); i++) {
+    for (int i = 0; i < kdenliveProducers.count(); ++i) {
         QString proxy = kdenliveProducers.at(i).toElement().attribute("proxy");
         if (!proxy.isEmpty() && proxy != "-") return true;
     }