Added countdown label
authorNikolay Tischenko <niktischenko@gmail.com>
Sat, 30 Oct 2010 21:48:01 +0000 (03:48 +0600)
committerNikolay Tischenko <niktischenko@gmail.com>
Sat, 30 Oct 2010 21:48:01 +0000 (03:48 +0600)
src/mainwindow.cpp
src/mainwindow.h
src/playerform.cpp
src/playerform.h
src/ui/playerform.ui

index 9f3dd12..a3acf75 100644 (file)
@@ -199,7 +199,7 @@ void MainWindow::_set_timer() {
        dialog.init();
        if (_timer->isActive()) {
                dialog.showDisable();
-               int msec = _timer->interval();
+               int msec = _timeout_interval;
                int h = msec/3600000;
                int m = msec/60000 - h * 60;
                int s = msec/1000 - h * 3600 - m * 60;
@@ -209,17 +209,32 @@ void MainWindow::_set_timer() {
                if (!dialog.timerDisabled()) {
                        int h, m, s;
                        dialog.getTime(&h, &m, &s);
-                       _timer->setInterval(h*3600000+m*60000+s*1000);
+                       _timeout_interval = h*3600000+m*60000+s*1000;
+                       _timer->setInterval(1000);
+                       _timer->setSingleShot(false);
                        _timer->start();
                } else if (_timer->isActive()) {
                        _timer->stop();
+                       _player_form->hideCountdown();
                }
        }
 }
 
 void MainWindow::_timeout() {
-       _player_form->stop();
-       _timer->stop();
+       _timeout_interval -= 1000;
+       if (_timeout_interval <= 0) {
+               _player_form->stop();
+               _player_form->hideCountdown();
+               _timer->stop();
+       } else {
+               int h = _timeout_interval / 3600000;
+               int m = (_timeout_interval / 60000) - 60*h;
+               int s = (_timeout_interval / 1000) - 3600*h - 60*m;
+               QString hp = h < 10 ? QString("0%1").arg(h) : QString("%1").arg(h);
+               QString mp = m < 10 ? QString("0%1").arg(m) : QString("%1").arg(m);
+               QString sp = s < 10 ? QString("0%1").arg(s) : QString("%1").arg(s);
+               _player_form->showCountdown(hp+":"+mp+":"+sp);
+       }
 }
 
 void MainWindow::_equalizer() {
index fbfc860..4a8f41d 100644 (file)
@@ -78,6 +78,7 @@ private:
        QTimer *_timer;
        EqualizerDialog *_equalizer_dialog;
        ManageLibraryForm *_manage_library_form;
+       int _timeout_interval;
 };
 
 #endif // MAINWINDOW_H
index 83b0ee1..9120ee3 100644 (file)
@@ -137,6 +137,7 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) :
        ui->viewButton->setIcon(QIcon(":/icons/"+_icons_theme+"/playback.png"));
        _top_gradient = ui->topWidget->styleSheet();
        _bottom_gradient = ui->bottomWidget->styleSheet();
+       ui->countdownWidget->hide();
 
        // dbus
        _dbusadaptor = new DBusAdaptop(_player);
@@ -564,3 +565,12 @@ void PlayerForm::play(Track track) {
                _player->play();
        }
 }
+
+void PlayerForm::showCountdown(QString text) {
+       ui->countdownWidget->show();
+       ui->timeLabel->setText(text);
+}
+
+void PlayerForm::hideCountdown() {
+       ui->countdownWidget->hide();
+}
index cbfa802..563d825 100644 (file)
@@ -79,6 +79,8 @@ public slots:
        void updateIcons();
        void checkGradient();
        void play(Track);
+       void showCountdown(QString);
+       void hideCountdown();
 
 private slots:
        void _library();
index 5744bd5..8b00605 100644 (file)
           </layout>
          </item>
          <item>
+          <widget class="QWidget" name="countdownWidget" native="true">
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <property name="margin">
+             <number>0</number>
+            </property>
+            <item>
+             <widget class="QLabel" name="label">
+              <property name="text">
+               <string>Music off:</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLabel" name="timeLabel">
+              <property name="text">
+               <string>00:00:00</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
+         </item>
+         <item>
           <widget class="QTableView" name="playlistView">
            <property name="contextMenuPolicy">
             <enum>Qt::CustomContextMenu</enum>
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/library.png</normaloff>:/icons/white/library.png</iconset>
        </property>
        <property name="flat">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/playlist.png</normaloff>:/icons/white/playlist.png</iconset>
        </property>
        <property name="checkable">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/repeat_off.png</normaloff>:/icons/white/repeat_off.png</iconset>
        </property>
        <property name="iconSize">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/random_off.png</normaloff>:/icons/white/random_off.png</iconset>
        </property>
        <property name="iconSize">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/prev.png</normaloff>:/icons/white/prev.png</iconset>
        </property>
        <property name="flat">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/play.png</normaloff>:/icons/white/play.png</iconset>
        </property>
        <property name="flat">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/next.png</normaloff>:/icons/white/next.png</iconset>
        </property>
        <property name="flat">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/stop.png</normaloff>:/icons/white/stop.png</iconset>
        </property>
        <property name="flat">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/more.png</normaloff>:/icons/white/more.png</iconset>
        </property>
        <property name="flat">
         <string/>
        </property>
        <property name="icon">
-        <iconset resource="../../resources/resources.qrc">
+        <iconset>
          <normaloff>:/icons/white/directory.png</normaloff>:/icons/white/directory.png</iconset>
        </property>
        <property name="flat">
    </item>
   </layout>
  </widget>
- <resources>
-  <include location="../../resources/resources.qrc"/>
- </resources>
+ <resources/>
  <connections/>
 </ui>