Hello community, here is the log from the commit of package dragonplayer for openSUSE:Factory checked in at 2016-03-26 15:13:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-02-22 10:14:28.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.dragonplayer.new/dragonplayer.changes 2016-03-26 15:13:03.000000000 +0100 @@ -1,0 +2,9 @@ +Sun Mar 13 15:34:28 UTC 2016 - tittiatcoke@gmail.com + +- Update to KDE Applications 15.12.3 + * KDE Applications 15.12.3 + * https://www.kde.org/announcements/announce-applications-15.12.3.php + * boo#970855 + + +------------------------------------------------------------------- Old: ---- dragon-15.12.2.tar.xz New: ---- dragon-15.12.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dragonplayer.spec ++++++ --- /var/tmp/diff_new_pack.DAfGt6/_old 2016-03-26 15:13:04.000000000 +0100 +++ /var/tmp/diff_new_pack.DAfGt6/_new 2016-03-26 15:13:04.000000000 +0100 @@ -41,7 +41,7 @@ License: GPL-2.0+ Group: Productivity/Multimedia/Video/Players Url: http://dragonplayer.org/ -Version: 15.12.2 +Version: 15.12.3 Release: 0 Source0: dragon-%{version}.tar.xz BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ dragon-15.12.2.tar.xz -> dragon-15.12.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/CMakeLists.txt new/dragon-15.12.3/CMakeLists.txt --- old/dragon-15.12.2/CMakeLists.txt 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/CMakeLists.txt 2016-03-10 00:14:40.000000000 +0100 @@ -4,7 +4,7 @@ # KDE Application Version, managed by release script set(KDE_APPLICATIONS_VERSION_MAJOR "15") set(KDE_APPLICATIONS_VERSION_MINOR "12") -set(KDE_APPLICATIONS_VERSION_MICRO "2") +set(KDE_APPLICATIONS_VERSION_MICRO "3") set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}") set(PROJECT_VERSION ${KDE_APPLICATIONS_VERSION}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/analyzer/analyzerBase.cpp new/dragon-15.12.3/src/app/analyzer/analyzerBase.cpp --- old/dragon-15.12.2/src/app/analyzer/analyzerBase.cpp 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/analyzer/analyzerBase.cpp 2016-03-10 00:14:40.000000000 +0100 @@ -55,13 +55,22 @@ QVector<float> scope( 512 ); int i = 0; - for( uint x = 0; (int)x < m_fht->size(); ++x ) { + for (uint x = 0; (int)x < m_fht->size(); ++x) { if (thescope.size() == 1) { // Mono - scope[x] = double(thescope[Phonon::AudioDataOutput::LeftChannel][x]); + const qint16 left = thescope[Phonon::AudioDataOutput::LeftChannel].value(x, 0); + scope[x] = double(left); } else { // Anything > Mono is treated as Stereo - scope[x] = double(thescope[Phonon::AudioDataOutput::LeftChannel][x] - + thescope[Phonon::AudioDataOutput::RightChannel][x]) - / (2*(1<<15)); // Average between the channels + // Use .value as Phonon(GStreamer) sometimes returns too small + // samples, in that case we will simply assume the remainder would be + // 0. + // This in particualr happens when switching from mono files to + // stereo and vice versa as the first sample sent after a switch + // is of the previous channel allocation but with way to small + // data size. + const qint16 left = thescope[Phonon::AudioDataOutput::LeftChannel].value(x, 0); + const qint16 right = thescope[Phonon::AudioDataOutput::RightChannel].value(x, 0); + double value = double(left + right) / (2*(1<<15)); + scope[x] = value; // Average between the channels } i += 2; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/audioView2.cpp new/dragon-15.12.3/src/app/audioView2.cpp --- old/dragon-15.12.2/src/app/audioView2.cpp 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/audioView2.cpp 2016-03-10 00:14:40.000000000 +0100 @@ -34,6 +34,7 @@ ui->m_analyzerFrame->setMaximumSize(ui->m_analyzer->maximumSize()); ui->m_analyzerFrame->setMinimumSize(ui->m_analyzer->minimumSize()); + setupAnalyzer(); connect(engine(), SIGNAL(metaDataChanged()), this, SLOT(update())); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/main.cpp new/dragon-15.12.3/src/app/main.cpp --- old/dragon-15.12.2/src/app/main.cpp 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/main.cpp 2016-03-10 00:14:40.000000000 +0100 @@ -30,6 +30,8 @@ #include <QUrl> #include <KAboutData> +#include <KConfigGroup> +#include <KSharedConfig> #include <KLocalizedString> #include <KDBusService> @@ -55,7 +57,6 @@ aboutData.addCredit( QStringLiteral("Lukáš Tinkl"), i18n("Port to KF5/Plasma 5"), QStringLiteral("lukas@kde.org") ); KAboutData::setApplicationData(aboutData); - KDBusService service(KDBusService::Unique); QCommandLineParser parser; aboutData.setupCommandLine(&parser); @@ -68,6 +69,8 @@ parser.process(app); aboutData.processCommandLine(&parser); + const bool multiple = KSharedConfig::openConfig()->group("KDE").readEntry("MultipleInstances", QVariant(false)).toBool(); + KDBusService service(multiple ? KDBusService::Multiple : KDBusService::Unique); QObject::connect(&service, &KDBusService::activateRequested, &app, &Dragon::PlayerApplication::slotActivateRequested); QObject::connect(&service, &KDBusService::openRequested, &app, &Dragon::PlayerApplication::slotOpenRequested); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/playerApplication.cpp new/dragon-15.12.3/src/app/playerApplication.cpp --- old/dragon-15.12.2/src/app/playerApplication.cpp 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/playerApplication.cpp 2016-03-10 00:14:40.000000000 +0100 @@ -43,19 +43,14 @@ void PlayerApplication::slotActivateRequested(const QStringList &arguments, const QString &workingDirectory) { - Q_UNUSED(workingDirectory) qDebug() << Q_FUNC_INFO << arguments; if (!arguments.filter("play-dvd", Qt::CaseInsensitive).isEmpty()) { newInstance(true); forceActiveWindow(); } else if (arguments.count() == 2) { // 1st arg binary name, 2nd arg file to open - QString urlArg = arguments.at(1); - QUrl url; - if (urlArg.startsWith("/")) { - url = QUrl::fromLocalFile(urlArg); - } else { - url = QUrl(urlArg); - } + QUrl url = QUrl::fromUserInput(arguments.at(1), + workingDirectory, + QUrl::AssumeLocalFile); newInstance(false, {url}); forceActiveWindow(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/stateChange.cpp new/dragon-15.12.3/src/app/stateChange.cpp --- old/dragon-15.12.2/src/app/stateChange.cpp 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/stateChange.cpp 2016-03-10 00:14:40.000000000 +0100 @@ -62,10 +62,7 @@ break; } - bool enable = false; - if(state == Phonon::PlayingState || state == Phonon::PausedState || state == Phonon::BufferingState) { - enable = true; - } + bool enable = engine()->isActiveState(state); action("stop")->setEnabled(enable); action("video_settings")->setEnabled(enable && TheStream::hasVideo()); action("volume")->setEnabled(enable); @@ -73,9 +70,24 @@ m_volumeSlider->setEnabled(enable); action("fullscreen")->setEnabled(enable || isFullScreen); action("reset_zoom")->setEnabled(hasMedia && !isFullScreen); + action("prev_chapter")->setEnabled(engine()->canGoPrev()); + action("next_chapter")->setEnabled(engine()->canGoNext()); 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); + } + } else { + if (m_mainView->currentWidget() == m_loadView) { + toggleLoadView(); + } + } qDebug() << "updated actions"; @@ -152,6 +164,10 @@ { qDebug() << "seekable changed to " << canSeek; m_positionSlider->setEnabled( canSeek ); + action("ten_percent_back")->setEnabled( canSeek ); + action("ten_percent_forward")->setEnabled( canSeek ); + action("ten_seconds_back")->setEnabled( canSeek ); + action("ten_seconds_forward")->setEnabled( canSeek ); //TODO connect/disconnect the jump forward/back here. }//engineSeekableChanged @@ -169,7 +185,7 @@ { Q_UNUSED(hasVideo); - qDebug() << "hasVideo changed"; + qDebug() << "hasVideo changed" << hasVideo; if( TheStream::hasVideo() ) { if( m_mainView->indexOf(engine()) == -1 ) m_mainView->addWidget(engine()); @@ -181,7 +197,7 @@ // in which case the video related menu actions will not be enabled until // a new state change occurs. By forcing a fake state change we can work around this. engineStateChanged(videoWindow()->state()); - } else { + } else if (engine()->isActiveState()) { m_audioView->setupAnalyzer(); m_mainView->setCurrentWidget(m_audioView); m_currentWidget = m_audioView; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/videoWindow.cpp new/dragon-15.12.3/src/app/videoWindow.cpp --- old/dragon-15.12.2/src/app/videoWindow.cpp 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/videoWindow.cpp 2016-03-10 00:14:40.000000000 +0100 @@ -386,6 +386,20 @@ return m_media->state(); } +bool +VideoWindow::isActiveState() const +{ + return isActiveState(state()); +} + +bool +VideoWindow::isActiveState(Phonon::State s) const +{ + return (s == Phonon::PlayingState || + s == Phonon::PausedState || + s == Phonon::BufferingState); +} + qreal VideoWindow::volume() const { @@ -726,6 +740,7 @@ { case QEvent::Leave: m_cursorTimer->stop(); + qApp->restoreOverrideCursor(); qDebug() << "stop cursorTimer"; break; case QEvent::FocusOut: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dragon-15.12.2/src/app/videoWindow.h new/dragon-15.12.3/src/app/videoWindow.h --- old/dragon-15.12.2/src/app/videoWindow.h 2016-02-12 06:18:18.000000000 +0100 +++ new/dragon-15.12.3/src/app/videoWindow.h 2016-03-10 00:14:40.000000000 +0100 @@ -119,6 +119,8 @@ void loadSettings(); Phonon::State state() const; + bool isActiveState() const; + bool isActiveState(Phonon::State s) const; /// Stuff to do with video and the video window/widget static const uint CURSOR_HIDE_TIMEOUT = 2000;