void EventsWindow::showEvent(const EventData &eventData) { if (!eventData.hasMedia()) return; m_eventViewer->setEvent(eventData); /* Hack to ensure that the video area isn't collapsed */ if (m_videoSplitter->sizes()[1] == 0) m_videoSplitter->setSizes(QList<int>() << m_videoSplitter->sizes()[0] << 1); m_eventViewer->show(); }
bool MediaEventFilter::accept(const EventData &event) const { return event.hasMedia(); }
QVariant EventsModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); EventData *data = reinterpret_cast<EventData*>(index.internalPointer()); if (!data) return QVariant(); if (role == EventDataPtr) { return QVariant::fromValue(data); } else if (role == Qt::ToolTipRole) { return tr("%1 (%2)<br>%3 on %4<br>%5").arg(data->uiType(), data->uiLevel(), Qt::escape(data->uiLocation()), Qt::escape(data->uiServer()), data->serverStartDate().toString()); } else if (role == Qt::ForegroundRole) { return data->uiColor(false); } switch (index.column()) { case ServerColumn: if (role == Qt::DisplayRole) { if (data->server()) return data->server()->configuration().displayName(); else return QString(); } break; case LocationColumn: if (role == Qt::DisplayRole) return data->uiLocation(); break; case TypeColumn: if (role == Qt::DisplayRole) return data->uiType(); else if (role == Qt::DecorationRole) return data->hasMedia() ? QIcon(QLatin1String(":/icons/control-000-small.png")) : QVariant(); break; case DurationColumn: if (role == Qt::DisplayRole) return data->uiDuration(); else if (role == Qt::EditRole) return data->durationInSeconds(); else if (role == Qt::FontRole && data->inProgress()) { QFont f; f.setBold(true); return f; } break; case LevelColumn: if (role == Qt::DisplayRole) return data->uiLevel(); else if (role == Qt::EditRole) return data->level().level; break; case DateColumn: if (role == Qt::DisplayRole) return data->serverStartDate().toString(); else if (role == Qt::EditRole) return data->utcStartDate(); break; } return QVariant(); }