const int DurationRole = Qt::UserRole + 1;
const int JobProgressRole = Qt::UserRole + 5;
const int JobTypeRole = Qt::UserRole + 6;
-const int JobCrasMessage = Qt::UserRole + 7;
+const int JobStatusMessage = Qt::UserRole + 7;
const int itemHeight = 38;
ProjectItem::ProjectItem(QTreeWidget * parent, DocClipBase *clip) :
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();
{
QString tip;
if (m_clip->isPlaceHolder()) tip.append(i18n("Missing") + " | ");
- int s = data(0, JobProgressRole).toInt();
- if (s == CREATINGJOB || s > 0) {
- tip.append(i18n("Building proxy clip") + " | ");
- }
- else if (s == JOBWAITING) {
- tip.append(i18n("Waiting - proxy clip") + " | ");
+ QString jobInfo = data(0, JobStatusMessage).toString();
+ if (!jobInfo.isEmpty()) {
+ tip.append(jobInfo + " | ");
}
- else if (hasProxy()) {
+ if (hasProxy() && data(0, JobTypeRole).toInt() != PROXYJOB) {
tip.append(i18n("Proxy clip") + " | ");
}
tip.append("<b>");
}
}
-void ProjectItem::setJobStatus(CLIPJOBSTATUS status, int progress, JOBTYPE jobType)
+void ProjectItem::setJobStatus(JOBTYPE jobType, CLIPJOBSTATUS status, int progress, const QString &statusMessage)
{
- if (status == JOBCRASHED) {
- if (jobType == PROXYJOB) setData(0, JobCrasMessage, i18n("Proxy crashed"));
- else if (jobType == CUTJOB) setData(0, JobCrasMessage, i18n("Transcoding crashed"));
- }
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);
+ if ((status == JOBABORTED || status == JOBCRASHED || status == JOBDONE) || !statusMessage.isEmpty())
+ setData(0, JobStatusMessage, statusMessage);
slotSetToolTip();
}
}
+void ProjectItem::setConditionalJobStatus(CLIPJOBSTATUS status, JOBTYPE requestedJobType)
+{
+ if (data(0, JobTypeRole).toInt() == requestedJobType) {
+ setData(0, JobProgressRole, status);
+ }
+}
+
bool ProjectItem::hasProxy() const
{
if (m_clip == NULL) return false;
- if (m_clip->getProperty("proxy").isEmpty() || m_clip->getProperty("proxy") == "-" || data(0, JobProgressRole).toInt() == JOBCRASHED) return false;
+ if (m_clip->getProperty("proxy").size() < 2 || data(0, JobProgressRole).toInt() == JOBCRASHED) return false;
return true;
}
bool ProjectItem::isJobRunning() const
{
int s = data(0, JobProgressRole).toInt();
- if (s == JOBWAITING || s == CREATINGJOB || s > 0) return true;
+ if (s == JOBWAITING || s == JOBWORKING || s > 0) return true;
return false;
}
bool ProjectItem::isProxyRunning() const
{
int s = data(0, JobProgressRole).toInt();
- if ((s == CREATINGJOB || s > 0) && data(0, JobTypeRole).toInt() == (int) PROXYJOB) return true;
+ if ((s == JOBWORKING || s > 0) && data(0, JobTypeRole).toInt() == (int) PROXYJOB) return true;
return false;
}