|
--- a/src/settings/dolphin_generalsettings.kcfg
|
|
+++ b/src/settings/dolphin_generalsettings.kcfg
|
|
@@ -81,6 +81,10 @@
|
|
<label>Use auto-expanding folders for all view types</label>
|
|
<default>false</default>
|
|
</entry>
|
|
+ <entry name="AutoPlayMediaFiles" type="Bool">
|
|
+ <label>Play media files automatically while hovering a cursor</label>
|
|
+ <default>false</default>
|
|
+ </entry>
|
|
<entry name="ShowZoomSlider" type="Bool">
|
|
<label>Show zoom slider in the statusbar</label>
|
|
<default>true</default>
|
|
|
|
--- 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 <Phonon/AudioOutput>
|
|
#include <Phonon/Global>
|
|
@@ -32,6 +34,7 @@
|
|
#include <QToolButton>
|
|
#include <QDialog>
|
|
#include <QIcon>
|
|
+#include <QTimer>
|
|
#include <KIconLoader>
|
|
#include <QUrl>
|
|
#include <KLocalizedString>
|
|
@@ -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;
|