X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fprojectitem.cpp;h=731c5a69bd359d1c5a9b4b9ad9e926e146676570;hb=477e3a88c475e1db6ecac09313f470260c51ac60;hp=cfba3932e89c5f7d4996483f74701cde6b049541;hpb=df207dcc878cf5b57a70b19a58442a7cbdc080ec;p=kdenlive diff --git a/src/projectitem.cpp b/src/projectitem.cpp index cfba3932..731c5a69 100644 --- a/src/projectitem.cpp +++ b/src/projectitem.cpp @@ -28,13 +28,15 @@ #include const int DurationRole = Qt::UserRole + 1; +const int ProxyRole = Qt::UserRole + 5; const int itemHeight = 38; ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip) : QTreeWidgetItem(parent, PROJECTCLIPTYPE) { setSizeHint(0, QSize(itemHeight * 3, itemHeight)); - setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); + if (clip->isPlaceHolder()) setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled); + else setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsDropEnabled); m_clip = clip; m_clipId = clip->getId(); QString name = m_clip->getProperty("name"); @@ -43,7 +45,6 @@ ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip) : if (m_clipType != UNKNOWN) slotSetToolTip(); setText(0, name); setText(1, m_clip->description()); - m_clip->askForAudioThumbs(); GenTime duration = m_clip->duration(); if (duration != GenTime()) setData(0, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); //setFlags(Qt::NoItemFlags); @@ -54,7 +55,8 @@ ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip) : QTreeWidgetItem(parent, PROJECTCLIPTYPE) { setSizeHint(0, QSize(itemHeight * 3, itemHeight)); - setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); + if (clip->isPlaceHolder()) setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled); + else setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsDropEnabled); m_clip = clip; m_clipId = clip->getId(); QString name = m_clip->getProperty("name"); @@ -62,7 +64,6 @@ ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip) : m_clipType = (CLIPTYPE) m_clip->getProperty("type").toInt(); setText(0, name); setText(1, m_clip->description()); - m_clip->askForAudioThumbs(); GenTime duration = m_clip->duration(); if (duration != GenTime()) setData(0, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); //setFlags(Qt::NoItemFlags); @@ -159,6 +160,7 @@ DocClipBase *ProjectItem::referencedClip() void ProjectItem::slotSetToolTip() { QString tip = ""; + if (m_clip->isPlaceHolder()) tip.append(i18n("Missing") + " | "); switch (m_clipType) { case AUDIO: tip.append(i18n("Audio clip") + "
" + clipUrl().path()); @@ -225,7 +227,6 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con } m_clip->setProperties(attributes); m_clip->setMetadata(metadata); - m_clip->askForAudioThumbs(); if (m_clip->description().isEmpty()) { if (metadata.contains("description")) { @@ -238,3 +239,12 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con } } +void ProjectItem::setProxyStatus(int status) +{ + setData(0, ProxyRole, status); +} + +bool ProjectItem::hasProxy() const +{ + return data(0, ProxyRole).toInt() == 2; +}