diff options
author | Arno <arno@disconnect.de> | 2017-08-27 04:58:34 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-08-27 04:58:34 +0200 |
commit | eeacdeb92f4b125fc77a44318c162b5f49f1478c (patch) | |
tree | a35847ccb977b97da93e6443de49fbd4b44c5d6a /playerwidget.cpp | |
parent | 2ee1c0424161f9279e343d1fa142fdc3f4055820 (diff) | |
download | BeetPlayer-eeacdeb92f4b125fc77a44318c162b5f49f1478c.tar.gz BeetPlayer-eeacdeb92f4b125fc77a44318c162b5f49f1478c.tar.bz2 BeetPlayer-eeacdeb92f4b125fc77a44318c162b5f49f1478c.zip |
Fix display issues when streaming
* don't progress song slider
* show proper window title and tooltip
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r-- | playerwidget.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp index b11d6ca..d1a0fc2 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -40,7 +40,7 @@ #include "webdownloader.h" #include "webradiodialog.h" -PlayerWidget::PlayerWidget(QWidget *parent) : QWidget(parent), mDurSecs(0), mPlayListLength(0){ +PlayerWidget::PlayerWidget(QWidget *parent) : QWidget(parent), mDurSecs(0), mPlayListLength(0), mIsStream(false){ mStarting = true; setupGui(); createActions(); @@ -843,7 +843,7 @@ void PlayerWidget::rightCurrentChanged(const QModelIndex &cur, const QModelIndex } void PlayerWidget::doPlay(){ - if(mPlayer->state() == QMediaPlayer::PausedState){ + if(mPlayer->state() == QMediaPlayer::PausedState || mIsStream){ mPlayer->play(); mPlayA->setChecked(true); emit playModeChanged(tr("Playing")); @@ -1401,6 +1401,11 @@ void PlayerWidget::doMetadataChange(const QString &key, const QVariant &value){ mCurrentTE->append(QString("%1 %2").arg(tr("Artist:"), -20).arg(artist)); mCurrentTE->append(QString("%1 %2").arg(tr("Title:"), -20).arg(title)); mNowPlayingL->setText(np); + mCurWinTitle = QString(tr("%1 - [%2] - [%3]")).arg(qApp->applicationName()).arg(artist).arg(title); + mCurToolTip = QString(tr("%1: [%2]")).arg(artist).arg(title); + mTrayIcon->setToolTip(mCurToolTip); + mTrayIcon->showMessage(QString(tr("Now Playing:")), mCurToolTip, QSystemTrayIcon::Information, 5000); + emit setWinTitle(mCurWinTitle); }else{ if(mOtherMeta[key] != value){ mOtherMeta[key] = value; @@ -1422,6 +1427,8 @@ void PlayerWidget::updateStreamData(){ void PlayerWidget::play(const QString &fullPath){ disconnect(mPlayer, static_cast<void(QMediaObject::*)(const QString &, const QVariant &)>(&QMediaObject::metaDataChanged), this, &PlayerWidget::doMetadataChange); + mIsStream = false; + mSongSlider->setEnabled(true); mLeftTE->clear(); mPlayer->setMedia(QUrl::fromLocalFile(fullPath)); TagLib::FileRef file(QString(fullPath).toUtf8()); @@ -1456,8 +1463,13 @@ void PlayerWidget::play(const QString &fullPath){ void PlayerWidget::playUrl(const QString &url){ disconnect(mPlayer, static_cast<void(QMediaObject::*)(const QString &, const QVariant &)>(&QMediaObject::metaDataChanged), this, &PlayerWidget::doMetadataChange); connect(mPlayer, static_cast<void(QMediaObject::*)(const QString &, const QVariant &)>(&QMediaObject::metaDataChanged), this, &PlayerWidget::doMetadataChange); + mIsStream = true; + mSongSlider->setValue(0); + mSongSlider->setEnabled(false); mPlayer->setMedia(QUrl(url)); mPlayer->play(); + mPlayA->setChecked(true); + emit playModeChanged(tr("Playing")); } void PlayerWidget::volumeChanged(int volume){ @@ -1510,7 +1522,9 @@ void PlayerWidget::slide(int value){ void PlayerWidget::setPosition(qint64 pos){ int curPos = pos / 1000; - mSongSlider->setValue(curPos); + if(!mIsStream){ + mSongSlider->setValue(curPos); + } int minutes = curPos / 60; int seconds = curPos % 60; QString posString = QString("%1:%2").arg(minutes, 2, 10, QChar('0')).arg(seconds, 2, 10, QChar('0')); |