summaryrefslogtreecommitdiffstats
path: root/playerwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2017-08-27 04:58:34 +0200
committerArno <arno@disconnect.de>2017-08-27 04:58:34 +0200
commiteeacdeb92f4b125fc77a44318c162b5f49f1478c (patch)
treea35847ccb977b97da93e6443de49fbd4b44c5d6a /playerwidget.cpp
parent2ee1c0424161f9279e343d1fa142fdc3f4055820 (diff)
downloadBeetPlayer-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.cpp20
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'));