const int JobStatusMessage = Qt::UserRole + 7;
const int itemHeight = 38;
-ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip) :
+ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip, QSize pixmapSize) :
QTreeWidgetItem(parent, PROJECTCLIPTYPE),
m_clip(clip),
- m_clipId(clip->getId())
+ m_clipId(clip->getId()),
+ m_pixmapSet(false)
{
- buildItem();
+ buildItem(pixmapSize);
}
-ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip) :
+ProjectItem::ProjectItem(QTreeWidgetItem * parent, DocClipBase *clip, QSize pixmapSize) :
QTreeWidgetItem(parent, PROJECTCLIPTYPE),
m_clip(clip),
- m_clipId(clip->getId())
+ m_clipId(clip->getId()),
+ m_pixmapSet(false)
{
- buildItem();
+ buildItem(pixmapSize);
}
-void ProjectItem::buildItem()
+void ProjectItem::buildItem(QSize pixmapSize)
{
setSizeHint(0, QSize(itemHeight * 3, itemHeight));
if (m_clip->isPlaceHolder()) setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
QString name = m_clip->getProperty("name");
if (name.isEmpty()) name = KUrl(m_clip->getProperty("resource")).fileName();
m_clipType = (CLIPTYPE) m_clip->getProperty("type").toInt();
+ switch(m_clipType) {
+ case AUDIO:
+ setData(0, Qt::DecorationRole, KIcon("audio-x-generic").pixmap(pixmapSize));
+ m_pixmapSet = true;
+ break;
+ case IMAGE:
+ case SLIDESHOW:
+ setData(0, Qt::DecorationRole, KIcon("image-x-generic").pixmap(pixmapSize));
+ break;
+ default:
+ setData(0, Qt::DecorationRole, KIcon("video-x-generic").pixmap(pixmapSize));
+ }
+ if (m_clipType != UNKNOWN) slotSetToolTip();
+
setText(0, name);
setText(1, m_clip->description());
GenTime duration = m_clip->duration();
{
}
+bool ProjectItem::hasPixmap() const
+{
+ return m_pixmapSet;
+}
+
+void ProjectItem::setPixmap(const QPixmap p)
+{
+ m_pixmapSet = true;
+ setData(0, Qt::DecorationRole, p);
+}
+
//static
int ProjectItem::itemDefaultHeight()
{
return m_clip->getProperty("duration").toInt();
}
-QStringList ProjectItem::names() const
-{
- QStringList result;
- result.append(text(0));
- result.append(text(1));
- result.append(text(2));
- return result;
-}
-
QDomElement ProjectItem::toXml() const
{
return m_clip->toXML();
void ProjectItem::setJobStatus(JOBTYPE jobType, CLIPJOBSTATUS status, int progress, const QString &statusMessage)
{
setData(0, JobTypeRole, jobType);
- if (progress > 0) setData(0, JobProgressRole, progress);
+ if (progress > 0) setData(0, JobProgressRole, qMin(100, progress));
else {
setData(0, JobProgressRole, status);
- setData(0, JobStatusMessage, statusMessage);
+ if ((status == JOBABORTED || status == JOBCRASHED || status == JOBDONE) || !statusMessage.isEmpty())
+ setData(0, JobStatusMessage, statusMessage);
slotSetToolTip();
}
}