diff --git a/src/panels/information/dolphin_informationpanelsettings.kcfg b/src/panels/information/dolphin_informationpanelsettings.kcfg
--- a/src/panels/information/dolphin_informationpanelsettings.kcfg
+++ b/src/panels/information/dolphin_informationpanelsettings.kcfg
@@ -10,6 +10,10 @@
true
+
+
+ false
+
diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp
--- a/src/panels/information/informationpanel.cpp
+++ b/src/panels/information/informationpanel.cpp
@@ -176,6 +176,11 @@
previewAction->setCheckable(true);
previewAction->setChecked(InformationPanelSettings::previewsShown());
+ QAction* previewAutoPlayAction = popup.addAction(i18nc("@action:inmenu", "Preview autoPaly"));
+ previewAutoPlayAction->setIcon(QIcon::fromTheme(QStringLiteral("media-playback-start")));
+ previewAutoPlayAction->setCheckable(true);
+ previewAutoPlayAction->setChecked(InformationPanelSettings::previewsAutoPlay());
+
QAction* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure..."));
configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
@@ -209,12 +214,16 @@
dialog->show();
connect(dialog, &FileMetaDataConfigurationDialog::destroyed, m_content, &InformationPanelContent::refreshMetaData);
}
- if (action == dateformatAction) {
+ else if (action == dateformatAction) {
int dateFormat = static_cast(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat);
InformationPanelSettings::setDateFormat(dateFormat);
m_content->refreshMetaData();
}
+ else if (action == previewAutoPlayAction) {
+ InformationPanelSettings::setPreviewsAutoPlay(isChecked);
+ m_content->setPreviewAutoPlay(isChecked);
+ }
}
void InformationPanel::showItemInfo()
diff --git a/src/panels/information/informationpanelcontent.h b/src/panels/information/informationpanelcontent.h
--- a/src/panels/information/informationpanelcontent.h
+++ b/src/panels/information/informationpanelcontent.h
@@ -74,6 +74,8 @@
void setPreviewVisible(bool visible);
+ void setPreviewAutoPlay(bool autoPlay);
+
KFileItemList items();
signals:
diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp
--- a/src/panels/information/informationpanelcontent.cpp
+++ b/src/panels/information/informationpanelcontent.cpp
@@ -85,6 +85,7 @@
m_phononWidget = new PhononWidget(parent);
m_phononWidget->hide();
m_phononWidget->setMinimumWidth(minPreviewWidth);
+ m_phononWidget->setAutoPlay(InformationPanelSettings::previewsAutoplay());
connect(m_phononWidget, &PhononWidget::hasVideoChanged,
this, &InformationPanelContent::slotHasVideoChanged);
@@ -303,6 +304,10 @@
m_preview->setVisible(InformationPanelSettings::previewsShown() && !hasVideo);
}
+void InformationPanelContent::setPreviewAutoPlay(bool autoPlay) {
+ m_phononWidget->setAutoPlay(autoPlay);
+}
+
void InformationPanelContent::refreshMetaData()
{
if (!m_item.isNull()) {
diff --git a/src/panels/information/phononwidget.h b/src/panels/information/phononwidget.h
--- a/src/panels/information/phononwidget.h
+++ b/src/panels/information/phononwidget.h
@@ -51,6 +51,8 @@
void setVideoSize(const QSize& size);
QSize videoSize() const;
+ void setAutoPlay(bool autoPlay);
+
signals:
/**
* Is emitted whenever the video-state
@@ -87,6 +89,7 @@
Phonon::SeekSlider *m_seekSlider;
Phonon::AudioOutput *m_audioOutput;
EmbeddedVideoPlayer *m_videoPlayer;
+ bool m_autoPlay;
};
#endif // PHONONWIDGET_H
diff --git a/src/panels/information/phononwidget.cpp b/src/panels/information/phononwidget.cpp
--- a/src/panels/information/phononwidget.cpp
+++ b/src/panels/information/phononwidget.cpp
@@ -74,6 +74,17 @@
if (m_url != url) {
stop(); // emits playingStopped() signal
m_url = url;
+
+ if (m_autoPlay) {
+ play();
+ }
+ }
+}
+
+void PhononWidget::setAutoPlay(bool autoPlay) {
+ m_autoPlay = autoPlay;
+ if (m_media != nullptr && m_media->state() != Phonon::State::PlayingState && m_autoPlay) {
+ play();
}
}