#include <KIcon>
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");
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);
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");
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);
void ProjectItem::slotSetToolTip()
{
QString tip = "<b>";
+ if (m_clip->isPlaceHolder()) tip.append(i18n("Missing") + " | ");
switch (m_clipType) {
case AUDIO:
tip.append(i18n("Audio clip") + "</b><br />" + clipUrl().path());
}
m_clip->setProperties(attributes);
m_clip->setMetadata(metadata);
- m_clip->askForAudioThumbs();
if (m_clip->description().isEmpty()) {
if (metadata.contains("description")) {
}
}
+void ProjectItem::setProxyStatus(int status)
+{
+ setData(0, ProxyRole, status);
+}
+
+bool ProjectItem::hasProxy() const
+{
+ return data(0, ProxyRole).toInt() == 2;
+}