summaryrefslogtreecommitdiffstats
path: root/beetplayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'beetplayer.cpp')
-rw-r--r--beetplayer.cpp76
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);
+
+}
+