X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fprojectitem.cpp;h=ae1eab2688bd7fcf4123a0137795f6fea226efb5;hb=459decee5e330552ef73b7cb363dbbe38fdc7e87;hp=7c3688c14cc3c7158fc36b721e0e35b0525c7128;hpb=31dfe522b78cc931a2b62dea2b52eb91c41f767e;p=kdenlive diff --git a/src/projectitem.cpp b/src/projectitem.cpp index 7c3688c1..ae1eab26 100644 --- a/src/projectitem.cpp +++ b/src/projectitem.cpp @@ -27,58 +27,46 @@ #include #include +const int DurationRole = Qt::UserRole + 1; +const int itemHeight = 38; -const int NameRole = Qt::UserRole; -const int DurationRole = NameRole + 1; -const int UsageRole = NameRole + 2; - - -// folder -ProjectItem::ProjectItem(QTreeWidget * parent, const QStringList & strings, const QString &clipId) - : QTreeWidgetItem(parent, strings), m_clipType(FOLDER), m_clipId(clipId), m_clip(NULL), m_groupname(strings.at(1)) -{ - setSizeHint(0, QSize(65, 45)); - setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); - setIcon(0, KIcon("folder")); - setToolTip(1, "" + i18n("Folder")); - //kDebug() << "Constructed as folder, with clipId: " << m_clipId << ", and groupname: " << m_groupname; -} - -ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip) - : QTreeWidgetItem(parent) +ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip) : + QTreeWidgetItem(parent, PROJECTCLIPTYPE) { - setSizeHint(0, QSize(65, 45)); - setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); + setSizeHint(0, QSize(itemHeight * 3, itemHeight)); + if (clip->isPlaceHolder()) setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + else setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); m_clip = clip; m_clipId = clip->getId(); QString name = m_clip->getProperty("name"); if (name.isEmpty()) name = KUrl(m_clip->getProperty("resource")).fileName(); m_clipType = (CLIPTYPE) m_clip->getProperty("type").toInt(); if (m_clipType != UNKNOWN) slotSetToolTip(); - setText(1, name); - setText(2, m_clip->description()); - if ((m_clip->clipType() == AV || m_clip->clipType() == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs(); + setText(0, name); + setText(1, m_clip->description()); + m_clip->askForAudioThumbs(); GenTime duration = m_clip->duration(); - if (duration != GenTime()) setData(1, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); + if (duration != GenTime()) setData(0, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); //setFlags(Qt::NoItemFlags); //kDebug() << "Constructed with clipId: " << m_clipId; } -ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip) - : QTreeWidgetItem(parent) +ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip) : + QTreeWidgetItem(parent, PROJECTCLIPTYPE) { - setSizeHint(0, QSize(65, 45)); - setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); + setSizeHint(0, QSize(itemHeight * 3, itemHeight)); + if (clip->isPlaceHolder()) setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + else setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsEditable); m_clip = clip; m_clipId = clip->getId(); QString name = m_clip->getProperty("name"); if (name.isEmpty()) name = KUrl(m_clip->getProperty("resource")).fileName(); m_clipType = (CLIPTYPE) m_clip->getProperty("type").toInt(); - setText(1, name); - setText(2, m_clip->description()); - if ((m_clip->clipType() == AV || m_clip->clipType() == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs(); + setText(0, name); + setText(1, m_clip->description()); + m_clip->askForAudioThumbs(); GenTime duration = m_clip->duration(); - if (duration != GenTime()) setData(1, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); + if (duration != GenTime()) setData(0, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); //setFlags(Qt::NoItemFlags); //kDebug() << "Constructed with clipId: " << m_clipId; } @@ -88,6 +76,12 @@ ProjectItem::~ProjectItem() { } +//static +int ProjectItem::itemDefaultHeight() +{ + return itemHeight; +} + int ProjectItem::numReferences() const { if (!m_clip) return 0; @@ -109,11 +103,6 @@ int ProjectItem::clipMaxDuration() const return m_clip->getProperty("duration").toInt(); } -bool ProjectItem::isGroup() const -{ - return m_clipType == FOLDER; -} - QStringList ProjectItem::names() const { QStringList result; @@ -130,14 +119,14 @@ QDomElement ProjectItem::toXml() const const KUrl ProjectItem::clipUrl() const { - if (m_clipType != COLOR && m_clipType != VIRTUAL && m_clipType != UNKNOWN && m_clipType != FOLDER) + if (m_clipType != COLOR && m_clipType != VIRTUAL && m_clipType != UNKNOWN) return KUrl(m_clip->getProperty("resource")); else return KUrl(); } void ProjectItem::changeDuration(int frames) { - setData(1, DurationRole, Timecode::getEasyTimecode(GenTime(frames, KdenliveSettings::project_fps()), KdenliveSettings::project_fps())); + setData(0, DurationRole, Timecode::getEasyTimecode(GenTime(frames, KdenliveSettings::project_fps()), KdenliveSettings::project_fps())); } void ProjectItem::setProperties(QMap props) @@ -164,17 +153,6 @@ void ProjectItem::clearProperty(const QString &key) m_clip->clearProperty(key); } -const QString ProjectItem::groupName() const -{ - return m_groupname; -} - -void ProjectItem::setGroupName(const QString name) -{ - m_groupname = name; - setText(1, name); -} - DocClipBase *ProjectItem::referencedClip() { return m_clip; @@ -183,6 +161,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()); @@ -200,10 +179,11 @@ void ProjectItem::slotSetToolTip() tip.append(i18n("Image clip") + "

" + clipUrl().path()); break; case TEXT: - tip.append(i18n("Text clip") + "
" + clipUrl().path()); + if (!clipUrl().isEmpty() && m_clip->getProperty("xmldata").isEmpty()) tip.append(i18n("Template text clip") + "
" + clipUrl().path()); + else tip.append(i18n("Text clip") + "
" + clipUrl().path()); break; case SLIDESHOW: - tip.append(i18n("Slideshow clip")); + tip.append(i18n("Slideshow clip") + "
" + clipUrl().directory()); break; case VIRTUAL: tip.append(i18n("Virtual clip")); @@ -216,7 +196,7 @@ void ProjectItem::slotSetToolTip() break; } - setToolTip(1, tip); + setToolTip(0, tip); } @@ -226,9 +206,8 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con //setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled); if (attributes.contains("duration")) { GenTime duration = GenTime(attributes.value("duration").toInt(), KdenliveSettings::project_fps()); - setData(1, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); + setData(0, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps())); m_clip->setDuration(duration); - //kDebug() << "//// LOADED CLIP, DURATION SET TO: " << duration.frames(KdenliveSettings::project_fps()); } else { // No duration known, use an arbitrary one until it is. } @@ -249,15 +228,15 @@ void ProjectItem::setProperties(const QMap < QString, QString > &attributes, con } m_clip->setProperties(attributes); m_clip->setMetadata(metadata); - if ((m_clipType == AV || m_clipType == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs(); + m_clip->askForAudioThumbs(); if (m_clip->description().isEmpty()) { if (metadata.contains("description")) { m_clip->setProperty("description", metadata.value("description")); - setText(2, m_clip->description()); + setText(1, m_clip->description()); } else if (metadata.contains("comment")) { m_clip->setProperty("description", metadata.value("comment")); - setText(2, m_clip->description()); + setText(1, m_clip->description()); } } }