3D PDF: Open media viewer on double click

This commit is contained in:
Jakub Melka
2022-07-08 18:54:50 +02:00
parent 3d3b8edec8
commit f1824da326
8 changed files with 112 additions and 3 deletions

View File

@ -1039,6 +1039,23 @@ bool PDFAnnotation::isTypeEditable(AnnotationType type)
return false;
}
bool PDFAnnotation::isTypeMultimedia(AnnotationType type)
{
switch (type)
{
case AnnotationType::Sound:
case AnnotationType::Movie:
case AnnotationType::_3D:
case AnnotationType::RichMedia:
return true;
default:
break;
}
return false;
}
QPen PDFAnnotation::getPen() const
{
QColor strokeColor = getStrokeColor();
@ -1816,7 +1833,8 @@ void PDFWidgetAnnotationManager::mousePressEvent(QWidget* widget, QMouseEvent* e
void PDFWidgetAnnotationManager::mouseDoubleClickEvent(QWidget* widget, QMouseEvent* event)
{
Q_UNUSED(widget);
Q_UNUSED(event);
updateFromMouseEvent(event);
}
void PDFWidgetAnnotationManager::mouseReleaseEvent(QWidget* widget, QMouseEvent* event)
@ -1967,6 +1985,16 @@ void PDFWidgetAnnotationManager::updateFromMouseEvent(QMouseEvent* event)
Q_EMIT actionTriggered(linkAction);
}
}
// Execute multimedia annotation
if (event->type() == QEvent::MouseButtonDblClick && event->button() == Qt::LeftButton)
{
const PDFAnnotation* annotation = pageAnnotation.annotation.get();
if (PDFAnnotation::isTypeMultimedia(annotation->getType()))
{
emit multimediaTriggered(annotation);
}
}
}
else
{