diff options
author | Arno <arno@disconnect.de> | 2017-03-05 17:23:33 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-03-05 17:23:33 +0100 |
commit | 2ff72f033af3f24ffb816bc19a34fc794f585775 (patch) | |
tree | be21b99d6ac7ebf60d398daca79567bb6e5b0565 /beetplayer.cpp | |
parent | 51990db36b7b4c1ff8ca72ff16ded36c72be24b9 (diff) | |
download | BeetPlayer-2ff72f033af3f24ffb816bc19a34fc794f585775.tar.gz BeetPlayer-2ff72f033af3f24ffb816bc19a34fc794f585775.tar.bz2 BeetPlayer-2ff72f033af3f24ffb816bc19a34fc794f585775.zip |
Implement statusBar
Display in statusBar:
* viewMode
* number of files in playlist
* length of playlist in h:m:s
* player status (Stopped, Playing, Paused)
Diffstat (limited to 'beetplayer.cpp')
-rw-r--r-- | beetplayer.cpp | 76 |
1 files changed, 74 insertions, 2 deletions
diff --git a/beetplayer.cpp b/beetplayer.cpp index 0a2c962..1fd0aa7 100644 --- a/beetplayer.cpp +++ b/beetplayer.cpp @@ -5,6 +5,8 @@ #include <QHBoxLayout> #include <QAction> #include <QMenuBar> +#include <QStatusBar> +#include <QLabel> #include "beetplayer.h" #include "configurationdialog.h" @@ -18,8 +20,13 @@ BeetPlayer::BeetPlayer(QWidget *parent, Qt::WindowFlags f) : QMainWindow(parent, setMinimumHeight(768); openDatabase(); createGlobalActions(); - PlayerWidget *player = new PlayerWidget; - setCentralWidget(player); + mPlayerWidget = new PlayerWidget; + connect(mPlayerWidget, SIGNAL(viewModeChanged(QString)), this, SLOT(setViewMode(QString))); + connect(mPlayerWidget->player(), SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(setPlayMode(QMediaPlayer::State))); + connect(mPlayerWidget, SIGNAL(numFilesChanged(int)), this, SLOT(setNumFiles(int))); + connect(mPlayerWidget, SIGNAL(playListLengthChanged(quint64)), this, SLOT(setPlayListLength(quint64))); + createStatusbar(); + setCentralWidget(mPlayerWidget); } void BeetPlayer::openDatabase(){ @@ -65,3 +72,68 @@ void BeetPlayer::configure(){ openDatabase(); } } + +void BeetPlayer::setViewMode(const QString &viewMode){ + mModeL->setText(viewMode); +} + +void BeetPlayer::setPlayMode(QMediaPlayer::State state){ + if(state == QMediaPlayer::StoppedState){ + mActionL->setText(tr("Stopped")); + }else if(state == QMediaPlayer::PlayingState){ + mActionL->setText("Playing"); + }else if(state == QMediaPlayer::PausedState){ + mActionL->setText("Paused"); + }else{ + mActionL->setText(tr("Unknown")); + } +} + +void BeetPlayer::setNumFiles(int numFiles){ + QString n = QString("%1").arg(numFiles, 4, 10, QChar('0')); + mFilesL->setText(n); +} + +void BeetPlayer::setPlayListLength(quint64 seconds){ + int h = (seconds / 60 / 60); + int min = (seconds / 60) % 60; + int secs = seconds % 60; + QString r = QString("%1:%2:%3").arg(h, 3, 10, QChar('0')).arg(min, 2, 10, QChar('0')).arg(secs, 2, 10, QChar('0')); + mPlaylistDurL->setText(r); +} + +void BeetPlayer::createStatusbar(){ + QLabel *l1 = new QLabel(tr("View:")); + mModeL = new QLabel; + mModeL->setFrameStyle(QFrame::Panel | QFrame::Sunken); + mModeL->setFont(QFont("courier")); + mModeL->setText(tr("(none)")); + statusBar()->addPermanentWidget(l1); + statusBar()->addPermanentWidget(mModeL); + mGeneralL = new QLabel; + mGeneralL->setFrameStyle(QFrame::Panel | QFrame::Sunken); + statusBar()->addPermanentWidget(mGeneralL, 20); //20 is an arbitray value, stretch to max + QLabel *l2 = new QLabel(tr("Status:")); + mActionL = new QLabel; + mActionL->setFrameStyle(QFrame::Panel | QFrame::Sunken); + mActionL->setFont(QFont("courier")); + mActionL->setText(tr("Stopped")); + statusBar()->addPermanentWidget(l2); + statusBar()->addPermanentWidget(mActionL); + QLabel *l3 = new QLabel(tr("NumFiles:")); + mFilesL = new QLabel; + mFilesL->setFrameStyle(QFrame::Panel | QFrame::Sunken); + mFilesL->setFont(QFont("courier")); + mFilesL->setText(tr("0000")); + statusBar()->addPermanentWidget(l3); + statusBar()->addPermanentWidget(mFilesL); + QLabel *l4 = new QLabel(tr("Dur:")); + mPlaylistDurL = new QLabel; + mPlaylistDurL->setFrameStyle(QFrame::Panel | QFrame::Sunken); + mPlaylistDurL->setFont(QFont("courier")); + mPlaylistDurL->setText("000:00:00"); + statusBar()->addPermanentWidget(l4); + statusBar()->addPermanentWidget(mPlaylistDurL); + +} + |