--- a/src/settings/dolphin_generalsettings.kcfg
+++ b/src/settings/dolphin_generalsettings.kcfg
@@ -81,6 +81,10 @@
false
+
+
+ false
+
true
--- a/src/settings/navigation/navigationsettingspage.cpp
+++ b/src/settings/navigation/navigationsettingspage.cpp
@@ -29,7 +29,8 @@
NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) :
SettingsPageBase(parent),
m_openArchivesAsFolder(0),
- m_autoExpandFolders(0)
+ m_autoExpandFolders(0),
+ m_autoPlayMediaFiles(0)
{
QVBoxLayout* topLayout = new QVBoxLayout(this);
QWidget* vBox = new QWidget(this);
@@ -43,12 +44,16 @@
m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"), vBox);
vBoxLayout->addWidget(m_autoExpandFolders);
+ m_autoPlayMediaFiles = new QCheckBox(i18nc("@option:check", "Play media files automatically"), vBox);
+ vBoxLayout->addWidget(m_autoPlayMediaFiles);
+
topLayout->addWidget(vBox);
loadSettings();
connect(m_openArchivesAsFolder, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
connect(m_autoExpandFolders, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
+ connect(m_autoPlayMediaFiles, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
}
NavigationSettingsPage::~NavigationSettingsPage()
@@ -60,6 +65,7 @@
GeneralSettings* settings = GeneralSettings::self();
settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked());
settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
+ settings->setAutoPlayMediaFiles(m_autoPlayMediaFiles->isChecked());
settings->save();
}
@@ -76,5 +82,6 @@
{
m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives());
m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders());
+ m_autoPlayMediaFiles->setChecked(GeneralSettings::autoPlayMediaFiles());
}
--- a/src/settings/navigation/navigationsettingspage.h
+++ b/src/settings/navigation/navigationsettingspage.h
@@ -46,6 +46,7 @@
private:
QCheckBox* m_openArchivesAsFolder;
QCheckBox* m_autoExpandFolders;
+ QCheckBox* m_autoPlayMediaFiles;
};
#endif
--- a/src/panels/information/phononwidget.cpp
+++ b/src/panels/information/phononwidget.cpp
@@ -19,6 +19,8 @@
*/
#include "phononwidget.h"
+#include "dolphin_generalsettings.h"
+#include "dolphinmainwindow.h"
#include
#include
@@ -32,6 +34,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -79,6 +82,20 @@
if (m_url != url) {
stop(); // emits playingStopped() signal
m_url = url;
+
+ //TODO: autoplay starts (related to qtimer) even if the target file has changed before the timer has run out
+ //TODO: stop/destroy the preview once user does not highlight the item/Dolphin main window or use the window
+ //TODO: the autoplay feature should only apply to audio files, exclude video files (as it works in Caja/Nautilus)
+
+ // Enables autoplay feature if it's enabled in Navigation Settings
+ // page. Set a single shot time delay (in msec) for media preview.
+ QTimer *m_autoplaytimer = new QTimer(this);
+
+ if(GeneralSettings::autoPlayMediaFiles()) { //If the this radiobutton is checked, then
+ connect(m_autoplaytimer, SIGNAL(timeout()), this, SLOT(play()));
+ m_autoplaytimer->setSingleShot(true); // Play only once, otherwise this loops in 1 sec cycles
+ m_autoplaytimer->start(1000); // Delay to start the autoplay
+ }
}
}
--- a/src/panels/information/phononwidget.h
+++ b/src/panels/information/phononwidget.h
@@ -78,6 +78,8 @@
private:
QUrl m_url;
QSize m_videoSize;
+
+ QTimer* m_autoplaytimer;
QToolButton *m_playButton;
QToolButton *m_stopButton;