]> git.sur5r.net Git - minitube/commitdiff
Added current and total time in the status bar
authorFlavio Tordini <flavio.tordini@gmail.com>
Sat, 27 Jun 2009 17:38:57 +0000 (19:38 +0200)
committerFlavio Tordini <flavio.tordini@gmail.com>
Sat, 27 Jun 2009 17:38:57 +0000 (19:38 +0200)
src/MainWindow.cpp
src/MainWindow.h
src/MediaView.cpp

index 806a0f75ae481636e517661b9d9fb3f98d06d9a3..17c6c8fedafaef915672212747b25303db2fe72d 100755 (executable)
@@ -280,6 +280,10 @@ void MainWindow::createToolBars() {
 }
 
 void MainWindow::createStatusBar() {
+    currentTime = new QLabel(this);
+    statusBar()->addPermanentWidget(currentTime);
+    totalTime = new QLabel(this);
+    statusBar()->addPermanentWidget(totalTime);
     statusBar()->show();
 }
 
@@ -389,6 +393,8 @@ void MainWindow::showSettings() {
 
 void MainWindow::showSearch() {
     showWidget(searchView);
+    currentTime->clear();
+    totalTime->clear();
 }
 
 void MainWindow::showMedia(QString query) {
@@ -439,6 +445,8 @@ void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState
          case Phonon::LoadingState:
         skipAct->setEnabled(true);
         pauseAct->setEnabled(false);
+        currentTime->clear();
+        totalTime->clear();
         break;
 
          default:
@@ -478,10 +486,30 @@ void MainWindow::initPhonon() {
     if (mediaObject) delete mediaObject;
     if (audioOutput) delete audioOutput;
     mediaObject = new Phonon::MediaObject(this);
+    mediaObject->setTickInterval(100);
     connect(mediaObject, SIGNAL(stateChanged(Phonon::State, Phonon::State)),
             this, SLOT(stateChanged(Phonon::State, Phonon::State)));
+    connect(mediaObject, SIGNAL(tick(qint64)), this, SLOT(tick(qint64)));
+    connect(mediaObject, SIGNAL(totalTimeChanged(qint64)), this, SLOT(totalTimeChanged(qint64)));
     seekSlider->setMediaObject(mediaObject);
     audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory, this);
     volumeSlider->setAudioOutput(audioOutput);
     Phonon::createPath(mediaObject, audioOutput);
 }
+
+void MainWindow::tick(qint64 time) {
+    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);
+    currentTime->setText(displayTime.toString("mm:ss"));
+    // qDebug() << "currentTime" << time << displayTime.toString("mm:ss");
+}
+
+void MainWindow::totalTimeChanged(qint64 time) {
+    if (time <= 0) {
+        totalTime->clear();
+        return;
+    }
+    QTime displayTime(0, (time / 60000) % 60, (time / 1000) % 60);
+    totalTime->setText(displayTime.toString("/ mm:ss"));
+    // qDebug() << "totalTime" << time << displayTime.toString("mm:ss");
+}
+
index cbd6de8f7abe234c0aea2f7b133f393c9b56a8f7..99d7abb9c0326fbe85cfe1896b49ea3a6b706a87 100755 (executable)
@@ -39,6 +39,8 @@ private slots:
     void stop();
     void stateChanged(Phonon::State newState, Phonon::State oldState);
     void searchFocus();
+    void tick(qint64 time);
+    void totalTimeChanged(qint64 time);
 
 private:
     void initPhonon();
@@ -100,6 +102,8 @@ private:
     Phonon::VolumeSlider *volumeSlider;
     Phonon::MediaObject *mediaObject;
     Phonon::AudioOutput *audioOutput;
+    QLabel *currentTime;
+    QLabel *totalTime;
 
     bool m_fullscreen;
 };
index 381edac6c50094b2298352c181b757a4e97ed7df..64c85e2707ca30e629c280266b6a0588a255d5b6 100644 (file)
@@ -102,7 +102,6 @@ void MediaView::setMediaObject(Phonon::MediaObject *mediaObject) {
             this, SLOT(stateChanged(Phonon::State, Phonon::State)));
     connect(mediaObject, SIGNAL(currentSourceChanged(Phonon::MediaSource)),
             this, SLOT(currentSourceChanged(Phonon::MediaSource)));
-    // connect(mediaObject, SIGNAL(tick(qint64)), this, SLOT(tick(qint64)));
     connect(mediaObject, SIGNAL(bufferStatus(int)), loadingWidget, SLOT(bufferStatus(int)));
 }