Hello community,
here is the log from the commit of package dragonplayer for openSUSE:Factory checked in at 2017-01-25 22:47:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dragonplayer (Old)
and /work/SRC/openSUSE:Factory/.dragonplayer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dragonplayer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dragonplayer/dragonplayer.changes 2016-12-17 11:18:21.559571453 +0100
+++ /work/SRC/openSUSE:Factory/.dragonplayer.new/dragonplayer.changes 2017-01-25 22:47:14.349807305 +0100
@@ -1,0 +2,7 @@
+Sat Jan 14 08:49:53 UTC 2017 - lbeltrame@kde.org
+
+- - Update to KDE Applications 16.12.1
+ * KDE Applications 16.12.1
+ * https://www.kde.org/announcements/announce-applications-16.12.1.php
+
+-------------------------------------------------------------------
Old:
----
dragon-16.12.0.tar.xz
New:
----
dragon-16.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dragonplayer.spec ++++++
--- /var/tmp/diff_new_pack.7hGeKA/_old 2017-01-25 22:47:14.993710162 +0100
+++ /var/tmp/diff_new_pack.7hGeKA/_new 2017-01-25 22:47:14.997709559 +0100
@@ -17,10 +17,10 @@
Name: dragonplayer
-Version: 16.12.0
+Version: 16.12.1
Release: 0
%define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.12.0 in KUA)
+# Latest stable Applications (e.g. 16.08 in KA, but 16.12.1 in KUA)
%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
Summary: Multimedia Player
License: GPL-2.0+
++++++ dragon-16.12.0.tar.xz -> dragon-16.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/CMakeLists.txt new/dragon-16.12.1/CMakeLists.txt
--- old/dragon-16.12.0/CMakeLists.txt 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/CMakeLists.txt 2017-01-07 20:00:23.000000000 +0100
@@ -4,7 +4,7 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "16")
set(KDE_APPLICATIONS_VERSION_MINOR "12")
-set(KDE_APPLICATIONS_VERSION_MICRO "0")
+set(KDE_APPLICATIONS_VERSION_MICRO "1")
set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(PROJECT_VERSION ${KDE_APPLICATIONS_VERSION})
@@ -44,6 +44,7 @@
WidgetsAddons
WindowSystem
XmlGui
+ Notifications
)
find_package(Phonon4Qt5 4.6.60 REQUIRED NO_MODULE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/misc/org.kde.dragonplayer.appdata.xml new/dragon-16.12.1/misc/org.kde.dragonplayer.appdata.xml
--- old/dragon-16.12.0/misc/org.kde.dragonplayer.appdata.xml 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/misc/org.kde.dragonplayer.appdata.xml 2017-01-07 20:00:23.000000000 +0100
@@ -50,6 +50,7 @@
<summary xml:lang="es">Reproductor de vídeo centrado en la sencillez</summary>
<summary xml:lang="et">Lihtsusele panustav videomängija</summary>
<summary xml:lang="fi">Yksinkertaisuuteen pyrkivä videosoitin</summary>
+ <summary xml:lang="it">Lettore video con l'obiettivo della semplicità</summary>
<summary xml:lang="nl">Videospeler met focus op eenvoud</summary>
<summary xml:lang="nn">Filmspelar som prøver å vera enkel</summary>
<summary xml:lang="pl">Odtwarzacz filmów z naciskiem na prostotę</summary>
@@ -77,10 +78,12 @@
<p xml:lang="es">Dragon Player es un reproductor multimedia centrado en la simplicidad en lugar de las características. Hace una cosa, y solo una cosa: reproducir archivos multimedia. Su sencilla interfaz no está diseñada para ponerse en tu camino, sino para ayudarte a reproducir archivos multimedia fácilmente.</p>
<p xml:lang="et">Dragoni mängija on multimeediamängija, mis keskendub omaduste asemel lihtsusele. Dragoni mängija teeb üht ja ainult üht asja: esitab multimeediafaile. Lihtne liides on loodud sellisena, et see ei tõmbaks endale liigset tähelepanu, vaid lubaks just esitatavat multimeediat nautida.</p>
<p xml:lang="fi">Dragon Player on multimediasoitin, joka keskittyy ominaisuuksien sijaan yksinkertaisuuteen. Dragon Player osaa yhden ja vain yhden asian: se toistaa multimediatiedostoja. Sen yksinkertainen käyttöliittymä on suunniteltu pysymään poissa tieltä, jotta sinä voisit toistaa multimediatiedostojasi.</p>
+ <p xml:lang="it">Dragon Player è un lettore multimediale il cui obiettivo è la semplicità, anziché la molteplicità di funzioni. Dragon Player fa solo una cosa: riprodurre i file multimediali. La sua interfaccia è semplice, progettata per non metterti in difficoltà e per permetterti semplicemente di riprodurre i file multimediali.</p>
<p xml:lang="nl">Dragon Player is een multimediaspeler waar de focus ligt op eenvoud, in plaats van functies. Dragon Player doet een ding en alleen een ding, en dat is afspelen van multimediabestanden. Zijn eenvoudige interface is niet ontworpen om in de weg te zitten en in plaats daarvan u de mogelijkheid te geven om gewoon multimediabestanden af te spelen.</p>
<p xml:lang="nn">Dragon Player er ein multimediespelar som prøver å vera enkel i staden for funksjonsrik. Programmet gjer éin ting, og berre éin ting – avspeling av multimediefiler. Brukargrensesnittet er laga for ikkje å vera i vegen og for å gjera det lett å spela av filer.</p>
<p xml:lang="pl">Odtwarzacz Dragon jest odtwarzaczem multimedialnym, gdzie położono nacisk na prostotę, a nie na możliwości. Odtwarzacz Dragon robi jedną rzecz i tylko jedną tj. odtwarzanie plików multimedialnych. Jego prosty układ sterowania został zaprojektowany tak, aby nie wchodził w drogę, ale aby pomagał przy odtwarzaniu plików multimedialnych.</p>
<p xml:lang="pt">O Dragon Player é um leitor multimédia em que o foco é a simplicidade em vez das funcionalidades. O Dragon Player faz uma coisa e apenas uma, que é reproduzir ficheiros multimédia. A sua interface simples é desenhada para não se intrometer e sim ajudá-lo a reproduzir ficheiros multimédia de forma simples.</p>
+ <p xml:lang="pt-BR">Dragon Player é um reprodutor multimídia com foco na simplicidade e não em funcionalidades. Ele faz uma coisa e apenas isso, que é a reprodução de arquivos multimídia. Sua interface simples é projetada para não atrapalhá-lo e simplesmente reproduzir arquivos multimídia.</p>
<p xml:lang="sk">Dragon Player je multimediálny prehrávač, ktorý sa zameriava na jednoduchosť namiesto funkcií. Dragon Player robí jednu vec, a nič iné, ktorou je prehrávania multimediálnych súborov. Jeho jednoduché rozhranie je zavrhnuté, aby nebolo rušivé a aby s ním bolo jednoducho možné prehrávať multimediálne súbory.</p>
<p xml:lang="sl">Dragon Player je predstavnostni predvajalnik, ki se osredotoča na enostavnost in ne na zmožnosti. Omogoča samo eno in edino stvar in to je predvajanje predstavnostnih datotek. Preprost vmesnik je zasnovan tako, da vam ni v napoto in vam omogoča, da enostavno predvajate predstavnostne datoteke.</p>
<p xml:lang="sr">Змајев плејер је мултимедијални плејер са тежиштем на једноставности уместо на могућностима. Има једну и само једну намену: пуштање мултимедијалних фајлова. Пружа једноставно сучеље које вас не замара детаљима, већ омогућава да једноставно пуштате мултимедијалне фајлове.</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/CMakeLists.txt new/dragon-16.12.1/src/app/CMakeLists.txt
--- old/dragon-16.12.0/src/app/CMakeLists.txt 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/CMakeLists.txt 2017-01-07 20:00:23.000000000 +0100
@@ -44,6 +44,7 @@
KF5::DBusAddons
KF5::JobWidgets
KF5::WindowSystem
+ KF5::Notifications
${PHONON_LIBRARY}
)
@@ -70,6 +71,7 @@
KF5::XmlGui
KF5::JobWidgets
KF5::WindowSystem
+ KF5::Notifications
${PHONON_LIBRARY}
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/loadView.cpp new/dragon-16.12.1/src/app/loadView.cpp
--- old/dragon-16.12.0/src/app/loadView.cpp 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/loadView.cpp 2017-01-07 20:00:23.000000000 +0100
@@ -43,6 +43,11 @@
void LoadView::setThumbnail(QWidget *object)
{
+ if (!object) {
+ m_vThumb->hide();
+ return;
+ }
+ m_vThumb->show();
object->setParent(m_vThumb);
object->resize(m_vThumb->size());
object->show();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/mainWindow.cpp new/dragon-16.12.1/src/app/mainWindow.cpp
--- old/dragon-16.12.0/src/app/mainWindow.cpp 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/mainWindow.cpp 2017-01-07 20:00:23.000000000 +0100
@@ -41,8 +41,12 @@
#include <QMenu>
#include <QMenuBar>
#include <QStatusBar>
+#include <QDBusReply>
+#include <QDBusInterface>
+#include <QDBusUnixFileDescriptor>
-//#include <KNotificationRestrictions> // kf5 FIXME
+#include <KAboutData>
+#include <KNotificationRestrictions>
#include <KSqueezedTextLabel>
#include <KToggleFullScreenAction>
#include <KToolBar>
@@ -61,9 +65,6 @@
#include
#include
-#if 0 // kf5 FIXME port to new Solid::Power API
-#include
-#endif
#include "actions.h"
#include "discSelectionDialog.h"
@@ -90,7 +91,7 @@
, m_mainView( 0 )
, m_audioView( 0 )
, m_loadView( new LoadView(this) )
- , m_currentWidget( new QWidget(this) )
+ , m_currentWidget( nullptr )
, m_leftDock( 0 )
, m_positionSlider( 0 )
, m_volumeSlider( 0 )
@@ -124,8 +125,6 @@
m_mainView->addWidget(videoWindow());
m_mainView->setCurrentWidget(m_loadView);
- m_currentWidget = m_loadView;
-
setCentralWidget( m_mainView );
setFocusProxy( videoWindow() ); // essential! See VideoWindow::event(), QEvent::FocusOut
@@ -212,6 +211,8 @@
connect( engine(), SIGNAL(audioChannelsChanged(QList)), this, SLOT(audioChannelsChanged(QList)) );
connect( engine(), SIGNAL(mutedChanged(bool)), this, SLOT(mutedChanged(bool)) );
+ connect( engine(), &VideoWindow::finished, this, &MainWindow::toggleLoadView );
+
if( !engine()->init() ) {
KMessageBox::error( this, i18n(
"<qt>Phonon could not be successfully initialized. Dragon Player will now exit.</qt>") );
@@ -433,17 +434,20 @@
MainWindow::toggleLoadView()
{
if( m_mainView->currentWidget() == m_loadView ) {
- if( m_mainView->indexOf(m_currentWidget) == -1 ) {
- m_mainView->addWidget(m_currentWidget);
+ if( engine()->state() != Phonon::StoppedState ) {
+ if( m_mainView->indexOf(m_currentWidget) == -1 ) {
+ m_mainView->addWidget(m_currentWidget);
+ }
+ m_mainView->setCurrentWidget(m_currentWidget);
}
- m_mainView->setCurrentWidget(m_currentWidget);
engine()->isPreview(false);
} else if( m_currentWidget != m_audioView ) {
- qDebug() << "setting Thumbnail for video Widget";
- m_mainView->setCurrentWidget(m_loadView);
- m_mainView->removeWidget(m_currentWidget);
- engine()->isPreview(true);
- m_loadView->setThumbnail(m_currentWidget);
+ m_mainView->setCurrentWidget( m_loadView );
+ if( engine()->state() != Phonon::StoppedState ) {
+ m_mainView->removeWidget(m_currentWidget);
+ engine()->isPreview(true);
+ m_loadView->setThumbnail(m_currentWidget);
+ }
} else {
m_mainView->setCurrentWidget(m_loadView);
}
@@ -493,7 +497,7 @@
void MainWindow::stop()
{
engine()->stop();
- m_mainView->setCurrentWidget(m_loadView);
+ toggleLoadView();
}
void
@@ -568,23 +572,14 @@
job->deleteLater();
}
- if( m_mainView->indexOf(engine()) == -1 )
- toggleLoadView();
-
//let xine handle invalid, etc, QUrlS
//TODO it handles non-existing files with bad error message
if (!ret)
ret = engine()->load( url );
if( ret ) {
- if( TheStream::hasVideo() ) {
- m_currentWidget = engine();
- } else {
- m_currentWidget = m_audioView;
- if( !isMaximized() )
- resize(m_currentWidget->minimumSize());
- }
- m_mainView->setCurrentWidget(m_currentWidget);
+ m_currentWidget = nullptr;
+ m_loadView->setThumbnail(nullptr);
}
return ret;
}
@@ -602,15 +597,9 @@
toggleLoadView();
break;
case Phonon::StoppedState:
- if( TheStream::hasVideo() ) {
- m_currentWidget = engine();
- } else {
- m_currentWidget = m_audioView;
- if( !isMaximized() )
- resize(m_currentWidget->minimumSize());
- }
engine()->play();
- m_mainView->setCurrentWidget(m_currentWidget);
+ m_currentWidget = nullptr;
+ m_loadView->setThumbnail(nullptr);
break;
default:
break;
@@ -691,6 +680,8 @@
}
} else {
engine()->playDvd();
+ m_loadView->setThumbnail(nullptr);
+ toggleLoadView();
qDebug() << "no disc in drive or Solid isn't working";
}
}
@@ -817,36 +808,49 @@
void
MainWindow::inhibitPowerSave()
{
-#if 0 // kf5 FIXME port to new Solid::Power API
- if (m_stopSleepCookie == -1)
- m_stopSleepCookie = Solid::PowerManagement::beginSuppressingSleep(QLatin1String( "watching a film" ));
- if (m_stopScreenPowerMgmtCookie == -1 && TheStream::hasVideo())
- m_stopScreenPowerMgmtCookie = Solid::PowerManagement::beginSuppressingScreenPowerManagement(QLatin1String( "watching a film" ));
+ if (m_stopSleepCookie == -1) {
+ QDBusInterface iface(QStringLiteral("org.freedesktop.login1"),
+ QStringLiteral("/org/freedesktop/login1"),
+ QStringLiteral("org.freedesktop.login1.Manager"),
+ QDBusConnection::systemBus());
+ if (iface.isValid()) {
+ QDBusReply<QDBusUnixFileDescriptor> reply;
+ if (TheStream::hasVideo()) {
+ reply = iface.call(QStringLiteral("Inhibit"),
+ QStringLiteral("sleep:idle"),
+ KAboutData::applicationData().componentName(),
+ QStringLiteral("playing a video"),
+ QStringLiteral("block"));
+ } else {
+ reply = iface.call(QStringLiteral("Inhibit"),
+ QStringLiteral("sleep"),
+ KAboutData::applicationData().componentName(),
+ QStringLiteral("playing an audio"),
+ QStringLiteral("block"));
+ }
+ if (reply.isValid()) {
+ m_stopSleepCookie = reply.value().fileDescriptor();
+ }
+ }
+ }
+ // TODO: inhibit screen sleep. No viable API found.
+ // https://git.reviewboard.kde.org/r/129651
if (!m_stopScreenSaver && TheStream::hasVideo())
m_stopScreenSaver = new KNotificationRestrictions(KNotificationRestrictions::ScreenSaver);
-#endif
}
void
MainWindow::releasePowerSave()
{
-#if 0 // kf5 FIXME port to new Solid::Power API
//stop supressing sleep
if (m_stopSleepCookie != -1) {
- Solid::PowerManagement::stopSuppressingSleep(m_stopSleepCookie);
+ ::close(m_stopSleepCookie);
m_stopSleepCookie = -1;
}
- //stop supressing screen power management
- if (m_stopScreenPowerMgmtCookie != -1) {
- Solid::PowerManagement::stopSuppressingScreenPowerManagement(m_stopScreenPowerMgmtCookie);
- m_stopScreenPowerMgmtCookie = -1;
- }
-
//stop disabling screensaver
delete m_stopScreenSaver; // It is always 0, I have been careful.
m_stopScreenSaver = 0;
-#endif
}
QMenu*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/recentlyPlayedList.cpp new/dragon-16.12.1/src/app/recentlyPlayedList.cpp
--- old/dragon-16.12.0/src/app/recentlyPlayedList.cpp 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/recentlyPlayedList.cpp 2017-01-07 20:00:23.000000000 +0100
@@ -43,6 +43,18 @@
setAlternatingRowColors( true );
setSelectionMode(QAbstractItemView::SingleSelection);
+ QAction *clear = new QAction(i18n("Clear List"), this);
+ clear->setIcon(QIcon::fromTheme(QStringLiteral("edit-clear-list")));
+ connect(clear, &QAction::triggered, this, &RecentlyPlayedList::clearList);
+ clear->setShortcut(QKeySequence::Cut);
+
+ QAction *remove = new QAction(i18n("Remove Entry"), this);
+ remove->setIcon(QIcon::fromTheme(QStringLiteral("list-remove")));
+ connect(remove, &QAction::triggered, this, &RecentlyPlayedList::removeEntry);
+ remove->setShortcut(QKeySequence::Delete);
+
+ addActions({remove, clear});
+
configGroup = new KConfigGroup( KSharedConfig::openConfig(), "General" );
loadEntries();
}
@@ -77,18 +89,19 @@
if (!currentItem())
return;
QMenu menu;
- qDebug() << "Loading Menu";
- menu.addAction(QIcon::fromTheme(QLatin1String( "list-remove" )),i18n("Remove Entry"),this,SLOT(removeEntry()));
- menu.addAction(QIcon::fromTheme(QLatin1String( "edit-clear" )),i18n("Clear List"),this,SLOT(clearList()));
- menu.exec( event->globalPos() );
+ menu.addActions(actions());
+ menu.exec(event->globalPos());
}
void RecentlyPlayedList::removeEntry()
{
- QStringList list = configGroup->readPathEntry( "Recent Urls", QStringList() );
- QUrl toRemove = currentItem()->data(0xdecade).value<QUrl>();
- list.removeAll(toRemove.toDisplayString());
- configGroup->writePathEntry("Recent Urls",list.join( QLatin1String( "," )));
+ if (!currentItem())
+ return;
+ const auto list = configGroup->readPathEntry( "Recent Urls", QStringList() );
+ const QUrl toRemove = currentItem()->data(0xdecade).value<QUrl>();
+ auto urls = QUrl::fromStringList(list);
+ urls.removeAll(toRemove);
+ configGroup->writePathEntry("Recent Urls", QUrl::toStringList(urls));
loadEntries();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/stateChange.cpp new/dragon-16.12.1/src/app/stateChange.cpp
--- old/dragon-16.12.0/src/app/stateChange.cpp 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/stateChange.cpp 2017-01-07 20:00:23.000000000 +0100
@@ -75,15 +75,22 @@
m_timeLabel->setVisible(enable);
m_audioView->enableDemo(!enable);
+
if (!enable) {
// Force out of full screen.
if (isFullScreen) {
setFullScreen(false);
}
- if (m_mainView->currentWidget() != m_loadView) {
- m_mainView->setCurrentWidget(m_loadView);
+ }
+
+ if (!m_currentWidget && state == Phonon::PlayingState) {
+ if (TheStream::hasVideo()) {
+ m_currentWidget = engine();
+ } else {
+ m_currentWidget = m_audioView;
+ if (!isMaximized())
+ resize(m_currentWidget->minimumSize());
}
- } else if (state != Phonon::PausedState && m_mainView->currentWidget() == m_loadView) {
toggleLoadView();
}
@@ -147,10 +154,10 @@
#endif
if( url.scheme() != QLatin1String( "dvd" ) && url.scheme() != QLatin1String( "vcd" ) && !url.toDisplayString().isEmpty()) {
KConfigGroup config = KConfigGroup( KSharedConfig::openConfig(), "General" );
- const QString prettyUrl = url.toDisplayString();
- QStringList urls = config.readPathEntry( "Recent Urls", QStringList() );
- urls.removeAll( prettyUrl );
- config.writePathEntry( "Recent Urls", urls << prettyUrl );
+ const auto list = config.readPathEntry( "Recent Urls", QStringList() );
+ auto urls = QUrl::fromStringList(list);
+ urls.removeAll(url);
+ config.writePathEntry( "Recent Urls", QUrl::toStringList(urls << url) );
emit m_loadView->reloadRecentlyList();
}
#ifndef NO_SKIP_PR0N
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/videoWindow.cpp new/dragon-16.12.1/src/app/videoWindow.cpp
--- old/dragon-16.12.0/src/app/videoWindow.cpp 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/videoWindow.cpp 2017-01-07 20:00:23.000000000 +0100
@@ -115,7 +115,7 @@
connect( m_media, SIGNAL(hasVideoChanged(bool)), this, SIGNAL(hasVideoChanged(bool)) );
connect( m_media, SIGNAL(hasVideoChanged(bool)), m_vWidget, SLOT(setVisible(bool)) ); //hide video widget if no video to show
connect( m_media, SIGNAL(hasVideoChanged(bool)), m_logo, SLOT(setHidden(bool)) );
-
+ connect( m_media, SIGNAL(finished()), this, SIGNAL(finished()) );
connect( m_controller, SIGNAL(availableSubtitlesChanged()), this, SLOT(updateChannels()) );
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-16.12.0/src/app/videoWindow.h new/dragon-16.12.1/src/app/videoWindow.h
--- old/dragon-16.12.0/src/app/videoWindow.h 2016-12-15 05:35:10.000000000 +0100
+++ new/dragon-16.12.1/src/app/videoWindow.h 2017-01-07 20:00:23.000000000 +0100
@@ -179,6 +179,7 @@
void metaDataChanged();
void hasVideoChanged( bool );
void volumeChanged( qreal );
+ void finished();
};
//global function for general use by Dragon Player